Vad saknas för tethering på nordiska Magic och hur fixar vi det?

Diskussion i 'Magic' startad av Andreas, 26 jun 2009.

  1. Andreas

    Andreas Youth Droid Medlem

    Blev medlem:
    4 jun 2009
    Inlägg:
    126
    Mottagna gillanden:
    17

    MINA ENHETER

    Hej!

    Som jag har förstått det kan vi inte köra tethering-program på våra nordiska Magicar för att HTC valt att skicka en variant av telefonen med vissa saker bortplockade ur mjukvaran, exempelvis iptables, till piratnästena här i norr.

    Men eftersom hela OSet bygger på Linux, källkoden är öppen och det inte är särskilt svårt att kors-kompilera en ARM-kärna och de nödvändiga programmen på en vanlig PC med ex Ubuntu, så undrar jag vad som hindrar oss från att kompilera om kärnan med de stöd som behövs. Bootar HTCs android enbart signad kod eller är det något md5sum-test eller liknande som gör att vi inte enkelt kan fixa detta? Om androiden kräver signad kod a la TiVO för att fixa detta kan jag lika gärna slänga den i sjön för då är det långt ifrån den öppna plattform jag förväntade mig.

    Eftersom vi kan kopiera in exempelvis 'su' in i filsystemet med adp borde vi kunna göra det samma med kärnan och de program som behövs för att kunna routa trafiken.

    Ni som har mer erfarenhet av detta, koll på vilken mjukvara som saknas och vet var skon klämmer får gärna lista vad vi behöver. Om det bara är lite vanlig standard hacking på en linuxburk men att ingen tagit sig tid att göra det borde vi kunna fixa detta tillsammans ganska snabbt.
     
  2. mannyb

    mannyb Androidpamp Moderator

    Blev medlem:
    14 maj 2009
    Inlägg:
    4 308
    Mottagna gillanden:
    778
    Operatör:
    Google Fi
    Telefon:
    Google Pixel 9 Pro Fold

    MINA ENHETER

    Operatör:
    Google Fi
    Telefon:
    Google Pixel 9 Pro Fold
    ROM:
    Stock
    Telefon 2:
    Google Pixel 8 Pro
    ROM:
    Stock
    Platta:
    Google Pixel Tab
    ROM:
    Stock
    Det finns denna, som fixar problemet, men den är för ADP1.5.

    http://code.google.com/p/android-wifi-tether/wiki/ADP15KernelUpdate

    Men som det står i texten - Gäller inte för Magic. Det behövs en anpassad kernel update för Magic.. men det kanske går att fixa om någon kunnig människa tar filen från ovanstående länk och anpassar den för Magic.
     
  3. Andreas

    Andreas Youth Droid Medlem

    Blev medlem:
    4 jun 2009
    Inlägg:
    126
    Mottagna gillanden:
    17

    MINA ENHETER

    Av diskussion att döma där tycker jag det verkar som att man:

    i) tankar ner källkoden från android.com

    ii) exporterar config.gz-filen från sin telefon.

    iii) config.gz är en helt vanlig text-fil (dock zippad) där man anger vad i källkoden som ska inkluderas när man kompilerar kärnan och verkar funka precis som för vilken linux-kärna som helst. Vad vi behöver göra är att korrigera textfilen så att vi får stöd för netfilter/iptables.

    iv) kompilera en ny kärna källkoden m h a instruktionerna i config-filen

    v) tanka över kärnan till mobben

    vi) kompilera de olika små program som behövs för att android-wifi-tether ska kunna använda de nya funktionerna i kärnan.

    Om vi använder samma version av källkoden som HTC använde när de gjorde sin release bör eventuella binära moduler som vi inte har källkod för (verkar vara wlan, OpenGL mm) funka utan problem.

    Jag undrar därför om:

    a) det finns ett source-repository för HTC Magic's kärna och eventuella patchar som HTC gjort. GPL-licensen kräver att källkoden och att sådana patchar direkt mot kärnan kan lämnas ut.

    b) om våra Magic-telefoner som ju inte är dev-telefoner har config.gz-filen. eftersom den ligger i /proc är den nog egentligen ingen textfil utan en funktion i kärnan som exporterar alla flaggor som användes när den byggdes och som vi kan dumpa som en textfil. jag skulle gissa att vi kan komma åt den.

    Så länge problemen ser ut som ovan och koden är tillgänglig kan vi lösa detta, men om det finns annan mystik i mobbens firmware som inte godkänner egenkompilerade kärnor i Magicen blir det mycket svårare.
     
  4. ehnvis

    ehnvis Senior Droid Medlem

    Blev medlem:
    23 jun 2009
    Inlägg:
    1 302
    Mottagna gillanden:
    49
    Telefon:
    LG G5

    MINA ENHETER

    Telefon:
    LG G5
    ROM:
    Orginal
    config.gz är enkel att plocka från telefonen se bara till att du har USB debugging påslagen och sedan är det bara att köra
    Kod:
    adb pull /proc/config.gz <någonstans där du hittar den>
    Plockade precis ut config.gz från min orörda lur. Sedan är det ju bara att antingen läsa filen med gzcat eller köra en gunzip på den för att få den i läsbart format.
     
  5. TheNano

    TheNano Senior Droid Medlem

    Blev medlem:
    8 jun 2009
    Inlägg:
    1 709
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag har i en annan tråd gått igenom dessa och de ovannämnda steg , jag kunse tyvärr inte slutföra kompileringen och fick error vid en drivrutin kompilering , kan ni kolla i den posten och se om någon kan få det att funka !?
    här finns vad jag testade
     
  6. Andreas

    Andreas Youth Droid Medlem

    Blev medlem:
    4 jun 2009
    Inlägg:
    126
    Mottagna gillanden:
    17

    MINA ENHETER

    tack! när jag får lite tid över ska jag kolla på detta.

    det skulle vara mkt enklare om vi kunde trycka in gcc och andra utvecklarverktyg direkt på mobben och göra kompileringen på den. med den nya NPKn kanske vi kan bygga gcc, i dunno.
     
  7. Victor

    Victor Youth Droid Medlem

    Blev medlem:
    23 jun 2009
    Inlägg:
    166
    Mottagna gillanden:
    0

    MINA ENHETER

  8. Andreas

    Andreas Youth Droid Medlem

    Blev medlem:
    4 jun 2009
    Inlägg:
    126
    Mottagna gillanden:
    17

    MINA ENHETER

    Jag kollade i min config.gz och mycket riktigt saknas det som har med netfilter och iptables att göra. I delen för "Networking options" kan vi klistra in följande:

    CONFIG_NETFILTER=y
    CONFIG_IP_NF_IPTABLES=y
    CONFIG_IP_NF_MATCH_STATE=y
    CONFIG_IP_NF_FILTER=y
    CONFIG_IP_NF_TARGET_REJECT=Y

    så med en fungerande cross compiler och rätt version av koden för kärnan borde vi kunna bygga en ny kärna med netfilter. Det jobbiga är bara att sätta upp hela toolchainen för att kompilera skiten för en ARM-processor. TheNano postade en bra start på vägen men det kommer kräva en del fipplande innan det funkar.

    Sedan behöver vi bygga programmen som kommer med paketet iptables. En bra länk om netfilter och iptables finns här:

    http://www.ibm.com/developerworks/linux/library/s-netip/?t=egrL259&p=intronetfilt
     
  9. Andreas

    Andreas Youth Droid Medlem

    Blev medlem:
    4 jun 2009
    Inlägg:
    126
    Mottagna gillanden:
    17

    MINA ENHETER

    Ok. Om jag använder TheNano's guide kan jag kompilera kärnan med min modifierade config-fil. Men jag undrar vilken typ av ARM-CPU jag ska bygga för. Det finns 37 att välja på... :-D
     
  10. mannyb

    mannyb Androidpamp Moderator

    Blev medlem:
    14 maj 2009
    Inlägg:
    4 308
    Mottagna gillanden:
    778
    Operatör:
    Google Fi
    Telefon:
    Google Pixel 9 Pro Fold

    MINA ENHETER

    Operatör:
    Google Fi
    Telefon:
    Google Pixel 9 Pro Fold
    ROM:
    Stock
    Telefon 2:
    Google Pixel 8 Pro
    ROM:
    Stock
    Platta:
    Google Pixel Tab
    ROM:
    Stock
  11. ehnvis

    ehnvis Senior Droid Medlem

    Blev medlem:
    23 jun 2009
    Inlägg:
    1 302
    Mottagna gillanden:
    49
    Telefon:
    LG G5

    MINA ENHETER

    Telefon:
    LG G5
    ROM:
    Orginal
    Har inte den nordiska modellen (som många av oss har) en Qualcomm MSM7200A processor och Vodafone modellen har den du länkar till.

    Kikar man på HTC hemsida så kan man hitta dessa två modeller iaf.

    Iofs så spelar det ingen större roll då båda två stödjer ARMv6 instruktioner.
     
  12. Andreas

    Andreas Youth Droid Medlem

    Blev medlem:
    4 jun 2009
    Inlägg:
    126
    Mottagna gillanden:
    17

    MINA ENHETER

    Det vi har att välja på är:

    ARM system type
    1. Agilent AAEC-2000 based (ARCH_AAEC2000)
    2. ARM Ltd. Integrator family (ARCH_INTEGRATOR)
    3. ARM Ltd. RealView family (ARCH_REALVIEW)
    > 4. ARM Ltd. Versatile family (ARCH_VERSATILE)
    5. Atmel AT91 (ARCH_AT91)
    6. Cirrus CL-PS7500FE (ARCH_CLPS7500)
    7. Cirrus Logic CLPS711x/EP721x-based (ARCH_CLPS711X)
    8. EBSA-110 (ARCH_EBSA110)
    9. EP93xx-based (ARCH_EP93XX)
    10. FootBridge (ARCH_FOOTBRIDGE)
    11. Hilscher NetX based (ARCH_NETX)
    12. Hynix HMS720x-based (ARCH_H720X)
    13. IMX (ARCH_IMX)
    14. IOP13xx-based (ARCH_IOP13XX)
    15. IOP32x-based (ARCH_IOP32X)
    16. IOP33x-based (ARCH_IOP33X)
    17. IXP23XX-based (ARCH_IXP23XX)
    18. IXP2400/2800-based (ARCH_IXP2000)
    19. IXP4xx-based (ARCH_IXP4XX)
    20. LinkUp-L7200 (ARCH_L7200)
    21. Marvell Kirkwood (ARCH_KIRKWOOD)
    22. Micrel/Kendin KS8695 (ARCH_KS8695)
    23. NetSilicon NS9xxx (ARCH_NS9XXX)
    24. Marvell Loki (88RC8480) (ARCH_LOKI)
    25. Marvell MV78xx0 (ARCH_MV78XX0)
    26. Freescale MXC/iMX-based (ARCH_MXC)
    27. Marvell Orion (ARCH_ORION5X)
    28. Philips Nexperia PNX4008 Mobile (ARCH_PNX4008)
    29. PXA2xx/PXA3xx-based (ARCH_PXA)
    30. RiscPC (ARCH_RPC)
    31. SA1100-based (ARCH_SA1100)
    32. Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443 (ARCH_S3C2410)
    33. Shark (ARCH_SHARK)
    34. Sharp LH7A40X (ARCH_LH7A40X)
    35. TI DaVinci (ARCH_DAVINCI)
    36. TI OMAP (ARCH_OMAP)
    37. Qualcomm MSM (ARCH_MSM) (NEW)

    Nummer 37 låter ju bra :-) Det skulle dock vara lättare om jag hade en referens-config.gz från en G1 eller någon annan Magic som har netfilter/iptables aktiverat så jag vet exakt hur de kärnorna specades m a p på ovan nämnda CONFIGs.
     
  13. mannyb

    mannyb Androidpamp Moderator

    Blev medlem:
    14 maj 2009
    Inlägg:
    4 308
    Mottagna gillanden:
    778
    Operatör:
    Google Fi
    Telefon:
    Google Pixel 9 Pro Fold

    MINA ENHETER

    Operatör:
    Google Fi
    Telefon:
    Google Pixel 9 Pro Fold
    ROM:
    Stock
    Telefon 2:
    Google Pixel 8 Pro
    ROM:
    Stock
    Platta:
    Google Pixel Tab
    ROM:
    Stock
    Det måste nästan vara #37 ja.
     
  14. Andreas

    Andreas Youth Droid Medlem

    Blev medlem:
    4 jun 2009
    Inlägg:
    126
    Mottagna gillanden:
    17

    MINA ENHETER

    Kärnan byggs fint hos mig. Jag är ingen mästare på git som används för att tanka hem all kod så jag är inte *helt* säker på att det verkligen blev version 2.6.27 istället för 2.6.29. Enligt TheNano's guide ska man köra detta för att hoppa över på det spåret:

    git checkout --track -b msm_htc origin/android-msm-2.6.27
    git checkout -f

    När jag gör det verkar ingen ny annan kod tankas hem så jag antar att den versionen av koden som motsvarar 2.6.27 aktiveras genom att förändringar efter 2.6.27 ignoreras...?

    Hur som, det byggs en kärna och den ska in i mobben. Jag är lite osäker på hur detta ska gå till. Hur får man bäst över zImage till rätt katalog? adp eller fastboot? det här med flashning är lite diffust för en som är van vid Linux på en PC.
     
  15. Andreas

    Andreas Youth Droid Medlem

    Blev medlem:
    4 jun 2009
    Inlägg:
    126
    Mottagna gillanden:
    17

    MINA ENHETER

    Hmm, tyvärr vill telefonen inte boota den kärnan. Jag är osäker på vilken ramdisk jag ska ha så jag testade den från SDKn och körde enligt principen:

    fastboot boot {kernel} {ramdisk}

    såhär:

    fastboot boot arch/arm/boot/zImage /home/andreas/devel/android/android-sdk-linux_x86-1.5_r2/platforms/android-1.5/images/ramdisk.img
    creating boot image...
    creating boot image - 1632256 bytes
    downloading 'boot.img'... OKAY
    booting... OKAY

    men den fryser och visar bara HTC-loggan.
     
  16. Andreas

    Andreas Youth Droid Medlem

    Blev medlem:
    4 jun 2009
    Inlägg:
    126
    Mottagna gillanden:
    17

    MINA ENHETER

    Det funkar inte när jag kör med ramdisken från daldroids boot.img heller :-(
     
  17. ehnvis

    ehnvis Senior Droid Medlem

    Blev medlem:
    23 jun 2009
    Inlägg:
    1 302
    Mottagna gillanden:
    49
    Telefon:
    LG G5

    MINA ENHETER

    Telefon:
    LG G5
    ROM:
    Orginal
    Har du provat med ramdisken från din egen lur? Skulle gärna labba själv men får inte till kompileringen av kärnan på min mac :(
     
  18. Andreas

    Andreas Youth Droid Medlem

    Blev medlem:
    4 jun 2009
    Inlägg:
    126
    Mottagna gillanden:
    17

    MINA ENHETER

    Jag misstänker att jag snarare gör nåt fel med fastboot för jag kan inte heller boota med daldroids kärna och ramdisk med ovanstående kommando trots att de bootar fint när de installerats på telefonen.
     
  19. ehnvis

    ehnvis Senior Droid Medlem

    Blev medlem:
    23 jun 2009
    Inlägg:
    1 302
    Mottagna gillanden:
    49
    Telefon:
    LG G5

    MINA ENHETER

    Telefon:
    LG G5
    ROM:
    Orginal
    Du har inte lust att dela med dig av kärnan så man kan laborera lite med att bygga en egen boot.img? Det borde gå att få igång den tycker jag, speciellt om den byggdes utan problem.
     
  20. Andreas

    Andreas Youth Droid Medlem

    Blev medlem:
    4 jun 2009
    Inlägg:
    126
    Mottagna gillanden:
    17

    MINA ENHETER

    Jodå det är klart att jag kan dela med mig av den. Jag har testat att bygga den med två verktyg och du kan få båda versionerna. Jag skickar/lägger upp dem ikväll.

    Ett tips om du har problem att få till kompilering på en Mac men har ett par gig utrymme att avvara på disken är att du installerar VirtualBox och trycker in Ubuntu 9.04 32-bit på den och gör utveckling inifrån en virtuell miljö. De flesta guider och exempel jag hittat på android-utveckling går hand i hand med Linux så det kanske underlättar en del. Det kan tyckas lite jobbigt men är inte så dumt egentligen eftersom virtuella miljöer kan pausas och återupptas på ett sätt som vanliga inte kan.