Working in progres... dernière version dispo sur le site de Titeuf
1 - Pre-requis
Pour pouvoir tater d'OpenEmbedded, vous devez avoir :
- un ordinateur sous GNU/Linux ou *BSD (qui utilise encore Windows de nos jours ?...)
- cvs
- python en version 2.2 au minimum, la version 2.3 est fortement conseillee
- eventuellement ccache (pour accelerer la compilation)
Prevoyez egalement 3,5 a 4 Go d'espace disque si comme moi, vous "oubliez" de faire les clean apres les compil...
2 - Recuperation de BitKeeper et de GCC-CROSS
Avant de commencer, il faut recuperer BitKeeper, l'outil qui permettra de telecharger l'arborescence OE BitKeeper se trouve en telechargement ici
Vous devez donner votre adresse e-mail. Vous recevrez alors un mail indiquant la marche a suivre Prenez garde a bien telecharger la version correspondant a votre systeme !
Il faut egalement recuperer une chaine de compilation vous permettant de compiler, sur votre ordinateur, des application pour notre PDA favori. Telechargez donc gcc-cross. A l'heure ou j'ecris cette page, la version courante est la 3.3.1
3 - Preparation de l'arboscence de travail et installation de GCC-Cross et BitKeeper
Personnellement, je travaille dans le repertoire /opt pour OpenEmbedded, mais chacun est libre de mettre tout ca ou il veut ! J'installe aussi bien GCC-Cross que BitKeeper a cet endroit, mais il est plus "standard" de les mettre dans /usr/local... Quoi qu'il en soit, c'est ma doc, donc je travail avec ma methode a moi !
Creez donc les repertoires suivants :
- /opt/zaurus s'il n'existe pas deja :)
- /opt/zaurus/gcc-arm
- /opt/zaurus/downloads
- /opt/zaurus/ipks
- /opt/zaurus/archives (je met ici les fichiers que je telecharge : bk, gcc, etc...)
Installez a present BitKeeper et GCC-Cross :
- Decompressez l'archive de GCC dans ce repertoire (tar xjf cross-3.3.1.tar.bz2 -C /opt/zaurus/gcc-arm)
- Creez un lien symbolique entre /opt/zaurus/gcc-arm/3.3 et /opt/zaurus/gcc (avec la commande ln -s)
- Creez un lien symbolique entre /opt/zaurus/gcc-arm et /usr/local/arm (avec la commande ln -s)
- Rendez executable le fichier telecharge pour BitKeeper et lancez-le (installation dans /opt/zaurus !)
4 - Installation de OpenEmbedded
Allez dans le repertoire /opt/zaurus (je pense que vous y etes deja en fait) et tapez les commandes suivantes :
bk clone http://openembedded.bkbits.net:8080/oe oe cd oe bk -r co -q cd .. bk clone http://openembedded.bkbits.net:8080/packages packages cd packages bk -r co -q cd ..
5 - Configuration de OpenEmbedded
Pour cela, il suffit de creer 2 fichiers :
/opt/zaurus/oe/conf/local.conf :
DL_DIR=/opt/zaurus/downloads DEPLOY_DIR_IPK=/opt/zaurus/ipks
/opt/zaurus/packages/conf/local.conf :
TARGET_ARCH=arm DL_DIR=/opt/zaurus/downloads DEPLOY_DIR_IPK=/opt/zaurus/ipks OEFILES=/opt/zaurus/packages/*/*.oe
6 - Configuration du reste de l'environnement
Creez le script executable /opt/zaurus/update.sh (il permettra par la suite de mettre a jour OE...)
#!/bin/bash cd oe bk -r co -q cd ../packages bk -r co -q cd ..
Creez le script /opt/zaurus/source.env
export RACINE="/opt/zaurus" export OEDIR="$RACINE/oe" export PATH="$RACINE/gcc/bin:$OEDIR/bin:$PATH"
Dans le repertoire /opt/zaurus/oe/bin, telechargez le fichier http:www.mn-logistik.de/unsupported/pxa250/patcher et rendez-le executable. C'est un outil de patch necessaire a la compilation de certains packages.
7 - Correction de certains "bugs" existants aujourd'hui (25/10/2003)
Copiez le fichier "patcher" dans /opt/zaurus/downloads (un bug ? empeche son telechargement par oebuild...)
Allez dans le repertoire /opt/zaurus/packages/base-files et copiez le fichier base-files_3.0.10.oe sous le nom base-files_3.0.11.oe Modifiez ce nouveau fichier (ligne SRC_URI :=...) afin de faire correspondre la version (3.0.10 -> 3.0.11). En effet, la version 3.0.10 n'est plus disponible au telechargement.
Creez le repertoire (mkdir -p) /opt/zaurus/packages/tmp/staging/share/aclocal-1.7 Creez un lien symbolique entre aclocal-1.7 et aclocal dans le meme repertoire (le lien n'est pas fait par oebuild :(
Creez le repertoire (mkdir -p) /opt/zaurus/packages/tmp/staging/share/automake-1.7 Creez un lien symbolique entre automake-1.7 et automake dans le meme repertoire (le lien n'est pas fait par oebuild :(
Creez un lien symbolique entre /opt/zaurus/packages/ipkg-utils/ipkg-utils_1.0_cvs.oe et ipkg-utils_1.0.oe En effet, ipkg-utils-native herite de ipkg-utils pour se construire et le "_cvs" n'est pas pris en compte par oebuild
Telechargez http:www.freedesktop.org/software/pkgconfig/releases/pkgconfig-0.15.0.tar.gz dans /opt/zaurus/downloads Il faudra que je prenne le temps de regarder pourquoi le telechargement ne se fait pas sur mon pc (je pense que c'est un problème de ftp passif, j'ai le problème pour d'autres fichiers également... il suffit de les télécharger à la main et tout rentre dans l'ordre)
8 - Avant de commencer a "jouer" avec OpenEmbedded
Il faut commencer par construre quelques outils de base pour pouvoir construire le reste... Voici "betement" la recette de cuisine a suivre :
cd /opt/zaurus source source.env cd oe oebuild oe.oe cd ../packages oebuild autoconf/autoconf-native_2.57.oe oebuild automake/automake-native_1.7.7.oe oebuild fakeroot/fakeroot-native_0.7.8.oe oebuild genext2fs/genext2fs-native_1.3.oe oebuild ipkg/ipkg-native_0.99.95.oe oebuild ipkg-utils/ipkg-utils-native_1.0_cvs.oe oebuild mtd/mtd-native.oe
A chaque fois que vous voudrez "jouer" avec OpenEmbedded, il faudra commencer par les commandes suivantes :
cd /opt/zaurus ./update.sh (si vous voulez mettre a jour votre arborescence) source source.env cd packages
Pour construire un package, la demarche est toujours la meme. Voici un exemple avec le package cvs :
- nettoyer les "builds" precedents : oebuild clean cvs/cvs_1.11.6.oe
- construire le package : INHERIT="package_ipk" oebuild cvs/cvs_1.11.6.oe
En cas de probleme (sisi, vous en aurez !) une aide tres utile se trouve dans les fichiers de log Ces fichiers se trouvent dans le repertoire de construction du package Pour l'exemple de cvs, les fichiers seront dans : /opt/zaurus/packages/tmp/base/cvs-1.11.6-r0/temp
9 - Enjoy !
Good Luck !