( wowbagger | 2008. 05. 01., cs – 02:45 )

Mivel a fent említett leírás végül nem segített, ezért úgy döntöttem, hogy utánajárok a dolgoknak kicsit.
Az egyetem ahová járok, jó kapcsolatokat ápol az adott blog mögött álló céggel, és mivel a téma érdekel, ezért is foglalkoztat a kérdés.
A következő hónap során várhatóan szert teszek egy N770-es Internet Tabletre, amin majd próbálgathatom - remélhetőleg - az oroszlánkörmeimet.
Egy ideje már Slackware Linuxot használok, már viszonylag jól elboldogulok vele, megszerettem használni, mondhatni hozzám nőtt.

Mivel a fenti leírás a 4-es Maemo SDK-val foglalkozik, ezért ez számomra nem megfelelő, mivel a Maemo projekt oldalairól kiderül, hogy a 2.2-es Maemo verzióval lehet az IT OS 2006-ra fejleszteni, ami az N770-en hivatalosan támogatott legfrissebb változat. (Kutakodásom során találtam IT OS 2007 és 2008 "Hacker Editiont", ami elvileg működik N770-en, de valószínűleg ezek hivatalosan nem támogatottak.)
Ezek után úgy döntöttem, hogy akkor a 2.2-es Maemo SDK-t teszem fel, amit viszont csak kézzel lehet telepíteni.
A projekt oldalain van egy leírás, ami az első lépések megtételét hivatott segíteni. Ezért ezt követtem.

A leírás előre bocsátja, hogy elsősorban Ubuntura és Debianra szánják az SDK-t, de a többi frissebb disztribúcióval is működnie kellene.

Első lépésként le kell töltenünk a következő fájlokat a Scratchbox oldalairól:
(Az írásban - amennyire lehetséges - ragaszkodom a megadott verziókhoz, hogy minél kevesebb váratlan probléma léphessen fel.)

scratchbox-core-1.0.7.tar.gz
scratchbox-devkit-debian-1.0.7.tar.gz -> scratchbox-devkit-debian-1.0.7.1-i386.tar.gz
scratchbox-devkit-cputransp-1.0.7.tar.gz -> cratchbox-devkit-cputransp-1.0.6-i386.tar.gz
scratchbox-libs-1.0.7.tar.gz
scratchbox-toolchain-cs2005q3.2-glibc-arm-1.0.5.tar.gz -> scratchbox-toolchain-cs2005q3.2-glibc-arm-1.0.5-i386.tar.gz
scratchbox-toolchain-cs2005q3.2-glibc-i386-1.0.5.tar.gz -> scratchbox-toolchain-cs2005q3.2-glibc-i386-1.0.5-i386.tar.gz

Ezek után az így letöltött fájlokat kitömörítjük a

/scratchbox

könyvtár alá:


root@janos_mobile:/home/janos/Desktop/n770&ipod/n770/scratchbox# for i in `ls .`; do \
> tar -xvzf $i -C / ; \
> done

Ezután a Scratchboxunk már majdnem készen áll, csak a következőket kell tennünk:


root@janos_mobile:/home/janos/Desktop/n770&ipod/n770/scratchbox# cd /scratchbox/
root@janos_mobile:/scratchbox# ./run_me_first.sh
Do you want to use sudo mode? [yes/no] (no): no
Give the name of the scratchbox group (sbox):
Stopping Scratchbox: umount, binfmt_misc.
Starting Scratchbox: binfmt_misc, mount.

Now you should add one or more users with /scratchbox/sbin/sbox_adduser
root@janos_mobile:/scratchbox# sbin/sbox_adduser janos yes
Scratchbox user account for user janos added
root@janos_mobile:/scratchbox#

Ezután jelentkezzünk ki, majd újra be, hogy a változtatások érvényre juthassanak, majd ezután bejelentkezhetünk a Scratchbox környezetbe.
Figyeljünk oda, hogy ezt már mezei felhasználóként tegyük!


janos@janos_mobile:~/Desktop/n770&ipod/n770/tmp$ /scratchbox/login

You dont have active target in scratchbox chroot.
Please create one by running "sb-menu" before continuing


Welcome to Scratchbox, the cross-compilation toolkit!

Use 'sb-menu' to change your compilation target.
See /scratchbox/doc/ for documentation.

sb-conf: No current target
[sbox-: ~] >

Mint láthatjuk, a leíráshoz képest nem itt találkozunk az első eléréssel, a leírás példáiban ezek után következesen az

sbox-config

paranccsal találkozunk, azonban a valós életben vagy a

sb-menu

vagy a

sb-conf

parancsokra támaszkodhatunk.
Ezután a leírás azt mondja nekünk, hogy hozzuk létre a

.bash_profile

fájlt:


[sbox-: ~] > cat > /home/janos/.bash_profile
export LANGUAGE=en_GB
export PAGER=less
sb-conf: No current target
[sbox-: ~] >

Ezek után a rootstrappal kell foglalkozzunk:
A rootstrap-ek itt elérhetők:
Maemo_Dev_Platform_v2.2_armel-rootstrap.tgz
Maemo_Dev_Platform_v2.2_i386-rootstrap.tgz

Majd ezután másoljuk őket a

/scratchbox/packages

könyvtárba:


root@janos_mobile:/home/janos/Desktop/n770&ipod/n770/maemo2.2# cp \
> Maemo_Dev_Platform_v2.2_* /scratchbox/packages/ -v
"Maemo_Dev_Platform_v2.2_armel-rootstrap.tgz" ->
    "/scratchbox/packages/Maemo_Dev_Platform_v2.2_armel-rootstrap.tgz"
"Maemo_Dev_Platform_v2.2_i386-rootstrap.tgz" ->
    "/scratchbox/packages/Maemo_Dev_Platform_v2.2_i386-rootstrap.tgz"
root@janos_mobile:/home/janos/Desktop/n770&ipod/n770/maemo2.2#

Ezután pedig létre kell hoznunk egy megfelelő targetet, majd kicsomagolni a rootstrap-et.
Ezt legegyszerűbben a ncurses GUI-t nyújtó

sb-menu

segédprogrammal tudjuk elvégezni

Hozzunk létre egy targetet.
Válasszuk az új target létrehozását.
Adjunk nevet a targetünknek.
Az i386-os fordítót válasszuk.
A debian devkitet válasszuk ki.
Majd mondjuk azt, hogy készek vagyunk.
Ezután válasszuk a none CPU emulációs módot.
Igen, akarunk rootstrap-et kicsomagolni
Fájlból szeretnénk...
Válasszuk a "Maemo_Dev_Platform_v2.2_i386-rootstrap.tgz"-t.
Több targetet egyelőre nem teszünk fel.
Most még nem választjuk ki az új targetünket.

Ha ezzel megvagyunk akkor váltsunk targetet!


[sbox-: ~] > sb-conf se MAEMO_X86
Megállítás

Shell restarting...
[sbox-MAEMO_X86: ~] >

Itt láthatjuk, hogy a target megváltozott.

Most pedig teszünk egy rövid kitérőt az beágyazott (egymásba ágyazott) X szerverek felé.
Szerencsénkre a rootstrappel együtt feltelepült egy remek program a Xephyr, ezt fogjuk a következőkben használni.
Először is az egyszerűség kedvéért hozzunk létre egy szkriptet, ami elindítja a Xephyrt, és tegyük futtathatóvá!


janos@janos_mobile:~/Desktop/n770&ipod/n770$ cat > xephyr.sh && chmod 0774 xephyr.sh
#!/bin/sh -e
prefix=/scratchbox/users/${LOGNAME}/targets/MAEMO_X86/usr
export LD_LIBRARY_PATH=${prefix}/lib; export LD_LIBRARY_PATH
exec ${prefix}/bin/Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac
janos@janos_mobile:~/Desktop/n770&ipod/n770$

Ezután futtassuk is az új szkriptünket:


janos@janos_mobile:~/Desktop/n770&ipod/n770$ ./xephyr.sh &
[1] 12843
janos@janos_mobile:~/Desktop/n770&ipod/n770$

Xephyr helyett természetesen használhatunk más célprogramot is, a célnak például az Xnest is tökéletesen megfelel.
Az Xnestre használatára vonatkozó vonatkozó utasítások itt találhatók.

A következő lépés ezután a leírás szerint az, hogy beállítjuk a

DISPLAY

környezeti változót és első alkalommal elindítjuk a Maemo grafikus felületét:


[sbox-MAEMO_X86: ~] > export DISPLAY=:2
[sbox-MAEMO_X86: ~] > af-sb-init.sh start

Ami ezután következik az egy rakás hibaüzenet, az ember meg hirtelen nem tudja mit kezdjen, mert erre az eshetőségre nem készült fel...

--
Ezek után pár kérdés felmerül az emberben:
- hol rontottam el, amikor a hivatalos leírást követtem?
- mit felejtettem ki?
- az én hibám?
- netán a Slackware miatt van?

Elszomorító, hogy nem működik. Szerintem ez nem Pat hibája... Azért meg nem fogok Debianra/*buntura váltani, hogy Maemozhassak...
Bár jó dolognak tűnik, de az ilyesmi kicsit kedvét szegi az ember kísérletezési kedvének.

--
Megjegyzés:
Amennyiben nem nyerte meg a tetszésünket a Maemo és a Scratchbox, akkor a következő módon szabadulhatunk meg tőle:


root@janos_mobile:~# /scratchbox/sbin/sbox_ctl stop
root@janos_mobile:~# rm -rv /sratchbox

Amennyiben nem így végezzük a törlést, abban az esetben akár kárt is tehetünk a rendszerünkben!