Portál AbcLinuxu, 2. května 2025 05:38

Touchbook podruhé (s trojkovým jádrem)

8.8.2011 03:40 | Přečteno: 1478× | Linux | Výběrový blog | poslední úprava: 8.8.2011 03:39

Už delší dobu jsem majitelem TouchBooku od AlwaysInnovating, nicméně celá firma je tak nějak polomrtvá - v Gitu mají minimum commitů, nové kusy neodesílají a co hůř - jako hlavní "OS" se tam objevil Android. Takže klasický systém (AIOS, rebrandované OpenEmbedded) je prakticky neudržovaný a navíc Android na netbooku saje (OK, až na Angry Birds). Tak jsem se rozhodl tam nainstalovat Debian, ale nakonec se ukázalo, že to není až tak bez problémů jak jsem si myslel.

Debootstrapem jsem nainstaloval mimimální Debian Sid, upravil adekvátně bootovací skript, rebootnul a bum. Udev vyplivl hromadu chyb a dál se to se mnou nebavilo. Aby taky ne, když tam je přes rok staré jádro (2.6.32). No, a co s tím... Downgrade udevu (a kdoví co se tím rozbije) nebo upgrade jádra? Nakonec to vyhrál upgrade jádra.

A jen obligátní varování - pokud se někdo do tohohle bude pouštět, tak na vlastní riziko. Sice jsem to otestoval a u mě to funguje, ale to neznamená, že to bude fungovat i vám!

X-loader

A když už upgrade jádra, tak to vezmeme hezky od podlahy, tedy zavaděče. Jako primární zavaděč používá Touchbook X-loader. X-loader nedělá žádnou složitou práci, jen natáhne a spustí sekundární zavaděč (u-boot). Tady naštěstí díky značné podobnosti s BeagleBoardem nebyl nejmenší problém - stačilo stáhnout a zkompilovat jako pro Beagle:

ccmake distclean
ccmake omap3530beagle_config
ccmake

Vypadne nám soubor MLO což je přesně to, co potřebujeme. Šup s ním na SD kartu a jedeme dál.

Malá odbočka: jelikož OMAP umí bootovat jen z FAT, je potřeba krom systémové (já mám ext4) partišny vytvořit i menší - bootovací a naformátovat ji jako FAT.

U-boot

U-boot slouží jako sekundární zavaděč a tady už to začíná být zajímavé - U-boot je totiž zodpovědný nejen za natažení jádra ale i za správnou inicializaci jednotlivých pinů procesoru. Naštěstí, většina je opět shodná s Beagleboardem, a oproti u-bootu co používá AI se toho zas tak moc nezměnilo, takže stačilo upravit jen drobnosti (PWM výstup podsvícení a podobně). Oproti AI verzi jsem tam necpal splashscreen a další zbytečnosti, chtěl jsem se držet co nejblíž vanilce. Tady je diff. Zkompilujeme stejně jako pro Beagleboard.

ccmake mrproper
ccmake omap3_beagle_config
ccmake

Také musíme u-bootu nějak říct co má dělat. Tady se objevuje drobnější problém - ve výchozím nastavení se u-boot pokusí načíst data z NAND a až pokud selže načítá skript uEnv.txt. Takže si buď dobastlíme sériový kabel a v u-boot promptu spustíme nand erase.chip (doporučuji, sériový kabel je fajn věc), nebo z běžícího systému zavoláme flash_erase /dev/mtd2. u-boot.bin a uEnv.txt zkopírujeme na kartu.

Drobné upozornění: u-boot nezapíná displej a nechává 10s timeout takže nepanikařte, že to okamžitě nenaběhne.

Kernel

Vrchol večera (a taky hlavní důvod proč tenhle zápisek píšu). Tady už si s podporou pro Beagleboard nevystačíme. No, ale s chutí do toho a půl je hotovo. Jádro jsem nějak nakonfiguroval (nebo spíš vyházel hromadu nepotřebného balastu), ale hlavní je, že jsem zjistil, že tam nějaká základní podpora Touchbooku je. Rychlý pohled do zdrojáku odhalil že tam sice asi skoro nic fungovat nebude, ale nabootovat by to mělo.

ccmake -j3 uImage
, výsledný arch/arm/boot/uImage jsem nahrál na SD kartu a zkusil nabootovat. Podle očekávání skoro nic nenaběhlo. A co hůř, na sériové konzoli jsem koukal na
Uncompressing Linux... done, booting the kernel.
A jádro se ne a ne přihlásit. Takže první zásek. Po hodině hledání a přehrabování se v kódu jsem zvolal heuráka! Ve 2.6.37 ty inteligenti přejmenovali pro OMAP ttyS na ttyO. To by je člověk musel zabít. Upravil jsem parametry a rebootoval. Kernel panic! Asi první kernel panic který jsem viděl rád - dostalo se to až k připojení rootu. Ale opět skoro nic nefungovalo. Tedy, chyběla podpora pro: displej, podsvícení displeje, klávesnice (Fn+něco), akcelerometr, dotyková obrazovka, zvuk, zjišťování napětí baterky tabletu při odpojené nabíječce. Následovalo několik hodin nadávání, úprav zdrojáků a hledání příčiny různých oopsů. No, nakonec to víceméně funguje. Určitě na tom nepoběží ten jejich systém (nemám podporu pro SquashFS ani Initramfs), nefunguje rotace displeje. Ale základ už běží SNAD spolehlivě.

Závěrem

       

Hodnocení: 88 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Jendа avatar 8.8.2011 12:06 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Touchbook podruhé (s trojkovým jádrem)
Odpovědět | Sbalit | Link | Blokovat | Admin
nové kusy neodesílají
Oni ty SmartBooky a prostě tu novou verzi ještě nemají?!

TB nemám, ale myslel jsem si, že při upgrade jádra není potřeba řešit zavaděč, protože prostě natáhne první jádro, co na té FATce najde.

Btw. kromě hraní si, je nějaký důvod, proč nepoužít jádro 2.6.32 přímo od AI?
8.8.2011 12:11 Mrkva | skóre: 22 | blog: urandom
Rozbalit Rozbalit vše Re: Touchbook podruhé (s trojkovým jádrem)
Tak nějak si uvědomuju, že tenhle zápisek je možná pro dva nebo tři lidi. :D
Oni ty SmartBooky a prostě tu novou verzi ještě nemají?!
Ne.
TB nemám, ale myslel jsem si, že při upgrade jádra není potřeba řešit zavaděč, protože prostě natáhne první jádro, co na té FATce najde.
Asi není, ale chtěl jsem to upgradnout už všechno.
Btw. kromě hraní si, je nějaký důvod, proč nepoužít jádro 2.6.32 přímo od AI?
Jak jsem psal, chtěl jsem tam vrazit klasický Debian a udevu se 2.6.32 nějak nelíbilo.
Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
Grunt avatar 8.8.2011 22:46 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Touchbook podruhé (s trojkovým jádrem)
TB nemám, ale myslel jsem si, že při upgrade jádra není potřeba řešit zavaděč, protože prostě natáhne první jádro, co na té FATce najde.
No jo, ale také se starými parametry. Já abych se vyhnul přepisování zavaděče, jsem si bootovací parametry jádra nahardkódoval do jádra samotného a donutil ho ignorovat externí parametry.
Btw. kromě hraní si, je nějaký důvod, proč nepoužít jádro 2.6.32 přímo od AI?
Třeba Wi-Fi karta s externí anténou, televizní karta, ale je to spousta jiných věcí. Všechno se starým jádrem prostě nefunkční (teda ne že by to s novějším bylo o moc lepší, ale zas furt lepší než drátem do oka). Celkově bych to jádro AI-2.6.32 označil jako hack a první sestavení, které fungovalo a bylo vypuštěno a dál klasický dontkérák (just works, tak co řešit?).
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
9.8.2011 00:12 Mrkva | skóre: 22 | blog: urandom
Rozbalit Rozbalit vše Re: Touchbook podruhé (s trojkovým jádrem)
Celkově bych to jádro AI-2.6.32 označil jako hack a první sestavení, které fungovalo a bylo vypuštěno a dál klasický dontkérák (just works, tak co řešit?).
To bylo .29 :)
Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
multi avatar 8.8.2011 15:36 multi | skóre: 38 | blog: JaNejsemOdsut
Rozbalit Rozbalit vše Re: Touchbook podruhé (s trojkovým jádrem)
Odpovědět | Sbalit | Link | Blokovat | Admin
presto ze pouzivam spokoje poladeny AI-OS, tak chvalim za zapisek
Fitness ajťák: kutilův web; bezdrátová čidla teploty vývoj softwaru linux server
Grunt avatar 8.8.2011 21:48 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Touchbook podruhé (s trojkovým jádrem)
Odpovědět | Sbalit | Link | Blokovat | Admin
To není možné. Nakonec si to dal. No škoda, že můj TB je zrovna mimo provoz, jinak bych to hned zkusil. Hele, tak šoupni aspoň někam patchset. Hned jak ho dostanu do provozu-schopného stavu, tak to vyzkouším.
je prakticky neudržovaný
Můžu říct, že s OE to není o mnoho lepší. Problém je jediný: Příšerný bordel. Částečně je tomu vinný i Android a především pak vývoj v jednotlivých subjektech s vidinou rychlého hotového funkčního komerčního výrobku bez nějaké štábní kultury, domluvy a vedení. Já osobně jsem fakt víc než zvědavý kdo ten příšerný bordel bude uklízet a jestli vůbec kdy někdy.

Jinak mám ještě hotový ten image s initramfs a kexecem (podobně jako pro OpenWRT) akorát v něm není skript:

Angstrom-initramfs-bootmenu-image-eglibc-ipk-v20110221-omap3-touchbook.rootfs.cpio.gz
Angstrom-initramfs-bootmenu-image-eglibc-ipk-v20110221-omap3-touchbook.rootfs.squashfs
Angstrom-initramfs-bootmenu-image-eglibc-ipk-v20110221-omap3-touchbook.rootfs.tar.bz2
Angstrom-initramfs-bootmenu-image-eglibc-ipk-v20110221-omap3-touchbook.rootfs.ubi
Angstrom-initramfs-bootmenu-image-eglibc-ipk-v20110221-omap3-touchbook.rootfs.ubifs
Angstrom-initramfs-bootmenu-image-eglibc-ipk-v20110221-omap3-touchbook-testlab
Angstrom-initramfs-image-eglibc-ipk-v20110216-omap3-touchbook.rootfs.squashfs
Angstrom-initramfs-image-eglibc-ipk-v20110216-omap3-touchbook.rootfs.tar.bz2
Angstrom-initramfs-image-eglibc-ipk-v20110216-omap3-touchbook.rootfs.ubi
Angstrom-initramfs-image-eglibc-ipk-v20110216-omap3-touchbook.rootfs.ubifs
Angstrom-initramfs-image-eglibc-ipk-v20110216-omap3-touchbook-testlab
Angstrom-initramfs-image-eglibc-ipk-v20110220-omap3-touchbook.rootfs.cpio.gz
Angstrom-initramfs-image-eglibc-ipk-v20110220-omap3-touchbook-testlab
Angstrom-initramfs-kexecboot-image-eglibc-ipk-v20110217-omap3-touchbook.rootfs.cpio.gz
Angstrom-initramfs-kexecboot-image-eglibc-ipk-v20110217-omap3-touchbook.rootfs.cpio.lzma
config-omap3-touchbook.config
config-2.6.32-r100+gitr5fc29e7b2a76a64a739f857858ef0b98294aa155-omap3-touchbook.config
initramfs-bootmenu-image-omap3-touchbook.cpio.gz
initramfs-bootmenu-image-omap3-touchbook.squashfs
initramfs-bootmenu-image-omap3-touchbook.tar.bz2
initramfs-bootmenu-image-omap3-touchbook.ubi
initramfs-image-omap3-touchbook.cpio.gz
initramfs-image-omap3-touchbook.squashfs
initramfs-image-omap3-touchbook.tar.bz2
initramfs-image-omap3-touchbook.ubi
initramfs-kexecboot-image-omap3-touchbook.cpio.gz
initramfs-kexecboot-image-omap3-touchbook.cpio.lzma
MLO-omap3-touchbook
MLO-omap3-touchbook-1.44+r20+gitr319b26586fafb86f919f514bcd175838aaab96b3-r20
modules-omap3-touchbook.tgz
modules-2.6.32-r100+gitr5fc29e7b2a76a64a739f857858ef0b98294aa155-omap3-touchbook.tgz
ubinize.cfg
u-boot-omap3-touchbook.bin
u-boot-omap3-touchbook-2009.05+r72+gitrd363f9cb0918a1b6b92e2e20d01543d0c4f53274-r72.bin
uImage-omap3-touchbook.bin
uImage-2.6.32-r100+gitr5fc29e7b2a76a64a739f857858ef0b98294aa155-omap3-touchbook.bin
x-load-omap3-touchbook.bin.ift
x-load-omap3-touchbook-1.44+r20+gitr319b26586fafb86f919f514bcd175838aaab96b3-r20.bin.ift
x-load-usb-omap3-touchbook.bin
x-load-usb-omap3-touchbook-1.44+r20+gitr319b26586fafb86f919f514bcd175838aaab96b3-r20.bin

Problém je jen že nevím kde jsem skončil.

Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
9.8.2011 00:13 Mrkva | skóre: 22 | blog: urandom
Rozbalit Rozbalit vše Re: Touchbook podruhé (s trojkovým jádrem)
No škoda, že můj TB je zrovna mimo provoz
Jak mimo provoz? Cos rozflákal?
Hele, tak šoupni aspoň někam patchset
Patche (a snad i binárky) zkusím udržovat na http://tb.mrkva.eu/
Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
Grunt avatar 9.8.2011 09:11 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Touchbook podruhé (s trojkovým jádrem)
Jak mimo provoz? Cos rozflákal?
Tak to napájení ve snaze umístit mezi to ampérmetr. Celé to má moc velký odpor, takže se pájení nevyhnu. Mám už i konektory a takovou tu pájku s jehlovým hrotem, ale ruku roztřepanou natolik, že sám si na to netroufnu a radši to přenechám schopnějšímu.
Patche (a snad i binárky) zkusím udržovat na http://tb.mrkva.eu/
Už ho vidím. Díky.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.