Maemo SDK telepítése Slackware Linux 12.0-ra

A HupWiki-ből...

Bevezető

A jövőben egy Nokia N770-es Internet Tablet - remélhetőleg boldog - tulajdonosa leszek, és mint érdeklődő, szeretnék pár egyszerűbb programot írni ezen készülékre, illetve már meglevő programokat lefordítani, és használni az eszközön. Egy ideje már Slackware Linuxot használok, megszerettem, mondhatni hozzám nőtt, ezért ezen írásban a Maemo SDK Slackware Linux 12.0-ra való telepítésével foglalkozom.

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, és lassabbak is az adott hardveren.) 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 hivatalos leírás előrebocsátja, hogy elsősorban Ubuntu-ra és Debian-ra 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.)

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 Scratchbox-unk 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övetkezetesen 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 rootstrap-pel kell foglalkozzunk:

A rootstrap-ek itt elérhetők:

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

Ha szeretnénk a készülékünkre fordítani binárisokat, akkor szükségünk lesz egy másik target létrehozására is. Ennek a létrehozása kicsit különbözik, a fent látottaktól. A lépések a következők:

Ezután lépjünk ki az sb-menu programból.

Ha ezzel megvagyunk akkor válasszuk ki a MAEMO_X86 targetünket!

[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 rootstrap-pel 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 Xephyr-t, é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 Xnest 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 

A grafikus felület ezután - néhány diagnosztikai üzenet mellett - elindul az Xephyr ablakában.

Ezután pedig kezdhetjük a szárnypróbálgatásunkat az N770-re való szoftverfejlesztés terén. Azonban ez már nem képezi ezen leírás tárgyát.

Jó munkát/szórakozást az érdeklődőknek!

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!

Készítette

  • Szigetvári János
Személyes eszközök