Difference between revisions of "Trash Fr:Paquets Buildroot"
m (→Ajouter un nouveau paquet / une nouvelle application dans Buildroot) |
m (Fr:Paquets Buildroot moved to Trash Fr:Paquets Buildroot) |
||
(14 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | + | Sur cette page vous apprendrez à ajouter un nouveau paquet ou une nouvelle application dans la distribution Buildroot d'armadeus | |
− | *1] Jeter un oeil sur la mailing list Buildroot afin de s'assurer que personne n'a déjà bossé dessus | + | == Travail préparatoire == |
+ | |||
+ | *1] Jeter un oeil sur la [http://buildroot.uclibc.org/lists.html mailing list Buildroot] afin de s'assurer que personne n'a déjà bossé dessus | ||
*2] Envoyer un email sur la mailing list Armadeus Sourceforge au cas où qqn bosserait dessus ou bien pourrais filer un coup de main | *2] Envoyer un email sur la mailing list Armadeus Sourceforge au cas où qqn bosserait dessus ou bien pourrais filer un coup de main | ||
* Vérifier que le paquet n'existe pas déjà ici: http://www.daimi.au.dk/~spider/gumstix/gumstix-buildroot/package/ | * Vérifier que le paquet n'existe pas déjà ici: http://www.daimi.au.dk/~spider/gumstix/gumstix-buildroot/package/ | ||
Line 13: | Line 15: | ||
*6] Modifier le fichier toto.mk | *6] Modifier le fichier toto.mk | ||
Ce Makefile contient plusieurs étapes avec à chaque fois une cible associée: | Ce Makefile contient plusieurs étapes avec à chaque fois une cible associée: | ||
− | * | + | * Téléchargement du soft |
− | * | + | * Décompression de l'archive |
− | * | + | * Patchage des sources si nécessaire |
− | * | + | * configuration des sources |
− | * | + | * compilation |
− | * | + | * installation dans le rootfs |
Ce makefile doit aussi contenir une cible ''toto-clean'' pour nettoyer les sources après une compile et une cible ''toto-dirclean'' afin de supprimer le répertoire toto définitivement de la compilation | Ce makefile doit aussi contenir une cible ''toto-clean'' pour nettoyer les sources après une compile et une cible ''toto-dirclean'' afin de supprimer le répertoire toto définitivement de la compilation | ||
− | + | == Tester la compilation du paquet == | |
+ | |||
+ | Essayer le travail: | ||
$ make -C buildroot/ toto | $ make -C buildroot/ toto | ||
− | + | ||
− | + | Si cela fonctionne, testez votre paquet sur une plate forme armadeus. Si tout s'est bien déroulé, allez au chapitre suivant et effectuez l'integration dans buildroot. | |
+ | Autrement il peut être nécessaire de faire des modifications des sources/makefile ou d'autres ... Si c'est le cas, commencez par créer un répertoire contenant l'original du paquet à modifier: | ||
+ | $ cd buildroot/build_arm | ||
+ | $ cp -Rf toto toto.org | ||
+ | |||
+ | Faites le portage nécessaire dans le répertoire ''toto'' pour obtenir le paquet qui va bien... Une fois ce dur labeur terminé il est probablement nécessaire de créer un ou plusieurs patches : | ||
+ | $ diff -rup toto.org/fichier toto/fichier > ../package/toto/toto.0.patch | ||
+ | |||
+ | Ce sont ces patches qui serons appliqués par le fichier toto.mk. Sauvez tout d'abord votre travail, puis refaites le test de bon fonctionnement. | ||
+ | $ mv toto toto.ok | ||
+ | $ cd ../.. | ||
+ | $ make -C buildroot/ toto | ||
+ | |||
+ | Si tout va bien, effacez les répertoires buildroot/build_arm/toto.org et buildroot/build_arm/toto.ok désormais inutiles. | ||
+ | |||
+ | == Intégration du paquet dans Buildroot== | ||
+ | |||
+ | |||
+ | Après avoir réussi à faire fonctionner son paquet/application, ajoutez une référence à package/toto/Config.in après avoir sauvé l'original dans buildroot/package/config.in : | ||
+ | $ cp buildroot/package/Config.in buildroot/package/Config.org | ||
+ | Faire les modifications dans Config.in et lancer la config buildroot | ||
$ make menuconfig | $ make menuconfig | ||
− | + | Choisir le paquet dans le menu "package", sauver la configuration et réessayer l'installation: | |
$ make toto-dirclean | $ make toto-dirclean | ||
+ | $ make | ||
+ | |||
+ | Une fois que tout cela fonctionne, il ne reste plus qu'à créer le patch de configuration de buildroot:(fichier buildroot/package/Config.in) avec la même méthode que précédement | ||
+ | |||
+ | $ diff -rup buildroot/package/Config.org buildroot/package/Config.in > patches/numero_buildroot_nompaquet.diff | ||
+ | |||
+ | '''IMPORTANT: Ne pas oublier de tester le patch avant de le replacer sur svn, eventuelement avec un second repertoire Armadeus''' | ||
+ | |||
+ | == Ajouter le nouveau paquet à la distribution == | ||
+ | |||
+ | Il faut donc rajouter tous les fichiers crées dans buildroot/package/toto sous SVN, ainsi que le patch de configuration de buildroot | ||
+ | |||
+ | $ svn add -N fichiers | ||
+ | $ svn commit -m [BUILDROOT PACKAGE] Adding an usefull toto package files --non-interactive | ||
+ | |||
+ | '''Validation apres commit pour eviter d éventuels conflits de patch:''' | ||
+ | $ touch patches/numero_buildroot_nompaquet.diff | ||
+ | $ svn update | ||
$ make | $ make | ||
+ | |||
+ | Eventuellement, testez une vue toute neuve ! ...... | ||
+ | |||
+ | {{LanguageBar|Buildroot_Packages|Paquets_Buildroot|Buildroot_Paketen}} |
Latest revision as of 20:22, 1 August 2010
Sur cette page vous apprendrez à ajouter un nouveau paquet ou une nouvelle application dans la distribution Buildroot d'armadeus
Contents
Travail préparatoire
- 1] Jeter un oeil sur la mailing list Buildroot afin de s'assurer que personne n'a déjà bossé dessus
- 2] Envoyer un email sur la mailing list Armadeus Sourceforge au cas où qqn bosserait dessus ou bien pourrais filer un coup de main
- Vérifier que le paquet n'existe pas déjà ici: http://www.daimi.au.dk/~spider/gumstix/gumstix-buildroot/package/
- et ici: http://downloads.openwrt.org/whiterussian/packages/ puis https://dev.openwrt.org/browser/branches/whiterussian/openwrt/package
- 3] Créer un répertoire dans buildroot/package/ Pour notre example nous installerons le paquet Toto
$ mkdir buildroot/package/toto
- 4] Dans ce répertoire créer un fichier Makefile "toto.mk" et un fichier de configuration "Config.in". Pour ces fichiers s'inspirer par exemple de ceux présent dans le package sdl/
- 5] Modifier le fichier Config.in afin qu'il corresponde à la description du package Toto:
- 6] Modifier le fichier toto.mk
Ce Makefile contient plusieurs étapes avec à chaque fois une cible associée:
- Téléchargement du soft
- Décompression de l'archive
- Patchage des sources si nécessaire
- configuration des sources
- compilation
- installation dans le rootfs
Ce makefile doit aussi contenir une cible toto-clean pour nettoyer les sources après une compile et une cible toto-dirclean afin de supprimer le répertoire toto définitivement de la compilation
Tester la compilation du paquet
Essayer le travail:
$ make -C buildroot/ toto
Si cela fonctionne, testez votre paquet sur une plate forme armadeus. Si tout s'est bien déroulé, allez au chapitre suivant et effectuez l'integration dans buildroot. Autrement il peut être nécessaire de faire des modifications des sources/makefile ou d'autres ... Si c'est le cas, commencez par créer un répertoire contenant l'original du paquet à modifier:
$ cd buildroot/build_arm $ cp -Rf toto toto.org
Faites le portage nécessaire dans le répertoire toto pour obtenir le paquet qui va bien... Une fois ce dur labeur terminé il est probablement nécessaire de créer un ou plusieurs patches :
$ diff -rup toto.org/fichier toto/fichier > ../package/toto/toto.0.patch
Ce sont ces patches qui serons appliqués par le fichier toto.mk. Sauvez tout d'abord votre travail, puis refaites le test de bon fonctionnement.
$ mv toto toto.ok $ cd ../.. $ make -C buildroot/ toto
Si tout va bien, effacez les répertoires buildroot/build_arm/toto.org et buildroot/build_arm/toto.ok désormais inutiles.
Intégration du paquet dans Buildroot
Après avoir réussi à faire fonctionner son paquet/application, ajoutez une référence à package/toto/Config.in après avoir sauvé l'original dans buildroot/package/config.in :
$ cp buildroot/package/Config.in buildroot/package/Config.org
Faire les modifications dans Config.in et lancer la config buildroot
$ make menuconfig
Choisir le paquet dans le menu "package", sauver la configuration et réessayer l'installation:
$ make toto-dirclean $ make
Une fois que tout cela fonctionne, il ne reste plus qu'à créer le patch de configuration de buildroot:(fichier buildroot/package/Config.in) avec la même méthode que précédement
$ diff -rup buildroot/package/Config.org buildroot/package/Config.in > patches/numero_buildroot_nompaquet.diff
IMPORTANT: Ne pas oublier de tester le patch avant de le replacer sur svn, eventuelement avec un second repertoire Armadeus
Ajouter le nouveau paquet à la distribution
Il faut donc rajouter tous les fichiers crées dans buildroot/package/toto sous SVN, ainsi que le patch de configuration de buildroot
$ svn add -N fichiers $ svn commit -m [BUILDROOT PACKAGE] Adding an usefull toto package files --non-interactive
Validation apres commit pour eviter d éventuels conflits de patch:
$ touch patches/numero_buildroot_nompaquet.diff $ svn update $ make
Eventuellement, testez une vue toute neuve ! ......
Other languages: | |
---|---|