A Nokia N800-on debian alapú linux fut. Az OS2008 nem rossz, de gondoltam feldobom egy qemuval a felhozatalt. Találtam bináris verziót, csak az az apró probléma van vele, hogy szeret segmentation fault-ot dobálni. Gondoltam fordítok gyorsan egyet a legfrissebb 0.12.4-ből.
1.0 Maemo SDK
Először megpróbáltam felvenni a repository-k közé a fejlesztői eszközöket:
echo "deb http://repository.maemo.org/ diablo/sdk free non-free" >> /etc/apt/sources.list.d/hildon-application-manager.list
Feltelepítettem a szokásos build eszközöket, de nem jártam sikerrel, mindig új csomagokat követelt magának. Egészen addig ment a dolog, amíg ki nem futottam a helyből. Hiába, kevés a 256MiB flash.
2.0 Easy Debian
Gondoltam az easy debian majd jó megoldás lesz. Sajnos eléggé limitált a rendelkezésre álló hely. Gyorsan felrámoltam a qemu csomagot. Az öröm korai volt, valamiért nem ismerte fel egyetlen lemezképemet sem. Érdekes módon egy bootolható rescue CD működött, de a frissen (qemu-img-vel) létrehozott merevlemez állományt azzal sem szerette. A dpkg -P használatával a csomagok között vágtam egy elég nagy tisztást magamnak, hogy felkerüljön a build környezet. Sajnos a qemu forrás nem akart semmi pénzért sem lefordulni.
2.1 Debian bootstrap
Ezután megpróbáltam felrakni egy debian bootstrap-et. Érdekes módon mindig valami hibával elhalt. Persze már maga a bootstrap felrakása sem volt éppen elegáns. Kis ízelítő a masszázsból:
- Static cdebootstrap keült fel
- A csomagoktartalmát csak dpkg -x segítségével tömörítettem ki és kézzel másoltam a helyükre
Végül az easy debian alá csatoltam fel egy új partíciót és arra raktam fel egy ubuntut. Mivel a Lucid már nem támogatja a arm6-ot procit, ezért maradt a 9.10 Karmic. Gyorsan letöltöttem a fordításhoz szükséges cuccokat és a qemu forrást:
chroot /debian bash
mkdir qemu
cd qemu
apt-get build-dep qemu
wget http://download.savannah.gnu.org/releases/qemu/qemu-0.12.4.tar.gz
Gyors configurálás után jöhetett a fordítás:
./config --disable-user --disable-xen --disable-kvm --target-list=i386-softmmu
make
Na meg a pofára esés. A tablet olyat tett, amire még nem volt példa gyári kernellel. Szimplán nem válaszolt, majd magától újraindult. Gondolom a watchdog lőtte le, de ez nem nyugtatott meg. Érdekes módon mindig ugyanott tette ezt. Persze ez a pont kb 2 óra fordítás után jött el, nehogy gyorsan reprodukálható legyen a hiba. Kis script írás után eljutottam oda, hogy elfogy a memória. Ha adok neki swap-ot, akkor egy határ után túlságosan lelassul. Erre utal a /proc/bootreason: 32wd_to is.
3.0 Qemu fordítás VMware alatt, qemu-n
Qemuval lehet emulálni arm processzort is. Letölthető egy image fájl, amit csak ki kell csomagolni és elindítani a a mellékelt run.sh segítségével. A saját img készítés elég jól le van dokumentálva itt.
Aprócska probléma, hogy sehol sem találtam qemu-t windows alá és a linuxos gépem éppen le van foglalva. Bevetettem a VMware playert és a laptopon futtatok egy guest Ubuntut, amin fut az arm rendszert emuláló qemu. Elég jól hangzik nem? Semmi gond nincs vele, csak kicsit lassú. Lassabb, mint az N800, pedig az sem egy kapkodó idegbeteg. Felraktam a fordításhoz szükséges cuccokat és letöltöttem a forrást. Pár óra gyorsan elrepült a make-el együtt. Ha jól számolom az volt a hatodik nekifutásom.
Jelenlegi állapot
A fordító korrekt volt. Elpanaszolta, hogy kevés a memória. Kapott többet. Pontosabban kapott volna, de 256-nál többet nem tud szimulálni. Sebaj, kapott 512MB swap-ot, tekreheti a merevlemezt. A VMware is kapott 512M-át, hátha rendese tudja kezelni a cahe-el és nem a merevlemezt terheli. Egyelőre beválni látszik a stratégia, reggelre kiderül, vagy beborul.