HOWTOFR

Ou comment convertir les paquetages ipk pour Zaurus (les zaurus, pour ceux qui ne le sauraient pas, sont des assistants personnels de poche fonctionnant sous le même système d'exploitation que le PMA400) en paquetages ipk pour le PMA400.

Si vous avez un problème, contactez moi : yannickd@gmail.com

J'espère n'avoir fait aucune erreur dedans, et comme d'hab, je décline toute responsabilité de tout dommage effectué à votre PMA ou à votre ordi en suivant les instructions de ce howto.


Ce fichier contient:

  1. Pré requis : Avoir Linux

  2. LE PMA400 : Pourquoi les paquetages Zaurus ne fonctionnent pas directement sur le PMA.

  3. Maintenant qu'on comprend un peu mieux comment ça marche, comment on peut adapter les paquetages Zaurus pour le PMA?

  4. Quelques Exemples.

      1. justreader

      2. ogg123

  1. Notes aux débutants.



I ) PREREQUIS : Avoir Linux.


Je ne pense pas qu'il soit possible de faire comme je le dis ici sous Windows, ou alors c'est beaucoup plus difficile. De toute façon pour développer pour le PMA, va falloir passer par Linux, c'est quasiment obligatoire.


Bon pour ceux qui n'auraient jamais entendu parler de Linux c'est un Système d'Exploitation (comme Windows) sauf qu'il est libre (n'importe qui peut le modifier et l'améliorer) et gratuit.


L'installation de Linux sur ordinateur demande de créer diverses partitions sur le disque dur de l'ordinateur, c'est assez stressant de faire ça, surtout pour un débutant. Donc pour le moment on va se contenter d'un Live-CD de Linux.


Alors un Live-CD de Linux va vous permettre de lancer Linux sur votre ordinateur sans aucune installation, ni trace de laissée sur la machine. C'est parfaitement sans risque. Par contre comme tout se lance directement du CD, c'est relativement lent, mais il faudra faire avec.

Comme Live-CD, je peux conseiller Knoppix :

ftp://ftp.free.fr/pub/Distributions_Linux/knoppix/KNOPPIX_V3.7-2004-12-08-EN.iso

ou encore (ma préférée) SimplyMEPIS :

ftp://ftp.nluug.nl/pub/metalab/distributions/mepis/released/SimplyMEPIS-2004.06.iso


Il vous suffit de télécharger l'un des deux fichiers et de graver un CD (note pour ceux qui sont vraiment pas habitués mais volontaires : éviter de gâcher des CD, faites en sorte de dire à votre logiciel de gravure de « Graver une image CD » puis de sélectionner le fichier iso. Gravez pas le fichier iso directement sur le CD).


Sinon allez chez votre libraire et regardez les magazines Linux, et s'il y a un « live-cd » fourni avec l'un d'eux, allez-y.


Dans tout le howto, je vais vous guider à l'aide de la ligne de commande (parce que c'est ce qui est universel dans toutes les distros). Pour ceux qui ne sont pas familiers avec linux, pour lancer un terminal qui marche à coup sûr : appuyez sur ALT-F2 puis tapez xterm dans l'invite, puis validez. Une ligne de commande apparaît.


Il va falloir vous habituer à Linux avant de pouvoir faire tout ce qui est dit dans le tutoriel. Je vais quand même résumer la commande essentielle que j'utiliserai et que vous utiliserez :

cd : il s'agit de la commande pour changer de répertoire. cd /home/yannick m'emmène moi par exemple dans mon répertoire personnel. Si votre login Linux est cypher par exemple, cd /home/cypher vous emmènera dans votre répertoire personnel. Un petit conseil aux débutants : expérimentez la touche tab quand vous tapez une commande dans un terminal, elle aide énormément. Et n'oubliez pas que Linux est sensible aux majuscules, donc quand vous tapez une commande, faîtes gaffe aux majuscules.

Si vous êtes complètement débutant, ne soyez pas effrayé par la ligne de commandes, vous n'avez qu'à suivre les instructions. Si vous avez du mal avec une commande tapez dans un terminal :


nomdecommande –help


ou bien :

man nomdecommande


Sinon vous devriez tout pouvoir faire avec l'interface graphique (par défaut il s'agit de KDE).


Un bon guide en français se trouve là : http://www.delafond.org/survielinux/


Là vous pourrez trouver toutes les réponses à vos questions si vous avez du mal.


Bon une fois que vous maîtrisez un minimum Linux et l'interface graphique que vous avez choisie (KDE ou Gnome) allez-y, faites vous plaisir, passez à la suite.


  1. LE PMA400 : Pourquoi les paquetages Zaurus ne fonctionnent pas directement sur le PMA.


Pour faire court, c'est parce que le PMA400 a son OS sur le disque dur. Il en charge une partie en mémoire vive (22Mo) à chaque redémarrage (c'est la barre de progression que vous voyez en bas de l'écran lorsque vous rebootez violemment l'appareil). Le problème c'est que cette partie, c'est le système de fichiers en son entier. C'est à dire en gros l'architecture Linux, qui organise tout le système Linux. Et qu'elle est sur le PMA complètement interdite en écriture ! on ne peut donc pas la modifier.


Alors que sur un Linux de bureau ou sur un Zaurus, il n'y a pas de problème, on peut la modifier. D'ailleurs de nombreux programmes Zaurus ne se gênent pas pour le faire. Or sur le PMA400, bah il ne réussissent pas. Ou ils le font mal. Donc rien ne marche au final. D'où nécessité non pas de modifier le code des programmes (la façon dont ils fonctionnent) mais de modifier la façon dont le paquetage d'installation (dont l'extension est ipk) installe le programmes.

On va voir comment faire ça très bientôt.


Pour le moment on va parler d'une autre caractéristique du PMA400 au niveau du système de fichier. Alors toute l'architecture du Système est bloquée en écriture... sauf le répertoire /media car ce répertoire est en réalité là où se trouve le disque dur du PMA (lorsque vous lancez l'explorateur de Archos, il se lance automatiquement dans le dossier /media, même si c'est complètement transparent pour l'utilisateur).


Un autre répertoire, et c'est celui qui nous intéressera le plus, qui n'est pas bloqué en écriture, c'est le répertoire /progfs. C'est là que s'installeront automatiquement tous les programmes du PMA. En fait pour eux, /progfs ressemble à l'architecture Linux.

Donc si un programme Zaurus avait décidé d'installer ses fichiers exécutables dans /usr/bin, il les installera en vérité dans /progfs/usr/bin. Donc forcément après installation, le logiciel il est perdu, il essaye désespérément de trouver le fichier exécutable dans /usr/bin, mais il ne le trouve pas. Donc ça déconne.


Alors pour mieux comprendre, il faut voir comment Linux s'organise : Linux a (tout comme Windows) ce qu'on appelle des variables d'environnement, qui lui indiquent notamment où se trouvent les données exécutables, et les librairies (dont ont besoin les données exécutables).

Dans le cas du PMA, les données exécutables seront recherchées entre autres dans/opt/QtPalmtop/bin. Quand aux librairies elles sont recherchées entre autres dans/opt/QtPalmtop/lib. Donc logiquement, si le programme installe ses exécutables dans/opt/QtPalmtop/bin et ses librairies dans/opt/QtPalmtop/lib, bah Linux saura les trouver et tout fonctionnera!

Mais on pourrait se dire que ça ne sert à rien, puisque j'ai dit que à part /media et /progfs rien n'était autorisé en écriture. A fortiori /opt est interdit en écriture également. Or il se trouve que le dossier du PMA/opt/QtPalmtop est la copie exacte mise à jour automatiquement de/progfs/opt/QtPalmtop (qui lui n'est pas interdit en écriture!)


Donc si les programmes s'installent dans/progfs/opt/QtPalmtop, alors les exécutables et les librairies vont être immédiatement reflétés dans/opt/QtPalmtop, qui est reconnu par les variables d'environnement et donc Linux va pouvoir trouver les programmes, et tout fonctionnera joyeusement, et nos petits programmes vivront heureux et auront beaucoup d'enfants.

  1. Maintenant qu'on comprend un peu mieux comment ça marche, comment on peut adapter les paquetages Zaurus pour le PMA?


Bon alors, tout d'abord, téléchargez le fichier ipkg-build.sh de mon site dans votre répertoire personnel. Si vous êtes un gros cyborg ou vous êtes un débutant qui se sent le vent en poupe, vous pouvez faire ça avec les commandes :


cd ~

wget http://elelome.files5.free.fr/Applicationsmodif/ipkg-build.sh


Ensuite dans un terminal :


su

(un mot de passe vous est demandé, c'est le mot de passe root, le super-utilisateur de la machine).

cp ~/ipkg-build.sh /usr/bin

chmod 755 /usr/bin/ipkg-build.sh

exit


Bien, vous avez maintenant l'immense pouvoir de construire des paquetages installables sur votre PMA400 (c'est grisant, n'est-ce pas? ;) )


Je vais maintenant expliquer la procédure générale d'adaptation d'un paquetage.

D'abord, dans votre répertoire personnel, créez un répertoire que vous appellerez Test :


mkdir ~/Test


Puis dans ce répertoire vous créerez les répertoires CONTROL, /opt/QtPalmtop/bin, /opt/QtPalmtop/lib, /opt/QtPalmtop/apps/Applications, /opt/QtPalmtop/apps/Games, /opt/QtPalmtop/apps/Settings /opt/QtPalmtop/pics :


mkdir -p ~/Test/opt/QtPalmtop/bin

mkdir ~/Test/opt/QtPalmtop/lib

mkdir -p ~/Test/opt/QtPalmtop/apps/Applications/

mkdir ~/Test/opt/QtPalmtop/apps/Games

mkdir ~/Test/opt/QtPalmtop/apps/Settings

mkdir ~/Test/opt/QtPalmtop/pics

mkdir ~/Test/CONTROL


Ensuite téléchargez le paquetage que vous souhaitez adapter dans votre répertoire personnel.

puis tapez :


cd ~

tar xvfz nomdupaquetage.ipk


Pensez à utiliser la touche TAB dans le terminal, ça rend les choses plus faciles! (c'est l'auto-complétion des commandes).

Si à ce niveau là vous obtenez une erreur, c'est pas la peine, nous ne réussirez pas à convertir le paquetage.

Si ça marche vous obtenez des nouveaux fichiers dans votre répertoire personnel, dont : control.tar.gz et data.tar.gz

décompressez les dans votre répertoire personnel :


tar xvfz control.tar.gz

tar xvfz data.tar.gz


Différents nouveaux répertoires apparaissent dans votre répertoire personnel (ils proviennent de data.tar.gz), ainsi qu'un fichier nommé control (qui provient de control.tar.gz). Éditez le fichier control (vous pouvez le faire en interface graphique sans trop de problèmes). Changez la ligne Architecture: arm en Architecture: pma400

ensuite, copiez le fichier control ainsi modifié dans le répertoire Test/CONTROL que vous avez créé :


cp ~/control ~/Test/CONTROL


Puis inspectez tous les répertoires qui ont été crées par la décompression de data.tar.gz. Dans ces répertoires vous trouverez vraisemblablement des fichiers exécutables (sans extension), généralement dans un répertoire nommé bin et des librairies (avec une extension so), vraisemblablement dans un répertoire nommé lib.

Copiez tout les exécutables dans ~/Test/opt/QtPalmtop/bin et toutes les librairies dans ~/Test/opt/QtPalmtop/lib. Copiez les images dans ~/Test/opt/QtPalmtop/pics. Si certaines images étaient dans un dossier séparé nommé nomdudossier, créez ce dossier dans ~/Test/opt/QtPalmtop/pics et copiez les images concernées dedans. S'il y a un fichier se terminant par l'extension desktop copiez le dans un des répertoires présents dans ~/Test/opt/QtPalmtop/apps (suivant que vous voulez que l'icône de lancement se trouve dans l'onglet Applications, dans l'onglet Games, ou dans l'onglet System).

Parfois ce fichier desktop pose des problèmes. Plus dans les exemples à suivre (justreader).


Une fois que tout ceci est fait, tapez dans un terminal :


cd ~

ipkg-build.sh Test


Un fichier nomdupaquet_pma400.ipk apparaît alors dans votre répertoire personnel. Il suffit de le transférer sur le PMA400 et de l'installer dessus.

Voila!


  1. Quelques Exemples.


Pré requis : avoir lu ce qu'il y a avant et avoir créé les dossiers ~Test/opt/QtPalmtop/etcaetera dans votre répertoire personnel.


1) justreader.

On va commencer par quelque chose de simple.

Récupérez le logiciel justreader dans votre répertoire personnel :


cd ~

wget http://ovh.dl.sourceforge.net/sourceforge/justreader/justreader_2.0k_arm.ipk


Puis décompressez le paquetage comme dit auparavant :


tar xvfz justreader_2.0k_arm.ipk

tar xvfz control.tar.gz

tar xvfz data.tar.gz


Vous remarquez que dans votre répertoire personnel se trouve désormais un fichier control, que vous allez modifier comme dit auparavant, afin de remplacer Architecture: arm en Architecture: pma400 . Ensuite, copiez le fichier control ainsi modifié dans ~/Test/CONTROL :


cp ~/control ~/Test/CONTROL


Dans votre répertoire personnel se trouve maintenant également un dossier /opt

Et ce dossier a l'air super bien fait : on trouve à l'intérieur tout les répertoires qu'il faut, les binaires sont bien placés, les librairies aussi, les images également, c'est magnifique. On n'a donc pas besoin de modifier tout ça, on va supprimer le dossier ~/Test/opt qu'on avait créé et copier à la place le dossier ~/opt qui a été créé par la décompression du paquetage just reader :


rm -r ~/Test/opt

cp -r ~/opt ~/Test


Ensuite on lance :


ipkg-build.sh Test


On copie le fichier qui en résulte sur le PMA, on installe, on clique sur l'icône de justreader.... et ça ne marche pas !

Par contre si on tape dans un terminal du PMA :


justreader


L'application se lance.


Alors le problème est donc avec l'icône et la façon dont elle fonctionne. Ce mode de fonctionnement est décrit en détail dans le fichier .desktop de justreader, qui se trouve désormais dans votre ~/Test/opt/QtPalmtop/apps/Applications et se nomme justreader.desktop

Modifiez-le. Vous remarquez que la dernière ligne fait référence à une résolution de 640x480, ce qui n'est pas le cas du PMA; En fait cette ligne est complètement inutile. Supprimez-la, ou mieux, commentez-la (c'est à dire rajoutez le caractère # au début de la ligne) puis enregistrez les modifications.

Nous pouvons désormais réempaqueter notre logiciel, sans oublier de supprimer notre paquetage qui n'a fonctionné qu'à moitié :


rm ~/justreader_2.0k_pma400.ipk

cd ~

ipkg-build.sh Test


Voila, nous obtenons désormais un fichier ipk qui fonctionnera parfaitement sur le PMA. Félicitations ;)


      1. ogg123 et ogglibs.

Le célèbre lecteur de fichiers audio Ogg Vorbis pour la plate-forme Zaurus. Si vous avez suivi les instructions pour l'exemple de justreader, faites en sorte que vous ayez un dossier Test bien propre. Le plus simple pour faire ça est de faire :


rm -r ~/Test


puis de recréer le répertoire Test et ses sous-répertoires comme indiqué précédemment :


mkdir -p ~/Test/opt/QtPalmtop/bin

mkdir ~/Test/opt/QtPalmtop/lib

mkdir -p ~/Test/opt/QtPalmtop/apps/Applications/

mkdir ~/Test/opt/QtPalmtop/apps/Games

mkdir ~/Test/opt/QtPalmtop/apps/Settings

mkdir ~/Test/opt/QtPalmtop/pics

mkdir ~/Test/CONTROL

Il faut également supprimer tous les machins créés par justreader dans votre répertoire personnel :


rm -r ~/opt

rm control

rm control.tar.gz

rm data.tar.gz


Bien. Maintenant nous sommes prêts. Commençons. Tout d'abord il faut comme auparavant télécharger les fichiers requis :


cd ~

wget http://ipaq.vmlinuz.org/ogg/ogg123_1.0rc3_arm.ipk

wget http://ipaq.vmlinuz.org/ogg/ogglibs_1.0rc3_arm.ipk


Ensuite décompressez ogg123 :


tar xvfz ogg123_1.0rc3_arm.ipk

tar xvfz control.tar.gz

tar xvfz data.tar.gz


Vous en avez l'habitude maintenant, modifiez le fichier control qui est apparu, sauvergardez-le, et placez-le dans ~/Test/CONTROL

Ensuite vous remarquez que data.tar.gz, une fois décompressé, a créé un dossier /usr/bin dans lequel se trouve l'exécutable de ogg123... ça, pour les raisons évoquées plus haut, ça ne peut pas fonctionner sur le PMA400. On va donc copier l'exécutable ogg123 dans le répertoire bin adapté :


cp ~/usr/bin/ogg123 ~/Test/opt/QtPalmtop/bin


voila c'est bon le paquetage est prêt maintenant.

donc allez-y faites-vous plaisir, construisez-le :


ipkg-build.sh Test


Et voila, le paquetage est créé! Normalement, son petit nom est ogg123_1.0rc3_pma400.ipk


Seulement, ogg123 a besoin des libs du paquetage ogglibs pour fonctionner. Il faut donc également adapter ce paquetage afin que ogg123 puisse fonctionner.

Alors comme nous l'avons fait au début de ce paragraphe, il nous faut nettoyer tout ce qu'on a fait. Pour cela on fait, comme d'habitude :


rm -r ~/usr

rm control

rm control.tar.gz

rm data.tar.gz

rm -r ~/Test

mkdir -p ~/Test/opt/QtPalmtop/bin

mkdir ~/Test/opt/QtPalmtop/lib

mkdir -p ~/Test/opt/QtPalmtop/apps/Applications/

mkdir ~/Test/opt/QtPalmtop/apps/Games

mkdir ~/Test/opt/QtPalmtop/apps/Settings

mkdir ~/Test/opt/QtPalmtop/pics

mkdir ~/Test/CONTROL


Puis on prend les mêmes, et on recommence :


cd ~

tar xvfz ogglibs_1.0rc3_arm.ipk

tar xvfz control.tar.gz

tar xvfz data.tar.gz


Allez, je vous laisse faire cette fois, faites ce qu'il y a à faire avec le fichier control.

Ensuite vous remarquez que toutes les librairies du paquetage sont dans ~/usr/lib

il faut donc copier tout cela dans le dossier des librairies adapté :


cp -r ~/usr/lib/* ~/Test/opt/QtPalmtop/lib


Voila, tout est fait.

Il ne vous reste plus qu'à construire le paquet :


ipkg-build.sh Test


Un fichier ogglibs_1.0rc3_pma400.ipk est créé.

Maintenant copiez les deux fichiers (ogglibs_1.0rc3_pma400.ipk et ogg123_1.0rc3_pma400.ipk vers le PMA400 et installez-les.


Et est-ce que ça marche?

bah nan! Il manque encore curl et libcurl. On les récupère :


cd ~

wget http://ipaq.vmlinuz.org/ogg/curl_7.9.6_arm.ipk

wget http://ipaq.vmlinuz.org/ogg/libcurl_7.9.6_arm.ipk


Alors curl et libcurl ont exactement le même principe de fonctionnement que ogg123 et ogglibs. Répéter exactement les mêmes commandes qu'auparavant fonctionnera. Vous pouvez donc essayer de convertir par vous-même curl et libcurl jusqu'à faire fonctionner ogg123


Voila!


  1. Notes aux débutants à Linux.


Quand je dis de copier les fichiers adaptés au PMA sur le PMA, ce n'est pas si évident que ça sous Linux. Sur certaines distributions de Linux, il n'y aura aucun problème.

Si cependant vous ne savez pas comment copier correctement les logiciels sur le PMA quand vous êtes sous Linux, faites ceci :


su

votre mot de passe root est demandé

mkdir /mnt/sda1


Et à chaque fois que vous voudrez copier des fichiers sur le PMA, branchez le PMA. Attendez quelques instants, puis tapez :


su

votre mot de passe root est demandé

mount -o rw /dev/sda1 /mnt/sda1


Le PMA est alors accessible dans /mnt/sda1 copiez les fichiers nécessaires dessus. Par exemple:


cd ~

cp ogg123_1.0rc3_pma400.ipk /mnt/sda1


puis faites :


umount /dev/sda1


Cette dernière commande est indispensable. Vous pouvez ensuite débrancher votre PMA400 en toute sécurité.

Ceci n'est pas la méthode la plus simple, loin de là, mais elle a l'avantage de fonctionner sur toutes les distributions Linux et indépendamment de l'environnement graphique utilisé.


Sinon vous vous demandez (ou avez deviné) peut être ce qu'était le signe ~ que j'utilise dans de nombreuses commandes, il s'agit d'un raccourci présent dans Linux qui vous emmène à votre répertoire personnel. C'est extrêmement pratique.