<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.openmoko.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=Pierrebrua&amp;feedformat=atom</id>
		<title>Openmoko - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=Pierrebrua&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Special:Contributions/Pierrebrua"/>
		<updated>2013-05-23T22:24:56Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.6</generator>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Booting_from_SD/fr</id>
		<title>Booting from SD/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Booting_from_SD/fr"/>
				<updated>2008-11-05T18:41:55Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Partitionnement de la carte SD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Démarrage à partir d'une carte SDHC / problème de mise en veille ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord un avertissement : Un bogue très ancien ayant pour origine probable le noyau Linux détruit la table des partitions des cartes SD de capacité élevée. Voir le bogue [https://docs.openmoko.org/trac/ticket/1802 #1802] et le [http://thread.gmane.org/gmane.comp.handhelds.openmoko.community/19154/focus=19281| fil de discussion] pour une explication détaillée sur la gestion des cartes SD de haute capacité. Une bonne précaution est de conserver une version papier de la table des partitions au cas où elle devrait être recréée.&lt;br /&gt;
&lt;br /&gt;
== Comment ça marche ==&lt;br /&gt;
&lt;br /&gt;
Sur le FR, [[u-boot]] fournit un mécanisme équivalent à celui de 'grub' sur un PC. U-boot charge l'image du noyau en mémoire et le déclenche avec une liste de paramètres noyau. Ces paramètres indiquent entre autres choses le périphérique sur lequel le système de fichiers racine se trouve.&lt;br /&gt;
&lt;br /&gt;
Lorsque le noyau démarre, il prépare le matériel et met en place le système de fichiers racine. Le noyau déclenche alors &amp;quot;/sbin/init&amp;quot;, qui s'occupe du reste de la séquence de démarrage (avec l'affichage de l'image de démarrage et la barre de progression).&lt;br /&gt;
&lt;br /&gt;
Ceci fonctionne de manière identique que l'on démarre à partir de la mémoire Flash interne ou de la carte SD. La différence réside dans la manière dont le noyau est chargé et quel périphérique est utilisé comme système racine.&lt;br /&gt;
&lt;br /&gt;
Les sections suivantes fournissent des détails complémentaires.&lt;br /&gt;
&lt;br /&gt;
=== Choix du menu ===&lt;br /&gt;
&lt;br /&gt;
Les choix du menu U-boot sont définis par les variables d'environnment nommées &amp;quot;menu_X&amp;quot; (avec X un nombre). La valeur de la variable d'environnement est une chaîne &amp;quot;&amp;lt;nom&amp;gt;:&amp;lt;commande&amp;gt;&amp;quot;, où &amp;lt;nom&amp;gt; est le texte montré sur l'écran et &amp;lt;commande&amp;gt; est une séquence de commandes u-boot (séparées par le caractère ';') exécutées lorsque le choix du menu est sélectionné. Lorsqu'on entre une chaîne de commandes, les caractères ';' et '$' doivent être protégés par un antislash : &amp;quot;\;&amp;quot; et &amp;quot;\$&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Chargement du noyau ===&lt;br /&gt;
&lt;br /&gt;
Deux commandes u-boot sont nécessaires pour le chargement du noyau à partir d'une carte SD. La première est &amp;quot;mmcinit&amp;quot; qui permettra à u-boot de détecter la carte. La seconde est la commande de chargement d'un fichier en mémoire, soit &amp;quot;fatload&amp;quot; soit &amp;quot;ext2load&amp;quot; en fonction du type de système de fichiers sur lequel se trouve le noyau.&lt;br /&gt;
&lt;br /&gt;
La syntaxe de la commande est la suivante :&lt;br /&gt;
&lt;br /&gt;
fatload mmc 1:&amp;amp;lt;p&amp;amp;gt; 0x32000000 &amp;amp;lt;filepath&amp;amp;gt;&lt;br /&gt;
ext2load mmc 1:&amp;amp;lt;p&amp;amp;gt; 0x32000000 &amp;amp;lt;filepath&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
où &amp;amp;lt;p&amp;amp;gt; est le numéro de partition, et &amp;amp;lt;filepath&amp;amp;gt; est le chemin vers le fichier qui doit être chargé.&lt;br /&gt;
&lt;br /&gt;
{{Note| La commande &amp;quot;ext2load&amp;quot; ne fonctionne pas avec les version de u-boot antérieures à la &amp;quot;20080723&amp;quot;, y compris celle fournie avec les premiers lots de FreeRunners. Ces vieux u-boot sont touchés par le bug [http://docs.openmoko.org/trac/ticket/799 #799]. Si vous mettez à jour votre U-Boot et votre noyau vous pouvez utilisez directement ext2 / 3 boot avec une seule partition pour tout.}}&lt;br /&gt;
&lt;br /&gt;
{{Warning | Soyez prudent en mettant à jour u-boot sur un Neo1973 sachant qu'il existe un risque de plantage (sauf avec un debug board). Ce n'est pas un problème avec le FreeRunner puisqu'il dispose d'une copie protégée de u-boot dans sa mémoire flash NOR. }}&lt;br /&gt;
&lt;br /&gt;
{{Note| U-Boot gère le protocole SDHC uniquement sur le FreeRunner : sur le Neo1973, u-boot est incapable d'accéder aux cartes SDHC (4G ou plus). Le noyau dispose du support SDHC avec le Neo1973, il est possible de placer le système racine sur la SDHC et le noyau sur la mémoire flash NAND pour contourner ce défaut. }}&lt;br /&gt;
&lt;br /&gt;
=== Paramètres associés au système de fichier racine ===&lt;br /&gt;
&lt;br /&gt;
Le contenu de la variable d'environnement &amp;quot;bootargs&amp;quot; est envoyé au noyau. Bootargs est constitué de définitions &amp;quot;nom=valeur&amp;quot; séparées par des espaces. Les définitions associées au processus de démarrage sur carte SD sont &amp;quot;root&amp;quot;, &amp;quot;rootfstype&amp;quot; et &amp;quot;rootdelay&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Par exemple, les paramètres suivants indiqueraient au noyau de monter la troisième partition de la carte SD en tant que système de fichiers ext3 :&lt;br /&gt;
&lt;br /&gt;
root=/dev/mmcblk0p3 rootfstype=ext3 rootdelay=5&lt;br /&gt;
&lt;br /&gt;
Le paramètre &amp;quot;rootdelay&amp;quot; génère un temps d'attente du noyau le temps que la carte SD soit prête.&lt;br /&gt;
&lt;br /&gt;
Le noyau doit intégrer en statique (pas en module donc) la gestion des systèmes de fichiers indiqués au paramètre &amp;quot;rootfstype&amp;quot;. Les configuration du noyau Openmoko par défaut intègrent le support de ext2 et ext3. Vous pouvez vérifier les systèmes de fichiers disponibles avec la commande Linux :&lt;br /&gt;
&lt;br /&gt;
less /proc/filesystems&lt;br /&gt;
&lt;br /&gt;
Il n'est pas possible d'utiliser FAT comme système de fichiers racine.&lt;br /&gt;
&lt;br /&gt;
==== ext2 comparé à ext3 ====&lt;br /&gt;
&lt;br /&gt;
Les opinions varient sur le meilleur système de fichiers à utiliser pour le système de fichiers racine. Ext3 est généralement considéré comme étant meilleur parce que c'est un système de fichiers journalisé qui ne nécessite pas une longue commande 'fsck' après un arrêt non planifié. Ceci dit, utilisé sur une carte qui n'intègre pas de gestion d'usure des blocs ext3 peut provoquer une usure prématurée des blocs sur lesquels se trouve le fichier journal. Les cartes SD sont censées intégrer un système de gestion d'usure, mais ce n'est pas garanti pour toutes les marques.&lt;br /&gt;
&lt;br /&gt;
== Récupération d'un fichier racine (rootfs) compressé ==&lt;br /&gt;
&lt;br /&gt;
Deux possibilités existent pour récupérer un fichier image rootfs en archive tar. Vous pouvez en créer un en utilisant la distribution OpenEmbedded ou en télécharger un directement depuis le serveur de création d'images openmoko.&lt;br /&gt;
&lt;br /&gt;
=== Choix 1 : Télécharger les fichiers tar rootfs/kernel du serveur Openmoko ===&lt;br /&gt;
Choissisez la combinaison rootfs/kernel que vous désirez installer sur la page des [http://wiki.openmoko.org/wiki/Latest_Images Dernières Images Générées].&lt;br /&gt;
&lt;br /&gt;
=== Choix 2 : Créer un fichier tar en utilisant OpenEmbedded ===&lt;br /&gt;
&lt;br /&gt;
Une autre possibilité pour obtenir une archive tar de votre rootfs est de la construire vous-même avec l'environnement OpenEmbedded.&lt;br /&gt;
&lt;br /&gt;
Pour construire OM-2007.2 vous devez ajouter &amp;quot;tar&amp;quot; aux types d'images dans votre fichier ''local.conf'' :&lt;br /&gt;
&lt;br /&gt;
IMAGE_FSTYPES = &amp;quot;jffs2 tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela vous pouvez construire une nouvelle image avec la commande :&lt;br /&gt;
&lt;br /&gt;
bitbake openmoko-devel-image&lt;br /&gt;
&lt;br /&gt;
Ou si vous utilisez le MokoMakefile :&lt;br /&gt;
&lt;br /&gt;
make openmoko-devel-image&lt;br /&gt;
&lt;br /&gt;
Une fois que la commande aura été exécutée vous disposerez d'une fichier ''Openmoko-....tar'' dans le répertoire deploy qui correspondra à votre nouvelle archive rootfs.&lt;br /&gt;
&lt;br /&gt;
=== Choix 3 : Convertissez une image jffs2 en fichier tar ===&lt;br /&gt;
&lt;br /&gt;
Consultez la page [[Userspace root image]] pour de plus amples informations sur la manière d'accéder au contenu d'une image jffs2.&lt;br /&gt;
&lt;br /&gt;
== Préparation de la carte SD ==&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement de la carte SD ===&lt;br /&gt;
&lt;br /&gt;
u-boot pre-2008-07-23 peut uniquement démarrer de système de fichiers FAT; si vous mettez à jour u-boot, vous pourrez démarrer de systèmes FAT ou ext2.&lt;br /&gt;
Cet exemple montre comment créer une partition type en utilisant l'outil système fdisk. N'importe quel autre gestionnaire de partitions fonctionnerait aussi.&lt;br /&gt;
&lt;br /&gt;
fdisk /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
{{Note| Le fichier spécial associé au périphérique peut être différent sur votre configuration. Si vous n'êtes pas sûr, vous pouvez utiliser la commande ''dmesg'' pour répérer le bon nom dans les messages de démarrage du noyau.}}&lt;br /&gt;
&lt;br /&gt;
Nous allons maintenant créer une partition de 8Mo pour notre noyau et une autre pour le système de fichiers racine (rootfs) avec la place restante sur la carte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Command (m for help): d&lt;br /&gt;
Selected partition 1&lt;br /&gt;
Command (m for help): n&lt;br /&gt;
Command action&lt;br /&gt;
e   extended&lt;br /&gt;
p   primary partition (1-4)&lt;br /&gt;
p&lt;br /&gt;
Partition number (1-4): 1&lt;br /&gt;
First cylinder (1-983, default 1):&lt;br /&gt;
Using default value 1&lt;br /&gt;
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983): +8M&lt;br /&gt;
Command (m for help): n&lt;br /&gt;
Command action&lt;br /&gt;
e   extended&lt;br /&gt;
p   primary partition (1-4)&lt;br /&gt;
p&lt;br /&gt;
Partition number (1-4): 2&lt;br /&gt;
First cylinder (18-983, default 18):&lt;br /&gt;
Using default value 18&lt;br /&gt;
Last cylinder or +size or +sizeM or +sizeK (18-983, default 983):&lt;br /&gt;
Using default value 983&lt;br /&gt;
Command (m for help): w&lt;br /&gt;
The partition table has been altered!&lt;br /&gt;
Calling ioctl() to re-read partition table.&lt;br /&gt;
Syncing disks.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''On devrait probablement aussi changer le type de la première partition en FAT16 ?''&lt;br /&gt;
&lt;br /&gt;
si le message suivant apparaît à la sortie du programme fdisk :&lt;br /&gt;
&lt;br /&gt;
Calling ioctl() to re-read partition table&lt;br /&gt;
fdisk: WARNING: rereading partition table failed, kernel still uses old table:   Device or resource busy&lt;br /&gt;
&lt;br /&gt;
lancez la commande&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
à partir d'une autre console et essayez de nouveau.&lt;br /&gt;
&lt;br /&gt;
=== Formatage de la carte SD ===&lt;br /&gt;
&lt;br /&gt;
Lancez la commande suivante pour créer un système de fichier FAT :&lt;br /&gt;
&lt;br /&gt;
mkfs.vfat /dev/mmcblk0p1&lt;br /&gt;
{{Note|Si vous ne disposez pas de mkfs.vfat vous le trouverez dans le paquet &amp;quot;dosfstools&amp;quot;. Ce paquet ne semble pas être disponible en ipk, mais une version non officielle peut être téléchargée à http://members.shaw.ca/mmontour/neo/dosfstools_2.11-r0_armv4t.ipk}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La deuxième partition doit être formattée en ext3 (sauf si vous avez inclus les modules ext2 dans votre noyau) :&lt;br /&gt;
&lt;br /&gt;
mkfs.ext3 /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
== Remplissage de la carte SD ==&lt;br /&gt;
&lt;br /&gt;
Votre carte SD est maintenant prête à être remplie avec le système de fichiers rootfs et le noyau nécessaires au démarrage du FR.&lt;br /&gt;
&lt;br /&gt;
Montez la seconde partition de votre carte SD et placez l'image rootfs dessus :&lt;br /&gt;
&lt;br /&gt;
mount /dev/mmcblk0p2 /mnt/moko&lt;br /&gt;
tar -C /mnt/moko/ -xzvf openmoko-devel-image-fic-gta01-20070313022035.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
{{Note| Comme toujours dans ce guide, veuillez à ajuster le nom de périphérique et du fichier rootfs à vos besoins.}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Il faut porter attention à un point particulier si vous utilisez le démon automount de votre système d'exploitation hôte. Certains systèmes montent ces périphériques amovibles avec l'option &amp;quot;nodev&amp;quot; par défaut pour des raisons de sécurité. Si l'image que vous décompressez dispose d'un répertoire /dev rempli, les fichiers spéciaux ne seront pas créés. Si vous montez automatiquement la carte SD sur votre PC, vérifiez qu'il n'y a pas d'options de montage inadaptées en utilisant la commande &amp;quot;mount&amp;quot; pour lister les points de montage.}}&lt;br /&gt;
&lt;br /&gt;
La prochaine étape est de monter la première partition de la carte SD et d'installer le noyau dessus.&lt;br /&gt;
&lt;br /&gt;
mount /dev/mmcblk0p1 /mnt/mokokernel&lt;br /&gt;
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uImage.bin&lt;br /&gt;
&lt;br /&gt;
Ou pour certaines version de u-boot sur la mémoire flash NOR :&lt;br /&gt;
&lt;br /&gt;
mount /dev/mmcblk0p1 /mnt/mokokernel&lt;br /&gt;
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uimage&lt;br /&gt;
&lt;br /&gt;
(oui, en minuscules et sans extension)&lt;br /&gt;
&lt;br /&gt;
Faites bien attention que votre noyau soit nommé ''uImage.bin'' (ou ''uimage'' pour certaines version de u-boot en mode NOR). Si le programme u-boot ne trouve pas le fichier noyau lors du démarrage, [[Bootloader#Using usbtty from Linux| connectez-vous au bootloader]] avec ''[http://www.airs.com/ian/uucp.html cu]'', montez la partition avec mccinit et vérifiez la présence et le nom de l'image du noyau avec ''fatls mmc 1:1'' pour un système de fichier FAT  ou ''ext2ls mmc 1:1'' pour un système de fichiers ext2. Comparez le résultat avec soin avec la sortie de la commande ''printenv sd_image_name''. N'oubliez pas que vous pouvez modifier l'environnement de la flash NAND mais pas de la flash NOR, donc si vous voulez démarrez à partir de la flash NOR vous devez faire correspondre le nom de fichier à la variable d'environnement et non l'inverse.&lt;br /&gt;
&lt;br /&gt;
Démontez la partition rootfs et la partition noyau et faites bien attention que les données en cache soient bien écrites sur le disque :&lt;br /&gt;
&lt;br /&gt;
umount /mnt/moko&lt;br /&gt;
umount /mnt/mokokernel&lt;br /&gt;
sync&lt;br /&gt;
&lt;br /&gt;
== Rajout de l'entrée au menu de démarrage uboot ==&lt;br /&gt;
&lt;br /&gt;
En fonction du lot du téléphone et du type de partition que vous utilisez, il peut être nécessaire de rajouter une entrée dans le menu de démarrage pour pouvoir démarrer le système à partir de la carte mémoire. Si vous utilisez le FreeRunner et avez créé un noyau sur FAT avec une partition rootfs ext2 vous devriez pouvoir démarrer à partir de la carte immédiatement puisqu'une entrée  pour cela devrait déjà exister dans le menu de démarrage NOR/NAND. Pour les autres cas vous devriez au moins vérifier que les entrées nécessaires existent dans votre menu avant de poursuivre. Vous aurez besoin de vous connecter au shell uboot du menu NAND pour cela. Une description de la procédure est disponible dans l'article [[Uboot#Bootloader_prompt]]. Des détails sur la manière de vous connecter au menu NAND sont disponibles [[Booting#Log_into_U-Boot_in_the_NAND_Flash| ici]].&lt;br /&gt;
&lt;br /&gt;
Après avoir consulté ces deux articles, vous devriez être connecté avec le shell sur uboot en mode NAND. La première chose à faire est de régler le délai de déconnexion du menu de démarrage à une valeur très élevée. Si vous ne faites pas cela, le gestionnaire de démarrage continuera le chargement après le délai par défaut (60 secondes) même si vous êtes connecté au shell uboot. Entrez la commande suivante :&lt;br /&gt;
&lt;br /&gt;
setenv boot_menu_timeout 99999&lt;br /&gt;
&lt;br /&gt;
Cela règlera le délai à 99999 secondes ce qui devrait vous donner le temps de lancer toutes les commandes que vous voulez dans le shell de démarrage.&lt;br /&gt;
&lt;br /&gt;
Maintenant, nous allons vérifier qu'une option du menu pour démarrer sur la carte SD est bien disponible et la créer si ce n'est pas le cas. Vous pouvez afficher l'environnement de démarrage du gestionnaire de démarrage avec la commande :&lt;br /&gt;
&lt;br /&gt;
printenv&lt;br /&gt;
&lt;br /&gt;
Si le résultat est une ligne commençant par ''menu_'' suivi des commandes qui sont listées dans ce guide, vous n'avez pas besoin de créer de nouvelle entrée dans le menu. Dans tous les autres cas veuillez suivre les instructions suivantes :&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vous utilisez la bonne configuration à partir des décisions que vous avez prises auparavant. Pour plus d'informations sur les commandes uboot, utilisez :&lt;br /&gt;
help&lt;br /&gt;
help &amp;lt;commande&amp;gt;&lt;br /&gt;
et [[Bootloader]] ainsi que [[Bootloader commands]].&lt;br /&gt;
&lt;br /&gt;
{{Note| Les antislashes (\) sont très importants en mode uboot pour enregistrer la commande en tant que nouvelle variable d'environnement plutôt que de l'exécuter immédiatement après l'appui sur la touche entrée.}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Les touches copier et coller peuvent être inopérantes en fonction de l'émulateur de terminal utilisé. Commi fonctionne ou vous pouvez utiliser l'émulateur de terminal [[NeoCon|neocon]] en rajoutant un délai d'attente entre les caractères. Autrement, vous devrez retapez les lignes de commande à la main.}}&lt;br /&gt;
&lt;br /&gt;
Il est important de tenir compte des type de partitions FAT ou ext du noyau ainsi que des types ext2 ou ext3 de la partition racine.&lt;br /&gt;
&lt;br /&gt;
Vérifiez les numéros de partition dans les commandes suivantes.  Il peut être nécessaire en particulier de changer root=/dev/mmcblk0p'''#''' et fatload mmc '''#''' ou ext2load mmc '''#''' en fonction des partitions dans lesquelles se trouvent respectivement le noyau et le rootfs.  Les numéros commencent à 1.&lt;br /&gt;
&lt;br /&gt;
'''Entrée du menu pour le noyau sur FAT et le rootfs sur ext3 :'''&lt;br /&gt;
&lt;br /&gt;
setenv menu_9 Boot from microSD (FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000&lt;br /&gt;
&lt;br /&gt;
'''Entrée du menu pour le noyau sur FAT et le rootfs sur ext2:'''&lt;br /&gt;
&lt;br /&gt;
setenv menu_9 Boot from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000&lt;br /&gt;
&lt;br /&gt;
ou : avec option noyau 'init=/sbin/init' (nécessaire pour certaines images) :&lt;br /&gt;
setenv menu_9 Boot 200808 from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} init=/sbin/init ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000&lt;br /&gt;
&lt;br /&gt;
'''Entrée du menu pour noyau sur ext2 et rootfs sur ext2: (nécessite un u-boot récent)'''&lt;br /&gt;
&lt;br /&gt;
setenv menu_2 Boot from microSD part2 (ext2+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; ext2load mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000&lt;br /&gt;
&lt;br /&gt;
'''Entrée du menu pour noyau et rootfs sur la même partition ext2 (testé avec Qtopia/nécessite un u-boot récent)'''&lt;br /&gt;
setenv menu_3 QTopia: setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p1 rootdelay=5 \${mtdparts} ro\; mmcinit\; ext2load mmc 1:1 0x32000000 \${sd_image_name}\; bootm 0x32000000&lt;br /&gt;
Vous avez bientôt fini. Lancez une commande&lt;br /&gt;
&lt;br /&gt;
printenv&lt;br /&gt;
&lt;br /&gt;
et vérifiez que votre choix de menu récemment créé est affiché correctement (sans que les antislashes soient affichés cette fois).&lt;br /&gt;
&lt;br /&gt;
Si tout se passe bien, entrez :&lt;br /&gt;
&lt;br /&gt;
saveenv&lt;br /&gt;
&lt;br /&gt;
en ligne de commande et tapez entrée. La nouvelle configuration devrait alors être enregistrée dans la mémoire flash NAND.&lt;br /&gt;
&lt;br /&gt;
Eteignez votre Neo avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
neo1973 power-off&lt;br /&gt;
&lt;br /&gt;
Après avoir redémarré le Neo et vous être reconnecté en mode NAND vous devriez pouvoir sélectionner votre choix récemment créé et pouvoir démarrer avec le système de fichiers racine de votre carte SD.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Voyez aussi [[Moving current system from flash to SD]] qui indique comment copier le système en flash vers la carte SD pour garder une sauvegarde et pouvoir démarrer avec.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Annexes ==&lt;br /&gt;
&lt;br /&gt;
=== Démarrage à partir de la SDHC ===&lt;br /&gt;
&lt;br /&gt;
{{Note|le texte suivant a été écrit pour le Neo1973. Les cartes SDHC et SD devraient fonctionner avec un FreeRunner si votre version de u-boot est au moins 2008-07-23.}}&lt;br /&gt;
&lt;br /&gt;
Sachant que les SDHC ne fonctionnent pas avec des versions plus anciennes de u-boot, vous ne pouvez pas utiliser ce qui est indiqué dans le guide Booting from SD.&lt;br /&gt;
Mais il existe une sorte de contournement qui permet d'avoir au moins votre rootfs sur la microSDHC :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord vous pouvez suivre l'étape 1 pour obtenir une image de noyau intégrant les support mmc et ext2. Mais au lieu de copier l'image sur le rootfs vous allez la flasher sur la mémoire NAND interne (en utilisant [[Dfu-util]]).&lt;br /&gt;
Vous pouvez maintenant continuer à l'étape 2 (comme indiqué auparavant vous n'avez pas à copier votre uImage dans le rootfs) puis suivre les instructions de l'étape 3.&lt;br /&gt;
Au lieu de la commande setenv indiquée en étape 3, vous allez indiquer la commande suivante :&lt;br /&gt;
&lt;br /&gt;
GTA01Bv4 # setenv menu_5 Boot from SDHC: setenv  bootargs root=/dev/mmcblk0p1 console=tty0 rootdelay=5 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000&lt;br /&gt;
GTA01Bv4 # saveenv&lt;br /&gt;
&lt;br /&gt;
Et c'est tout !&lt;br /&gt;
&lt;br /&gt;
Maintenant vous pouvez utiliser l'option &amp;quot;Boot from SDHC&amp;quot; que vous venez de rajouter pour démarrer le noyau en utilisant le système de fichiers racine présent sur la microSDHC.&lt;br /&gt;
&lt;br /&gt;
=== Démarrage automatique à partir de la SDHC ===&lt;br /&gt;
&lt;br /&gt;
Si vous voulez démarrer automatiquement sur la carte SDHC :&lt;br /&gt;
Ajoutez une entrée au menu pour démarrer de la mémoire NAND&lt;br /&gt;
&lt;br /&gt;
GTA01Bv4 # setenv menu_6 Boot from NAND: setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel\; bootm 0x32000000&lt;br /&gt;
GTA01Bv4 # saveenv&lt;br /&gt;
&lt;br /&gt;
Puis éteignez le FR et testez la nouvelle entrée du menu. Si vous pouvez démarrer depuis la NAND, éteignez, entrez dans le menu de démarrage, connectez-vous au bootloader et définissez la commande (auto)bootcmd pour démarrer de la carte SDHC :&lt;br /&gt;
&lt;br /&gt;
GTA01Bv4 # setenv bootcmd setenv bootargs root=/dev/mmcblk0p1 rootdelay=10 console=tty0 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000&lt;br /&gt;
GTA01Bv4 # saveenv&lt;br /&gt;
&lt;br /&gt;
Maintenant vous démarrerez de la SDHC à chaque fois que vous appuierez le bouton Marche-Arrêt ou que vous redémarrerez le FR. Si vous désirez de nouveau démarrer à partir de la NAND, utilisez l'option NAND du menu de démarrage.&lt;br /&gt;
&lt;br /&gt;
=== Désactivation du montage automatique de udev ===&lt;br /&gt;
&lt;br /&gt;
udev monte automatiquement la carte SD au point de montage /media/mmcblk0p1. Vous pouvez désactiver cela avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
echo /dev/mmcblk &amp;gt;&amp;gt; /etc/udev/mount.blacklist&lt;br /&gt;
&lt;br /&gt;
=== Remarques sur les paramètres noyau ===&lt;br /&gt;
&lt;br /&gt;
==== loglevel ====&lt;br /&gt;
&lt;br /&gt;
Certaines personnes suggèrent de rajouter :&lt;br /&gt;
&lt;br /&gt;
loglevel=8&lt;br /&gt;
&lt;br /&gt;
au paramètres du noyau. SI vous avez aussi le paramètre &amp;quot;console=tty0&amp;quot; dans la ligne de commande du noyau cela rend le démarrage du FR extrèmement lent parce que le framebuffer (l'affichage du neo en mode texte) doit afficher des tas de lignes de message de deboguage du genre :&lt;br /&gt;
&lt;br /&gt;
s3c2410-sdi s3c2410-sdi: ......&lt;br /&gt;
mmc0: ....&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Booting_from_SD/fr</id>
		<title>Booting from SD/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Booting_from_SD/fr"/>
				<updated>2008-11-05T18:37:44Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Choix 2 : Créer un fichier tar en utilisant OpenEmbedded */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Démarrage à partir d'une carte SDHC / problème de mise en veille ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord un avertissement : Un bogue très ancien ayant pour origine probable le noyau Linux détruit la table des partitions des cartes SD de capacité élevée. Voir le bogue [https://docs.openmoko.org/trac/ticket/1802 #1802] et le [http://thread.gmane.org/gmane.comp.handhelds.openmoko.community/19154/focus=19281| fil de discussion] pour une explication détaillée sur la gestion des cartes SD de haute capacité. Une bonne précaution est de conserver une version papier de la table des partitions au cas où elle devrait être recréée.&lt;br /&gt;
&lt;br /&gt;
== Comment ça marche ==&lt;br /&gt;
&lt;br /&gt;
Sur le FR, [[u-boot]] fournit un mécanisme équivalent à celui de 'grub' sur un PC. U-boot charge l'image du noyau en mémoire et le déclenche avec une liste de paramètres noyau. Ces paramètres indiquent entre autres choses le périphérique sur lequel le système de fichiers racine se trouve.&lt;br /&gt;
&lt;br /&gt;
Lorsque le noyau démarre, il prépare le matériel et met en place le système de fichiers racine. Le noyau déclenche alors &amp;quot;/sbin/init&amp;quot;, qui s'occupe du reste de la séquence de démarrage (avec l'affichage de l'image de démarrage et la barre de progression).&lt;br /&gt;
&lt;br /&gt;
Ceci fonctionne de manière identique que l'on démarre à partir de la mémoire Flash interne ou de la carte SD. La différence réside dans la manière dont le noyau est chargé et quel périphérique est utilisé comme système racine.&lt;br /&gt;
&lt;br /&gt;
Les sections suivantes fournissent des détails complémentaires.&lt;br /&gt;
&lt;br /&gt;
=== Choix du menu ===&lt;br /&gt;
&lt;br /&gt;
Les choix du menu U-boot sont définis par les variables d'environnment nommées &amp;quot;menu_X&amp;quot; (avec X un nombre). La valeur de la variable d'environnement est une chaîne &amp;quot;&amp;lt;nom&amp;gt;:&amp;lt;commande&amp;gt;&amp;quot;, où &amp;lt;nom&amp;gt; est le texte montré sur l'écran et &amp;lt;commande&amp;gt; est une séquence de commandes u-boot (séparées par le caractère ';') exécutées lorsque le choix du menu est sélectionné. Lorsqu'on entre une chaîne de commandes, les caractères ';' et '$' doivent être protégés par un antislash : &amp;quot;\;&amp;quot; et &amp;quot;\$&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Chargement du noyau ===&lt;br /&gt;
&lt;br /&gt;
Deux commandes u-boot sont nécessaires pour le chargement du noyau à partir d'une carte SD. La première est &amp;quot;mmcinit&amp;quot; qui permettra à u-boot de détecter la carte. La seconde est la commande de chargement d'un fichier en mémoire, soit &amp;quot;fatload&amp;quot; soit &amp;quot;ext2load&amp;quot; en fonction du type de système de fichiers sur lequel se trouve le noyau.&lt;br /&gt;
&lt;br /&gt;
La syntaxe de la commande est la suivante :&lt;br /&gt;
&lt;br /&gt;
fatload mmc 1:&amp;amp;lt;p&amp;amp;gt; 0x32000000 &amp;amp;lt;filepath&amp;amp;gt;&lt;br /&gt;
ext2load mmc 1:&amp;amp;lt;p&amp;amp;gt; 0x32000000 &amp;amp;lt;filepath&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
où &amp;amp;lt;p&amp;amp;gt; est le numéro de partition, et &amp;amp;lt;filepath&amp;amp;gt; est le chemin vers le fichier qui doit être chargé.&lt;br /&gt;
&lt;br /&gt;
{{Note| La commande &amp;quot;ext2load&amp;quot; ne fonctionne pas avec les version de u-boot antérieures à la &amp;quot;20080723&amp;quot;, y compris celle fournie avec les premiers lots de FreeRunners. Ces vieux u-boot sont touchés par le bug [http://docs.openmoko.org/trac/ticket/799 #799]. Si vous mettez à jour votre U-Boot et votre noyau vous pouvez utilisez directement ext2 / 3 boot avec une seule partition pour tout.}}&lt;br /&gt;
&lt;br /&gt;
{{Warning | Soyez prudent en mettant à jour u-boot sur un Neo1973 sachant qu'il existe un risque de plantage (sauf avec un debug board). Ce n'est pas un problème avec le FreeRunner puisqu'il dispose d'une copie protégée de u-boot dans sa mémoire flash NOR. }}&lt;br /&gt;
&lt;br /&gt;
{{Note| U-Boot gère le protocole SDHC uniquement sur le FreeRunner : sur le Neo1973, u-boot est incapable d'accéder aux cartes SDHC (4G ou plus). Le noyau dispose du support SDHC avec le Neo1973, il est possible de placer le système racine sur la SDHC et le noyau sur la mémoire flash NAND pour contourner ce défaut. }}&lt;br /&gt;
&lt;br /&gt;
=== Paramètres associés au système de fichier racine ===&lt;br /&gt;
&lt;br /&gt;
Le contenu de la variable d'environnement &amp;quot;bootargs&amp;quot; est envoyé au noyau. Bootargs est constitué de définitions &amp;quot;nom=valeur&amp;quot; séparées par des espaces. Les définitions associées au processus de démarrage sur carte SD sont &amp;quot;root&amp;quot;, &amp;quot;rootfstype&amp;quot; et &amp;quot;rootdelay&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Par exemple, les paramètres suivants indiqueraient au noyau de monter la troisième partition de la carte SD en tant que système de fichiers ext3 :&lt;br /&gt;
&lt;br /&gt;
root=/dev/mmcblk0p3 rootfstype=ext3 rootdelay=5&lt;br /&gt;
&lt;br /&gt;
Le paramètre &amp;quot;rootdelay&amp;quot; génère un temps d'attente du noyau le temps que la carte SD soit prête.&lt;br /&gt;
&lt;br /&gt;
Le noyau doit intégrer en statique (pas en module donc) la gestion des systèmes de fichiers indiqués au paramètre &amp;quot;rootfstype&amp;quot;. Les configuration du noyau Openmoko par défaut intègrent le support de ext2 et ext3. Vous pouvez vérifier les systèmes de fichiers disponibles avec la commande Linux :&lt;br /&gt;
&lt;br /&gt;
less /proc/filesystems&lt;br /&gt;
&lt;br /&gt;
Il n'est pas possible d'utiliser FAT comme système de fichiers racine.&lt;br /&gt;
&lt;br /&gt;
==== ext2 comparé à ext3 ====&lt;br /&gt;
&lt;br /&gt;
Les opinions varient sur le meilleur système de fichiers à utiliser pour le système de fichiers racine. Ext3 est généralement considéré comme étant meilleur parce que c'est un système de fichiers journalisé qui ne nécessite pas une longue commande 'fsck' après un arrêt non planifié. Ceci dit, utilisé sur une carte qui n'intègre pas de gestion d'usure des blocs ext3 peut provoquer une usure prématurée des blocs sur lesquels se trouve le fichier journal. Les cartes SD sont censées intégrer un système de gestion d'usure, mais ce n'est pas garanti pour toutes les marques.&lt;br /&gt;
&lt;br /&gt;
== Récupération d'un fichier racine (rootfs) compressé ==&lt;br /&gt;
&lt;br /&gt;
Deux possibilités existent pour récupérer un fichier image rootfs en archive tar. Vous pouvez en créer un en utilisant la distribution OpenEmbedded ou en télécharger un directement depuis le serveur de création d'images openmoko.&lt;br /&gt;
&lt;br /&gt;
=== Choix 1 : Télécharger les fichiers tar rootfs/kernel du serveur Openmoko ===&lt;br /&gt;
Choissisez la combinaison rootfs/kernel que vous désirez installer sur la page des [http://wiki.openmoko.org/wiki/Latest_Images Dernières Images Générées].&lt;br /&gt;
&lt;br /&gt;
=== Choix 2 : Créer un fichier tar en utilisant OpenEmbedded ===&lt;br /&gt;
&lt;br /&gt;
Une autre possibilité pour obtenir une archive tar de votre rootfs est de la construire vous-même avec l'environnement OpenEmbedded.&lt;br /&gt;
&lt;br /&gt;
Pour construire OM-2007.2 vous devez ajouter &amp;quot;tar&amp;quot; aux types d'images dans votre fichier ''local.conf'' :&lt;br /&gt;
&lt;br /&gt;
IMAGE_FSTYPES = &amp;quot;jffs2 tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela vous pouvez construire une nouvelle image avec la commande :&lt;br /&gt;
&lt;br /&gt;
bitbake openmoko-devel-image&lt;br /&gt;
&lt;br /&gt;
Ou si vous utilisez le MokoMakefile :&lt;br /&gt;
&lt;br /&gt;
make openmoko-devel-image&lt;br /&gt;
&lt;br /&gt;
Une fois que la commande aura été exécutée vous disposerez d'une fichier ''Openmoko-....tar'' dans le répertoire deploy qui correspondra à votre nouvelle archive rootfs.&lt;br /&gt;
&lt;br /&gt;
=== Choix 3 : Convertissez une image jffs2 en fichier tar ===&lt;br /&gt;
&lt;br /&gt;
Consultez la page [[Userspace root image]] pour de plus amples informations sur la manière d'accéder au contenu d'une image jffs2.&lt;br /&gt;
&lt;br /&gt;
== Préparation de la carte SD ==&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement de la carte SD ===&lt;br /&gt;
&lt;br /&gt;
u-boot pre-2008-07-23 peut uniquement démarrer de système de fichiers FAT; si vous mettez à jour u-boot, vous pourrez démarrer de systèmes FAT ou ext2.&lt;br /&gt;
Cet exemple montre comment créer une partition type en utilisant l'outil système fdisk. N'importe quel autre gestionnaire de partitions fonctionnerait aussi.&lt;br /&gt;
&lt;br /&gt;
fdisk /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
{{Note| Le fichier spécial associé au périphérique peut être différent sur votre configuration. Si vous n'êtes pas sûr, vous pouvez utiliser la commande ''dmesg'' pour répérer le bon nom dans les messages de démarrage du noyau.}}&lt;br /&gt;
&lt;br /&gt;
Nous allons maintenant créer une partition de 8Mo pour notre noyau et une autre pour le système de fichiers racine (rootfs) avec la place restante sur la carte.&lt;br /&gt;
&lt;br /&gt;
Command (m for help): d&lt;br /&gt;
Selected partition 1&lt;br /&gt;
Command (m for help): n&lt;br /&gt;
Command action&lt;br /&gt;
e   extended&lt;br /&gt;
p   primary partition (1-4)&lt;br /&gt;
p&lt;br /&gt;
Partition number (1-4): 1&lt;br /&gt;
First cylinder (1-983, default 1):&lt;br /&gt;
Using default value 1&lt;br /&gt;
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983): +8M&lt;br /&gt;
Command (m for help): n&lt;br /&gt;
Command action&lt;br /&gt;
e   extended&lt;br /&gt;
p   primary partition (1-4)&lt;br /&gt;
p&lt;br /&gt;
Partition number (1-4): 2&lt;br /&gt;
First cylinder (18-983, default 18):&lt;br /&gt;
Using default value 18&lt;br /&gt;
Last cylinder or +size or +sizeM or +sizeK (18-983, default 983):&lt;br /&gt;
Using default value 983&lt;br /&gt;
Command (m for help): w&lt;br /&gt;
The partition table has been altered!&lt;br /&gt;
Calling ioctl() to re-read partition table.&lt;br /&gt;
Syncing disks.&lt;br /&gt;
&lt;br /&gt;
''On devrait probablement aussi changer le type de la première partition en FAT16 ?''&lt;br /&gt;
&lt;br /&gt;
si le message suivant apparaît à la sortie du programme fdisk :&lt;br /&gt;
&lt;br /&gt;
Calling ioctl() to re-read partition table&lt;br /&gt;
fdisk: WARNING: rereading partition table failed, kernel still uses old table:   Device or resource busy&lt;br /&gt;
&lt;br /&gt;
lancez la commande&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
à partir d'une autre console et essayez de nouveau.&lt;br /&gt;
&lt;br /&gt;
=== Formatage de la carte SD ===&lt;br /&gt;
&lt;br /&gt;
Lancez la commande suivante pour créer un système de fichier FAT :&lt;br /&gt;
&lt;br /&gt;
mkfs.vfat /dev/mmcblk0p1&lt;br /&gt;
{{Note|Si vous ne disposez pas de mkfs.vfat vous le trouverez dans le paquet &amp;quot;dosfstools&amp;quot;. Ce paquet ne semble pas être disponible en ipk, mais une version non officielle peut être téléchargée à http://members.shaw.ca/mmontour/neo/dosfstools_2.11-r0_armv4t.ipk}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La deuxième partition doit être formattée en ext3 (sauf si vous avez inclus les modules ext2 dans votre noyau) :&lt;br /&gt;
&lt;br /&gt;
mkfs.ext3 /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
== Remplissage de la carte SD ==&lt;br /&gt;
&lt;br /&gt;
Votre carte SD est maintenant prête à être remplie avec le système de fichiers rootfs et le noyau nécessaires au démarrage du FR.&lt;br /&gt;
&lt;br /&gt;
Montez la seconde partition de votre carte SD et placez l'image rootfs dessus :&lt;br /&gt;
&lt;br /&gt;
mount /dev/mmcblk0p2 /mnt/moko&lt;br /&gt;
tar -C /mnt/moko/ -xzvf openmoko-devel-image-fic-gta01-20070313022035.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
{{Note| Comme toujours dans ce guide, veuillez à ajuster le nom de périphérique et du fichier rootfs à vos besoins.}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Il faut porter attention à un point particulier si vous utilisez le démon automount de votre système d'exploitation hôte. Certains systèmes montent ces périphériques amovibles avec l'option &amp;quot;nodev&amp;quot; par défaut pour des raisons de sécurité. Si l'image que vous décompressez dispose d'un répertoire /dev rempli, les fichiers spéciaux ne seront pas créés. Si vous montez automatiquement la carte SD sur votre PC, vérifiez qu'il n'y a pas d'options de montage inadaptées en utilisant la commande &amp;quot;mount&amp;quot; pour lister les points de montage.}}&lt;br /&gt;
&lt;br /&gt;
La prochaine étape est de monter la première partition de la carte SD et d'installer le noyau dessus.&lt;br /&gt;
&lt;br /&gt;
mount /dev/mmcblk0p1 /mnt/mokokernel&lt;br /&gt;
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uImage.bin&lt;br /&gt;
&lt;br /&gt;
Ou pour certaines version de u-boot sur la mémoire flash NOR :&lt;br /&gt;
&lt;br /&gt;
mount /dev/mmcblk0p1 /mnt/mokokernel&lt;br /&gt;
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uimage&lt;br /&gt;
&lt;br /&gt;
(oui, en minuscules et sans extension)&lt;br /&gt;
&lt;br /&gt;
Faites bien attention que votre noyau soit nommé ''uImage.bin'' (ou ''uimage'' pour certaines version de u-boot en mode NOR). Si le programme u-boot ne trouve pas le fichier noyau lors du démarrage, [[Bootloader#Using usbtty from Linux| connectez-vous au bootloader]] avec ''[http://www.airs.com/ian/uucp.html cu]'', montez la partition avec mccinit et vérifiez la présence et le nom de l'image du noyau avec ''fatls mmc 1:1'' pour un système de fichier FAT  ou ''ext2ls mmc 1:1'' pour un système de fichiers ext2. Comparez le résultat avec soin avec la sortie de la commande ''printenv sd_image_name''. N'oubliez pas que vous pouvez modifier l'environnement de la flash NAND mais pas de la flash NOR, donc si vous voulez démarrez à partir de la flash NOR vous devez faire correspondre le nom de fichier à la variable d'environnement et non l'inverse.&lt;br /&gt;
&lt;br /&gt;
Démontez la partition rootfs et la partition noyau et faites bien attention que les données en cache soient bien écrites sur le disque :&lt;br /&gt;
&lt;br /&gt;
umount /mnt/moko&lt;br /&gt;
umount /mnt/mokokernel&lt;br /&gt;
sync&lt;br /&gt;
&lt;br /&gt;
== Rajout de l'entrée au menu de démarrage uboot ==&lt;br /&gt;
&lt;br /&gt;
En fonction du lot du téléphone et du type de partition que vous utilisez, il peut être nécessaire de rajouter une entrée dans le menu de démarrage pour pouvoir démarrer le système à partir de la carte mémoire. Si vous utilisez le FreeRunner et avez créé un noyau sur FAT avec une partition rootfs ext2 vous devriez pouvoir démarrer à partir de la carte immédiatement puisqu'une entrée  pour cela devrait déjà exister dans le menu de démarrage NOR/NAND. Pour les autres cas vous devriez au moins vérifier que les entrées nécessaires existent dans votre menu avant de poursuivre. Vous aurez besoin de vous connecter au shell uboot du menu NAND pour cela. Une description de la procédure est disponible dans l'article [[Uboot#Bootloader_prompt]]. Des détails sur la manière de vous connecter au menu NAND sont disponibles [[Booting#Log_into_U-Boot_in_the_NAND_Flash| ici]].&lt;br /&gt;
&lt;br /&gt;
Après avoir consulté ces deux articles, vous devriez être connecté avec le shell sur uboot en mode NAND. La première chose à faire est de régler le délai de déconnexion du menu de démarrage à une valeur très élevée. Si vous ne faites pas cela, le gestionnaire de démarrage continuera le chargement après le délai par défaut (60 secondes) même si vous êtes connecté au shell uboot. Entrez la commande suivante :&lt;br /&gt;
&lt;br /&gt;
setenv boot_menu_timeout 99999&lt;br /&gt;
&lt;br /&gt;
Cela règlera le délai à 99999 secondes ce qui devrait vous donner le temps de lancer toutes les commandes que vous voulez dans le shell de démarrage.&lt;br /&gt;
&lt;br /&gt;
Maintenant, nous allons vérifier qu'une option du menu pour démarrer sur la carte SD est bien disponible et la créer si ce n'est pas le cas. Vous pouvez afficher l'environnement de démarrage du gestionnaire de démarrage avec la commande :&lt;br /&gt;
&lt;br /&gt;
printenv&lt;br /&gt;
&lt;br /&gt;
Si le résultat est une ligne commençant par ''menu_'' suivi des commandes qui sont listées dans ce guide, vous n'avez pas besoin de créer de nouvelle entrée dans le menu. Dans tous les autres cas veuillez suivre les instructions suivantes :&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vous utilisez la bonne configuration à partir des décisions que vous avez prises auparavant. Pour plus d'informations sur les commandes uboot, utilisez :&lt;br /&gt;
help&lt;br /&gt;
help &amp;lt;commande&amp;gt;&lt;br /&gt;
et [[Bootloader]] ainsi que [[Bootloader commands]].&lt;br /&gt;
&lt;br /&gt;
{{Note| Les antislashes (\) sont très importants en mode uboot pour enregistrer la commande en tant que nouvelle variable d'environnement plutôt que de l'exécuter immédiatement après l'appui sur la touche entrée.}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Les touches copier et coller peuvent être inopérantes en fonction de l'émulateur de terminal utilisé. Commi fonctionne ou vous pouvez utiliser l'émulateur de terminal [[NeoCon|neocon]] en rajoutant un délai d'attente entre les caractères. Autrement, vous devrez retapez les lignes de commande à la main.}}&lt;br /&gt;
&lt;br /&gt;
Il est important de tenir compte des type de partitions FAT ou ext du noyau ainsi que des types ext2 ou ext3 de la partition racine.&lt;br /&gt;
&lt;br /&gt;
Vérifiez les numéros de partition dans les commandes suivantes.  Il peut être nécessaire en particulier de changer root=/dev/mmcblk0p'''#''' et fatload mmc '''#''' ou ext2load mmc '''#''' en fonction des partitions dans lesquelles se trouvent respectivement le noyau et le rootfs.  Les numéros commencent à 1.&lt;br /&gt;
&lt;br /&gt;
'''Entrée du menu pour le noyau sur FAT et le rootfs sur ext3 :'''&lt;br /&gt;
&lt;br /&gt;
setenv menu_9 Boot from microSD (FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000&lt;br /&gt;
&lt;br /&gt;
'''Entrée du menu pour le noyau sur FAT et le rootfs sur ext2:'''&lt;br /&gt;
&lt;br /&gt;
setenv menu_9 Boot from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000&lt;br /&gt;
&lt;br /&gt;
ou : avec option noyau 'init=/sbin/init' (nécessaire pour certaines images) :&lt;br /&gt;
setenv menu_9 Boot 200808 from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} init=/sbin/init ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000&lt;br /&gt;
&lt;br /&gt;
'''Entrée du menu pour noyau sur ext2 et rootfs sur ext2: (nécessite un u-boot récent)'''&lt;br /&gt;
&lt;br /&gt;
setenv menu_2 Boot from microSD part2 (ext2+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; ext2load mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000&lt;br /&gt;
&lt;br /&gt;
'''Entrée du menu pour noyau et rootfs sur la même partition ext2 (testé avec Qtopia/nécessite un u-boot récent)'''&lt;br /&gt;
setenv menu_3 QTopia: setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p1 rootdelay=5 \${mtdparts} ro\; mmcinit\; ext2load mmc 1:1 0x32000000 \${sd_image_name}\; bootm 0x32000000&lt;br /&gt;
Vous avez bientôt fini. Lancez une commande&lt;br /&gt;
&lt;br /&gt;
printenv&lt;br /&gt;
&lt;br /&gt;
et vérifiez que votre choix de menu récemment créé est affiché correctement (sans que les antislashes soient affichés cette fois).&lt;br /&gt;
&lt;br /&gt;
Si tout se passe bien, entrez :&lt;br /&gt;
&lt;br /&gt;
saveenv&lt;br /&gt;
&lt;br /&gt;
en ligne de commande et tapez entrée. La nouvelle configuration devrait alors être enregistrée dans la mémoire flash NAND.&lt;br /&gt;
&lt;br /&gt;
Eteignez votre Neo avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
neo1973 power-off&lt;br /&gt;
&lt;br /&gt;
Après avoir redémarré le Neo et vous être reconnecté en mode NAND vous devriez pouvoir sélectionner votre choix récemment créé et pouvoir démarrer avec le système de fichiers racine de votre carte SD.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Voyez aussi [[Moving current system from flash to SD]] qui indique comment copier le système en flash vers la carte SD pour garder une sauvegarde et pouvoir démarrer avec.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Annexes ==&lt;br /&gt;
&lt;br /&gt;
=== Démarrage à partir de la SDHC ===&lt;br /&gt;
&lt;br /&gt;
{{Note|le texte suivant a été écrit pour le Neo1973. Les cartes SDHC et SD devraient fonctionner avec un FreeRunner si votre version de u-boot est au moins 2008-07-23.}}&lt;br /&gt;
&lt;br /&gt;
Sachant que les SDHC ne fonctionnent pas avec des versions plus anciennes de u-boot, vous ne pouvez pas utiliser ce qui est indiqué dans le guide Booting from SD.&lt;br /&gt;
Mais il existe une sorte de contournement qui permet d'avoir au moins votre rootfs sur la microSDHC :&lt;br /&gt;
&lt;br /&gt;
Tout d'abord vous pouvez suivre l'étape 1 pour obtenir une image de noyau intégrant les support mmc et ext2. Mais au lieu de copier l'image sur le rootfs vous allez la flasher sur la mémoire NAND interne (en utilisant [[Dfu-util]]).&lt;br /&gt;
Vous pouvez maintenant continuer à l'étape 2 (comme indiqué auparavant vous n'avez pas à copier votre uImage dans le rootfs) puis suivre les instructions de l'étape 3.&lt;br /&gt;
Au lieu de la commande setenv indiquée en étape 3, vous allez indiquer la commande suivante :&lt;br /&gt;
&lt;br /&gt;
GTA01Bv4 # setenv menu_5 Boot from SDHC: setenv  bootargs root=/dev/mmcblk0p1 console=tty0 rootdelay=5 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000&lt;br /&gt;
GTA01Bv4 # saveenv&lt;br /&gt;
&lt;br /&gt;
Et c'est tout !&lt;br /&gt;
&lt;br /&gt;
Maintenant vous pouvez utiliser l'option &amp;quot;Boot from SDHC&amp;quot; que vous venez de rajouter pour démarrer le noyau en utilisant le système de fichiers racine présent sur la microSDHC.&lt;br /&gt;
&lt;br /&gt;
=== Démarrage automatique à partir de la SDHC ===&lt;br /&gt;
&lt;br /&gt;
Si vous voulez démarrer automatiquement sur la carte SDHC :&lt;br /&gt;
Ajoutez une entrée au menu pour démarrer de la mémoire NAND&lt;br /&gt;
&lt;br /&gt;
GTA01Bv4 # setenv menu_6 Boot from NAND: setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel\; bootm 0x32000000&lt;br /&gt;
GTA01Bv4 # saveenv&lt;br /&gt;
&lt;br /&gt;
Puis éteignez le FR et testez la nouvelle entrée du menu. Si vous pouvez démarrer depuis la NAND, éteignez, entrez dans le menu de démarrage, connectez-vous au bootloader et définissez la commande (auto)bootcmd pour démarrer de la carte SDHC :&lt;br /&gt;
&lt;br /&gt;
GTA01Bv4 # setenv bootcmd setenv bootargs root=/dev/mmcblk0p1 rootdelay=10 console=tty0 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000&lt;br /&gt;
GTA01Bv4 # saveenv&lt;br /&gt;
&lt;br /&gt;
Maintenant vous démarrerez de la SDHC à chaque fois que vous appuierez le bouton Marche-Arrêt ou que vous redémarrerez le FR. Si vous désirez de nouveau démarrer à partir de la NAND, utilisez l'option NAND du menu de démarrage.&lt;br /&gt;
&lt;br /&gt;
=== Désactivation du montage automatique de udev ===&lt;br /&gt;
&lt;br /&gt;
udev monte automatiquement la carte SD au point de montage /media/mmcblk0p1. Vous pouvez désactiver cela avec la commande suivante :&lt;br /&gt;
&lt;br /&gt;
echo /dev/mmcblk &amp;gt;&amp;gt; /etc/udev/mount.blacklist&lt;br /&gt;
&lt;br /&gt;
=== Remarques sur les paramètres noyau ===&lt;br /&gt;
&lt;br /&gt;
==== loglevel ====&lt;br /&gt;
&lt;br /&gt;
Certaines personnes suggèrent de rajouter :&lt;br /&gt;
&lt;br /&gt;
loglevel=8&lt;br /&gt;
&lt;br /&gt;
au paramètres du noyau. SI vous avez aussi le paramètre &amp;quot;console=tty0&amp;quot; dans la ligne de commande du noyau cela rend le démarrage du FR extrèmement lent parce que le framebuffer (l'affichage du neo en mode texte) doit afficher des tas de lignes de message de deboguage du genre :&lt;br /&gt;
&lt;br /&gt;
s3c2410-sdi s3c2410-sdi: ......&lt;br /&gt;
mmc0: ....&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Translation</id>
		<title>Translation</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Translation"/>
				<updated>2008-10-18T13:13:55Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* French */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Translation}}&lt;br /&gt;
&lt;br /&gt;
Let us spread the popularity of Openmoko by localization of the software and translation of documentation and wiki.&lt;br /&gt;
&lt;br /&gt;
Just as an overview who is able and willing to translate parts into other languages, please join and add your Language and name. The source for the translation will be English. If you have good English skills then you could contribute by correcting the sources :)&lt;br /&gt;
&lt;br /&gt;
A good point to start would be to continuous translating of &lt;br /&gt;
http://en.wikipedia.org/wiki/Openmoko into more languages on the other language sites of wikipedia.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;...it is easy to join and spend some minutes for translating,&lt;br /&gt;
and when someone finds some mistakes in any languages don't&lt;br /&gt;
blame the translator - just be productive and fix it yourself!&amp;quot; -[[User:RobertMichel|Robert Michel]]&lt;br /&gt;
&lt;br /&gt;
Please take a look at [[Translation HOWTO]] and improve it if possible.&lt;br /&gt;
&lt;br /&gt;
Languages already offered on our community mailinglist, please add your name yourself and join community mailinglist (until we'll have a proper mailinglist) to discuss about translations:&lt;br /&gt;
&lt;br /&gt;
== Afrikaans ==&lt;br /&gt;
&lt;br /&gt;
== Amharic ==&lt;br /&gt;
* [[User:ethiopia|Ethiopia Alemayehu]]&lt;br /&gt;
&lt;br /&gt;
== Armenian ==&lt;br /&gt;
* [[User:surenk|Suren Karapetyan]]&lt;br /&gt;
&lt;br /&gt;
== Arabic عربي == &lt;br /&gt;
* Hossam Mahmoud حسام محمود&lt;br /&gt;
* [[User:ترجمان05|ترجمان05]]&lt;br /&gt;
* [[User:Lixy|Lixy]] 17:54, 21 July 2007 (CEST)&lt;br /&gt;
* [[User:Waraqa|Waraqa]]&lt;br /&gt;
&lt;br /&gt;
== Bulgarian == &lt;br /&gt;
* [[User:Mr700|Doncho Nicolaev Gunchev]]&lt;br /&gt;
&lt;br /&gt;
== Basque ==&lt;br /&gt;
&lt;br /&gt;
* [[User:garrop|Ugartemendia]]&lt;br /&gt;
&lt;br /&gt;
== Catalan ==&lt;br /&gt;
&lt;br /&gt;
* [[User:montxovs|Montxo Vicente i Sempere]]&lt;br /&gt;
&lt;br /&gt;
* [[User:Mandarino|Mandarino]]&lt;br /&gt;
&lt;br /&gt;
* [[User:RafaelCarreras|Rafael Carreras]]&lt;br /&gt;
&lt;br /&gt;
* [[User:JaumeI|JaumeI]]&lt;br /&gt;
&lt;br /&gt;
== Chinese (Simplified)== &lt;br /&gt;
* [[User:JarodWang|JarodWang]]&lt;br /&gt;
* [[User:Liuxf|Liuxf]]&lt;br /&gt;
* [[User:sunlt|sunlt]]&lt;br /&gt;
&lt;br /&gt;
== Chinese (Traditional)==&lt;br /&gt;
* [[User:coolcat|Brenda Wang]]&lt;br /&gt;
&lt;br /&gt;
== Czech ==&lt;br /&gt;
* [[User:Mikesh|Michal Heczko]]&lt;br /&gt;
* [[User:Vatoz|Vaclav Cerny]]&lt;br /&gt;
* [[User:Fox|Pavel Kovář]] (wiki)&lt;br /&gt;
&lt;br /&gt;
== Danish == &lt;br /&gt;
* [[User:EsbenDamgaard|Esben Damgaard]]&lt;br /&gt;
* [[User:UlrikRasmussen|Ulrik Rasmussen]]&lt;br /&gt;
* [[User:miki|Mikkel Kirkgaard Nielsen]]&lt;br /&gt;
&lt;br /&gt;
== Dutch == &lt;br /&gt;
* [[User:MarcVerwerft|Marc Verwerft]]&lt;br /&gt;
* [[User:Madjo|Marcel De Jong]]&lt;br /&gt;
* [[User:LuitvD|Luit van Drongelen]]&lt;br /&gt;
* [[User:reinouts|Reinout van Schouwen]]&lt;br /&gt;
* [[User:Steamrunner|Koen De Voegt]]&lt;br /&gt;
&lt;br /&gt;
([[User:Madjo|Marcel]] 18/04) Misschien is het handig om alvast te beginnen met vertalen van de Wiki? Of hebben jullie andere ideeen? Ik heb al een start gemaakt van de voorpagina van de wiki, maar ben nog niet veel verder gekomen&lt;br /&gt;
([[User:reinouts|Reinout]] 21/04) Valt er verder nog niks te vertalen? De wiki is niet echt boeiend.&lt;br /&gt;
&lt;br /&gt;
== Esperanto ==&lt;br /&gt;
* [[User:Antono|Antono Vasiljev]]&lt;br /&gt;
* [[User:Alekcxjo|Alekĉjo Rajmondo]]&lt;br /&gt;
&lt;br /&gt;
== Estonian ==&lt;br /&gt;
* [[User:Hadara|Sven Petai]]&lt;br /&gt;
* [[User:Myoldryn|Jaan Nigul]]&lt;br /&gt;
* [[User:Yogiz|Yogiz]]&lt;br /&gt;
&lt;br /&gt;
== Finnish == &lt;br /&gt;
&lt;br /&gt;
See also [[Openmoko Local Groups: Finland]].&lt;br /&gt;
&lt;br /&gt;
Notes to Finnish translators: please use the dictionary at [http://lokalisointi.org/ lokalisointi.org], avoid anglisms, avoid capital letters where unnecessary etc., kiitos :) Also, send new, big translations to [http://lokalisointi.org/mailman/listinfo/laatu laatu] mailing list for review. Until openmoko specific lists, you may join [http://lokalisointi.org/mailman/listinfo/keskustelu keskustelu] list too (it can be used despite the fact it's been silent).&lt;br /&gt;
&lt;br /&gt;
* [[User:Jani-Matti_Hätinen|Jani-Matti Hätinen]]&lt;br /&gt;
* [[User:TimoJyrinki|Timo Jyrinki]]&lt;br /&gt;
* [[User:Eyec|Samuli Perttula]]&lt;br /&gt;
* [[User:TuomoSipola|Tuomo Sipola]]&lt;br /&gt;
&lt;br /&gt;
== French ==&lt;br /&gt;
* [[User:SebastienJolicoeur|Sebastien Jolicoeur]]&lt;br /&gt;
* [[User:MarcSert|Marc Sert]]&lt;br /&gt;
* [[User:FoucaultdeBonneval|Foucault deBonneval]]&lt;br /&gt;
* [[User:Sufflope|Jean-Sébastien Bour]]&lt;br /&gt;
* [[User:Ymahe|Yves Mahé]]&lt;br /&gt;
* [[User:opampca|Richard Lussier, Canada]]&lt;br /&gt;
* [[User:Kheldar|Guillaume Maiano]]&lt;br /&gt;
* [[User:Thomas01|Thomas Leclere]]&lt;br /&gt;
* [[User:fredlala|Frédéric Lasnier]]&lt;br /&gt;
* [[User:alekcxjo|Alexandre Raymond]]&lt;br /&gt;
* [[User:VdeGrandpré|Vincent de Grandpré, Montréal, Québec]]&lt;br /&gt;
* [[User:youshe|Frédéric Bouquet, Grenoble, France]]&lt;br /&gt;
* [[User:netdruide|Daniel Pallier, Lampaul-Plouarzel, France]]&lt;br /&gt;
* [[User:Pierrebrua|Pierre Brua]]&lt;br /&gt;
&lt;br /&gt;
== Galician ==&lt;br /&gt;
* [[User:Fjrial|Frco. Javier Rial]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.mancomun.org Mancomun]&amp;lt;br&amp;gt;&lt;br /&gt;
Para poñerse en contacto enviar un correo-e a rolda http://listas.mancomun.org/mailman/listinfo/g11n&lt;br /&gt;
&lt;br /&gt;
== German ==&lt;br /&gt;
* [[User:RobertMichel|Robert Michel]]&lt;br /&gt;
* [[User:FabianOff|Fabian Off]]&lt;br /&gt;
* [[User:Denis std|Denis]]&lt;br /&gt;
* [[User:ktd85|Thomas Drewermann]]&lt;br /&gt;
* Lars C.&lt;br /&gt;
* [[User:AndreasHochsteger|Andreas Hochsteger]]&lt;br /&gt;
* [[User:Christophloew|Christoph Löw]]&lt;br /&gt;
* [[User:dFence|Daniel Zauner]]&lt;br /&gt;
* [[User:Imitation|Thomas Sanladerer]]&lt;br /&gt;
* [[User:Peter Santo|Peter Santo]]&lt;br /&gt;
* [[User:Bartholomaus|Marco K.]]&lt;br /&gt;
* [[User:Gorschkow|Andre Gorschkow]]&lt;br /&gt;
&lt;br /&gt;
== Greek ==&lt;br /&gt;
* [[User:Chronix|Polychronis Papadakis]]&lt;br /&gt;
&lt;br /&gt;
== Hebrew - עברית ==&lt;br /&gt;
* [[User:YaronSh|Yaron Shahrabani]]&lt;br /&gt;
* [[User:OlegSverdlov|Oleg Sverdlov]]&lt;br /&gt;
* [[User:Any_Key|Any_Key]]&lt;br /&gt;
* [[User:Koala|Koala]]&lt;br /&gt;
&lt;br /&gt;
== Hungarian ==&lt;br /&gt;
* [[User:ZeD|Zoltán Balogh]]&lt;br /&gt;
&lt;br /&gt;
== Indonesian ==&lt;br /&gt;
* [[User:Hcblue|Hcblue]]&lt;br /&gt;
&lt;br /&gt;
== Italian ==&lt;br /&gt;
* per il momento useremo [http://www.openmokoboard.com/index.php?getforum=10 questo forum] per organizzarci. iscrivetevi e partecipate.&lt;br /&gt;
* [[User:SergioTota|Sergio Tota]]&lt;br /&gt;
* [[User:Franco|Franco Rimoldi]]&lt;br /&gt;
* [[User:Filippo|Filippo]]&lt;br /&gt;
* [[User:Massi|Massimiliano]]&lt;br /&gt;
* [[User:Markk0|Marco Cattaneo]]&lt;br /&gt;
* [[User:Cga|Callea Gaetano Andrea]]&lt;br /&gt;
* [[User:Herod2k|Alessandro]]&lt;br /&gt;
* [[User:shainer|Lisa Vitolo]]&lt;br /&gt;
* [[User:tia1982|Mattia]]&lt;br /&gt;
* [[User:azanutta|abe]]&lt;br /&gt;
* [[User:Gualti|Gualtiero]]&lt;br /&gt;
* [[User:Milo|Milo Casagrande]]&lt;br /&gt;
* [[User:White|Marco Celeri]]&lt;br /&gt;
* [[User:Aegis|Maurizio Scorianz]]&lt;br /&gt;
&lt;br /&gt;
== Japanese ==&lt;br /&gt;
*[[User:WilliamLai|William Lai]]&lt;br /&gt;
*[[Momoko Matsuzaki]]&lt;br /&gt;
&lt;br /&gt;
== Norwegian ==&lt;br /&gt;
*[[User:Vegar|Vegar Storvann]]&lt;br /&gt;
*[[User:Denniz|Denniz Fjerdingby]]&lt;br /&gt;
*[[User:StianEllingsen|Stian Ellingsen]]&lt;br /&gt;
&lt;br /&gt;
== Polish ==&lt;br /&gt;
* [[User:KrzysztofKajkowski|Krzysztof Kajkowski]]&lt;br /&gt;
* Tomasz Zieliński&lt;br /&gt;
* [[User:MaciejLigenza|Maciej Ligenza]]&lt;br /&gt;
* [[User:PiotrDuda|Piotr Duda]]&lt;br /&gt;
* [[User:Zbraniecki|Zbigniew Braniecki]]&lt;br /&gt;
&lt;br /&gt;
== Portuguese ==&lt;br /&gt;
*[[User:Skull Death|James Côrtes]]&lt;br /&gt;
* Sergio Bessa&lt;br /&gt;
* Mario Costa&lt;br /&gt;
*[[User:kuyky|Tiago Saraiva]]&lt;br /&gt;
&lt;br /&gt;
== Punjabi ==&lt;br /&gt;
* [[User:aalam|A S Alam]]&lt;br /&gt;
&lt;br /&gt;
== Romanian ==&lt;br /&gt;
&lt;br /&gt;
* [[User:alexxed|Alexandru Szasz]]&lt;br /&gt;
* [[User:sin|Lucian]]&lt;br /&gt;
* [[User:Adrians|Adrians]]&lt;br /&gt;
&lt;br /&gt;
== Russian ==&lt;br /&gt;
* [[User:OlegSverdlov|Oleg Sverdlov]]&lt;br /&gt;
* [[User:DenisBY|Denis Kot]]&lt;br /&gt;
* [[User:MikhailGusarov|Mikhail Gusarov]]&lt;br /&gt;
* [[User:x-demon|Alexander Sokolow]]&lt;br /&gt;
* [[User:Any_Key|Any_Key]]&lt;br /&gt;
* [[User:Dmitri|Dmitri]]&lt;br /&gt;
* [[User:Buffet|Denis Kaledin]]&lt;br /&gt;
* [[User:Nes|Mike Drapolyuk]]&lt;br /&gt;
* [[User:vase|Vasiliy Tolstov]]&lt;br /&gt;
* [[User:Shadowjack|Shadowjack]]&lt;br /&gt;
* [[User:Cray|Denis Parchenko]]&lt;br /&gt;
* [[User:Vlad|Vladimir Orlov]]&lt;br /&gt;
* [[User:xnike|Nikolay Khramchenkov]]&lt;br /&gt;
* [[User:kainspb|Nikolay Kasatkin]]&lt;br /&gt;
&lt;br /&gt;
Можем начинать переводить wiki :)&lt;br /&gt;
К любой странице добавляете /ru и переводите. В конце оригинальной страницы и переведенной добавляете ссылку на шаблон &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{Languages|Имя_страницы_оригинала}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slovak == &lt;br /&gt;
* [[User:Cezz|Cezz]]&lt;br /&gt;
* [[User:PipBoy2000|PipBoy2000]]&lt;br /&gt;
* [[User:m4rtin.m|m4rtin.m]]&lt;br /&gt;
&lt;br /&gt;
== Spanish ==&lt;br /&gt;
* [[User:RosangelaCaninoKoning|Rosangela CaninoKoning]]&lt;br /&gt;
* [[User:kresp0|Santiago Crespo (kresp0)]]&lt;br /&gt;
* [[User:José_Suárez|José Suárez]]&lt;br /&gt;
* [[User:Rafa_Couto|Rafa Couto (caligari)]]&lt;br /&gt;
* [[User:NeoMorfeo|Guillermo Santos (NeoMorfeo)]]&lt;br /&gt;
* [[User:Mandarino|Mandarino]]&lt;br /&gt;
* [[User:pptudela|Pepe Tudela]]&lt;br /&gt;
* [[User:avathar|Fernando González (Avathar)]]&lt;br /&gt;
* [[User:Rbruzz|Rbruzz]]&lt;br /&gt;
* [[User:Saaib|Urivan Flores Saaib (Saaib)]]&lt;br /&gt;
* [[User:mutrox|David Samblas Martinez (mutrox)]]&lt;br /&gt;
&lt;br /&gt;
== Swedish ==&lt;br /&gt;
* [[User:yeager|Daniel Nylander]]&lt;br /&gt;
* [[User:possan|Per-Olov Jernberg]]&lt;br /&gt;
* [[User:C.M|Claes Mogren]]&lt;br /&gt;
&lt;br /&gt;
== Turkish ==&lt;br /&gt;
* [[User:EnginErenturk|Engin Erenturk]]&lt;br /&gt;
* [[User:Supernova|İsmail AŞCI]]&lt;br /&gt;
&lt;br /&gt;
== Welsh ==&lt;br /&gt;
* [[User:Rhoslyn_Prys|Rhoslyn Prys]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And feel free to join and add an new language to this list above.&lt;br /&gt;
&lt;br /&gt;
[[Category:Wiki Editing]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Dfu-util/fr</id>
		<title>Dfu-util/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Dfu-util/fr"/>
				<updated>2008-10-12T19:33:49Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Documentation de réference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Dfu-util}}&lt;br /&gt;
&lt;br /&gt;
{{warning|Dfu-util ne fonctionne pas correctement sur les [http://en.wikipedia.org/wiki/Big_endian#Endianness_and_hardware architectures gros-boutistes (big-endian)]}}&lt;br /&gt;
{{warning|Ne mettez pas à jour U-Boot si vous n'êtes pas sûr d'en avoir besoin}}&lt;br /&gt;
{{note|Il est nécessaire de connecter le neo directement sans utiliser de hub USB. Avec un hub des problèmes peuvent apparaître en particulier lors de la réinitialisation USB.}}&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
dfu-util est un programme qui sert à mettre à jour les logiciels des périphériques USB à partir d'un ordinateur via le protocole [[USB DFU]] (Universal Serial Bus Device Firmware Upgrade).&lt;br /&gt;
&lt;br /&gt;
Dans le cadre du projet Openmoko, on utilise ce programme pour communiquer avec notre gestionnaire de démarrage [[u-boot]] qui intègre la partie complémentaire du protocole DFU.&lt;br /&gt;
&lt;br /&gt;
En utilisant dfu-util et votre smartphone, vous pouvez :&lt;br /&gt;
* transférer et mettre à jour des [[partitions]] de la mémoire flash interne [[NAND]].&lt;br /&gt;
* transférer n'importe quoi vers la mémoire RAM&lt;br /&gt;
** cela peut être utilisé dans le cadre de cycles de développement rapide de code bas niveau comme les noyaux sans mettre à jour la mémoire flash&lt;br /&gt;
* lire les [[partitions]] de la mémoire interne NAND &lt;br /&gt;
** c'est un moyen facile et efficace d'effectuer des sauvegardes complètes de votre téléphone&lt;br /&gt;
&lt;br /&gt;
== Code source ==&lt;br /&gt;
En environnement Debian et Ubuntu, vous aurez besoin de libusb-dev :&lt;br /&gt;
 sudo apt-get install libusb-dev autogen pkg-config autotools-dev autoconf automake&lt;br /&gt;
&lt;br /&gt;
En environnement Fedora vous aurez besoin de libusb-devel et libusb-static :&lt;br /&gt;
 yum install libusb-devel libusb-static&lt;br /&gt;
&lt;br /&gt;
En environnement Gentoo vous pouvez utiliser emerge avec openmoko-dfu-util une fois que vous l'aurez autorisé dans la liste de paquets :&lt;br /&gt;
 echo &amp;quot;app-mobilephone/openmoko-dfu-util       **&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
 emerge -va app-mobilephone/openmoko-dfu-util&lt;br /&gt;
&lt;br /&gt;
Vous pouvez télécharger et construire la dernière version de dfu-util avec les commandes subversion suivantes :&lt;br /&gt;
 svn co http://svn.openmoko.org/trunk/src/host/dfu-util/&lt;br /&gt;
 cd dfu-util&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 ./configure&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
L'exécutable généré est dfu-util/src/dfu-util.&lt;br /&gt;
&lt;br /&gt;
== Exécutables ==&lt;br /&gt;
&lt;br /&gt;
Des paquets binaires seront [http://downloads.openmoko.org/releases/Om2008.8-update/dfu-util mis à disposition] via la construction de la distribution Openmoko. Pour le moment, l'outil est disponible pour Linux/i386.&lt;br /&gt;
&lt;br /&gt;
Il est nécessaire de rendre le fichier téléchargé (dfu-util) exécutable avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x dfu-util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
vous pouvez alors l'exécuter avec&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./dfu-util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
voir ci-dessous pour des instructions plus complètes.&lt;br /&gt;
&lt;br /&gt;
[http://packages.debian.org/dfu-util dfu-util est disponible comme paquet] pour Debian ''&amp;gt;= lenny'', il peut être installé avec la commande suivante : &amp;lt;tt&amp;gt;apt-get install dfu-util&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackfr-packs/ dfu-util est disponible comme paquet] pour la distribution '''Slackware''' (12.1), il peut être installé avec : &amp;lt;tt&amp;gt;pkgtool&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe actuellement un exécutable expérimental pour les plateformes Win32 (voir [[Dfu-util-windows]]). Les utilisateurs de Windows peuvent consulter la page [[No_Linux]].&lt;br /&gt;
&lt;br /&gt;
Compiler dfu-util sur Mac:&lt;br /&gt;
* http://lists.openmoko.org/pipermail/community/2007-July/008438.html&lt;br /&gt;
* [[User:SNMoore]]&lt;br /&gt;
* [[MacOS_X#Flashing_to_your_device]]&lt;br /&gt;
&lt;br /&gt;
== Documentation de réference ==&lt;br /&gt;
&lt;br /&gt;
Pour exécuter dfu-util, il est nécessaire d'avoir monté la partition /proc/bus/usb.  La commande &amp;quot;ls /proc/bus/usb&amp;quot; doit renvoyer un résultat ressemblant à : &amp;quot;001  002  003  004  005  devices&amp;quot;. Le résultat de la commande ne doit pas être vide, et si c'est quand même le cas cela signifie que le système de fichiers n'est pas monté et peut être monté avec la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mount -t usbfs usbfs /proc/bus/usb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez rajouter la ligne suivante dans votre fichier /etc/fstab pour que le système de fichiers soit automatiquement monté :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
usbfs   /proc/bus/usb   usbfs   defaults&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avant d'utiliser dfu-util ===&lt;br /&gt;
Vous devrez démarrer votre téléphone avec le menu de démarrage NAND :&lt;br /&gt;
* Vérifiez que votre téléphone est connecté à l'ordinateur via un câble USB (et pas à un chargeur USB !) :)&lt;br /&gt;
* Assurez-vous que vous déclenchez toutes les commandes dfu-util en tant que super-utilisateur&lt;br /&gt;
* Eteignez le téléphone&lt;br /&gt;
* Maintenez le bouton AUX appuyé&lt;br /&gt;
* Appuyez sur le bouton POWER jusqu'à ce que le menu de démarrage apparaisse&lt;br /&gt;
voir aussi [[Booting the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
=== Options en ligne de commande ===&lt;br /&gt;
&lt;br /&gt;
==== --help ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Usage: dfu-util [options] ...&lt;br /&gt;
-h --help                     Print this help message&lt;br /&gt;
-V --version                  Print the version number&lt;br /&gt;
-l --list                     List the currently attached DFU capable USB devices&lt;br /&gt;
-d --device vendor:product    Specify Vendor/Product ID of DFU device&lt;br /&gt;
-c --cfg config_nr            Specify the Configuration of DFU device&lt;br /&gt;
-i --intf intf_nr             Specify the DFU Interface number&lt;br /&gt;
-a --alt alt_nr               Specify the Altseting of the DFU Interface&lt;br /&gt;
-t --transfer-size            Specify the number of bytes per USB Transfer&lt;br /&gt;
-U --upload file              Read firmware from device into &amp;lt;file&amp;gt;&lt;br /&gt;
-D --download file            Write firmware from &amp;lt;file&amp;gt; into device&lt;br /&gt;
-R --reset                    Issue USB Reset signalling once we're finished&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== --list ====&lt;br /&gt;
&lt;br /&gt;
En utilisant l'option --list, vous pouvez voir les périphériques compatibles DFU, leur configuration, l'interface et les paramétrages associés.&lt;br /&gt;
Vous trouverez ci-dessous un exemple pour le téléphone Neo1973 en mode u-boot '''Runtime Mode'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./dfu-util --list&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Found DFU Runtime: [0x1457:0x5119] devnum=0, cfg=0, intf=2, alt=0, name=&amp;quot;USB Device Firmware Upgrade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous trouverez ci-dessous un exemple pour le téléphone Neo1973 en mode u-boot '''DFU Mode'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./dfu-util --list&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=0, name=&amp;quot;RAM 0x32000000&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=1, name=&amp;quot;u-boot&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=2, name=&amp;quot;u-boot_env&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=3, name=&amp;quot;kernel&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=4, name=&amp;quot;splash&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=5, name=&amp;quot;rootfs&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cela vous montre six interfaces, toutes avec '''configuration 0''' et '''interface 0''', avec altsetting 0...5, pour l'accès à la RAM et chacune des [[partition]].&lt;br /&gt;
&lt;br /&gt;
==== --device ====&lt;br /&gt;
&lt;br /&gt;
Vous pouvez indiquer les numéros USB de produit et de vendeur du périphérique que vous voulez programmer :&lt;br /&gt;
&lt;br /&gt;
dfu-util --device 0x1457:0x5119&lt;br /&gt;
&lt;br /&gt;
Si un seul périphérique DFU est connecté à votre ordinateur, il n'est pas nécessaire de préciser cela. Dès que plusieurs périphériques sont détectés, dfu-util le détectera et s'arrêtera en vous demandant lequel il doit utiliser.&lt;br /&gt;
&lt;br /&gt;
==== --transfer-size ====&lt;br /&gt;
&lt;br /&gt;
Indique la taille de chaque transfert USB. Si vous ne précisez pas de valeur, la taille maximale compatible avec la combinaison de système d'exploitation et de périphérique USB est choisie (pour obtenir les meilleures performances).&lt;br /&gt;
&lt;br /&gt;
==== --download ====&lt;br /&gt;
&lt;br /&gt;
Télécharge le fichier demandé dans le périphérique.&lt;br /&gt;
&lt;br /&gt;
==== --upload ====&lt;br /&gt;
&lt;br /&gt;
enregistre le contenu du périphérique DFU dans le fichier dont le nom est indiqué.&lt;br /&gt;
&lt;br /&gt;
{{note|L'enregistrement du contenu du périphérique est actuellement défectueux - [http://docs.openmoko.org/trac/ticket/676 #676]}}&lt;br /&gt;
&lt;br /&gt;
== Commandes fréquemment utilisées ==&lt;br /&gt;
&lt;br /&gt;
Pour l'instant, il n'y a pas de manuel à proprement parler. Mais vous pouvez utiliser les quelques exemples suivants :&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le rootfs ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a rootfs -R -D /path/to/openmoko-devel-image.jffs2&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le noyau ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a kernel -R -D /path/to/uImage&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le gestionnaire de démarrage ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a u-boot -R -D /path/to/u-boot.bin&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour l'image affichée au démarrage ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a u-splash -R -D /path/to/splash.gz&lt;br /&gt;
&lt;br /&gt;
see also [[Configuring_the_boot_splash_screens]]&lt;br /&gt;
&lt;br /&gt;
=== Copier un noyau dans la RAM ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a 0 -R -D /path/to/uImage&lt;br /&gt;
&lt;br /&gt;
Once this has finished, the kernel will be available at the default load address of 0x32000000 in Neo1973 RAM. &lt;br /&gt;
&lt;br /&gt;
{{note|You cannot transfer more than 2MB of data into RAM using this method}}&lt;br /&gt;
&lt;br /&gt;
== Notes de mise à jour ==&lt;br /&gt;
&lt;br /&gt;
If during flashing of an image using dfu-util you're consistently getting an error -110 message, check that the size of the destination NAND [[partition]] is big enough to hold the image.  For example the kernel partition is only 2 MB big by default and a kernel with debugging info compiled-in can often exceed this.  It's possible to change the partition layout to enlarge a given partition and shrink other partitions but you have to remember to reflash all partitions whose start offset has changed afterwards.  To adjust partitions layout use the ''mtdparts'' [[Bootloader|u-boot command]].&lt;br /&gt;
&lt;br /&gt;
If in turn you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality.  It is recommended that you always connect the phone directly to the host when using dfu-util.&lt;br /&gt;
&lt;br /&gt;
If dfu-util reports a message like the following, before it starts flashing:&amp;lt;pre&amp;gt;&lt;br /&gt;
Resetting USB...&lt;br /&gt;
not at least 2 device changes found ?!?&lt;br /&gt;
Lost device after RESET?&amp;lt;/pre&amp;gt; retry the command - it should work on a second run.&lt;br /&gt;
&lt;br /&gt;
If dfu-util complains about not being able to program the device while in runtime mode, do the following: while in the boot menu, remove the usb cable and insert it again. Depending on the version of uBoot it should display somewhere in the menu that it is now in DFU mode. Now dfu-util should be able to continue.&lt;br /&gt;
&lt;br /&gt;
If dfu-util is too slow on Windows, that's a known bug. A suggestion is to run Linux on a virtual box. An full root image 97MB that is 776Mbit, the USB 1.1 on the Neo FreeRunner is capable of either 1.5 Mbit/s (Low-Speed) and 12 Mbit/s (Full-Speed). So flashing it should take less than 9 minutes with low speed and a bit more than a minute with full-speed. Plus transfer overhead, plus decompression on the Neo side.&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
*[[Flashing the Neo 1973]] to the latest software.&lt;br /&gt;
*[[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Flashing Openmoko]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Dfu-util/fr</id>
		<title>Dfu-util/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Dfu-util/fr"/>
				<updated>2008-10-12T17:47:56Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Exécutables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Dfu-util}}&lt;br /&gt;
&lt;br /&gt;
{{warning|Dfu-util ne fonctionne pas correctement sur les [http://en.wikipedia.org/wiki/Big_endian#Endianness_and_hardware architectures gros-boutistes (big-endian)]}}&lt;br /&gt;
{{warning|Ne mettez pas à jour U-Boot si vous n'êtes pas sûr d'en avoir besoin}}&lt;br /&gt;
{{note|Il est nécessaire de connecter le neo directement sans utiliser de hub USB. Avec un hub des problèmes peuvent apparaître en particulier lors de la réinitialisation USB.}}&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
dfu-util est un programme qui sert à mettre à jour les logiciels des périphériques USB à partir d'un ordinateur via le protocole [[USB DFU]] (Universal Serial Bus Device Firmware Upgrade).&lt;br /&gt;
&lt;br /&gt;
Dans le cadre du projet Openmoko, on utilise ce programme pour communiquer avec notre gestionnaire de démarrage [[u-boot]] qui intègre la partie complémentaire du protocole DFU.&lt;br /&gt;
&lt;br /&gt;
En utilisant dfu-util et votre smartphone, vous pouvez :&lt;br /&gt;
* transférer et mettre à jour des [[partitions]] de la mémoire flash interne [[NAND]].&lt;br /&gt;
* transférer n'importe quoi vers la mémoire RAM&lt;br /&gt;
** cela peut être utilisé dans le cadre de cycles de développement rapide de code bas niveau comme les noyaux sans mettre à jour la mémoire flash&lt;br /&gt;
* lire les [[partitions]] de la mémoire interne NAND &lt;br /&gt;
** c'est un moyen facile et efficace d'effectuer des sauvegardes complètes de votre téléphone&lt;br /&gt;
&lt;br /&gt;
== Code source ==&lt;br /&gt;
En environnement Debian et Ubuntu, vous aurez besoin de libusb-dev :&lt;br /&gt;
 sudo apt-get install libusb-dev autogen pkg-config autotools-dev autoconf automake&lt;br /&gt;
&lt;br /&gt;
En environnement Fedora vous aurez besoin de libusb-devel et libusb-static :&lt;br /&gt;
 yum install libusb-devel libusb-static&lt;br /&gt;
&lt;br /&gt;
En environnement Gentoo vous pouvez utiliser emerge avec openmoko-dfu-util une fois que vous l'aurez autorisé dans la liste de paquets :&lt;br /&gt;
 echo &amp;quot;app-mobilephone/openmoko-dfu-util       **&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
 emerge -va app-mobilephone/openmoko-dfu-util&lt;br /&gt;
&lt;br /&gt;
Vous pouvez télécharger et construire la dernière version de dfu-util avec les commandes subversion suivantes :&lt;br /&gt;
 svn co http://svn.openmoko.org/trunk/src/host/dfu-util/&lt;br /&gt;
 cd dfu-util&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 ./configure&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
L'exécutable généré est dfu-util/src/dfu-util.&lt;br /&gt;
&lt;br /&gt;
== Exécutables ==&lt;br /&gt;
&lt;br /&gt;
Des paquets binaires seront [http://downloads.openmoko.org/releases/Om2008.8-update/dfu-util mis à disposition] via la construction de la distribution Openmoko. Pour le moment, l'outil est disponible pour Linux/i386.&lt;br /&gt;
&lt;br /&gt;
Il est nécessaire de rendre le fichier téléchargé (dfu-util) exécutable avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x dfu-util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
vous pouvez alors l'exécuter avec&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./dfu-util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
voir ci-dessous pour des instructions plus complètes.&lt;br /&gt;
&lt;br /&gt;
[http://packages.debian.org/dfu-util dfu-util est disponible comme paquet] pour Debian ''&amp;gt;= lenny'', il peut être installé avec la commande suivante : &amp;lt;tt&amp;gt;apt-get install dfu-util&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackfr-packs/ dfu-util est disponible comme paquet] pour la distribution '''Slackware''' (12.1), il peut être installé avec : &amp;lt;tt&amp;gt;pkgtool&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe actuellement un exécutable expérimental pour les plateformes Win32 (voir [[Dfu-util-windows]]). Les utilisateurs de Windows peuvent consulter la page [[No_Linux]].&lt;br /&gt;
&lt;br /&gt;
Compiler dfu-util sur Mac:&lt;br /&gt;
* http://lists.openmoko.org/pipermail/community/2007-July/008438.html&lt;br /&gt;
* [[User:SNMoore]]&lt;br /&gt;
* [[MacOS_X#Flashing_to_your_device]]&lt;br /&gt;
&lt;br /&gt;
== Documentation de réference ==&lt;br /&gt;
&lt;br /&gt;
To run dfu-util, you need to have /proc/bus/usb mounted and working.  The terminal command &amp;quot;ls /proc/bus/usb&amp;quot; should return something similar to, &amp;quot;001  002  003  004  005  devices&amp;quot;, it shouldn't be empty. If it is empty, use this command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mount -t usbfs usbfs /proc/bus/usb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can permanently add it in your fstab so that it automatically mounts. You can use emacs to edit you fstab using the command &amp;quot;sudo emacs /etc/fstab -nw&amp;quot; in your terminal window. Add the below line to your fstab:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
usbfs   /proc/bus/usb   usbfs   defaults&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avant d'utiliser dfu-util ===&lt;br /&gt;
You'll need to boot your phone into the NAND Boot Menu:&lt;br /&gt;
* Ensure your phone is connected directly to the host computer by USB (not the USB-charger! :)&lt;br /&gt;
* Ensure that you execute all dfu-util commands as root&lt;br /&gt;
* Power off the phone&lt;br /&gt;
* Hold down AUX&lt;br /&gt;
* Press POWER until the Boot Menu appears&lt;br /&gt;
see also [[Booting the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
=== Options en ligne de commande ===&lt;br /&gt;
&lt;br /&gt;
==== --help ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Usage: dfu-util [options] ...&lt;br /&gt;
  -h --help                     Print this help message&lt;br /&gt;
  -V --version                  Print the version number&lt;br /&gt;
  -l --list                     List the currently attached DFU capable USB devices&lt;br /&gt;
  -d --device vendor:product    Specify Vendor/Product ID of DFU device&lt;br /&gt;
  -c --cfg config_nr            Specify the Configuration of DFU device&lt;br /&gt;
  -i --intf intf_nr             Specify the DFU Interface number&lt;br /&gt;
  -a --alt alt_nr               Specify the Altseting of the DFU Interface&lt;br /&gt;
  -t --transfer-size            Specify the number of bytes per USB Transfer&lt;br /&gt;
  -U --upload file              Read firmware from device into &amp;lt;file&amp;gt;&lt;br /&gt;
  -D --download file            Write firmware from &amp;lt;file&amp;gt; into device&lt;br /&gt;
  -R --reset                    Issue USB Reset signalling once we're finished&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== --list ====&lt;br /&gt;
&lt;br /&gt;
Using the --list option, you can list the available DFU capable devices, their configuration, interface and altsettings.&lt;br /&gt;
Below is an example for a current Neo1973 phone in u-boot '''Runtime Mode'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./dfu-util --list&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Found DFU Runtime: [0x1457:0x5119] devnum=0, cfg=0, intf=2, alt=0, name=&amp;quot;USB Device Firmware Upgrade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example for a current Neo1973 phone in u-boot '''DFU Mode'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./dfu-util --list&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=0, name=&amp;quot;RAM 0x32000000&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=1, name=&amp;quot;u-boot&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=2, name=&amp;quot;u-boot_env&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=3, name=&amp;quot;kernel&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=4, name=&amp;quot;splash&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=5, name=&amp;quot;rootfs&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This shows you six interfaces, all in '''configuration 0''' and '''interface 0''', with altsetting 0...5, for RAM and each [[partition]].  &lt;br /&gt;
&lt;br /&gt;
==== --device ====&lt;br /&gt;
&lt;br /&gt;
You can specify the USB Vendor and Product ID of the device you want to program:&lt;br /&gt;
&lt;br /&gt;
 dfu-util --device 0x1457:0x5119&lt;br /&gt;
&lt;br /&gt;
If you only have one standards-compliant DFU device attached to your PC, this is optional.  However, as soon as you have multiple DFU devices, dfu-util will detect this and abort, asking you to specify which device it shall use.&lt;br /&gt;
&lt;br /&gt;
==== --transfer-size ====&lt;br /&gt;
&lt;br /&gt;
Specifies the size of each individual USB transfer.  If you don't use it, the maximum possible size for your combination of host operating system and USB device is chosen (for optimal performance).&lt;br /&gt;
&lt;br /&gt;
==== --download ====&lt;br /&gt;
&lt;br /&gt;
download the given file into the device.&lt;br /&gt;
&lt;br /&gt;
==== --upload ====&lt;br /&gt;
&lt;br /&gt;
upload from the DFU device into the given file[name].&lt;br /&gt;
&lt;br /&gt;
{{note|Upload support is currently broken - [http://docs.openmoko.org/trac/ticket/676 #676]}}&lt;br /&gt;
&lt;br /&gt;
== Commandes fréquemment utilisées ==&lt;br /&gt;
&lt;br /&gt;
Pour l'instant, il n'y a pas de manuel à proprement parler. Mais vous pouvez utiliser les quelques exemples suivants :&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le rootfs ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a rootfs -R -D /path/to/openmoko-devel-image.jffs2&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le noyau ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a kernel -R -D /path/to/uImage&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le gestionnaire de démarrage ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a u-boot -R -D /path/to/u-boot.bin&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour l'image affichée au démarrage ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a u-splash -R -D /path/to/splash.gz&lt;br /&gt;
&lt;br /&gt;
see also [[Configuring_the_boot_splash_screens]]&lt;br /&gt;
&lt;br /&gt;
=== Copier un noyau dans la RAM ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a 0 -R -D /path/to/uImage&lt;br /&gt;
&lt;br /&gt;
Once this has finished, the kernel will be available at the default load address of 0x32000000 in Neo1973 RAM. &lt;br /&gt;
&lt;br /&gt;
{{note|You cannot transfer more than 2MB of data into RAM using this method}}&lt;br /&gt;
&lt;br /&gt;
== Notes de mise à jour ==&lt;br /&gt;
&lt;br /&gt;
If during flashing of an image using dfu-util you're consistently getting an error -110 message, check that the size of the destination NAND [[partition]] is big enough to hold the image.  For example the kernel partition is only 2 MB big by default and a kernel with debugging info compiled-in can often exceed this.  It's possible to change the partition layout to enlarge a given partition and shrink other partitions but you have to remember to reflash all partitions whose start offset has changed afterwards.  To adjust partitions layout use the ''mtdparts'' [[Bootloader|u-boot command]].&lt;br /&gt;
&lt;br /&gt;
If in turn you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality.  It is recommended that you always connect the phone directly to the host when using dfu-util.&lt;br /&gt;
&lt;br /&gt;
If dfu-util reports a message like the following, before it starts flashing:&amp;lt;pre&amp;gt;&lt;br /&gt;
Resetting USB...&lt;br /&gt;
not at least 2 device changes found ?!?&lt;br /&gt;
Lost device after RESET?&amp;lt;/pre&amp;gt; retry the command - it should work on a second run.&lt;br /&gt;
&lt;br /&gt;
If dfu-util complains about not being able to program the device while in runtime mode, do the following: while in the boot menu, remove the usb cable and insert it again. Depending on the version of uBoot it should display somewhere in the menu that it is now in DFU mode. Now dfu-util should be able to continue.&lt;br /&gt;
&lt;br /&gt;
If dfu-util is too slow on Windows, that's a known bug. A suggestion is to run Linux on a virtual box. An full root image 97MB that is 776Mbit, the USB 1.1 on the Neo FreeRunner is capable of either 1.5 Mbit/s (Low-Speed) and 12 Mbit/s (Full-Speed). So flashing it should take less than 9 minutes with low speed and a bit more than a minute with full-speed. Plus transfer overhead, plus decompression on the Neo side.&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
*[[Flashing the Neo 1973]] to the latest software.&lt;br /&gt;
*[[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Flashing Openmoko]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Dfu-util/fr</id>
		<title>Dfu-util/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Dfu-util/fr"/>
				<updated>2008-10-12T14:44:06Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Dfu-util}}&lt;br /&gt;
&lt;br /&gt;
{{warning|Dfu-util ne fonctionne pas correctement sur les [http://en.wikipedia.org/wiki/Big_endian#Endianness_and_hardware architectures gros-boutistes (big-endian)]}}&lt;br /&gt;
{{warning|Ne mettez pas à jour U-Boot si vous n'êtes pas sûr d'en avoir besoin}}&lt;br /&gt;
{{note|Il est nécessaire de connecter le neo directement sans utiliser de hub USB. Avec un hub des problèmes peuvent apparaître en particulier lors de la réinitialisation USB.}}&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
dfu-util est un programme qui sert à mettre à jour les logiciels des périphériques USB à partir d'un ordinateur via le protocole [[USB DFU]] (Universal Serial Bus Device Firmware Upgrade).&lt;br /&gt;
&lt;br /&gt;
Dans le cadre du projet Openmoko, on utilise ce programme pour communiquer avec notre gestionnaire de démarrage [[u-boot]] qui intègre la partie complémentaire du protocole DFU.&lt;br /&gt;
&lt;br /&gt;
En utilisant dfu-util et votre smartphone, vous pouvez :&lt;br /&gt;
* transférer et mettre à jour des [[partitions]] de la mémoire flash interne [[NAND]].&lt;br /&gt;
* transférer n'importe quoi vers la mémoire RAM&lt;br /&gt;
** cela peut être utilisé dans le cadre de cycles de développement rapide de code bas niveau comme les noyaux sans mettre à jour la mémoire flash&lt;br /&gt;
* lire les [[partitions]] de la mémoire interne NAND &lt;br /&gt;
** c'est un moyen facile et efficace d'effectuer des sauvegardes complètes de votre téléphone&lt;br /&gt;
&lt;br /&gt;
== Code source ==&lt;br /&gt;
En environnement Debian et Ubuntu, vous aurez besoin de libusb-dev :&lt;br /&gt;
 sudo apt-get install libusb-dev autogen pkg-config autotools-dev autoconf automake&lt;br /&gt;
&lt;br /&gt;
En environnement Fedora vous aurez besoin de libusb-devel et libusb-static :&lt;br /&gt;
 yum install libusb-devel libusb-static&lt;br /&gt;
&lt;br /&gt;
En environnement Gentoo vous pouvez utiliser emerge avec openmoko-dfu-util une fois que vous l'aurez autorisé dans la liste de paquets :&lt;br /&gt;
 echo &amp;quot;app-mobilephone/openmoko-dfu-util       **&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
 emerge -va app-mobilephone/openmoko-dfu-util&lt;br /&gt;
&lt;br /&gt;
Vous pouvez télécharger et construire la dernière version de dfu-util avec les commandes subversion suivantes :&lt;br /&gt;
 svn co http://svn.openmoko.org/trunk/src/host/dfu-util/&lt;br /&gt;
 cd dfu-util&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 ./configure&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
L'exécutable généré est dfu-util/src/dfu-util.&lt;br /&gt;
&lt;br /&gt;
== Exécutables ==&lt;br /&gt;
&lt;br /&gt;
Binary packages will be [http://downloads.openmoko.org/releases/Om2008.8-update/dfu-util made available] as part of the regular Openmoko builds. Currently, there is a dfu-util for Linux/i386.&lt;br /&gt;
&lt;br /&gt;
You need to make the downloaded file (dfu-util) executable with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x dfu-util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
you can then run it with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./dfu-util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
see below for full instructions.&lt;br /&gt;
&lt;br /&gt;
[http://packages.debian.org/dfu-util dfu-util is packaged] for Debian ''&amp;gt;= lenny'', so can be installed with: &amp;lt;tt&amp;gt;apt-get install dfu-util&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackfr-packs/ dfu-util is packaged] for '''Slackware''' (12.1), so can be installed with: &amp;lt;tt&amp;gt;pkgtool&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, there is a largely untested binary for Win32 (see [[Dfu-util-windows]]). Windows users can refer to [[No_Linux]] for a more tested approach.&lt;br /&gt;
&lt;br /&gt;
Compiling dfu-util on Mac:&lt;br /&gt;
* http://lists.openmoko.org/pipermail/community/2007-July/008438.html&lt;br /&gt;
* [[User:SNMoore]]&lt;br /&gt;
* [[MacOS_X#Flashing_to_your_device]]&lt;br /&gt;
&lt;br /&gt;
== Documentation de réference ==&lt;br /&gt;
&lt;br /&gt;
To run dfu-util, you need to have /proc/bus/usb mounted and working.  The terminal command &amp;quot;ls /proc/bus/usb&amp;quot; should return something similar to, &amp;quot;001  002  003  004  005  devices&amp;quot;, it shouldn't be empty. If it is empty, use this command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mount -t usbfs usbfs /proc/bus/usb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can permanently add it in your fstab so that it automatically mounts. You can use emacs to edit you fstab using the command &amp;quot;sudo emacs /etc/fstab -nw&amp;quot; in your terminal window. Add the below line to your fstab:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
usbfs   /proc/bus/usb   usbfs   defaults&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avant d'utiliser dfu-util ===&lt;br /&gt;
You'll need to boot your phone into the NAND Boot Menu:&lt;br /&gt;
* Ensure your phone is connected directly to the host computer by USB (not the USB-charger! :)&lt;br /&gt;
* Ensure that you execute all dfu-util commands as root&lt;br /&gt;
* Power off the phone&lt;br /&gt;
* Hold down AUX&lt;br /&gt;
* Press POWER until the Boot Menu appears&lt;br /&gt;
see also [[Booting the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
=== Options en ligne de commande ===&lt;br /&gt;
&lt;br /&gt;
==== --help ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Usage: dfu-util [options] ...&lt;br /&gt;
  -h --help                     Print this help message&lt;br /&gt;
  -V --version                  Print the version number&lt;br /&gt;
  -l --list                     List the currently attached DFU capable USB devices&lt;br /&gt;
  -d --device vendor:product    Specify Vendor/Product ID of DFU device&lt;br /&gt;
  -c --cfg config_nr            Specify the Configuration of DFU device&lt;br /&gt;
  -i --intf intf_nr             Specify the DFU Interface number&lt;br /&gt;
  -a --alt alt_nr               Specify the Altseting of the DFU Interface&lt;br /&gt;
  -t --transfer-size            Specify the number of bytes per USB Transfer&lt;br /&gt;
  -U --upload file              Read firmware from device into &amp;lt;file&amp;gt;&lt;br /&gt;
  -D --download file            Write firmware from &amp;lt;file&amp;gt; into device&lt;br /&gt;
  -R --reset                    Issue USB Reset signalling once we're finished&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== --list ====&lt;br /&gt;
&lt;br /&gt;
Using the --list option, you can list the available DFU capable devices, their configuration, interface and altsettings.&lt;br /&gt;
Below is an example for a current Neo1973 phone in u-boot '''Runtime Mode'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./dfu-util --list&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Found DFU Runtime: [0x1457:0x5119] devnum=0, cfg=0, intf=2, alt=0, name=&amp;quot;USB Device Firmware Upgrade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example for a current Neo1973 phone in u-boot '''DFU Mode'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./dfu-util --list&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=0, name=&amp;quot;RAM 0x32000000&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=1, name=&amp;quot;u-boot&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=2, name=&amp;quot;u-boot_env&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=3, name=&amp;quot;kernel&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=4, name=&amp;quot;splash&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=5, name=&amp;quot;rootfs&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This shows you six interfaces, all in '''configuration 0''' and '''interface 0''', with altsetting 0...5, for RAM and each [[partition]].  &lt;br /&gt;
&lt;br /&gt;
==== --device ====&lt;br /&gt;
&lt;br /&gt;
You can specify the USB Vendor and Product ID of the device you want to program:&lt;br /&gt;
&lt;br /&gt;
 dfu-util --device 0x1457:0x5119&lt;br /&gt;
&lt;br /&gt;
If you only have one standards-compliant DFU device attached to your PC, this is optional.  However, as soon as you have multiple DFU devices, dfu-util will detect this and abort, asking you to specify which device it shall use.&lt;br /&gt;
&lt;br /&gt;
==== --transfer-size ====&lt;br /&gt;
&lt;br /&gt;
Specifies the size of each individual USB transfer.  If you don't use it, the maximum possible size for your combination of host operating system and USB device is chosen (for optimal performance).&lt;br /&gt;
&lt;br /&gt;
==== --download ====&lt;br /&gt;
&lt;br /&gt;
download the given file into the device.&lt;br /&gt;
&lt;br /&gt;
==== --upload ====&lt;br /&gt;
&lt;br /&gt;
upload from the DFU device into the given file[name].&lt;br /&gt;
&lt;br /&gt;
{{note|Upload support is currently broken - [http://docs.openmoko.org/trac/ticket/676 #676]}}&lt;br /&gt;
&lt;br /&gt;
== Commandes fréquemment utilisées ==&lt;br /&gt;
&lt;br /&gt;
Pour l'instant, il n'y a pas de manuel à proprement parler. Mais vous pouvez utiliser les quelques exemples suivants :&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le rootfs ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a rootfs -R -D /path/to/openmoko-devel-image.jffs2&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le noyau ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a kernel -R -D /path/to/uImage&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le gestionnaire de démarrage ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a u-boot -R -D /path/to/u-boot.bin&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour l'image affichée au démarrage ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a u-splash -R -D /path/to/splash.gz&lt;br /&gt;
&lt;br /&gt;
see also [[Configuring_the_boot_splash_screens]]&lt;br /&gt;
&lt;br /&gt;
=== Copier un noyau dans la RAM ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a 0 -R -D /path/to/uImage&lt;br /&gt;
&lt;br /&gt;
Once this has finished, the kernel will be available at the default load address of 0x32000000 in Neo1973 RAM. &lt;br /&gt;
&lt;br /&gt;
{{note|You cannot transfer more than 2MB of data into RAM using this method}}&lt;br /&gt;
&lt;br /&gt;
== Notes de mise à jour ==&lt;br /&gt;
&lt;br /&gt;
If during flashing of an image using dfu-util you're consistently getting an error -110 message, check that the size of the destination NAND [[partition]] is big enough to hold the image.  For example the kernel partition is only 2 MB big by default and a kernel with debugging info compiled-in can often exceed this.  It's possible to change the partition layout to enlarge a given partition and shrink other partitions but you have to remember to reflash all partitions whose start offset has changed afterwards.  To adjust partitions layout use the ''mtdparts'' [[Bootloader|u-boot command]].&lt;br /&gt;
&lt;br /&gt;
If in turn you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality.  It is recommended that you always connect the phone directly to the host when using dfu-util.&lt;br /&gt;
&lt;br /&gt;
If dfu-util reports a message like the following, before it starts flashing:&amp;lt;pre&amp;gt;&lt;br /&gt;
Resetting USB...&lt;br /&gt;
not at least 2 device changes found ?!?&lt;br /&gt;
Lost device after RESET?&amp;lt;/pre&amp;gt; retry the command - it should work on a second run.&lt;br /&gt;
&lt;br /&gt;
If dfu-util complains about not being able to program the device while in runtime mode, do the following: while in the boot menu, remove the usb cable and insert it again. Depending on the version of uBoot it should display somewhere in the menu that it is now in DFU mode. Now dfu-util should be able to continue.&lt;br /&gt;
&lt;br /&gt;
If dfu-util is too slow on Windows, that's a known bug. A suggestion is to run Linux on a virtual box. An full root image 97MB that is 776Mbit, the USB 1.1 on the Neo FreeRunner is capable of either 1.5 Mbit/s (Low-Speed) and 12 Mbit/s (Full-Speed). So flashing it should take less than 9 minutes with low speed and a bit more than a minute with full-speed. Plus transfer overhead, plus decompression on the Neo side.&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
*[[Flashing the Neo 1973]] to the latest software.&lt;br /&gt;
*[[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Flashing Openmoko]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Dfu-util/fr</id>
		<title>Dfu-util/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Dfu-util/fr"/>
				<updated>2008-10-12T14:38:59Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{languages}}&lt;br /&gt;
&lt;br /&gt;
{{warning|Dfu-util ne fonctionne pas correctement sur les [http://en.wikipedia.org/wiki/Big_endian#Endianness_and_hardware architectures gros-boutistes (big-endian)]}}&lt;br /&gt;
{{warning|Ne mettez pas à jour U-Boot si vous n'êtes pas sûr d'en avoir besoin}}&lt;br /&gt;
{{note|Il est nécessaire de connecter le neo directement sans utiliser de hub USB. Avec un hub des problèmes peuvent apparaître en particulier lors de la réinitialisation USB.}}&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
dfu-util est un programme qui sert à mettre à jour les logiciels des périphériques USB à partir d'un ordinateur via le protocole [[USB DFU]] (Universal Serial Bus Device Firmware Upgrade).&lt;br /&gt;
&lt;br /&gt;
Dans le cadre du projet Openmoko, on utilise ce programme pour communiquer avec notre gestionnaire de démarrage [[u-boot]] qui intègre la partie complémentaire du protocole DFU.&lt;br /&gt;
&lt;br /&gt;
En utilisant dfu-util et votre smartphone, vous pouvez :&lt;br /&gt;
* transférer et mettre à jour des [[partitions]] de la mémoire flash interne [[NAND]].&lt;br /&gt;
* transférer n'importe quoi vers la mémoire RAM&lt;br /&gt;
** cela peut être utilisé dans le cadre de cycles de développement rapide de code bas niveau comme les noyaux sans mettre à jour la mémoire flash&lt;br /&gt;
* lire les [[partitions]] de la mémoire interne NAND &lt;br /&gt;
** c'est un moyen facile et efficace d'effectuer des sauvegardes complètes de votre téléphone&lt;br /&gt;
&lt;br /&gt;
== Code source ==&lt;br /&gt;
En environnement Debian et Ubuntu, vous aurez besoin de libusb-dev :&lt;br /&gt;
 sudo apt-get install libusb-dev autogen pkg-config autotools-dev autoconf automake&lt;br /&gt;
&lt;br /&gt;
En environnement Fedora vous aurez besoin de libusb-devel et libusb-static :&lt;br /&gt;
 yum install libusb-devel libusb-static&lt;br /&gt;
&lt;br /&gt;
En environnement Gentoo vous pouvez utiliser emerge avec openmoko-dfu-util une fois que vous l'aurez autorisé dans la liste de paquets :&lt;br /&gt;
 echo &amp;quot;app-mobilephone/openmoko-dfu-util       **&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
 emerge -va app-mobilephone/openmoko-dfu-util&lt;br /&gt;
&lt;br /&gt;
Vous pouvez télécharger et construire la dernière version de dfu-util avec les commandes subversion suivantes :&lt;br /&gt;
 svn co http://svn.openmoko.org/trunk/src/host/dfu-util/&lt;br /&gt;
 cd dfu-util&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 ./configure&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
L'exécutable généré est dfu-util/src/dfu-util.&lt;br /&gt;
&lt;br /&gt;
== Exécutables ==&lt;br /&gt;
&lt;br /&gt;
Binary packages will be [http://downloads.openmoko.org/releases/Om2008.8-update/dfu-util made available] as part of the regular Openmoko builds. Currently, there is a dfu-util for Linux/i386.&lt;br /&gt;
&lt;br /&gt;
You need to make the downloaded file (dfu-util) executable with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x dfu-util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
you can then run it with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./dfu-util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
see below for full instructions.&lt;br /&gt;
&lt;br /&gt;
[http://packages.debian.org/dfu-util dfu-util is packaged] for Debian ''&amp;gt;= lenny'', so can be installed with: &amp;lt;tt&amp;gt;apt-get install dfu-util&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackfr-packs/ dfu-util is packaged] for '''Slackware''' (12.1), so can be installed with: &amp;lt;tt&amp;gt;pkgtool&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, there is a largely untested binary for Win32 (see [[Dfu-util-windows]]). Windows users can refer to [[No_Linux]] for a more tested approach.&lt;br /&gt;
&lt;br /&gt;
Compiling dfu-util on Mac:&lt;br /&gt;
* http://lists.openmoko.org/pipermail/community/2007-July/008438.html&lt;br /&gt;
* [[User:SNMoore]]&lt;br /&gt;
* [[MacOS_X#Flashing_to_your_device]]&lt;br /&gt;
&lt;br /&gt;
== Documentation de réference ==&lt;br /&gt;
&lt;br /&gt;
To run dfu-util, you need to have /proc/bus/usb mounted and working.  The terminal command &amp;quot;ls /proc/bus/usb&amp;quot; should return something similar to, &amp;quot;001  002  003  004  005  devices&amp;quot;, it shouldn't be empty. If it is empty, use this command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mount -t usbfs usbfs /proc/bus/usb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can permanently add it in your fstab so that it automatically mounts. You can use emacs to edit you fstab using the command &amp;quot;sudo emacs /etc/fstab -nw&amp;quot; in your terminal window. Add the below line to your fstab:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
usbfs   /proc/bus/usb   usbfs   defaults&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avant d'utiliser dfu-util ===&lt;br /&gt;
You'll need to boot your phone into the NAND Boot Menu:&lt;br /&gt;
* Ensure your phone is connected directly to the host computer by USB (not the USB-charger! :)&lt;br /&gt;
* Ensure that you execute all dfu-util commands as root&lt;br /&gt;
* Power off the phone&lt;br /&gt;
* Hold down AUX&lt;br /&gt;
* Press POWER until the Boot Menu appears&lt;br /&gt;
see also [[Booting the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
=== Options en ligne de commande ===&lt;br /&gt;
&lt;br /&gt;
==== --help ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Usage: dfu-util [options] ...&lt;br /&gt;
  -h --help                     Print this help message&lt;br /&gt;
  -V --version                  Print the version number&lt;br /&gt;
  -l --list                     List the currently attached DFU capable USB devices&lt;br /&gt;
  -d --device vendor:product    Specify Vendor/Product ID of DFU device&lt;br /&gt;
  -c --cfg config_nr            Specify the Configuration of DFU device&lt;br /&gt;
  -i --intf intf_nr             Specify the DFU Interface number&lt;br /&gt;
  -a --alt alt_nr               Specify the Altseting of the DFU Interface&lt;br /&gt;
  -t --transfer-size            Specify the number of bytes per USB Transfer&lt;br /&gt;
  -U --upload file              Read firmware from device into &amp;lt;file&amp;gt;&lt;br /&gt;
  -D --download file            Write firmware from &amp;lt;file&amp;gt; into device&lt;br /&gt;
  -R --reset                    Issue USB Reset signalling once we're finished&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== --list ====&lt;br /&gt;
&lt;br /&gt;
Using the --list option, you can list the available DFU capable devices, their configuration, interface and altsettings.&lt;br /&gt;
Below is an example for a current Neo1973 phone in u-boot '''Runtime Mode'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./dfu-util --list&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Found DFU Runtime: [0x1457:0x5119] devnum=0, cfg=0, intf=2, alt=0, name=&amp;quot;USB Device Firmware Upgrade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example for a current Neo1973 phone in u-boot '''DFU Mode'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./dfu-util --list&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=0, name=&amp;quot;RAM 0x32000000&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=1, name=&amp;quot;u-boot&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=2, name=&amp;quot;u-boot_env&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=3, name=&amp;quot;kernel&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=4, name=&amp;quot;splash&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=5, name=&amp;quot;rootfs&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This shows you six interfaces, all in '''configuration 0''' and '''interface 0''', with altsetting 0...5, for RAM and each [[partition]].  &lt;br /&gt;
&lt;br /&gt;
==== --device ====&lt;br /&gt;
&lt;br /&gt;
You can specify the USB Vendor and Product ID of the device you want to program:&lt;br /&gt;
&lt;br /&gt;
 dfu-util --device 0x1457:0x5119&lt;br /&gt;
&lt;br /&gt;
If you only have one standards-compliant DFU device attached to your PC, this is optional.  However, as soon as you have multiple DFU devices, dfu-util will detect this and abort, asking you to specify which device it shall use.&lt;br /&gt;
&lt;br /&gt;
==== --transfer-size ====&lt;br /&gt;
&lt;br /&gt;
Specifies the size of each individual USB transfer.  If you don't use it, the maximum possible size for your combination of host operating system and USB device is chosen (for optimal performance).&lt;br /&gt;
&lt;br /&gt;
==== --download ====&lt;br /&gt;
&lt;br /&gt;
download the given file into the device.&lt;br /&gt;
&lt;br /&gt;
==== --upload ====&lt;br /&gt;
&lt;br /&gt;
upload from the DFU device into the given file[name].&lt;br /&gt;
&lt;br /&gt;
{{note|Upload support is currently broken - [http://docs.openmoko.org/trac/ticket/676 #676]}}&lt;br /&gt;
&lt;br /&gt;
== Commandes fréquemment utilisées ==&lt;br /&gt;
&lt;br /&gt;
Pour l'instant, il n'y a pas de manuel à proprement parler. Mais vous pouvez utiliser les quelques exemples suivants :&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le rootfs ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a rootfs -R -D /path/to/openmoko-devel-image.jffs2&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le noyau ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a kernel -R -D /path/to/uImage&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le gestionnaire de démarrage ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a u-boot -R -D /path/to/u-boot.bin&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour l'image affichée au démarrage ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a u-splash -R -D /path/to/splash.gz&lt;br /&gt;
&lt;br /&gt;
see also [[Configuring_the_boot_splash_screens]]&lt;br /&gt;
&lt;br /&gt;
=== Copier un noyau dans la RAM ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a 0 -R -D /path/to/uImage&lt;br /&gt;
&lt;br /&gt;
Once this has finished, the kernel will be available at the default load address of 0x32000000 in Neo1973 RAM. &lt;br /&gt;
&lt;br /&gt;
{{note|You cannot transfer more than 2MB of data into RAM using this method}}&lt;br /&gt;
&lt;br /&gt;
== Notes de mise à jour ==&lt;br /&gt;
&lt;br /&gt;
If during flashing of an image using dfu-util you're consistently getting an error -110 message, check that the size of the destination NAND [[partition]] is big enough to hold the image.  For example the kernel partition is only 2 MB big by default and a kernel with debugging info compiled-in can often exceed this.  It's possible to change the partition layout to enlarge a given partition and shrink other partitions but you have to remember to reflash all partitions whose start offset has changed afterwards.  To adjust partitions layout use the ''mtdparts'' [[Bootloader|u-boot command]].&lt;br /&gt;
&lt;br /&gt;
If in turn you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality.  It is recommended that you always connect the phone directly to the host when using dfu-util.&lt;br /&gt;
&lt;br /&gt;
If dfu-util reports a message like the following, before it starts flashing:&amp;lt;pre&amp;gt;&lt;br /&gt;
Resetting USB...&lt;br /&gt;
not at least 2 device changes found ?!?&lt;br /&gt;
Lost device after RESET?&amp;lt;/pre&amp;gt; retry the command - it should work on a second run.&lt;br /&gt;
&lt;br /&gt;
If dfu-util complains about not being able to program the device while in runtime mode, do the following: while in the boot menu, remove the usb cable and insert it again. Depending on the version of uBoot it should display somewhere in the menu that it is now in DFU mode. Now dfu-util should be able to continue.&lt;br /&gt;
&lt;br /&gt;
If dfu-util is too slow on Windows, that's a known bug. A suggestion is to run Linux on a virtual box. An full root image 97MB that is 776Mbit, the USB 1.1 on the Neo FreeRunner is capable of either 1.5 Mbit/s (Low-Speed) and 12 Mbit/s (Full-Speed). So flashing it should take less than 9 minutes with low speed and a bit more than a minute with full-speed. Plus transfer overhead, plus decompression on the Neo side.&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
*[[Flashing the Neo 1973]] to the latest software.&lt;br /&gt;
*[[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Flashing Openmoko]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Dfu-util/fr</id>
		<title>Dfu-util/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Dfu-util/fr"/>
				<updated>2008-10-12T14:38:27Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Dfu-util/fr</id>
		<title>Dfu-util/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Dfu-util/fr"/>
				<updated>2008-10-12T14:36:10Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: New page: {{languages}}  {{warning|Dfu-util ne fonctionne pas correctement sur les [http://en.wikipedia.org/wiki/Big_endian#Endianness_and_hardware architectures gros-boutistes (big-endian)]}} {{war...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{languages}}&lt;br /&gt;
&lt;br /&gt;
{{warning|Dfu-util ne fonctionne pas correctement sur les [http://en.wikipedia.org/wiki/Big_endian#Endianness_and_hardware architectures gros-boutistes (big-endian)]}}&lt;br /&gt;
{{warning|Ne mettez pas à jour U-Boot si vous n'êtes pas sûr d'en avoir besoin}}&lt;br /&gt;
{{note|Il est nécessaire de connecter le neo directement sans utiliser de hub USB. Avec un hub des problèmes peuvent apparaître en particulier lors de la réinitialisation USB.}}&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
dfu-util est un programme qui sert à mettre à jour les logiciels des périphériques USB à partir d'un ordinateur via le protocole [[USB DFU]] (Universal Serial Bus Device Firmware Upgrade).&lt;br /&gt;
&lt;br /&gt;
Dans le cadre du projet Openmoko, on utilise ce programme pour communiquer avec notre gestionnaire de démarrage [[u-boot]] qui intègre la partie complémentaire du protocole DFU.&lt;br /&gt;
&lt;br /&gt;
En utilisant dfu-util et votre smartphone, vous pouvez :&lt;br /&gt;
* transférer et mettre à jour des [[partitions]] de la mémoire flash interne [[NAND]].&lt;br /&gt;
* transférer n'importe quoi vers la mémoire RAM&lt;br /&gt;
** cela peut être utilisé dans le cadre de cycles de développement rapide de code bas niveau comme les noyaux sans mettre à jour la mémoire flash&lt;br /&gt;
* lire les [[partitions]] de la mémoire interne NAND &lt;br /&gt;
** c'est un moyen facile et efficace d'effectuer des sauvegardes complètes de votre téléphone&lt;br /&gt;
&lt;br /&gt;
== Code source ==&lt;br /&gt;
En environnement Debian et Ubuntu, vous aurez besoin de libusb-dev :&lt;br /&gt;
 sudo apt-get install libusb-dev autogen pkg-config autotools-dev autoconf automake&lt;br /&gt;
&lt;br /&gt;
En environnement Fedora vous aurez besoin de libusb-devel et libusb-static :&lt;br /&gt;
 yum install libusb-devel libusb-static&lt;br /&gt;
&lt;br /&gt;
En environnement Gentoo vous pouvez utiliser emerge avec openmoko-dfu-util une fois que vous l'aurez autorisé dans la liste de paquets :&lt;br /&gt;
 echo &amp;quot;app-mobilephone/openmoko-dfu-util       **&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
 emerge -va app-mobilephone/openmoko-dfu-util&lt;br /&gt;
&lt;br /&gt;
Vous pouvez télécharger et construire la dernière version de dfu-util avec les commandes subversion suivantes :&lt;br /&gt;
 svn co http://svn.openmoko.org/trunk/src/host/dfu-util/&lt;br /&gt;
 cd dfu-util&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 ./configure&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
L'exécutable généré est dfu-util/src/dfu-util.&lt;br /&gt;
&lt;br /&gt;
== Exécutables ==&lt;br /&gt;
&lt;br /&gt;
Binary packages will be [http://downloads.openmoko.org/releases/Om2008.8-update/dfu-util made available] as part of the regular Openmoko builds. Currently, there is a dfu-util for Linux/i386.&lt;br /&gt;
&lt;br /&gt;
You need to make the downloaded file (dfu-util) executable with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x dfu-util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
you can then run it with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./dfu-util&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
see below for full instructions.&lt;br /&gt;
&lt;br /&gt;
[http://packages.debian.org/dfu-util dfu-util is packaged] for Debian ''&amp;gt;= lenny'', so can be installed with: &amp;lt;tt&amp;gt;apt-get install dfu-util&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackfr-packs/ dfu-util is packaged] for '''Slackware''' (12.1), so can be installed with: &amp;lt;tt&amp;gt;pkgtool&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, there is a largely untested binary for Win32 (see [[Dfu-util-windows]]). Windows users can refer to [[No_Linux]] for a more tested approach.&lt;br /&gt;
&lt;br /&gt;
Compiling dfu-util on Mac:&lt;br /&gt;
* http://lists.openmoko.org/pipermail/community/2007-July/008438.html&lt;br /&gt;
* [[User:SNMoore]]&lt;br /&gt;
* [[MacOS_X#Flashing_to_your_device]]&lt;br /&gt;
&lt;br /&gt;
== Documentation de réference ==&lt;br /&gt;
&lt;br /&gt;
To run dfu-util, you need to have /proc/bus/usb mounted and working.  The terminal command &amp;quot;ls /proc/bus/usb&amp;quot; should return something similar to, &amp;quot;001  002  003  004  005  devices&amp;quot;, it shouldn't be empty. If it is empty, use this command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mount -t usbfs usbfs /proc/bus/usb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can permanently add it in your fstab so that it automatically mounts. You can use emacs to edit you fstab using the command &amp;quot;sudo emacs /etc/fstab -nw&amp;quot; in your terminal window. Add the below line to your fstab:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
usbfs   /proc/bus/usb   usbfs   defaults&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avant d'utiliser dfu-util ===&lt;br /&gt;
You'll need to boot your phone into the NAND Boot Menu:&lt;br /&gt;
* Ensure your phone is connected directly to the host computer by USB (not the USB-charger! :)&lt;br /&gt;
* Ensure that you execute all dfu-util commands as root&lt;br /&gt;
* Power off the phone&lt;br /&gt;
* Hold down AUX&lt;br /&gt;
* Press POWER until the Boot Menu appears&lt;br /&gt;
see also [[Booting the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
=== Options en ligne de commande ===&lt;br /&gt;
&lt;br /&gt;
==== --help ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Usage: dfu-util [options] ...&lt;br /&gt;
  -h --help                     Print this help message&lt;br /&gt;
  -V --version                  Print the version number&lt;br /&gt;
  -l --list                     List the currently attached DFU capable USB devices&lt;br /&gt;
  -d --device vendor:product    Specify Vendor/Product ID of DFU device&lt;br /&gt;
  -c --cfg config_nr            Specify the Configuration of DFU device&lt;br /&gt;
  -i --intf intf_nr             Specify the DFU Interface number&lt;br /&gt;
  -a --alt alt_nr               Specify the Altseting of the DFU Interface&lt;br /&gt;
  -t --transfer-size            Specify the number of bytes per USB Transfer&lt;br /&gt;
  -U --upload file              Read firmware from device into &amp;lt;file&amp;gt;&lt;br /&gt;
  -D --download file            Write firmware from &amp;lt;file&amp;gt; into device&lt;br /&gt;
  -R --reset                    Issue USB Reset signalling once we're finished&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== --list ====&lt;br /&gt;
&lt;br /&gt;
Using the --list option, you can list the available DFU capable devices, their configuration, interface and altsettings.&lt;br /&gt;
Below is an example for a current Neo1973 phone in u-boot '''Runtime Mode'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./dfu-util --list&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Found DFU Runtime: [0x1457:0x5119] devnum=0, cfg=0, intf=2, alt=0, name=&amp;quot;USB Device Firmware Upgrade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example for a current Neo1973 phone in u-boot '''DFU Mode'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./dfu-util --list&lt;br /&gt;
dfu-util - (C) 2007 by Openmoko Inc.&lt;br /&gt;
This program is Free Software and has ABSOLUTELY NO WARRANTY&lt;br /&gt;
&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=0, name=&amp;quot;RAM 0x32000000&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=1, name=&amp;quot;u-boot&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=2, name=&amp;quot;u-boot_env&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=3, name=&amp;quot;kernel&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=4, name=&amp;quot;splash&amp;quot;&lt;br /&gt;
Found DFU: [0x1457:0x5119] devnum=16, cfg=0, intf=0, alt=5, name=&amp;quot;rootfs&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This shows you six interfaces, all in '''configuration 0''' and '''interface 0''', with altsetting 0...5, for RAM and each [[partition]].  &lt;br /&gt;
&lt;br /&gt;
==== --device ====&lt;br /&gt;
&lt;br /&gt;
You can specify the USB Vendor and Product ID of the device you want to program:&lt;br /&gt;
&lt;br /&gt;
 dfu-util --device 0x1457:0x5119&lt;br /&gt;
&lt;br /&gt;
If you only have one standards-compliant DFU device attached to your PC, this is optional.  However, as soon as you have multiple DFU devices, dfu-util will detect this and abort, asking you to specify which device it shall use.&lt;br /&gt;
&lt;br /&gt;
==== --transfer-size ====&lt;br /&gt;
&lt;br /&gt;
Specifies the size of each individual USB transfer.  If you don't use it, the maximum possible size for your combination of host operating system and USB device is chosen (for optimal performance).&lt;br /&gt;
&lt;br /&gt;
==== --download ====&lt;br /&gt;
&lt;br /&gt;
download the given file into the device.&lt;br /&gt;
&lt;br /&gt;
==== --upload ====&lt;br /&gt;
&lt;br /&gt;
upload from the DFU device into the given file[name].&lt;br /&gt;
&lt;br /&gt;
{{note|Upload support is currently broken - [http://docs.openmoko.org/trac/ticket/676 #676]}}&lt;br /&gt;
&lt;br /&gt;
== Commandes fréquemment utilisées ==&lt;br /&gt;
&lt;br /&gt;
Pour l'instant, il n'y a pas de manuel à proprement parler. Mais vous pouvez utiliser les quelques exemples suivants :&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le rootfs ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a rootfs -R -D /path/to/openmoko-devel-image.jffs2&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le noyau ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a kernel -R -D /path/to/uImage&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le gestionnaire de démarrage ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a u-boot -R -D /path/to/u-boot.bin&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour l'image affichée au démarrage ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a u-splash -R -D /path/to/splash.gz&lt;br /&gt;
&lt;br /&gt;
see also [[Configuring_the_boot_splash_screens]]&lt;br /&gt;
&lt;br /&gt;
=== Copier un noyau dans la RAM ===&lt;br /&gt;
&lt;br /&gt;
 dfu-util -a 0 -R -D /path/to/uImage&lt;br /&gt;
&lt;br /&gt;
Once this has finished, the kernel will be available at the default load address of 0x32000000 in Neo1973 RAM. &lt;br /&gt;
&lt;br /&gt;
{{note|You cannot transfer more than 2MB of data into RAM using this method}}&lt;br /&gt;
&lt;br /&gt;
== Notes de mise à jour ==&lt;br /&gt;
&lt;br /&gt;
If during flashing of an image using dfu-util you're consistently getting an error -110 message, check that the size of the destination NAND [[partition]] is big enough to hold the image.  For example the kernel partition is only 2 MB big by default and a kernel with debugging info compiled-in can often exceed this.  It's possible to change the partition layout to enlarge a given partition and shrink other partitions but you have to remember to reflash all partitions whose start offset has changed afterwards.  To adjust partitions layout use the ''mtdparts'' [[Bootloader|u-boot command]].&lt;br /&gt;
&lt;br /&gt;
If in turn you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality.  It is recommended that you always connect the phone directly to the host when using dfu-util.&lt;br /&gt;
&lt;br /&gt;
If dfu-util reports a message like the following, before it starts flashing:&amp;lt;pre&amp;gt;&lt;br /&gt;
Resetting USB...&lt;br /&gt;
not at least 2 device changes found ?!?&lt;br /&gt;
Lost device after RESET?&amp;lt;/pre&amp;gt; retry the command - it should work on a second run.&lt;br /&gt;
&lt;br /&gt;
If dfu-util complains about not being able to program the device while in runtime mode, do the following: while in the boot menu, remove the usb cable and insert it again. Depending on the version of uBoot it should display somewhere in the menu that it is now in DFU mode. Now dfu-util should be able to continue.&lt;br /&gt;
&lt;br /&gt;
If dfu-util is too slow on Windows, that's a known bug. A suggestion is to run Linux on a virtual box. An full root image 97MB that is 776Mbit, the USB 1.1 on the Neo FreeRunner is capable of either 1.5 Mbit/s (Low-Speed) and 12 Mbit/s (Full-Speed). So flashing it should take less than 9 minutes with low speed and a bit more than a minute with full-speed. Plus transfer overhead, plus decompression on the Neo side.&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
*[[Flashing the Neo 1973]] to the latest software.&lt;br /&gt;
*[[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Flashing Openmoko]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Thank_You_green_card/fr</id>
		<title>Thank You green card/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Thank_You_green_card/fr"/>
				<updated>2008-10-11T17:10:36Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette carte présente le texte suivant côté face :&lt;br /&gt;
&lt;br /&gt;
Merci de vos efforts pour nous aider à libérer le téléphone portable.&lt;br /&gt;
&lt;br /&gt;
Et côté pile, la citation de Lao Tseu suivante :&lt;br /&gt;
&lt;br /&gt;
Trente rayons s'attachent au moyeu de la roue&amp;lt;br /&amp;gt;&lt;br /&gt;
Mais c'est le trou central qui la rend utile&amp;lt;br /&amp;gt;&lt;br /&gt;
Construisez un navire&amp;lt;br /&amp;gt;&lt;br /&gt;
C'est l'espace intérieur qui le rend utile&amp;lt;br /&amp;gt;&lt;br /&gt;
Enlevez portes et fenêtres d'une pièce&amp;lt;br /&amp;gt;&lt;br /&gt;
Ce sont les trous qui la rendent utile&amp;lt;br /&amp;gt;&lt;br /&gt;
Les profits viennent de ce qui se voit&amp;lt;br /&amp;gt;&lt;br /&gt;
L'utilité de ce qui ne se voit&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lao Tseu&lt;br /&gt;
&lt;br /&gt;
[[category:Openmoko Inc]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Automatic_emulation_in_Ubuntu</id>
		<title>Automatic emulation in Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Automatic_emulation_in_Ubuntu"/>
				<updated>2008-10-11T15:34:43Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Automatic emulation in Ubuntu}}&lt;br /&gt;
[[Image:Qemu-ubuntu1.png|thumb|emulation of Openmoko running on Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
This is a tutorial for getting an emulation environment on an Ubuntu system.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
You have to know that there is a great tool to get it running on a linux system, namely the [[MokoMakefile]]. This is a sort of wrapper round several instructions, so it is easy to set up and maintain a development environment. If you build the whole [[MokoMakefile]], you will need approximately 12GB, a swap+ram memory of about 1GB and minimum 5 hours time. But we will only build it for Qemu (the emulator that I will use) and that needs (on my system) only 890mb and a 15 min of your time.&lt;br /&gt;
&lt;br /&gt;
To get it running, you will have to tweak your ubuntu a little bit (This will not damage other programs, everything will work as before).&lt;br /&gt;
* Configure your sources (System -&amp;gt; Administration -&amp;gt; Software Sources) to include:&lt;br /&gt;
** Canonical-supported Open Source software (main)&lt;br /&gt;
** Community-maintained Open Source software (universe)&lt;br /&gt;
* Open your terminal (Applications -&amp;gt; Accessories -&amp;gt; Terminal).&lt;br /&gt;
* Enter following command and select NO when it asks to install dash as /bin/sh (You will have to enter your password)&lt;br /&gt;
    sudo dpkg-reconfigure dash&lt;br /&gt;
* Install the needed programs on Hardy Heron 8.04 (You will have to enter your password):&lt;br /&gt;
     sudo apt-get install monotone git-core git-svn git-email \&lt;br /&gt;
 git-cvs git-arch gitk python-dev ccache m4 sed bison make cvs gawk \&lt;br /&gt;
 libc6-dev g++ subversion sharutils docbook openjade quilt libmpfr-dev \&lt;br /&gt;
 libpcre3-dev texinfo texi2html libboost-date-time-dev libboost-filesystem-dev \&lt;br /&gt;
 libboost-regex-dev libboost-test-dev libboost-dev zlib1g-dev build-essential \&lt;br /&gt;
 dh-make debhelper devscripts gcc-3.4 lynx netpbm libsdl1.2-dev dosfstools \&lt;br /&gt;
 help2man python-psyco lynx&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
*For older versions (git-svn git-email git-cvs git-arch gitk are replaced by cogito)&lt;br /&gt;
    sudo apt-get install monotone git-core cogito python-dev ccache m4 sed bison \&lt;br /&gt;
 make cvs gawk libc6-dev g++ subversion sharutils docbook openjade quilt \&lt;br /&gt;
 libmpfr-dev libpcre3-dev texinfo texi2html libboost-date-time-dev \&lt;br /&gt;
 libboost-filesystem-dev libboost-regex-dev libboost-test-dev libboost-dev \&lt;br /&gt;
 zlib1g-dev build-essential dh-make debhelper devscripts gcc-3.4 netpbm \&lt;br /&gt;
 libsdl1.2-dev dosfstools help2man python-psyco lynx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila your system is ready to get the install Openmoko.&lt;br /&gt;
&lt;br /&gt;
Now we will install Openmoko in a directory by downloading the MokoMakefile in it and build it.&lt;br /&gt;
* Create a directory and go into the directory:&lt;br /&gt;
    mkdir openmoko&lt;br /&gt;
    cd openmoko&lt;br /&gt;
* Get the MokoMakefile (Currently down due to fires in California. Use the link below instead):&lt;br /&gt;
    wget http://www.rwhitby.net/files/openmoko/Makefile &lt;br /&gt;
&lt;br /&gt;
If that doesn't work, try &lt;br /&gt;
&lt;br /&gt;
    wget http://svn.projects.openmoko.org/svnroot/mokomakefile/trunk/Makefile&lt;br /&gt;
&lt;br /&gt;
* Make the MokoMakefile and tell it, you want to install it for qemu:&lt;br /&gt;
    make qemu&lt;br /&gt;
&lt;br /&gt;
This will download the necessary files of the latest release and build them following the MokoMakefile. After that it will start into the emulator for the first time. Voila you have now successfully installed openmoko onto your ubuntu system.&lt;br /&gt;
&lt;br /&gt;
===Creating a menu item for Openmoko (optional)===&lt;br /&gt;
&lt;br /&gt;
You can create a menu item for starting Openmoko by doing the following:&lt;br /&gt;
&lt;br /&gt;
*Open the terminal (Applications-&amp;gt;Accessories-&amp;gt;Terminal)&lt;br /&gt;
&lt;br /&gt;
*Go to the openmoko directory:&lt;br /&gt;
&lt;br /&gt;
 cd ~/openmoko&lt;br /&gt;
&lt;br /&gt;
*open the file moko.sh with '''gedit''':&lt;br /&gt;
&lt;br /&gt;
 gedit moko.sh&lt;br /&gt;
&lt;br /&gt;
*insert the following text into the file:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd ~/openmoko&lt;br /&gt;
 make run-qemu&lt;br /&gt;
&lt;br /&gt;
*Press &amp;quot;save&amp;quot; and close gedit&lt;br /&gt;
&lt;br /&gt;
*then run the following commands:&lt;br /&gt;
 chmod +x moko.sh&lt;br /&gt;
 alacarte&lt;br /&gt;
&lt;br /&gt;
*and add a menu item with these values:&lt;br /&gt;
**Name: Openmoko&lt;br /&gt;
**Command: ~/openmoko/moko.sh&lt;br /&gt;
&lt;br /&gt;
**If you want to you can add an appropriate icon by clicking on the image on the top left. You can download some useful images here:&lt;br /&gt;
***[http://wiki.openmoko.org/wiki/Artwork Artwork in the Openmoko wiki]&lt;br /&gt;
***[http://openclipart.org/media/tags/openmoko Openmoko at the Open Clip Art Library]&lt;br /&gt;
&lt;br /&gt;
==Help with running Openmoko in Qemu==&lt;br /&gt;
&lt;br /&gt;
If you have created a menu item you can start Openmoko through the applications menu of Ubuntu. If you have not, you can start it by:&lt;br /&gt;
&lt;br /&gt;
* Open your terminal (Applications-&amp;gt;Accessories-&amp;gt;Terminal).&lt;br /&gt;
* Go to the directory:&lt;br /&gt;
    cd openmoko&lt;br /&gt;
* starting with the MokoMakefile&lt;br /&gt;
    make run-qemu&lt;br /&gt;
&lt;br /&gt;
The first screen of Openmoko will show a nice picture of the Openmoko logo which will be followed&lt;br /&gt;
almost immediately by the BOOT MENU, this is done by the bootloader.&lt;br /&gt;
&lt;br /&gt;
In the BOOT MENU you can choose different options. To select an option you have to press enter (=aux) and to execute it, hit space (=power). The default selection will boot Openmoko.&lt;br /&gt;
Thus if the BOOT MENU shows, you just have to hit the space bar and the phone software will load.&lt;br /&gt;
&lt;br /&gt;
While booting Openmoko the progress will be shown in text mode. Depending on your computer's performance it might take a while (some minutes even) to complete the boot. When complete you will see the graphical interface as will be shown on the phone itself (but slightly larger due to  the larger pixelsize of your screen).&lt;br /&gt;
&lt;br /&gt;
A few pointers on using Openmoko:&lt;br /&gt;
* You can select the icon that looks like &amp;quot;+&amp;quot; for a list of applications you can run.&lt;br /&gt;
* You can select the icon that looks like &amp;quot;three gears&amp;quot; for a list of applications that are running now. Here you can also terminate unwanted applications when you are unable to do so from within the application itself.&lt;br /&gt;
* You can select the icon that looks like a &amp;quot;house&amp;quot; to get back to the first home screen.&lt;br /&gt;
* The statusbar at the top is always shown and by clicking on the top-left corner you can switch to another application that is already running. The &amp;quot;Home&amp;quot; application is always running and clicking on it will bring you back to the home screen.&lt;br /&gt;
&lt;br /&gt;
See [[Qemu]] for more advanced information on running Openmoko in Qemu.&lt;br /&gt;
&lt;br /&gt;
==Installing ipk packages==&lt;br /&gt;
First you need a xxx.ipk package, see [[toolchain]] on how to compile an application for the ARM CPU and create the package.&lt;br /&gt;
&lt;br /&gt;
Note that if at this point you have the Openmoko Qemu running, it is probably wise to terminate it first.&lt;br /&gt;
Then you can install the xxx.ipk package for access by the Qemu emulator with:&lt;br /&gt;
&lt;br /&gt;
 cd openmoko&lt;br /&gt;
 mkdir -p build/tmp/deploy/glibc/ipk/a&lt;br /&gt;
 cp xxx.ipk build/tmp/deploy/glibc/ipk/a/xxx_a.ipk&lt;br /&gt;
 make qemu-copy-package-xxx&lt;br /&gt;
&lt;br /&gt;
''Note: for some reason qemu-copy-package-xxx looks for above source file.&lt;br /&gt;
Maybe this part can be improved, or a different command can overcome the problem of creating this directory.''&lt;br /&gt;
&lt;br /&gt;
When above make command was succesful the next time you start Openmoko Qemu,&lt;br /&gt;
you still need to make the installed application available in the application list.&lt;br /&gt;
For this you can select from within Openmoko the terminal application&lt;br /&gt;
(Select icon that looks like &amp;quot;+&amp;quot; for the list of available applicaitons, select &amp;quot;Applications&amp;quot; and select the &amp;quot;Terminal&amp;quot;).&lt;br /&gt;
In this terminal double-click, so you can type in the commands:&lt;br /&gt;
 opkg install /media/mmcblk0/xxx_a.ipk&lt;br /&gt;
 exit&lt;br /&gt;
After the &amp;quot;exit&amp;quot; command you should return to the Task list, in which the newly&lt;br /&gt;
added application should be listed under a name which was choosen when building the ipk package.&lt;br /&gt;
&lt;br /&gt;
== Updating Openmoko==&lt;br /&gt;
* Open your terminal (Applications-&amp;gt;Accessories-&amp;gt;Terminal).&lt;br /&gt;
* Go to the directory:&lt;br /&gt;
    cd openmoko&lt;br /&gt;
* Update with the MokoMakefile&lt;br /&gt;
    make qemu&lt;br /&gt;
&lt;br /&gt;
== Configurations/OS ==&lt;br /&gt;
&lt;br /&gt;
=== OS X/Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
I'm running the Neo-Qemu in the Qtopia-Image in VMWare Fusion on a MacBook Pro (2x2.6GHz, 4GB), so it's an emulator in an emulator. Speed is acceptable. Be sure to look at the end of this page for the right filesystem image to flash. A main point in compiling Neo-Qemu is the gcc 3.x. For some reason it did not install on my Mac, but I think I can live with the emu-in-emu solution for a while.&lt;br /&gt;
&lt;br /&gt;
--[[User:Cweise|moerkby]] 11:00, 9 October 2008 (UTC) &lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
If you have any problems, just add it here&amp;lt;br&amp;gt;&lt;br /&gt;
--[[User:Twistedclone|Twistedclone]]&lt;br /&gt;
&lt;br /&gt;
OS: Ubuntu 8.04&lt;br /&gt;
I run the following sequence of commands to run my QEMU &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn checkout https://svn.openmoko.org/trunk/src/host/qemu-neo1973&lt;br /&gt;
$ cd qemu-neo1973&lt;br /&gt;
$ sudo aptitude install gcc-3.4 libsdl1.2-dev lynx netpbm&lt;br /&gt;
$ ./configure --target-list=arm-softmmu --cc=/usr/bin/gcc-3.4&lt;br /&gt;
$ make&lt;br /&gt;
$ openmoko/download.sh&lt;br /&gt;
$ openmoko/flash.sh&lt;br /&gt;
$ arm-softmmu/qemu-system-arm -M gta01 -m 130 -mtdblock openmoko/openmoko-flash.image -kernel openmoko/openmoko-kernel.bin -usb -show-cursor&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Emulator appears with Boot menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
While Booting it get hanged out with the following errors&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
_______________________Errors or Emulator Screen_______________&lt;br /&gt;
sc32410-sdi sc32410-sdi : CMD[FAIL(-100)] #2 op:CMD8&lt;br /&gt;
error: command timeout&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
Freeing init memory: 128kb&lt;br /&gt;
/bin/sh: can't access tty; Job Control Tunned off&lt;br /&gt;
/ #JFFS2 notice: (227) check_node_data: wrong data CRC in data node at 0x00899b4c: read d5ebdb50 calculated 0x880615c2&lt;br /&gt;
JFFS2 warning: (227) jffs2_do_read_inode_internal: Truncating into #1111 to 71415&lt;br /&gt;
56 bytes failed because it only had 2510848 bytes to start with &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_______________Errors on Terminal_______________&lt;br /&gt;
qasim@qasim-desktop:~/openmoko/qemu-neo1973$ arm-softmmu/qemu-system-arm -M gta01 -m 130 -mtdblock openmoko/openmoko-flash.image -kernel openmoko/openmoko-kernel.bin -usb -show-cursor&lt;br /&gt;
neo_gsm_switch: GSM disabled.&lt;br /&gt;
pcf_write: charging in Qualification Mode.&lt;br /&gt;
pcf_write: charge voltage 4.20V.&lt;br /&gt;
neo_lcd_rst_switch: LCD reset.&lt;br /&gt;
jbt6k74_command: Display on.&lt;br /&gt;
neo_vib_switch: Buzz, buzz.&lt;br /&gt;
neo_vib_switch: Vibrator stopped.&lt;br /&gt;
neo_bl_switch: LCD Backlight now on.&lt;br /&gt;
s3c_timers_write: Bad register 0x40&lt;br /&gt;
neo_bl_intensity: LCD Backlight now at 20/64.&lt;br /&gt;
s3c_adc_write: Bad register 0x8&lt;br /&gt;
s3c_mmci_writew: Bad register 0x38&lt;br /&gt;
s3c_mmci_writew: Bad register 0x38&lt;br /&gt;
s3c_mmci_writew: Bad register 0x38&lt;br /&gt;
s3c_mmci_writew: Bad register 0x38&lt;br /&gt;
s3c_mmci_writew: Bad register 0x38&lt;br /&gt;
s3c_mmci_writew: Bad register 0x38&lt;br /&gt;
s3c_mmci_writew: Bad register 0x38&lt;br /&gt;
s3c_mmci_writew: Bad register 0x38&lt;br /&gt;
s3c_mmci_writew: Bad register 0x38&lt;br /&gt;
s3c_mmci_writew: Bad register 0x38&lt;br /&gt;
neo_bl_intensity: LCD Backlight now at 0/64.&lt;br /&gt;
_____________________________________________&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Does anyone has any idea how to fix this up?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After issuing the command 'make qemu' in Gutsy, the installation eventually borks with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    make[2]: Leaving directory `/usr/local/src/openmoko/build/qemu/arm-softmmu'&lt;br /&gt;
    make[1]: Leaving directory `/usr/local/src/openmoko/build/qemu'&lt;br /&gt;
    [ -e images/openmoko ] || mkdir -p images/openmoko&lt;br /&gt;
    ln -sf `pwd`/openmoko/trunk/src/host/qemu-neo1973/openmoko/env images/openmoko/env&lt;br /&gt;
    ( cd images &amp;amp;&amp;amp; ../openmoko/trunk/src/host/qemu-neo1973/openmoko/download.sh )&lt;br /&gt;
        Retrieving available builds list...&lt;br /&gt;
        Kernel is... not found&lt;br /&gt;
    make: *** [download-images] Error 255&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[User:BioGeek|BioGeek]] 02:03, 27 March 2008 (CET)&lt;br /&gt;
&lt;br /&gt;
Do you still have the problem?&lt;br /&gt;
&lt;br /&gt;
[[User:Dolfje|Dolfje]] 20:54, 9 April 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I tested this today (uImage-2.6.24+svnr4301-r4251-r5-om-gta01.bin) on '''hardy'''. Qemu doesn't compile with gcc4 you need:&lt;br /&gt;
    sudo aptitude install gcc-3.4&lt;br /&gt;
After the init process started, became the emulation extremely slow. It takes more than 15 minutes&lt;br /&gt;
to boot the GUI on 2GHz CPU and you have to klick &amp;amp; hold the mouse several seconds to see&lt;br /&gt;
any visual response. It would be great if there was a easy way to get a shell,&lt;br /&gt;
i.e. why the serial port (ctrl+shift-3) doesn't have a getty &amp;amp; co attached?&amp;lt;br /&amp;gt;&lt;br /&gt;
Can anybody confirm this?&lt;br /&gt;
--[[User:Captn|Captn]] 12:29, 18 April 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hi, just to tell that the ''Install ipkg package'' part is not effective since there is no room to install the .ipk on the QEmu (say ROM image) device.&lt;br /&gt;
&lt;br /&gt;
Have any idea on how to get over it or to enable the automatic memory allocation on QEmu if allowed?&lt;br /&gt;
&lt;br /&gt;
--[[User:VdeGrandpré|VdeGrandpré]] 17:37, 12 mai 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I have compiled the Qemu source just fine on Ubuntu Hardy, but when the emulator started it showed up with an unusual QT theme. After the nice picture with the two boots there appeared a message line &amp;quot;No network&amp;quot; in the middle of the screen and 4 icons (cellphone, Q, star and lock). The buttons below the icons are unresponsive. They show a change in the background color when I click them with the mouse, but then nothing happens. Even if I press them for several seconds as noted above. Has the Openmoko theme been accidentally replaced by a non-working QT theme or did I configure something wrong on my end?&lt;br /&gt;
&lt;br /&gt;
Thomas&lt;br /&gt;
&lt;br /&gt;
--[[User:Xaos|Xaos]] 15:06, July 7th, 2008 (CST)&lt;br /&gt;
&lt;br /&gt;
Thomas, I got the same thing when I tried.  On the #openmoko IRC channel, lindi and I (with help) got this to work:&lt;br /&gt;
&lt;br /&gt;
1. After building qemu with &amp;quot;make qemu&amp;quot;, close the emulator and:&lt;br /&gt;
&lt;br /&gt;
2. modify the file: build/qemu/openmoko/env as follows (you may need to adjust these values as time goes by for different images):&lt;br /&gt;
    kernel_wildcard=&amp;quot;testing-om-gta01-20081008.uImage.bin&amp;quot;&lt;br /&gt;
    # rootfs_wildcard=&amp;quot;Open?oko-openmoko-*image*-om-gta01.rootfs.jffs2&amp;quot;&lt;br /&gt;
    rootfs_wildcard=&amp;quot;testing-om-gta01-20081008.rootfs.jffs2&amp;quot;&lt;br /&gt;
    uboot_wildcard=&amp;quot;gta01bv4-u-boot.bin&amp;quot;&lt;br /&gt;
    #download_dir=&amp;quot;http://buildhost.openmoko.org/daily/neo1973/deploy/glibc/images/neo1973/&amp;quot;&lt;br /&gt;
    download_dir=&amp;quot;http://downloads.openmoko.org/daily/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Download the above .jffs2 file (build the URL with the download_dir and the rootfs_wildcard values) to images/openmoko/&lt;br /&gt;
&lt;br /&gt;
4. run &amp;quot;make flash-qemu-official&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. run &amp;quot;make run-qemu-snapshot&amp;quot;  or &amp;quot;make run-qemu&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Schafdog|schafdog]] 15:10, July 1th 2008 (CST)&lt;br /&gt;
&lt;br /&gt;
Built succesfully on a Fedora Linux 9. Trying to run on the linux box but with the XServer on OS X. It doesn't react to any keypress. Now tried it locally. The keypress works, but stil having some issues to get openmoko up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ubuntu 8.04 Hardy Heron, it was also necessary to &amp;quot;apt-get install libgnutls-dev&amp;quot;.&lt;br /&gt;
--[[User:Newkirk|Newkirk]] 20:37, 20 July 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
When I try to download .jffs2 file, it's write &amp;quot;404. File is not found&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is not look like as Openmoko on screens:&lt;br /&gt;
&lt;br /&gt;
[[Image:Openmoko2.png|thumb|Wrong image?|left]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;/&amp;gt;&lt;br /&gt;
[[User:Robotex|Robotex]] 02:43, 7 August 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:David]] 12:57, 28 August 2008&lt;br /&gt;
I have problems with the step no. 3:&lt;br /&gt;
3. Download the above .jffs2 file (build the URL with the download_dir and the rootfs_wildcard values) to images/openmoko/&lt;br /&gt;
the webpages:&lt;br /&gt;
-http://downloads.openmoko.org/releases/Om2007.11/images/&lt;br /&gt;
-[http://buildhost.openmoko.org/daily/neo1973/200807/20080706/]&lt;br /&gt;
doesn't exist anymore..&lt;br /&gt;
&lt;br /&gt;
ditto, still. can I just make all or sumpin and make it locally from source?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Wolfsolver]]&lt;br /&gt;
Hi all,&lt;br /&gt;
I found the file on http://buildhost.automated.it/OM2007.2/, so use following lines in file build/qemu/openmoko/env&lt;br /&gt;
  rootfs_wildcard=&amp;quot;Openmoko-openmoko-devel-image-glibc-ipk-P1-Snapshot-20080721-om-gta01.rootfs.jffs2&amp;quot;&lt;br /&gt;
  download_dir=&amp;quot;http://buildhost.automated.it/OM2007.2/&amp;quot;&lt;br /&gt;
and all works....&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_under_QEMU/fr</id>
		<title>Openmoko under QEMU/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_under_QEMU/fr"/>
				<updated>2008-10-11T14:25:37Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Scripts utiles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Openmoko under QEMU}}&lt;br /&gt;
[http://en.wikipedia.org/wiki/Qemu QEMU] peut être utilisé de trois façons différentes pour tester Openmoko. Suivant le pourquoi de votre utilisation de l'émulateur, vous devriez choisir la plateforme cible.&lt;br /&gt;
&lt;br /&gt;
*''PC'' - Openmoko peut être utilisé pour s'exécuter sur du matériel i383, 32 ou 64 bits et est probablement la façon la plus rapide de procéder pour tester Openmoko dans le but d'évaluer ce à quoi il ressemble et ce que l'on peut en faire. Dans ce scénario, QEMU ne servirait qu'à isoler votre installation d'Openmoko du système normal de l'ordinateur (ou si vous n'utilisez pas un système UNIX). Qemu propose une façon non intrusive de disposer d'un linux fonctionnel rapidement. Plus d'informations sont disponibles dans la [[FAQ]] et [[Getting Openmoko working on host with Xoo|ici]].&lt;br /&gt;
&lt;br /&gt;
*''Integrator/CP'' - Ceci est la machine ARM par défaut que QEMU connait. Cette cible est utilisée avec MACHINE=&amp;quot;qemuarm&amp;quot; et est suffisante pour exécuter l'image rootfs originelle d'Openmoko. Cependant, cela n'émule aucun [[:Category:Neo1973 Hardware | matériel du Neo1973]] à l'exception le CPU minimal. Plus d'informations dans la [[FAQ#Q:_Is_there_an_emulator_available_for_Openmoko.3F|FAQ]].&lt;br /&gt;
&lt;br /&gt;
*''Neo1973'' - L'arbre Qemu est disponible des débots Openmoko et est capable d'amuler la plupart (mais pas la totalité) du matériel actuel du [[Neo1973]] (GTA01). De plus, l'émulation du Neo FreeRunner est en cours de travail. Lorsque toutes les parties de l'émulateur seront matures, notre code sera uploadé et fusionné avec la branche principale de développement de l'arbre Qemu.&lt;br /&gt;
&lt;br /&gt;
== Emulation du Neo1973 ==&lt;br /&gt;
&lt;br /&gt;
Cette cible devrait normalement exécuter les images rootfs originelle d'Openmoko, mais devrait aussi être capable d'exécuter le u-boot et les images noyaux utilisés par le Neo 1973 (GTA01) sans modification. Hormis les autres différences, vous allez remarquer qu'entre cette approche et celle la cible Integrator/CP, vous aurez une résolution d'écran correcte, de (fausses) lecture de batterie, et d'autres joyeusetés. A l'heure actuelle, les points manquant à l'émulateur sont : [[Hardware:AGPS|AGPS]] et le [[Bluetooth]] - ces choses devraient fonctionner, tout comme l'utilisabilité générale. Même avec ces choses manquantes, Qemu devrait fournir une aide substentielle aux développeurs pour le deverminage du noyau et du u-boot.&lt;br /&gt;
&lt;br /&gt;
Ce que Qemu '''*ne peut pas*''' être utilisé pour, et probablement aucnu autre émulateur, sont les mesures de vitesses et l'évaluation du sentiment général de performance d'Openmoko. Le code s'exécute dans qemu avec la vitesse maximum que votre ordinateur hôte peut fournir avec une latence correspondant à la transmission du code de la cible au code de l'hôte, et ce surcoût n'est pas le même pour chaque instruction. Cela signifit que mêm esi votre Neo virtuel fournit environ 100 BogoMIPS (Qui est la vitesse d'un Neo réel), les différentes actions effectuées dans l'émulateur ne s'exécuteront pas à la même vitesse. Sur la plupart des PC, vous remarquerez que le Neo virtuel est plus rapide que le réel (Les opérations Audio devraient être l'une des exceptions).&lt;br /&gt;
&lt;br /&gt;
=== Quel matériel est supporté ? ===&lt;br /&gt;
&lt;br /&gt;
Ebauche du status pour chaque composant nécessitant une émulation est disponible sur la page : [[:Category:Neo1973 Hardware | Neo1973 Hardware]].&lt;br /&gt;
{|&lt;br /&gt;
! Matériel !! Status !! Notes d'utilisation&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|S3C2410A Processeur&lt;br /&gt;
|-&lt;br /&gt;
|Coeur ARM920T || Fonctionne || Déjà dans la branche principale de QEMU.&lt;br /&gt;
|-&lt;br /&gt;
|Fonctionnalités de bas niveau || Fonctionne || Cela inclue l'interface GPIO, DMA, controlleur d'interruptions, Timers, controlleur NAND, hôte MMC/SD, interfaces [[I2C]] et IIS, Mémoire &amp;amp; horloge &amp;amp; contrôleur de gestion de batterie, RAM.&lt;br /&gt;
|-&lt;br /&gt;
|Port série || Fonctionne || Use the &amp;quot;-serial&amp;quot; switch (maybe be specified multiple times) to tell QEMU where serial input/output should go to. GSM module will be connected on UART0.&lt;br /&gt;
|-&lt;br /&gt;
|RTC || Fonctionne || On start QEMU will load it with current time/date - the Neo1973 [[kernel]] doesn't use it for time/date source currently.&lt;br /&gt;
|-&lt;br /&gt;
|SPI || Fonctionne || The guest kernel can drive it using either the SPI interface or raw GPIO bitbanging.&lt;br /&gt;
|-&lt;br /&gt;
|LCD || Fonctionne || The virtual LCD will display contents in QEMU window unless &amp;quot;-nographic&amp;quot; is specified on command line.&lt;br /&gt;
|-&lt;br /&gt;
|ADC || Fonctionne || Mouse events in QEMU window generate what would be touchscreen events on a Neo1973 and are passed to the guest OS through the on-chip ADC.&lt;br /&gt;
|-&lt;br /&gt;
|OHCI USB || Fonctionne || This part is in mainline QEMU. Use the &amp;quot;-usb&amp;quot; switch to enable the controller and &amp;quot;usb_add&amp;quot; in QEMU monitor to attach new virtual or physical USB devices.&lt;br /&gt;
|-&lt;br /&gt;
|Slave USB || Fonctionne || Linux's dummy HCD in conjunction with gadget filesystem API is used to make the virtual Neo appear as a real one connected to the host computer. See [[#Setting up USB connection|Setting up USB connection]] below. (Experimental)&lt;br /&gt;
|-&lt;br /&gt;
|Watchdog || Fonctionne || This is one of the less important on-chip peripherals in S3C2410. It is however used by Linux for rebooting the board.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|[[I2C]] bus peripherals&lt;br /&gt;
|-&lt;br /&gt;
|[[PCF50606]] || Fonctionne || (Aka PMU) Fakes the battery charge level (set at 88%), POWER button, etc. Also contains an RTC, also unused by Linux.&lt;br /&gt;
|-&lt;br /&gt;
|[[LM4857]] || Fonctionne&lt;br /&gt;
|-&lt;br /&gt;
|[[WM8753L]] || Fonctionne || The CODEC is also connect to the CPU's IIS port. Basic [[Neo1973 Audio Subsystem|audio functionality]] is supported - see QEMU documentation on getting audio input/output from the emulator. Volume control has no effects.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|Other peripherals&lt;br /&gt;
|-&lt;br /&gt;
|Flash NAND || Fonctionne || However, some pieces are not confirmed to be completely compatible with the real hardware because of lack thereof. Use &amp;quot;-mtdblock flashimagefilenamehere&amp;quot; switch to point QEMU to your flash image. The file should be at least 69206016 bytes big.&lt;br /&gt;
|-&lt;br /&gt;
|JBT6K74-AS(PI) || Fonctionne || (Aka LCM) Wired to the SPI channel 1&lt;br /&gt;
|-&lt;br /&gt;
|Boutons || Fonctionne || Enter is the AUX button, Space is the POWER button. Wired to on-chip GPIO and PCF50606.&lt;br /&gt;
|-&lt;br /&gt;
|Carte SD || Fonctionne || This part is already in mainline QEMU. Use the &amp;quot;-sd cardimagegoeshere&amp;quot; switch to point QEMU to the card image. The regular QEMU monitor commands for removable media can also be used. The card works, however the on-chip host controller gave block length errors on heavy I/O despite working as described in specification. I suspect the kernel driver. DMA operation is not tested.&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth&lt;br /&gt;
|style=&amp;quot;background-color:#ffffcc;&amp;quot;|Fonctionne&lt;br /&gt;
|A generic Bluetooth HCI (just like the BlueCore4 chip) is connected to internal USB hub (just like the Delta DBFM dongle). Currently qemu emulates no other bluetooth devices, so the dongle behaves as if there was no BT-enabled slaves around, being the only device on the piconet, i.e. is not really useful. Likely a Bluetooth keyboard will be emulated. A physical Bluetooth dongle can also be attached to the emulator (see USB documentation in QEMU).&lt;br /&gt;
|-&lt;br /&gt;
|[[GSM]] || Fonctionne || A fake modem is connected to UART0 understanding a (currently quite limited) subset of AT commands. Ultimately it should support as much functionality as possible (basic AT command set, fake GPRS connections, dialing and SMS send/receive). This way all parts of the phone subsystem (CALYPSO, TWL3014, TRF6151) will not have to be emulated. There is a possibility to wire a real GSM modem to QEMU's serial port, or the [http://doc.trolltech.com/qtopia-4.3-snapshot/fd-ModemSimulator.html phonesim] modem simulator from the ''Qtopia'' project (use the --enable-phonesim switch to ./configure) as well as the [http://doc.trolltech.com/qtopia-4.3-snapshot/modem-emulator.html atinterface] modem emulator, also from Qtopia.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hardware:AGPS|AGPS]]&lt;br /&gt;
|style=&amp;quot;background-color:#ffcccc;&amp;quot;|To Do&lt;br /&gt;
|There are obvious difficulties emulating the chip, but hopefully it can be made to present the guest OS with some fixed coordinates later when more is known about the chip. Again a real chip could be connected to QEMU's serial port.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Current development is aiming for [[:Category:Neo1973_Hardware#GTA01Bv4 | GTA01Bv4]] compatibility; [[:Category:Neo1973_Hardware#GTA01Bv3 | earlier revisions]] can also be emulated if needed. The differences between the hardware revisions currently only manifest themselves in GPIO wiring. Hardware emulation is implemented in a clean-room manner using official specifications where possible.&lt;br /&gt;
&lt;br /&gt;
== Emulation du Neo FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
La seconde version des téléphones Openmoko, les Neo FreeRunner (GTA02) ont vu plusieurs changements et améliorations materiels depuis le Neo1973 (GTA01). Qemu a un support complet du GTA01 (premier modèle), mais une émulation partielle du GTA02 est aussi plannifiée. Ceci doit inclure seulement les composants qui ont été ajoutés dans GTA02 et qui n'étaient pas présents dans GTA01.&lt;br /&gt;
&lt;br /&gt;
* The u-blox GPS chip (i.e. raw NMEA protocol).&lt;br /&gt;
* The Atheros AR6001 WLAN / WiFi chip (and SDIO bus).&lt;br /&gt;
* The two LIS accelerometers.&lt;br /&gt;
* 128MiB, 1.8V NAND chip instead of 64MiB.&lt;br /&gt;
&lt;br /&gt;
Ce que cela veut dire c'est que la machine émulée ne sera pas intérieurement exactement comme le NeoFreeRunner, mais sera fonctionnellement la même. Ceci signifie par ailleurs qu'il faut un noyau modifié puisqu'il s'agit plus d'un GTA01 à l'intérieur. La source du noyau sera fournie comme un composant de qemu. Le bootloader utilisé sera le u-boot du GTA01.&lt;br /&gt;
&lt;br /&gt;
Cette approche est appelée paravirtualisation et est souvent utilisée comme une solution d'émulation pour plateformes mobiles. Pour un programmeur en espace utilisateur (Développeurs d'applications), la machine sera visible comme un GTA02. Pour un kernel hacker, cela sera une plateforme modifiée.&lt;br /&gt;
&lt;br /&gt;
S'il y a une initiative parmis les utilisateurs pour émuler plus précisément qu'expliqué ici le matériel du GTA02, patches/amélioration seront toujours bienvenues puisque le projet Qemu cherche à émuler le matériel réel et être aussi proche que possible du matériel réel (en d'autres mots, l'émulation totale est préférée à la paravirtualisation dans Qemu).&lt;br /&gt;
&lt;br /&gt;
=== Quel matériel est supporté ? ===&lt;br /&gt;
&lt;br /&gt;
Vous trouverez ci-dessous un résumé succint concernant l'état d'aboutissement de la couche d'émulation associée à chacun des composants.&lt;br /&gt;
{|&lt;br /&gt;
! Hardware !! Status !! Informations complémentaires&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|GTA01 hardware&lt;br /&gt;
|-&lt;br /&gt;
|Processeur, périphériques intégrés et externes || Fonctionnels || Voir le tableau du matériel fonctionnel sur le GTA01 ci-dessus.  Ces composants constituent le fondement de l'émulateur du FreeRunner. Les mêmes informations s'appliquent.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|GTA02 components&lt;br /&gt;
|-&lt;br /&gt;
|GPS || Fonctionnel || Un processeur GPS virtuel est connecté au second port série de la machine virtuelle, comme sur le Neo FreeRunner.&lt;br /&gt;
|-&lt;br /&gt;
|WLAN&lt;br /&gt;
|style=&amp;quot;background-color:#ffffcc;&amp;quot;|Fonctionne partiellement&lt;br /&gt;
|Le circuit Atheros AR6001 (deuxième révision du micro-logiciel) est émulé jusqu'à la détection par la couche SDIO du noyau et le référencement d'une interface réseau par le pilote Atheros. La communication réseau n'est pas encore fonctionnelle. L'émulation basique du bus SDIO est complète.&lt;br /&gt;
|-&lt;br /&gt;
|Acceleromètres || Fonctionnels || Deux faux accéléromètres sont connectés au bus I2C de la machine virtuelle.  Ils fournissent une lecture constante de 1G d'accélération. Une amélioration à creuser (lorsque des logiciels de test seront disponibles) serait de fournir les mouvements de la fenêtre X-Window comme entrées aux accéléromètres : en bougeant la fenêtre on génèrerait des événements d'accélération. Ces événements seraient à deux dimensions mais cela suffirait pour les tests des développeurs d'applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Comment puis l'utiliser ? ==&lt;br /&gt;
&lt;br /&gt;
Ces instructions parlent de l'émulateur du GTA01 (par défaut).&lt;br /&gt;
&lt;br /&gt;
=== En utilisant MokoMakefile ===&lt;br /&gt;
&lt;br /&gt;
C'est le moyen le plus simple de construire qemu-neo1973 puisque vous n'aurez pas besoin de compiler et d'effectuer les initialisations de la mémoire flash vous-même. Pour plus d'informations, voir [[Using_QEMU_with_MokoMakefile|MokoMakefile]].&lt;br /&gt;
&lt;br /&gt;
Si vous voulez juste compiler QEMU et utiliser les images officielles, tapez simplement &amp;quot;make qemu&amp;quot;. Cela évite de paramétrer monotone et openembedded ainsi que de créer une image complète avec MokoMakefile. Dans ce cas la compilation prend moins de temps que les instructions ci-dessous puisque tout est automatisé.&lt;br /&gt;
&lt;br /&gt;
=== Installation manuelle ===&lt;br /&gt;
&lt;br /&gt;
To obtain the latest source code for the emulator, you will want to do something like the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn checkout https://svn.openmoko.org/trunk/src/host/qemu-neo1973&lt;br /&gt;
$ cd qemu-neo1973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now, we're going to configure and build the emulator (Note [[#Requirements|Requirements]] below):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ./configure --target-list=arm-softmmu  # GCC 3.x will be required, see --cc=&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you dont want gcc-3.x then you can apply patch from here&lt;br /&gt;
https://bugs.gentoo.org/show_bug.cgi?id=160627&lt;br /&gt;
like so&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ patch -p2 &amp;lt; quemu-gcc4.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See other available options for the configure script by appending &amp;quot;--help&amp;quot;.&lt;br /&gt;
Now you should have a working emulator under the name &amp;quot;arm-softmmu/qemu-system-arm&amp;quot;. To run Openmoko you will also need to somehow install Openmoko on your virtual phone, which is totally clean of any software at this moment. There are several block devices to choose from, the best option is probably to do exactly what the Neo1973 manufacturer does before it ships the device to the final user. This process is described in [[Bootloader]], [[Kernel]], [[NAND bad blocks]] and [[Devirginator]] but you don't need to know all the details. Two scripts are provided to generate a firmware for your phone, as realistic as possible. First run&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openmoko/download.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
which will look up the list of latest available Openmoko snapshot builds from buildhost.openmoko.org and choose the most recent [[u-boot]], Kernel, and root filesystem images, and download the images (unless they are already found in the openmoko/ directory). These binaries will be used by the flash.sh script. First make sure you have the netpbm package installed for some graphics conversion utilities. On Ubuntu this can be done by:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install netpbm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openmoko/flash.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
which runs the emulator, loads u-boot into it and then uses u-boot's capability to program the Flash memory to install all the necessary parts of the system into the virtual Flash. It will also set up all the bootloading process including a boot menu (ENTER is [AUX] and SPACE is [POWER]), splash, u-boot environment and some default kernel parameters. If everything goes OK, the script should print a command which you can use to start using the emulator.&lt;br /&gt;
&lt;br /&gt;
QEMU has '''*tons*''' of commandline switches and things that can be configured. You can look them up in [http://bellard.org/qemu/user-doc.html QEMU user docs]. You will probably want to use the &amp;quot;-snapshot&amp;quot; switch, among other ones. Saving and restoring emulation state at any point (unrelated to &amp;quot;-snapshot&amp;quot;) should work as per QEMU user docs too. In addition the monitor commands &amp;quot;help&amp;quot; and &amp;quot;info&amp;quot; are of great help. The monitor usually sits in second virtual console, thus ctrl-alt-2 and ctrl-alt-1 switch to monitor and back.&lt;br /&gt;
&lt;br /&gt;
=== Binaires précompilés ===&lt;br /&gt;
&lt;br /&gt;
Win32 binaries shipped with firmware can be downloaded from [http://yorick.keymeulen.com/openmoko-emulator-bin-20070625.rar openmoko-emulator-win32-bin-20070625.zip]. Tested on MS Windows XP and Vista Business.&lt;br /&gt;
&lt;br /&gt;
=== Neo FreeRunner (GTA02) ===&lt;br /&gt;
&lt;br /&gt;
Les instructions pour exécuter l'émulateur sont les mêmes pour le FreeRunner, mais la ligne de commande finale pour invoquer Qemu change. Au lieu de &amp;quot;-M gta01&amp;quot; comme nom de machine &amp;quot;-M gta02fake&amp;quot; doit être utilisé.&lt;br /&gt;
&lt;br /&gt;
Le noyau supportant l'émulateur GTA02 est optenu en appliquant le patch ''openmoko/linux-gta02-pseudo.patch'' disponible dans les sources de qemu-neo1973 au noyau openmoko 2.6.24 (vanilla linux-2.6.24 + le patchset de [http://svn.openmoko.org/branches/src/target/kernel/2.6.24.x/patches/]). &lt;br /&gt;
Comme le support du noyau GTA02 est toujours en développement intensif, référez vous au fichier openmoko/README dans les sources de qemu-neo1973 pour les dernières instructions sur comment construire le noyau.&lt;br /&gt;
&lt;br /&gt;
Si un noyau normal d'Openmoko est utilisé avec l'émulateur Neo FreeRunner, il s'exécutera simplement comme si la machine était un GTA01 sans détecter les nouveaux périphériques.&lt;br /&gt;
&lt;br /&gt;
== Scripts utiles ==&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-auto.sh&lt;br /&gt;
&lt;br /&gt;
déclenche qemu et ouvre un socket unix pour la communication. Les paramètres additionnels sont envoyés à qemu. (i.e. openmoko/qemu-auto.sh -nographic déclenche la machine virtuelle sans couche graphique etc.).&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-upload.sh &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
créée une image de la carte SD avec une partition contenant les fichiers indiqués (vous pouvez fournir une liste de fichiers en argument) et l'ajouter au téléphone. Le noyau Openmoko devrait le détecter et le démon automount devrait monter la partition. openmoko/qemu-auto.sh doit déjà tourner pour cela. Si vous ne fournissez pas d'argument, le script éjecte la carte (le noyau OM ne détecte malheureusement pas cela). Cela fonctionnera uniquement avec l'émulation gta01 car en mode gta02 il n'y a pas de carte SD émulée.&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-quit.sh&lt;br /&gt;
&lt;br /&gt;
Eteint la machine virtuelle proprement.&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-gadget.sh&lt;br /&gt;
&lt;br /&gt;
tente de connecter le bus esclave S3C à la couche HCD émulée (si cette couche fonctionne et que gadgetfs est monté).&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
This QEMU tree has only been tested on GNU/Linux. To get graphical (not counting VNC) and/or audio output from the emulator you will need either SDL or Cocoa installed on your computer. To enable audio, see the available switches to the ./configure script.&lt;br /&gt;
&lt;br /&gt;
The scripts that sit in openmoko/ require lynx, wget, python, netpbm and most GNU base utilities installed in standard locations. The netpbm package contains tools necessary for bootsplash image conversion.&lt;br /&gt;
&lt;br /&gt;
All of the build-time and run-time requirements listed in [http://bellard.org/qemu/user-doc.html QEMU documentation] apply. This includes zlib, etc. On distributions that use binary packages, remember that you need the packages ending in '''-dev''' or '''-devel'''.&lt;br /&gt;
&lt;br /&gt;
== Qemu et Gnu debugger ==&lt;br /&gt;
&lt;br /&gt;
QEMU lets you debug operating system kernels and bootloaders like you debug all other programs. To do this you will need a debugger that speaks the GDB remote debugging protocol - [http://sourceware.org/gdb/ GDB] is the obvious choice. Some cross toolchains come with GDB already set up. Otherwise building cross-GDB yourself is quick and easy (compared to building binutils and cross-gcc).&lt;br /&gt;
&lt;br /&gt;
To debug u-boot, load the file &amp;quot;u-boot&amp;quot; into gdb (not &amp;quot;u-boot.bin&amp;quot;) that is produced by &amp;quot;make&amp;quot; when building u-boot. To debug a Linux kernel, load the file &amp;quot;vmlinux&amp;quot; from the main source directory into gdb. These files are in ELF format and contain all the symbol information and are not stripped of debugging data until you run &amp;quot;strip&amp;quot; on them, unlike &amp;quot;u-boot.bin&amp;quot; and &amp;quot;Image&amp;quot;/&amp;quot;zImage&amp;quot;/&amp;quot;uImage&amp;quot;. Next, tell QEMU to enable the gdbserver by appending the &amp;quot;-s&amp;quot; switch or issuing &amp;quot;gdbserver&amp;quot; in the monitor. Use the command &amp;lt;pre&amp;gt;(gdb) target remote localhost:1234&amp;lt;/pre&amp;gt; to make a connection to the emulator. From there you should be able to use all the usual GDB commands, including stepping instructions, setting breakpoints, watchpoints, inspecting stack, variables, registers and more. If gdb is running in the same directory from which it grabbed the ELF executable, the &amp;quot;edit&amp;quot; command should work so you can jump right to the source line which is executing.&lt;br /&gt;
&lt;br /&gt;
== Connexion réseau simple avec pppd ==&lt;br /&gt;
&lt;br /&gt;
One simple way to get a network connection from the emulated Neo is via an emulated serial port and [[pppd]]. Add ''-serial vc -serial pty'' to the [[QEMU command line]], and QEMU prints a device name on a line like &amp;quot;char device redirected to /dev/pts/12&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On the Neo side, open a terminal and run the command &amp;quot;pppd nodetach debug /dev/ttySAC1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On the host computer side, open a root terminal and run the command &amp;quot;pppd nodetach debug 192.168.68.1:192.168.68.2 noauth /dev/pts/12&amp;quot;, substituting the actual device name from above.&lt;br /&gt;
&lt;br /&gt;
Now on the host computer side, you should be able to &amp;quot;ping 192.168.68.2&amp;quot; and &amp;quot;ssh root@192.168.68.2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NB : If you see in pppd trace something like this &amp;quot;Received bad configure-rej:  12 06 00 00 00 00&amp;quot; again and again, you will ping but no application will work. It is probably the compression protocol (ccp) negotiation which fail. Add &amp;quot;noccp&amp;quot; to the two pppd commands like &amp;quot;pppd nodetach debug noccp /dev/ttySAC1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Etablir une connexion internet sur votre neo émulé ==&lt;br /&gt;
Before you start, you have to have a working pppd or USB connection, ([[#Simple_network_connection_with_pppd|see the previous chapter]] and [[#Setting up USB connection|the next chapter]])&lt;br /&gt;
&lt;br /&gt;
(I assume that your local ip-adress is 192.168.0.100 and your router is 192.168.0.1)&lt;br /&gt;
&lt;br /&gt;
In qemu terminal (or via ssh) type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ifdown usb0&lt;br /&gt;
$ route add default gw 192.168.68.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit /etc/resolv.conf:&lt;br /&gt;
nameserver 192.168.0.1&lt;br /&gt;
This will be your host-computer DNS server.&lt;br /&gt;
&lt;br /&gt;
On the host-computer type(as root , use sudo -i on ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 1 &amp;gt;&amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
echo 1 &amp;gt;&amp;gt; /proc/sys/net/ipv4/ip_dynaddr&lt;br /&gt;
&lt;br /&gt;
modprobe ip_tables&lt;br /&gt;
modprobe iptable_nat&lt;br /&gt;
modprobe ipt_MASQUERADE&lt;br /&gt;
&lt;br /&gt;
iptables -t filter -F&lt;br /&gt;
iptables -t nat    -F&lt;br /&gt;
&lt;br /&gt;
iptables -t filter -P INPUT       ACCEPT&lt;br /&gt;
iptables -t filter -P FORWARD     ACCEPT&lt;br /&gt;
iptables -t filter -P OUTPUT      ACCEPT&lt;br /&gt;
iptables -t nat    -P PREROUTING  ACCEPT&lt;br /&gt;
iptables -t nat    -P POSTROUTING ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.68.0/24 -j MASQUERADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Where eth0 is your network interface connected to the router)&lt;br /&gt;
&lt;br /&gt;
Thats it - now you can enjoy internet in qemu.&lt;br /&gt;
&lt;br /&gt;
== Etablir une connexion USB ==&lt;br /&gt;
&lt;br /&gt;
It is possible (although not very straight forward, probably about the complexity of tun-tap networking) to connect the virtual, emulated Neo1973 to the Linux PC on which the emulator is running, and work with it as if a real Neo1973 was plugged into the computer's USB port, but no twiddling with cables is needed. If you're testing your applications on the Neo, it may be worth setting up this kind of connection because it lets you enable normal [[USB_Networking|networking between the PC and the phone and ssh into it]] (which is much more comfortable than typing commands into the Openmoko's terminal emulator via on-screen keyboard). Here's what you will need in order to get this working:&lt;br /&gt;
&lt;br /&gt;
A Linux host with a 2.6 series kernel. The following drivers compiled-in or in modules: dummy_hcd, gadgetfs, usbnet, cdc_ether. [[Building Gadget USB Module|A detailed guide to building the necessary modules is available (primarily Ubuntu focused).]] Generic instructions follow.&lt;br /&gt;
&lt;br /&gt;
Note that you need root access to perform most actions described here. Here's how to enable the drivers in menuconfig.&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''Support for USB Gadgets'''&lt;br /&gt;
&lt;br /&gt;
Find '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''USB Peripheral Controller''' and set it to '''Dummy HCD (DEVELOPMENT)'''&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''Gadget Filesystem (EXPERIMENTAL)''' (this one is good to have as a module)&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework'''&lt;br /&gt;
&lt;br /&gt;
(in 2.6.25 (from ???) '''Device Drivers''' -&amp;gt; '''Network device support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''')&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''' -&amp;gt; '''CDC Ethernet support (smart devices such as cable modems)'''&lt;br /&gt;
&lt;br /&gt;
(in 2.6.25 (from ???) '''Device Drivers''' -&amp;gt; '''Network device support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''' -&amp;gt; '''CDC Ethernet support (smart devices such as cable modems)''')&lt;br /&gt;
&lt;br /&gt;
These last two drivers are the same [[Getting Started with your Neo1973#By using Ethernet emulation over a USB cable|drivers that you need to work with a real Neo over USB network]]. After you've built the drivers, make sure that the copy of kernel headers in /usr/include/linux is up to date. In particular the file /usr/include/linux/usb_gadgetfs.h needs to be present and if your distribution came with headers older than 2.6.18 or so, then you need tell the package manager to update them, or you can do that manually with&lt;br /&gt;
&amp;lt;pre&amp;gt; # cp -a /usr/src/linux/include/linux/* /usr/include/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
(assuming that your kernel sources are in /usr/src/linux). It is important that this is done before building qemu because the build system checks if these headers are functional and in case they aren't found it will disable the USB Slave functionality.  Run &amp;quot;grep CONFIG_GADGETFS config-host.h&amp;quot; in qemu build directory to make sure that the detection succeeded.  If it didn't, correct your linux headers and reconfigure qemu.&lt;br /&gt;
&lt;br /&gt;
After building qemu and before running it, make sure that the modules are loaded into the kernel. I found it useful to load gadgetfs with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt; # modprobe gadgetfs default_uid=1000  # assuming my User ID is 1000&amp;lt;/pre&amp;gt;&lt;br /&gt;
and added the following line to my /etc/fstab:&lt;br /&gt;
&amp;lt;pre&amp;gt;gadget         /dev/gadget    gadgetfs   noauto,user,group         0   0&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make sure that the mountpoint /dev/gadget exists:&lt;br /&gt;
&amp;lt;pre&amp;gt; # mkdir -p /dev/gadget&amp;lt;/pre&amp;gt;&lt;br /&gt;
After that the rest of the procedure can be performed from your regular user account. Mounting gadgetfs is done with:&lt;br /&gt;
&amp;lt;pre&amp;gt; $ mount /dev/gadget&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;quot;default_uid&amp;quot; parameter changes the ownership on all files under /dev/gadget to your own and since the files there are created and destroyed dynamically, there's no easy way to have that performed by ''udev''. Now running qemu as you usually do but appending &amp;quot;-usb -usbgadget&amp;quot; (in the current version of the [[MokoMakefile]] this is not included) should enable the USB Slave functionality. The qemu monitor commands &amp;quot;info usbslave&amp;quot; and &amp;quot;usb_add gadget&amp;quot; will be useful. The former instruction asks the OS running under the emulator (Openmoko) to describe its slave features (that's what ''lsusb'' does after a Neo1973 is connected to a PC). You can see the available USB configurations in this command's output. Since gadgetfs allows only one configuration, we will need to choose the desired configuration - most device have only one such configuration, in which case you can use just &amp;quot;usb_add gadget&amp;quot; to connect to host; CDC ethernet devices however usually include a second configuration for RNDIS networking (i.e. Ms Windows compatibility) and so does Openmoko when using the g_ether driver. Hence, to get this right, wait for Openmoko to fully boot up and execute the following in QEMU monitor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU 0.9.0 monitor - type 'help' for more information&lt;br /&gt;
(qemu) info usbslave &lt;br /&gt;
USB2.2 device 1457:5122:&lt;br /&gt;
Manufacturer: Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
Product: RNDIS/Ethernet Gadget&lt;br /&gt;
Configuration 0: RNDIS&lt;br /&gt;
Configuration 1: CDC Ethernet&lt;br /&gt;
(qemu) &lt;br /&gt;
(qemu) usb_add gadget:1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If qemu gives &amp;quot;couldn't add device gadget:1&amp;quot;, double-check that it was built against gadgetfs - the file config-host.h must contain the line &amp;quot;#define CONFIG_GADGETFS 1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;1&amp;quot; in &amp;quot;usb_add gadget:N&amp;quot; is the number of the USB configuration that we want to use. If everything went correctly - you can check that in dmesg - you should now have a new network interface called ''usb0'' on the PC, through which you can talk to the Openmoko running in QEMU:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ dmesg | tail&lt;br /&gt;
&amp;lt;6&amp;gt;gadgetfs: bound to dummy_udc driver&lt;br /&gt;
&amp;lt;7&amp;gt;hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: new high speed USB device using dummy_hcd and address 3&lt;br /&gt;
&amp;lt;6&amp;gt;gadgetfs: connected&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: default language 0x0409&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: Product: RNDIS/Ethernet Gadget&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: Manufacturer: Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: adding 3-1:1.0 (config #1, interface 0)&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1:1.0: uevent&lt;br /&gt;
&amp;lt;7&amp;gt;cdc_ether 3-1:1.0: usb_probe_interface - got id&lt;br /&gt;
&amp;lt;7&amp;gt;cdc_ether 3-1:1.0: status ep3in, 16 bytes period 14&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: adding 3-1:1.1 (config #1, interface 1)&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1:1.1: uevent&lt;br /&gt;
 $ su -&lt;br /&gt;
Password:&lt;br /&gt;
 # tail /var/log/everything/current&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: connected&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: disconnected&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: configuration #1&lt;br /&gt;
May  8 19:25:32 [kernel] usb0: register 'cdc_ether' at usb-dummy_hcd-1, CDC Ethernet Device, 52:e7:eb:76:0a:d0&lt;br /&gt;
 # lsusb -vvv&lt;br /&gt;
Bus 003 Device 003: ID 1457:5122  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               2.00&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5122 &lt;br /&gt;
  bcdDevice            2.12&lt;br /&gt;
  iManufacturer           1 Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
  iProduct                2 RNDIS/Ethernet Gadget&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           80&lt;br /&gt;
    bNumInterfaces          2&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          7 CDC Ethernet&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      6 Ethernet Networking&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 CDC Communications Control&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               1.10&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      CDC Ethernet:&lt;br /&gt;
        iMacAddress                      3 52E7EB760AD0&lt;br /&gt;
        bmEthernetStatistics    0x00000000&lt;br /&gt;
        wMaxSegmentSize               1514&lt;br /&gt;
        wNumberMCFilters            0x0000&lt;br /&gt;
        bNumberPowerFilters              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval              14&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass        10 Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       1&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              4 Ethernet Data&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               0&lt;br /&gt;
Device Qualifier (for other device speed):&lt;br /&gt;
  bLength                10&lt;br /&gt;
  bDescriptorType         6&lt;br /&gt;
  bcdUSB               2.00&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
&lt;br /&gt;
 # ifconfig usb0 inet 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
 # exit&lt;br /&gt;
 $ ssh root@192.168.0.202&lt;br /&gt;
The authenticity of host '192.168.0.202 (192.168.0.202)' can't be established.&lt;br /&gt;
RSA key fingerprint is de:21:87:93:52:1c:6b:c7:69:29:6c:af:66:50:02:02.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
Warning: Permanently added '192.168.0.202' (RSA) to the list of known hosts.&lt;br /&gt;
root@192.168.0.202's password: &lt;br /&gt;
root@fic-gta01:~$ uname -a&lt;br /&gt;
Linux fic-gta01 2.6.20.7-moko8 #1 PREEMPT Wed Apr 25 11:13:52 UTC 2007 armv4tl unknown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connexion par le port série/Communication avec le u-boot ==&lt;br /&gt;
If you add the option ''-serial telnet:localhost:1200,server'' to QEMU will create a telnet server on port 1200 that you can connect to as the serial port.&amp;lt;br&amp;gt;&lt;br /&gt;
This will allow you to experiment with u-boot configuration without risking to brick the real device.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Please note that QEMU will wait for you to connect to the telnet server at port 1200 before starting the emulation.&amp;lt;br&amp;gt;&lt;br /&gt;
(use the command ''telnet localhost 1200'' to establish the connection)&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
*[[Building Gadget USB Module]] - Helpful guide&lt;br /&gt;
*[[Xephyr]] - Openmoko on i386&lt;br /&gt;
*[[Xoo]] - Openmoko on i386&lt;br /&gt;
&lt;br /&gt;
{{Languages|Openmoko_under_QEMU}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_under_QEMU/fr</id>
		<title>Openmoko under QEMU/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_under_QEMU/fr"/>
				<updated>2008-10-11T14:13:21Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* En utilisant MokoMakefile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Openmoko under QEMU}}&lt;br /&gt;
[http://en.wikipedia.org/wiki/Qemu QEMU] peut être utilisé de trois façons différentes pour tester Openmoko. Suivant le pourquoi de votre utilisation de l'émulateur, vous devriez choisir la plateforme cible.&lt;br /&gt;
&lt;br /&gt;
*''PC'' - Openmoko peut être utilisé pour s'exécuter sur du matériel i383, 32 ou 64 bits et est probablement la façon la plus rapide de procéder pour tester Openmoko dans le but d'évaluer ce à quoi il ressemble et ce que l'on peut en faire. Dans ce scénario, QEMU ne servirait qu'à isoler votre installation d'Openmoko du système normal de l'ordinateur (ou si vous n'utilisez pas un système UNIX). Qemu propose une façon non intrusive de disposer d'un linux fonctionnel rapidement. Plus d'informations sont disponibles dans la [[FAQ]] et [[Getting Openmoko working on host with Xoo|ici]].&lt;br /&gt;
&lt;br /&gt;
*''Integrator/CP'' - Ceci est la machine ARM par défaut que QEMU connait. Cette cible est utilisée avec MACHINE=&amp;quot;qemuarm&amp;quot; et est suffisante pour exécuter l'image rootfs originelle d'Openmoko. Cependant, cela n'émule aucun [[:Category:Neo1973 Hardware | matériel du Neo1973]] à l'exception le CPU minimal. Plus d'informations dans la [[FAQ#Q:_Is_there_an_emulator_available_for_Openmoko.3F|FAQ]].&lt;br /&gt;
&lt;br /&gt;
*''Neo1973'' - L'arbre Qemu est disponible des débots Openmoko et est capable d'amuler la plupart (mais pas la totalité) du matériel actuel du [[Neo1973]] (GTA01). De plus, l'émulation du Neo FreeRunner est en cours de travail. Lorsque toutes les parties de l'émulateur seront matures, notre code sera uploadé et fusionné avec la branche principale de développement de l'arbre Qemu.&lt;br /&gt;
&lt;br /&gt;
== Emulation du Neo1973 ==&lt;br /&gt;
&lt;br /&gt;
Cette cible devrait normalement exécuter les images rootfs originelle d'Openmoko, mais devrait aussi être capable d'exécuter le u-boot et les images noyaux utilisés par le Neo 1973 (GTA01) sans modification. Hormis les autres différences, vous allez remarquer qu'entre cette approche et celle la cible Integrator/CP, vous aurez une résolution d'écran correcte, de (fausses) lecture de batterie, et d'autres joyeusetés. A l'heure actuelle, les points manquant à l'émulateur sont : [[Hardware:AGPS|AGPS]] et le [[Bluetooth]] - ces choses devraient fonctionner, tout comme l'utilisabilité générale. Même avec ces choses manquantes, Qemu devrait fournir une aide substentielle aux développeurs pour le deverminage du noyau et du u-boot.&lt;br /&gt;
&lt;br /&gt;
Ce que Qemu '''*ne peut pas*''' être utilisé pour, et probablement aucnu autre émulateur, sont les mesures de vitesses et l'évaluation du sentiment général de performance d'Openmoko. Le code s'exécute dans qemu avec la vitesse maximum que votre ordinateur hôte peut fournir avec une latence correspondant à la transmission du code de la cible au code de l'hôte, et ce surcoût n'est pas le même pour chaque instruction. Cela signifit que mêm esi votre Neo virtuel fournit environ 100 BogoMIPS (Qui est la vitesse d'un Neo réel), les différentes actions effectuées dans l'émulateur ne s'exécuteront pas à la même vitesse. Sur la plupart des PC, vous remarquerez que le Neo virtuel est plus rapide que le réel (Les opérations Audio devraient être l'une des exceptions).&lt;br /&gt;
&lt;br /&gt;
=== Quel matériel est supporté ? ===&lt;br /&gt;
&lt;br /&gt;
Ebauche du status pour chaque composant nécessitant une émulation est disponible sur la page : [[:Category:Neo1973 Hardware | Neo1973 Hardware]].&lt;br /&gt;
{|&lt;br /&gt;
! Matériel !! Status !! Notes d'utilisation&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|S3C2410A Processeur&lt;br /&gt;
|-&lt;br /&gt;
|Coeur ARM920T || Fonctionne || Déjà dans la branche principale de QEMU.&lt;br /&gt;
|-&lt;br /&gt;
|Fonctionnalités de bas niveau || Fonctionne || Cela inclue l'interface GPIO, DMA, controlleur d'interruptions, Timers, controlleur NAND, hôte MMC/SD, interfaces [[I2C]] et IIS, Mémoire &amp;amp; horloge &amp;amp; contrôleur de gestion de batterie, RAM.&lt;br /&gt;
|-&lt;br /&gt;
|Port série || Fonctionne || Use the &amp;quot;-serial&amp;quot; switch (maybe be specified multiple times) to tell QEMU where serial input/output should go to. GSM module will be connected on UART0.&lt;br /&gt;
|-&lt;br /&gt;
|RTC || Fonctionne || On start QEMU will load it with current time/date - the Neo1973 [[kernel]] doesn't use it for time/date source currently.&lt;br /&gt;
|-&lt;br /&gt;
|SPI || Fonctionne || The guest kernel can drive it using either the SPI interface or raw GPIO bitbanging.&lt;br /&gt;
|-&lt;br /&gt;
|LCD || Fonctionne || The virtual LCD will display contents in QEMU window unless &amp;quot;-nographic&amp;quot; is specified on command line.&lt;br /&gt;
|-&lt;br /&gt;
|ADC || Fonctionne || Mouse events in QEMU window generate what would be touchscreen events on a Neo1973 and are passed to the guest OS through the on-chip ADC.&lt;br /&gt;
|-&lt;br /&gt;
|OHCI USB || Fonctionne || This part is in mainline QEMU. Use the &amp;quot;-usb&amp;quot; switch to enable the controller and &amp;quot;usb_add&amp;quot; in QEMU monitor to attach new virtual or physical USB devices.&lt;br /&gt;
|-&lt;br /&gt;
|Slave USB || Fonctionne || Linux's dummy HCD in conjunction with gadget filesystem API is used to make the virtual Neo appear as a real one connected to the host computer. See [[#Setting up USB connection|Setting up USB connection]] below. (Experimental)&lt;br /&gt;
|-&lt;br /&gt;
|Watchdog || Fonctionne || This is one of the less important on-chip peripherals in S3C2410. It is however used by Linux for rebooting the board.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|[[I2C]] bus peripherals&lt;br /&gt;
|-&lt;br /&gt;
|[[PCF50606]] || Fonctionne || (Aka PMU) Fakes the battery charge level (set at 88%), POWER button, etc. Also contains an RTC, also unused by Linux.&lt;br /&gt;
|-&lt;br /&gt;
|[[LM4857]] || Fonctionne&lt;br /&gt;
|-&lt;br /&gt;
|[[WM8753L]] || Fonctionne || The CODEC is also connect to the CPU's IIS port. Basic [[Neo1973 Audio Subsystem|audio functionality]] is supported - see QEMU documentation on getting audio input/output from the emulator. Volume control has no effects.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|Other peripherals&lt;br /&gt;
|-&lt;br /&gt;
|Flash NAND || Fonctionne || However, some pieces are not confirmed to be completely compatible with the real hardware because of lack thereof. Use &amp;quot;-mtdblock flashimagefilenamehere&amp;quot; switch to point QEMU to your flash image. The file should be at least 69206016 bytes big.&lt;br /&gt;
|-&lt;br /&gt;
|JBT6K74-AS(PI) || Fonctionne || (Aka LCM) Wired to the SPI channel 1&lt;br /&gt;
|-&lt;br /&gt;
|Boutons || Fonctionne || Enter is the AUX button, Space is the POWER button. Wired to on-chip GPIO and PCF50606.&lt;br /&gt;
|-&lt;br /&gt;
|Carte SD || Fonctionne || This part is already in mainline QEMU. Use the &amp;quot;-sd cardimagegoeshere&amp;quot; switch to point QEMU to the card image. The regular QEMU monitor commands for removable media can also be used. The card works, however the on-chip host controller gave block length errors on heavy I/O despite working as described in specification. I suspect the kernel driver. DMA operation is not tested.&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth&lt;br /&gt;
|style=&amp;quot;background-color:#ffffcc;&amp;quot;|Fonctionne&lt;br /&gt;
|A generic Bluetooth HCI (just like the BlueCore4 chip) is connected to internal USB hub (just like the Delta DBFM dongle). Currently qemu emulates no other bluetooth devices, so the dongle behaves as if there was no BT-enabled slaves around, being the only device on the piconet, i.e. is not really useful. Likely a Bluetooth keyboard will be emulated. A physical Bluetooth dongle can also be attached to the emulator (see USB documentation in QEMU).&lt;br /&gt;
|-&lt;br /&gt;
|[[GSM]] || Fonctionne || A fake modem is connected to UART0 understanding a (currently quite limited) subset of AT commands. Ultimately it should support as much functionality as possible (basic AT command set, fake GPRS connections, dialing and SMS send/receive). This way all parts of the phone subsystem (CALYPSO, TWL3014, TRF6151) will not have to be emulated. There is a possibility to wire a real GSM modem to QEMU's serial port, or the [http://doc.trolltech.com/qtopia-4.3-snapshot/fd-ModemSimulator.html phonesim] modem simulator from the ''Qtopia'' project (use the --enable-phonesim switch to ./configure) as well as the [http://doc.trolltech.com/qtopia-4.3-snapshot/modem-emulator.html atinterface] modem emulator, also from Qtopia.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hardware:AGPS|AGPS]]&lt;br /&gt;
|style=&amp;quot;background-color:#ffcccc;&amp;quot;|To Do&lt;br /&gt;
|There are obvious difficulties emulating the chip, but hopefully it can be made to present the guest OS with some fixed coordinates later when more is known about the chip. Again a real chip could be connected to QEMU's serial port.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Current development is aiming for [[:Category:Neo1973_Hardware#GTA01Bv4 | GTA01Bv4]] compatibility; [[:Category:Neo1973_Hardware#GTA01Bv3 | earlier revisions]] can also be emulated if needed. The differences between the hardware revisions currently only manifest themselves in GPIO wiring. Hardware emulation is implemented in a clean-room manner using official specifications where possible.&lt;br /&gt;
&lt;br /&gt;
== Emulation du Neo FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
La seconde version des téléphones Openmoko, les Neo FreeRunner (GTA02) ont vu plusieurs changements et améliorations materiels depuis le Neo1973 (GTA01). Qemu a un support complet du GTA01 (premier modèle), mais une émulation partielle du GTA02 est aussi plannifiée. Ceci doit inclure seulement les composants qui ont été ajoutés dans GTA02 et qui n'étaient pas présents dans GTA01.&lt;br /&gt;
&lt;br /&gt;
* The u-blox GPS chip (i.e. raw NMEA protocol).&lt;br /&gt;
* The Atheros AR6001 WLAN / WiFi chip (and SDIO bus).&lt;br /&gt;
* The two LIS accelerometers.&lt;br /&gt;
* 128MiB, 1.8V NAND chip instead of 64MiB.&lt;br /&gt;
&lt;br /&gt;
Ce que cela veut dire c'est que la machine émulée ne sera pas intérieurement exactement comme le NeoFreeRunner, mais sera fonctionnellement la même. Ceci signifie par ailleurs qu'il faut un noyau modifié puisqu'il s'agit plus d'un GTA01 à l'intérieur. La source du noyau sera fournie comme un composant de qemu. Le bootloader utilisé sera le u-boot du GTA01.&lt;br /&gt;
&lt;br /&gt;
Cette approche est appelée paravirtualisation et est souvent utilisée comme une solution d'émulation pour plateformes mobiles. Pour un programmeur en espace utilisateur (Développeurs d'applications), la machine sera visible comme un GTA02. Pour un kernel hacker, cela sera une plateforme modifiée.&lt;br /&gt;
&lt;br /&gt;
S'il y a une initiative parmis les utilisateurs pour émuler plus précisément qu'expliqué ici le matériel du GTA02, patches/amélioration seront toujours bienvenues puisque le projet Qemu cherche à émuler le matériel réel et être aussi proche que possible du matériel réel (en d'autres mots, l'émulation totale est préférée à la paravirtualisation dans Qemu).&lt;br /&gt;
&lt;br /&gt;
=== Quel matériel est supporté ? ===&lt;br /&gt;
&lt;br /&gt;
Vous trouverez ci-dessous un résumé succint concernant l'état d'aboutissement de la couche d'émulation associée à chacun des composants.&lt;br /&gt;
{|&lt;br /&gt;
! Hardware !! Status !! Informations complémentaires&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|GTA01 hardware&lt;br /&gt;
|-&lt;br /&gt;
|Processeur, périphériques intégrés et externes || Fonctionnels || Voir le tableau du matériel fonctionnel sur le GTA01 ci-dessus.  Ces composants constituent le fondement de l'émulateur du FreeRunner. Les mêmes informations s'appliquent.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|GTA02 components&lt;br /&gt;
|-&lt;br /&gt;
|GPS || Fonctionnel || Un processeur GPS virtuel est connecté au second port série de la machine virtuelle, comme sur le Neo FreeRunner.&lt;br /&gt;
|-&lt;br /&gt;
|WLAN&lt;br /&gt;
|style=&amp;quot;background-color:#ffffcc;&amp;quot;|Fonctionne partiellement&lt;br /&gt;
|Le circuit Atheros AR6001 (deuxième révision du micro-logiciel) est émulé jusqu'à la détection par la couche SDIO du noyau et le référencement d'une interface réseau par le pilote Atheros. La communication réseau n'est pas encore fonctionnelle. L'émulation basique du bus SDIO est complète.&lt;br /&gt;
|-&lt;br /&gt;
|Acceleromètres || Fonctionnels || Deux faux accéléromètres sont connectés au bus I2C de la machine virtuelle.  Ils fournissent une lecture constante de 1G d'accélération. Une amélioration à creuser (lorsque des logiciels de test seront disponibles) serait de fournir les mouvements de la fenêtre X-Window comme entrées aux accéléromètres : en bougeant la fenêtre on génèrerait des événements d'accélération. Ces événements seraient à deux dimensions mais cela suffirait pour les tests des développeurs d'applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Comment puis l'utiliser ? ==&lt;br /&gt;
&lt;br /&gt;
Ces instructions parlent de l'émulateur du GTA01 (par défaut).&lt;br /&gt;
&lt;br /&gt;
=== En utilisant MokoMakefile ===&lt;br /&gt;
&lt;br /&gt;
C'est le moyen le plus simple de construire qemu-neo1973 puisque vous n'aurez pas besoin de compiler et d'effectuer les initialisations de la mémoire flash vous-même. Pour plus d'informations, voir [[Using_QEMU_with_MokoMakefile|MokoMakefile]].&lt;br /&gt;
&lt;br /&gt;
Si vous voulez juste compiler QEMU et utiliser les images officielles, tapez simplement &amp;quot;make qemu&amp;quot;. Cela évite de paramétrer monotone et openembedded ainsi que de créer une image complète avec MokoMakefile. Dans ce cas la compilation prend moins de temps que les instructions ci-dessous puisque tout est automatisé.&lt;br /&gt;
&lt;br /&gt;
=== Installation manuelle ===&lt;br /&gt;
&lt;br /&gt;
To obtain the latest source code for the emulator, you will want to do something like the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn checkout https://svn.openmoko.org/trunk/src/host/qemu-neo1973&lt;br /&gt;
$ cd qemu-neo1973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now, we're going to configure and build the emulator (Note [[#Requirements|Requirements]] below):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ./configure --target-list=arm-softmmu  # GCC 3.x will be required, see --cc=&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you dont want gcc-3.x then you can apply patch from here&lt;br /&gt;
https://bugs.gentoo.org/show_bug.cgi?id=160627&lt;br /&gt;
like so&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ patch -p2 &amp;lt; quemu-gcc4.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See other available options for the configure script by appending &amp;quot;--help&amp;quot;.&lt;br /&gt;
Now you should have a working emulator under the name &amp;quot;arm-softmmu/qemu-system-arm&amp;quot;. To run Openmoko you will also need to somehow install Openmoko on your virtual phone, which is totally clean of any software at this moment. There are several block devices to choose from, the best option is probably to do exactly what the Neo1973 manufacturer does before it ships the device to the final user. This process is described in [[Bootloader]], [[Kernel]], [[NAND bad blocks]] and [[Devirginator]] but you don't need to know all the details. Two scripts are provided to generate a firmware for your phone, as realistic as possible. First run&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openmoko/download.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
which will look up the list of latest available Openmoko snapshot builds from buildhost.openmoko.org and choose the most recent [[u-boot]], Kernel, and root filesystem images, and download the images (unless they are already found in the openmoko/ directory). These binaries will be used by the flash.sh script. First make sure you have the netpbm package installed for some graphics conversion utilities. On Ubuntu this can be done by:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install netpbm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openmoko/flash.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
which runs the emulator, loads u-boot into it and then uses u-boot's capability to program the Flash memory to install all the necessary parts of the system into the virtual Flash. It will also set up all the bootloading process including a boot menu (ENTER is [AUX] and SPACE is [POWER]), splash, u-boot environment and some default kernel parameters. If everything goes OK, the script should print a command which you can use to start using the emulator.&lt;br /&gt;
&lt;br /&gt;
QEMU has '''*tons*''' of commandline switches and things that can be configured. You can look them up in [http://bellard.org/qemu/user-doc.html QEMU user docs]. You will probably want to use the &amp;quot;-snapshot&amp;quot; switch, among other ones. Saving and restoring emulation state at any point (unrelated to &amp;quot;-snapshot&amp;quot;) should work as per QEMU user docs too. In addition the monitor commands &amp;quot;help&amp;quot; and &amp;quot;info&amp;quot; are of great help. The monitor usually sits in second virtual console, thus ctrl-alt-2 and ctrl-alt-1 switch to monitor and back.&lt;br /&gt;
&lt;br /&gt;
=== Binaires précompilés ===&lt;br /&gt;
&lt;br /&gt;
Win32 binaries shipped with firmware can be downloaded from [http://yorick.keymeulen.com/openmoko-emulator-bin-20070625.rar openmoko-emulator-win32-bin-20070625.zip]. Tested on MS Windows XP and Vista Business.&lt;br /&gt;
&lt;br /&gt;
=== Neo FreeRunner (GTA02) ===&lt;br /&gt;
&lt;br /&gt;
Les instructions pour exécuter l'émulateur sont les mêmes pour le FreeRunner, mais la ligne de commande finale pour invoquer Qemu change. Au lieu de &amp;quot;-M gta01&amp;quot; comme nom de machine &amp;quot;-M gta02fake&amp;quot; doit être utilisé.&lt;br /&gt;
&lt;br /&gt;
Le noyau supportant l'émulateur GTA02 est optenu en appliquant le patch ''openmoko/linux-gta02-pseudo.patch'' disponible dans les sources de qemu-neo1973 au noyau openmoko 2.6.24 (vanilla linux-2.6.24 + le patchset de [http://svn.openmoko.org/branches/src/target/kernel/2.6.24.x/patches/]). &lt;br /&gt;
Comme le support du noyau GTA02 est toujours en développement intensif, référez vous au fichier openmoko/README dans les sources de qemu-neo1973 pour les dernières instructions sur comment construire le noyau.&lt;br /&gt;
&lt;br /&gt;
Si un noyau normal d'Openmoko est utilisé avec l'émulateur Neo FreeRunner, il s'exécutera simplement comme si la machine était un GTA01 sans détecter les nouveaux périphériques.&lt;br /&gt;
&lt;br /&gt;
== Scripts utiles ==&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-auto.sh&lt;br /&gt;
&lt;br /&gt;
launches qemu and opens a unix socket for communication. All additional parameters are passed to qemu. (e.g. openmoko/qemu-auto.sh -nographic launches the virtual machine with no graphics etc.).&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-upload.sh &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
produces a SD card image with one partition with the given file(s) on it (you can pass a list of files) and inserts it into the phone. The Openmoko kernel should detect the event and the automounter should mount the partition. openmoko/qemu-auto.sh must be running already. If you pass no parameters, it ejects the media (the OM kernel is too dumb to detect this unfortunately). This will only work with gta01 emulation because gta02 has no SD.&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-quit.sh&lt;br /&gt;
&lt;br /&gt;
powers the VM down cleanly.&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-gadget.sh&lt;br /&gt;
&lt;br /&gt;
attempts to connect target's S3C USB slave to host's dummy HCD (if present and gadgetfs is mounted).&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
This QEMU tree has only been tested on GNU/Linux. To get graphical (not counting VNC) and/or audio output from the emulator you will need either SDL or Cocoa installed on your computer. To enable audio, see the available switches to the ./configure script.&lt;br /&gt;
&lt;br /&gt;
The scripts that sit in openmoko/ require lynx, wget, python, netpbm and most GNU base utilities installed in standard locations. The netpbm package contains tools necessary for bootsplash image conversion.&lt;br /&gt;
&lt;br /&gt;
All of the build-time and run-time requirements listed in [http://bellard.org/qemu/user-doc.html QEMU documentation] apply. This includes zlib, etc. On distributions that use binary packages, remember that you need the packages ending in '''-dev''' or '''-devel'''.&lt;br /&gt;
&lt;br /&gt;
== Qemu et Gnu debugger ==&lt;br /&gt;
&lt;br /&gt;
QEMU lets you debug operating system kernels and bootloaders like you debug all other programs. To do this you will need a debugger that speaks the GDB remote debugging protocol - [http://sourceware.org/gdb/ GDB] is the obvious choice. Some cross toolchains come with GDB already set up. Otherwise building cross-GDB yourself is quick and easy (compared to building binutils and cross-gcc).&lt;br /&gt;
&lt;br /&gt;
To debug u-boot, load the file &amp;quot;u-boot&amp;quot; into gdb (not &amp;quot;u-boot.bin&amp;quot;) that is produced by &amp;quot;make&amp;quot; when building u-boot. To debug a Linux kernel, load the file &amp;quot;vmlinux&amp;quot; from the main source directory into gdb. These files are in ELF format and contain all the symbol information and are not stripped of debugging data until you run &amp;quot;strip&amp;quot; on them, unlike &amp;quot;u-boot.bin&amp;quot; and &amp;quot;Image&amp;quot;/&amp;quot;zImage&amp;quot;/&amp;quot;uImage&amp;quot;. Next, tell QEMU to enable the gdbserver by appending the &amp;quot;-s&amp;quot; switch or issuing &amp;quot;gdbserver&amp;quot; in the monitor. Use the command &amp;lt;pre&amp;gt;(gdb) target remote localhost:1234&amp;lt;/pre&amp;gt; to make a connection to the emulator. From there you should be able to use all the usual GDB commands, including stepping instructions, setting breakpoints, watchpoints, inspecting stack, variables, registers and more. If gdb is running in the same directory from which it grabbed the ELF executable, the &amp;quot;edit&amp;quot; command should work so you can jump right to the source line which is executing.&lt;br /&gt;
&lt;br /&gt;
== Connexion réseau simple avec pppd ==&lt;br /&gt;
&lt;br /&gt;
One simple way to get a network connection from the emulated Neo is via an emulated serial port and [[pppd]]. Add ''-serial vc -serial pty'' to the [[QEMU command line]], and QEMU prints a device name on a line like &amp;quot;char device redirected to /dev/pts/12&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On the Neo side, open a terminal and run the command &amp;quot;pppd nodetach debug /dev/ttySAC1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On the host computer side, open a root terminal and run the command &amp;quot;pppd nodetach debug 192.168.68.1:192.168.68.2 noauth /dev/pts/12&amp;quot;, substituting the actual device name from above.&lt;br /&gt;
&lt;br /&gt;
Now on the host computer side, you should be able to &amp;quot;ping 192.168.68.2&amp;quot; and &amp;quot;ssh root@192.168.68.2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NB : If you see in pppd trace something like this &amp;quot;Received bad configure-rej:  12 06 00 00 00 00&amp;quot; again and again, you will ping but no application will work. It is probably the compression protocol (ccp) negotiation which fail. Add &amp;quot;noccp&amp;quot; to the two pppd commands like &amp;quot;pppd nodetach debug noccp /dev/ttySAC1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Etablir une connexion internet sur votre neo émulé ==&lt;br /&gt;
Before you start, you have to have a working pppd or USB connection, ([[#Simple_network_connection_with_pppd|see the previous chapter]] and [[#Setting up USB connection|the next chapter]])&lt;br /&gt;
&lt;br /&gt;
(I assume that your local ip-adress is 192.168.0.100 and your router is 192.168.0.1)&lt;br /&gt;
&lt;br /&gt;
In qemu terminal (or via ssh) type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ifdown usb0&lt;br /&gt;
$ route add default gw 192.168.68.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit /etc/resolv.conf:&lt;br /&gt;
nameserver 192.168.0.1&lt;br /&gt;
This will be your host-computer DNS server.&lt;br /&gt;
&lt;br /&gt;
On the host-computer type(as root , use sudo -i on ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 1 &amp;gt;&amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
echo 1 &amp;gt;&amp;gt; /proc/sys/net/ipv4/ip_dynaddr&lt;br /&gt;
&lt;br /&gt;
modprobe ip_tables&lt;br /&gt;
modprobe iptable_nat&lt;br /&gt;
modprobe ipt_MASQUERADE&lt;br /&gt;
&lt;br /&gt;
iptables -t filter -F&lt;br /&gt;
iptables -t nat    -F&lt;br /&gt;
&lt;br /&gt;
iptables -t filter -P INPUT       ACCEPT&lt;br /&gt;
iptables -t filter -P FORWARD     ACCEPT&lt;br /&gt;
iptables -t filter -P OUTPUT      ACCEPT&lt;br /&gt;
iptables -t nat    -P PREROUTING  ACCEPT&lt;br /&gt;
iptables -t nat    -P POSTROUTING ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.68.0/24 -j MASQUERADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Where eth0 is your network interface connected to the router)&lt;br /&gt;
&lt;br /&gt;
Thats it - now you can enjoy internet in qemu.&lt;br /&gt;
&lt;br /&gt;
== Etablir une connexion USB ==&lt;br /&gt;
&lt;br /&gt;
It is possible (although not very straight forward, probably about the complexity of tun-tap networking) to connect the virtual, emulated Neo1973 to the Linux PC on which the emulator is running, and work with it as if a real Neo1973 was plugged into the computer's USB port, but no twiddling with cables is needed. If you're testing your applications on the Neo, it may be worth setting up this kind of connection because it lets you enable normal [[USB_Networking|networking between the PC and the phone and ssh into it]] (which is much more comfortable than typing commands into the Openmoko's terminal emulator via on-screen keyboard). Here's what you will need in order to get this working:&lt;br /&gt;
&lt;br /&gt;
A Linux host with a 2.6 series kernel. The following drivers compiled-in or in modules: dummy_hcd, gadgetfs, usbnet, cdc_ether. [[Building Gadget USB Module|A detailed guide to building the necessary modules is available (primarily Ubuntu focused).]] Generic instructions follow.&lt;br /&gt;
&lt;br /&gt;
Note that you need root access to perform most actions described here. Here's how to enable the drivers in menuconfig.&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''Support for USB Gadgets'''&lt;br /&gt;
&lt;br /&gt;
Find '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''USB Peripheral Controller''' and set it to '''Dummy HCD (DEVELOPMENT)'''&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''Gadget Filesystem (EXPERIMENTAL)''' (this one is good to have as a module)&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework'''&lt;br /&gt;
&lt;br /&gt;
(in 2.6.25 (from ???) '''Device Drivers''' -&amp;gt; '''Network device support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''')&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''' -&amp;gt; '''CDC Ethernet support (smart devices such as cable modems)'''&lt;br /&gt;
&lt;br /&gt;
(in 2.6.25 (from ???) '''Device Drivers''' -&amp;gt; '''Network device support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''' -&amp;gt; '''CDC Ethernet support (smart devices such as cable modems)''')&lt;br /&gt;
&lt;br /&gt;
These last two drivers are the same [[Getting Started with your Neo1973#By using Ethernet emulation over a USB cable|drivers that you need to work with a real Neo over USB network]]. After you've built the drivers, make sure that the copy of kernel headers in /usr/include/linux is up to date. In particular the file /usr/include/linux/usb_gadgetfs.h needs to be present and if your distribution came with headers older than 2.6.18 or so, then you need tell the package manager to update them, or you can do that manually with&lt;br /&gt;
&amp;lt;pre&amp;gt; # cp -a /usr/src/linux/include/linux/* /usr/include/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
(assuming that your kernel sources are in /usr/src/linux). It is important that this is done before building qemu because the build system checks if these headers are functional and in case they aren't found it will disable the USB Slave functionality.  Run &amp;quot;grep CONFIG_GADGETFS config-host.h&amp;quot; in qemu build directory to make sure that the detection succeeded.  If it didn't, correct your linux headers and reconfigure qemu.&lt;br /&gt;
&lt;br /&gt;
After building qemu and before running it, make sure that the modules are loaded into the kernel. I found it useful to load gadgetfs with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt; # modprobe gadgetfs default_uid=1000  # assuming my User ID is 1000&amp;lt;/pre&amp;gt;&lt;br /&gt;
and added the following line to my /etc/fstab:&lt;br /&gt;
&amp;lt;pre&amp;gt;gadget         /dev/gadget    gadgetfs   noauto,user,group         0   0&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make sure that the mountpoint /dev/gadget exists:&lt;br /&gt;
&amp;lt;pre&amp;gt; # mkdir -p /dev/gadget&amp;lt;/pre&amp;gt;&lt;br /&gt;
After that the rest of the procedure can be performed from your regular user account. Mounting gadgetfs is done with:&lt;br /&gt;
&amp;lt;pre&amp;gt; $ mount /dev/gadget&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;quot;default_uid&amp;quot; parameter changes the ownership on all files under /dev/gadget to your own and since the files there are created and destroyed dynamically, there's no easy way to have that performed by ''udev''. Now running qemu as you usually do but appending &amp;quot;-usb -usbgadget&amp;quot; (in the current version of the [[MokoMakefile]] this is not included) should enable the USB Slave functionality. The qemu monitor commands &amp;quot;info usbslave&amp;quot; and &amp;quot;usb_add gadget&amp;quot; will be useful. The former instruction asks the OS running under the emulator (Openmoko) to describe its slave features (that's what ''lsusb'' does after a Neo1973 is connected to a PC). You can see the available USB configurations in this command's output. Since gadgetfs allows only one configuration, we will need to choose the desired configuration - most device have only one such configuration, in which case you can use just &amp;quot;usb_add gadget&amp;quot; to connect to host; CDC ethernet devices however usually include a second configuration for RNDIS networking (i.e. Ms Windows compatibility) and so does Openmoko when using the g_ether driver. Hence, to get this right, wait for Openmoko to fully boot up and execute the following in QEMU monitor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU 0.9.0 monitor - type 'help' for more information&lt;br /&gt;
(qemu) info usbslave &lt;br /&gt;
USB2.2 device 1457:5122:&lt;br /&gt;
Manufacturer: Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
Product: RNDIS/Ethernet Gadget&lt;br /&gt;
Configuration 0: RNDIS&lt;br /&gt;
Configuration 1: CDC Ethernet&lt;br /&gt;
(qemu) &lt;br /&gt;
(qemu) usb_add gadget:1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If qemu gives &amp;quot;couldn't add device gadget:1&amp;quot;, double-check that it was built against gadgetfs - the file config-host.h must contain the line &amp;quot;#define CONFIG_GADGETFS 1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;1&amp;quot; in &amp;quot;usb_add gadget:N&amp;quot; is the number of the USB configuration that we want to use. If everything went correctly - you can check that in dmesg - you should now have a new network interface called ''usb0'' on the PC, through which you can talk to the Openmoko running in QEMU:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ dmesg | tail&lt;br /&gt;
&amp;lt;6&amp;gt;gadgetfs: bound to dummy_udc driver&lt;br /&gt;
&amp;lt;7&amp;gt;hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: new high speed USB device using dummy_hcd and address 3&lt;br /&gt;
&amp;lt;6&amp;gt;gadgetfs: connected&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: default language 0x0409&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: Product: RNDIS/Ethernet Gadget&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: Manufacturer: Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: adding 3-1:1.0 (config #1, interface 0)&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1:1.0: uevent&lt;br /&gt;
&amp;lt;7&amp;gt;cdc_ether 3-1:1.0: usb_probe_interface - got id&lt;br /&gt;
&amp;lt;7&amp;gt;cdc_ether 3-1:1.0: status ep3in, 16 bytes period 14&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: adding 3-1:1.1 (config #1, interface 1)&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1:1.1: uevent&lt;br /&gt;
 $ su -&lt;br /&gt;
Password:&lt;br /&gt;
 # tail /var/log/everything/current&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: connected&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: disconnected&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: configuration #1&lt;br /&gt;
May  8 19:25:32 [kernel] usb0: register 'cdc_ether' at usb-dummy_hcd-1, CDC Ethernet Device, 52:e7:eb:76:0a:d0&lt;br /&gt;
 # lsusb -vvv&lt;br /&gt;
Bus 003 Device 003: ID 1457:5122  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               2.00&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5122 &lt;br /&gt;
  bcdDevice            2.12&lt;br /&gt;
  iManufacturer           1 Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
  iProduct                2 RNDIS/Ethernet Gadget&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           80&lt;br /&gt;
    bNumInterfaces          2&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          7 CDC Ethernet&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      6 Ethernet Networking&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 CDC Communications Control&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               1.10&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      CDC Ethernet:&lt;br /&gt;
        iMacAddress                      3 52E7EB760AD0&lt;br /&gt;
        bmEthernetStatistics    0x00000000&lt;br /&gt;
        wMaxSegmentSize               1514&lt;br /&gt;
        wNumberMCFilters            0x0000&lt;br /&gt;
        bNumberPowerFilters              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval              14&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass        10 Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       1&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              4 Ethernet Data&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               0&lt;br /&gt;
Device Qualifier (for other device speed):&lt;br /&gt;
  bLength                10&lt;br /&gt;
  bDescriptorType         6&lt;br /&gt;
  bcdUSB               2.00&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
&lt;br /&gt;
 # ifconfig usb0 inet 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
 # exit&lt;br /&gt;
 $ ssh root@192.168.0.202&lt;br /&gt;
The authenticity of host '192.168.0.202 (192.168.0.202)' can't be established.&lt;br /&gt;
RSA key fingerprint is de:21:87:93:52:1c:6b:c7:69:29:6c:af:66:50:02:02.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
Warning: Permanently added '192.168.0.202' (RSA) to the list of known hosts.&lt;br /&gt;
root@192.168.0.202's password: &lt;br /&gt;
root@fic-gta01:~$ uname -a&lt;br /&gt;
Linux fic-gta01 2.6.20.7-moko8 #1 PREEMPT Wed Apr 25 11:13:52 UTC 2007 armv4tl unknown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connexion par le port série/Communication avec le u-boot ==&lt;br /&gt;
If you add the option ''-serial telnet:localhost:1200,server'' to QEMU will create a telnet server on port 1200 that you can connect to as the serial port.&amp;lt;br&amp;gt;&lt;br /&gt;
This will allow you to experiment with u-boot configuration without risking to brick the real device.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Please note that QEMU will wait for you to connect to the telnet server at port 1200 before starting the emulation.&amp;lt;br&amp;gt;&lt;br /&gt;
(use the command ''telnet localhost 1200'' to establish the connection)&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
*[[Building Gadget USB Module]] - Helpful guide&lt;br /&gt;
*[[Xephyr]] - Openmoko on i386&lt;br /&gt;
*[[Xoo]] - Openmoko on i386&lt;br /&gt;
&lt;br /&gt;
{{Languages|Openmoko_under_QEMU}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_under_QEMU/fr</id>
		<title>Openmoko under QEMU/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_under_QEMU/fr"/>
				<updated>2008-10-11T13:52:36Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Quel matériel est supporté ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Openmoko under QEMU}}&lt;br /&gt;
[http://en.wikipedia.org/wiki/Qemu QEMU] peut être utilisé de trois façons différentes pour tester Openmoko. Suivant le pourquoi de votre utilisation de l'émulateur, vous devriez choisir la plateforme cible.&lt;br /&gt;
&lt;br /&gt;
*''PC'' - Openmoko peut être utilisé pour s'exécuter sur du matériel i383, 32 ou 64 bits et est probablement la façon la plus rapide de procéder pour tester Openmoko dans le but d'évaluer ce à quoi il ressemble et ce que l'on peut en faire. Dans ce scénario, QEMU ne servirait qu'à isoler votre installation d'Openmoko du système normal de l'ordinateur (ou si vous n'utilisez pas un système UNIX). Qemu propose une façon non intrusive de disposer d'un linux fonctionnel rapidement. Plus d'informations sont disponibles dans la [[FAQ]] et [[Getting Openmoko working on host with Xoo|ici]].&lt;br /&gt;
&lt;br /&gt;
*''Integrator/CP'' - Ceci est la machine ARM par défaut que QEMU connait. Cette cible est utilisée avec MACHINE=&amp;quot;qemuarm&amp;quot; et est suffisante pour exécuter l'image rootfs originelle d'Openmoko. Cependant, cela n'émule aucun [[:Category:Neo1973 Hardware | matériel du Neo1973]] à l'exception le CPU minimal. Plus d'informations dans la [[FAQ#Q:_Is_there_an_emulator_available_for_Openmoko.3F|FAQ]].&lt;br /&gt;
&lt;br /&gt;
*''Neo1973'' - L'arbre Qemu est disponible des débots Openmoko et est capable d'amuler la plupart (mais pas la totalité) du matériel actuel du [[Neo1973]] (GTA01). De plus, l'émulation du Neo FreeRunner est en cours de travail. Lorsque toutes les parties de l'émulateur seront matures, notre code sera uploadé et fusionné avec la branche principale de développement de l'arbre Qemu.&lt;br /&gt;
&lt;br /&gt;
== Emulation du Neo1973 ==&lt;br /&gt;
&lt;br /&gt;
Cette cible devrait normalement exécuter les images rootfs originelle d'Openmoko, mais devrait aussi être capable d'exécuter le u-boot et les images noyaux utilisés par le Neo 1973 (GTA01) sans modification. Hormis les autres différences, vous allez remarquer qu'entre cette approche et celle la cible Integrator/CP, vous aurez une résolution d'écran correcte, de (fausses) lecture de batterie, et d'autres joyeusetés. A l'heure actuelle, les points manquant à l'émulateur sont : [[Hardware:AGPS|AGPS]] et le [[Bluetooth]] - ces choses devraient fonctionner, tout comme l'utilisabilité générale. Même avec ces choses manquantes, Qemu devrait fournir une aide substentielle aux développeurs pour le deverminage du noyau et du u-boot.&lt;br /&gt;
&lt;br /&gt;
Ce que Qemu '''*ne peut pas*''' être utilisé pour, et probablement aucnu autre émulateur, sont les mesures de vitesses et l'évaluation du sentiment général de performance d'Openmoko. Le code s'exécute dans qemu avec la vitesse maximum que votre ordinateur hôte peut fournir avec une latence correspondant à la transmission du code de la cible au code de l'hôte, et ce surcoût n'est pas le même pour chaque instruction. Cela signifit que mêm esi votre Neo virtuel fournit environ 100 BogoMIPS (Qui est la vitesse d'un Neo réel), les différentes actions effectuées dans l'émulateur ne s'exécuteront pas à la même vitesse. Sur la plupart des PC, vous remarquerez que le Neo virtuel est plus rapide que le réel (Les opérations Audio devraient être l'une des exceptions).&lt;br /&gt;
&lt;br /&gt;
=== Quel matériel est supporté ? ===&lt;br /&gt;
&lt;br /&gt;
Ebauche du status pour chaque composant nécessitant une émulation est disponible sur la page : [[:Category:Neo1973 Hardware | Neo1973 Hardware]].&lt;br /&gt;
{|&lt;br /&gt;
! Matériel !! Status !! Notes d'utilisation&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|S3C2410A Processeur&lt;br /&gt;
|-&lt;br /&gt;
|Coeur ARM920T || Fonctionne || Déjà dans la branche principale de QEMU.&lt;br /&gt;
|-&lt;br /&gt;
|Fonctionnalités de bas niveau || Fonctionne || Cela inclue l'interface GPIO, DMA, controlleur d'interruptions, Timers, controlleur NAND, hôte MMC/SD, interfaces [[I2C]] et IIS, Mémoire &amp;amp; horloge &amp;amp; contrôleur de gestion de batterie, RAM.&lt;br /&gt;
|-&lt;br /&gt;
|Port série || Fonctionne || Use the &amp;quot;-serial&amp;quot; switch (maybe be specified multiple times) to tell QEMU where serial input/output should go to. GSM module will be connected on UART0.&lt;br /&gt;
|-&lt;br /&gt;
|RTC || Fonctionne || On start QEMU will load it with current time/date - the Neo1973 [[kernel]] doesn't use it for time/date source currently.&lt;br /&gt;
|-&lt;br /&gt;
|SPI || Fonctionne || The guest kernel can drive it using either the SPI interface or raw GPIO bitbanging.&lt;br /&gt;
|-&lt;br /&gt;
|LCD || Fonctionne || The virtual LCD will display contents in QEMU window unless &amp;quot;-nographic&amp;quot; is specified on command line.&lt;br /&gt;
|-&lt;br /&gt;
|ADC || Fonctionne || Mouse events in QEMU window generate what would be touchscreen events on a Neo1973 and are passed to the guest OS through the on-chip ADC.&lt;br /&gt;
|-&lt;br /&gt;
|OHCI USB || Fonctionne || This part is in mainline QEMU. Use the &amp;quot;-usb&amp;quot; switch to enable the controller and &amp;quot;usb_add&amp;quot; in QEMU monitor to attach new virtual or physical USB devices.&lt;br /&gt;
|-&lt;br /&gt;
|Slave USB || Fonctionne || Linux's dummy HCD in conjunction with gadget filesystem API is used to make the virtual Neo appear as a real one connected to the host computer. See [[#Setting up USB connection|Setting up USB connection]] below. (Experimental)&lt;br /&gt;
|-&lt;br /&gt;
|Watchdog || Fonctionne || This is one of the less important on-chip peripherals in S3C2410. It is however used by Linux for rebooting the board.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|[[I2C]] bus peripherals&lt;br /&gt;
|-&lt;br /&gt;
|[[PCF50606]] || Fonctionne || (Aka PMU) Fakes the battery charge level (set at 88%), POWER button, etc. Also contains an RTC, also unused by Linux.&lt;br /&gt;
|-&lt;br /&gt;
|[[LM4857]] || Fonctionne&lt;br /&gt;
|-&lt;br /&gt;
|[[WM8753L]] || Fonctionne || The CODEC is also connect to the CPU's IIS port. Basic [[Neo1973 Audio Subsystem|audio functionality]] is supported - see QEMU documentation on getting audio input/output from the emulator. Volume control has no effects.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|Other peripherals&lt;br /&gt;
|-&lt;br /&gt;
|Flash NAND || Fonctionne || However, some pieces are not confirmed to be completely compatible with the real hardware because of lack thereof. Use &amp;quot;-mtdblock flashimagefilenamehere&amp;quot; switch to point QEMU to your flash image. The file should be at least 69206016 bytes big.&lt;br /&gt;
|-&lt;br /&gt;
|JBT6K74-AS(PI) || Fonctionne || (Aka LCM) Wired to the SPI channel 1&lt;br /&gt;
|-&lt;br /&gt;
|Boutons || Fonctionne || Enter is the AUX button, Space is the POWER button. Wired to on-chip GPIO and PCF50606.&lt;br /&gt;
|-&lt;br /&gt;
|Carte SD || Fonctionne || This part is already in mainline QEMU. Use the &amp;quot;-sd cardimagegoeshere&amp;quot; switch to point QEMU to the card image. The regular QEMU monitor commands for removable media can also be used. The card works, however the on-chip host controller gave block length errors on heavy I/O despite working as described in specification. I suspect the kernel driver. DMA operation is not tested.&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth&lt;br /&gt;
|style=&amp;quot;background-color:#ffffcc;&amp;quot;|Fonctionne&lt;br /&gt;
|A generic Bluetooth HCI (just like the BlueCore4 chip) is connected to internal USB hub (just like the Delta DBFM dongle). Currently qemu emulates no other bluetooth devices, so the dongle behaves as if there was no BT-enabled slaves around, being the only device on the piconet, i.e. is not really useful. Likely a Bluetooth keyboard will be emulated. A physical Bluetooth dongle can also be attached to the emulator (see USB documentation in QEMU).&lt;br /&gt;
|-&lt;br /&gt;
|[[GSM]] || Fonctionne || A fake modem is connected to UART0 understanding a (currently quite limited) subset of AT commands. Ultimately it should support as much functionality as possible (basic AT command set, fake GPRS connections, dialing and SMS send/receive). This way all parts of the phone subsystem (CALYPSO, TWL3014, TRF6151) will not have to be emulated. There is a possibility to wire a real GSM modem to QEMU's serial port, or the [http://doc.trolltech.com/qtopia-4.3-snapshot/fd-ModemSimulator.html phonesim] modem simulator from the ''Qtopia'' project (use the --enable-phonesim switch to ./configure) as well as the [http://doc.trolltech.com/qtopia-4.3-snapshot/modem-emulator.html atinterface] modem emulator, also from Qtopia.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hardware:AGPS|AGPS]]&lt;br /&gt;
|style=&amp;quot;background-color:#ffcccc;&amp;quot;|To Do&lt;br /&gt;
|There are obvious difficulties emulating the chip, but hopefully it can be made to present the guest OS with some fixed coordinates later when more is known about the chip. Again a real chip could be connected to QEMU's serial port.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Current development is aiming for [[:Category:Neo1973_Hardware#GTA01Bv4 | GTA01Bv4]] compatibility; [[:Category:Neo1973_Hardware#GTA01Bv3 | earlier revisions]] can also be emulated if needed. The differences between the hardware revisions currently only manifest themselves in GPIO wiring. Hardware emulation is implemented in a clean-room manner using official specifications where possible.&lt;br /&gt;
&lt;br /&gt;
== Emulation du Neo FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
La seconde version des téléphones Openmoko, les Neo FreeRunner (GTA02) ont vu plusieurs changements et améliorations materiels depuis le Neo1973 (GTA01). Qemu a un support complet du GTA01 (premier modèle), mais une émulation partielle du GTA02 est aussi plannifiée. Ceci doit inclure seulement les composants qui ont été ajoutés dans GTA02 et qui n'étaient pas présents dans GTA01.&lt;br /&gt;
&lt;br /&gt;
* The u-blox GPS chip (i.e. raw NMEA protocol).&lt;br /&gt;
* The Atheros AR6001 WLAN / WiFi chip (and SDIO bus).&lt;br /&gt;
* The two LIS accelerometers.&lt;br /&gt;
* 128MiB, 1.8V NAND chip instead of 64MiB.&lt;br /&gt;
&lt;br /&gt;
Ce que cela veut dire c'est que la machine émulée ne sera pas intérieurement exactement comme le NeoFreeRunner, mais sera fonctionnellement la même. Ceci signifie par ailleurs qu'il faut un noyau modifié puisqu'il s'agit plus d'un GTA01 à l'intérieur. La source du noyau sera fournie comme un composant de qemu. Le bootloader utilisé sera le u-boot du GTA01.&lt;br /&gt;
&lt;br /&gt;
Cette approche est appelée paravirtualisation et est souvent utilisée comme une solution d'émulation pour plateformes mobiles. Pour un programmeur en espace utilisateur (Développeurs d'applications), la machine sera visible comme un GTA02. Pour un kernel hacker, cela sera une plateforme modifiée.&lt;br /&gt;
&lt;br /&gt;
S'il y a une initiative parmis les utilisateurs pour émuler plus précisément qu'expliqué ici le matériel du GTA02, patches/amélioration seront toujours bienvenues puisque le projet Qemu cherche à émuler le matériel réel et être aussi proche que possible du matériel réel (en d'autres mots, l'émulation totale est préférée à la paravirtualisation dans Qemu).&lt;br /&gt;
&lt;br /&gt;
=== Quel matériel est supporté ? ===&lt;br /&gt;
&lt;br /&gt;
Vous trouverez ci-dessous un résumé succint concernant l'état d'aboutissement de la couche d'émulation associée à chacun des composants.&lt;br /&gt;
{|&lt;br /&gt;
! Hardware !! Status !! Informations complémentaires&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|GTA01 hardware&lt;br /&gt;
|-&lt;br /&gt;
|Processeur, périphériques intégrés et externes || Fonctionnels || Voir le tableau du matériel fonctionnel sur le GTA01 ci-dessus.  Ces composants constituent le fondement de l'émulateur du FreeRunner. Les mêmes informations s'appliquent.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|GTA02 components&lt;br /&gt;
|-&lt;br /&gt;
|GPS || Fonctionnel || Un processeur GPS virtuel est connecté au second port série de la machine virtuelle, comme sur le Neo FreeRunner.&lt;br /&gt;
|-&lt;br /&gt;
|WLAN&lt;br /&gt;
|style=&amp;quot;background-color:#ffffcc;&amp;quot;|Fonctionne partiellement&lt;br /&gt;
|Le circuit Atheros AR6001 (deuxième révision du micro-logiciel) est émulé jusqu'à la détection par la couche SDIO du noyau et le référencement d'une interface réseau par le pilote Atheros. La communication réseau n'est pas encore fonctionnelle. L'émulation basique du bus SDIO est complète.&lt;br /&gt;
|-&lt;br /&gt;
|Acceleromètres || Fonctionnels || Deux faux accéléromètres sont connectés au bus I2C de la machine virtuelle.  Ils fournissent une lecture constante de 1G d'accélération. Une amélioration à creuser (lorsque des logiciels de test seront disponibles) serait de fournir les mouvements de la fenêtre X-Window comme entrées aux accéléromètres : en bougeant la fenêtre on génèrerait des événements d'accélération. Ces événements seraient à deux dimensions mais cela suffirait pour les tests des développeurs d'applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Comment puis l'utiliser ? ==&lt;br /&gt;
&lt;br /&gt;
Ces instructions parlent de l'émulateur du GTA01 (par défaut).&lt;br /&gt;
&lt;br /&gt;
=== En utilisant MokoMakefile ===&lt;br /&gt;
&lt;br /&gt;
This is arguably the easiest way of building qemu-neo1973 since you won't need to deal with the compiling and flashing processes yourself. See [[Using_QEMU_with_MokoMakefile|MokoMakefile]] for details.&lt;br /&gt;
&lt;br /&gt;
If you *just* build QEMU and use the official images by typing &amp;quot;make qemu&amp;quot; only (as opposed to setting up monotone and openembedded and building an entire new image for yourself with MokoMakefile), then the build takes less time than the manual instructions below (since it's all done automatically).&lt;br /&gt;
&lt;br /&gt;
=== Installation manuelle ===&lt;br /&gt;
&lt;br /&gt;
To obtain the latest source code for the emulator, you will want to do something like the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn checkout https://svn.openmoko.org/trunk/src/host/qemu-neo1973&lt;br /&gt;
$ cd qemu-neo1973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now, we're going to configure and build the emulator (Note [[#Requirements|Requirements]] below):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ./configure --target-list=arm-softmmu  # GCC 3.x will be required, see --cc=&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you dont want gcc-3.x then you can apply patch from here&lt;br /&gt;
https://bugs.gentoo.org/show_bug.cgi?id=160627&lt;br /&gt;
like so&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ patch -p2 &amp;lt; quemu-gcc4.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See other available options for the configure script by appending &amp;quot;--help&amp;quot;.&lt;br /&gt;
Now you should have a working emulator under the name &amp;quot;arm-softmmu/qemu-system-arm&amp;quot;. To run Openmoko you will also need to somehow install Openmoko on your virtual phone, which is totally clean of any software at this moment. There are several block devices to choose from, the best option is probably to do exactly what the Neo1973 manufacturer does before it ships the device to the final user. This process is described in [[Bootloader]], [[Kernel]], [[NAND bad blocks]] and [[Devirginator]] but you don't need to know all the details. Two scripts are provided to generate a firmware for your phone, as realistic as possible. First run&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openmoko/download.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
which will look up the list of latest available Openmoko snapshot builds from buildhost.openmoko.org and choose the most recent [[u-boot]], Kernel, and root filesystem images, and download the images (unless they are already found in the openmoko/ directory). These binaries will be used by the flash.sh script. First make sure you have the netpbm package installed for some graphics conversion utilities. On Ubuntu this can be done by:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install netpbm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openmoko/flash.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
which runs the emulator, loads u-boot into it and then uses u-boot's capability to program the Flash memory to install all the necessary parts of the system into the virtual Flash. It will also set up all the bootloading process including a boot menu (ENTER is [AUX] and SPACE is [POWER]), splash, u-boot environment and some default kernel parameters. If everything goes OK, the script should print a command which you can use to start using the emulator.&lt;br /&gt;
&lt;br /&gt;
QEMU has '''*tons*''' of commandline switches and things that can be configured. You can look them up in [http://bellard.org/qemu/user-doc.html QEMU user docs]. You will probably want to use the &amp;quot;-snapshot&amp;quot; switch, among other ones. Saving and restoring emulation state at any point (unrelated to &amp;quot;-snapshot&amp;quot;) should work as per QEMU user docs too. In addition the monitor commands &amp;quot;help&amp;quot; and &amp;quot;info&amp;quot; are of great help. The monitor usually sits in second virtual console, thus ctrl-alt-2 and ctrl-alt-1 switch to monitor and back.&lt;br /&gt;
&lt;br /&gt;
=== Binaires précompilés ===&lt;br /&gt;
&lt;br /&gt;
Win32 binaries shipped with firmware can be downloaded from [http://yorick.keymeulen.com/openmoko-emulator-bin-20070625.rar openmoko-emulator-win32-bin-20070625.zip]. Tested on MS Windows XP and Vista Business.&lt;br /&gt;
&lt;br /&gt;
=== Neo FreeRunner (GTA02) ===&lt;br /&gt;
&lt;br /&gt;
Les instructions pour exécuter l'émulateur sont les mêmes pour le FreeRunner, mais la ligne de commande finale pour invoquer Qemu change. Au lieu de &amp;quot;-M gta01&amp;quot; comme nom de machine &amp;quot;-M gta02fake&amp;quot; doit être utilisé.&lt;br /&gt;
&lt;br /&gt;
Le noyau supportant l'émulateur GTA02 est optenu en appliquant le patch ''openmoko/linux-gta02-pseudo.patch'' disponible dans les sources de qemu-neo1973 au noyau openmoko 2.6.24 (vanilla linux-2.6.24 + le patchset de [http://svn.openmoko.org/branches/src/target/kernel/2.6.24.x/patches/]). &lt;br /&gt;
Comme le support du noyau GTA02 est toujours en développement intensif, référez vous au fichier openmoko/README dans les sources de qemu-neo1973 pour les dernières instructions sur comment construire le noyau.&lt;br /&gt;
&lt;br /&gt;
Si un noyau normal d'Openmoko est utilisé avec l'émulateur Neo FreeRunner, il s'exécutera simplement comme si la machine était un GTA01 sans détecter les nouveaux périphériques.&lt;br /&gt;
&lt;br /&gt;
== Scripts utiles ==&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-auto.sh&lt;br /&gt;
&lt;br /&gt;
launches qemu and opens a unix socket for communication. All additional parameters are passed to qemu. (e.g. openmoko/qemu-auto.sh -nographic launches the virtual machine with no graphics etc.).&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-upload.sh &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
produces a SD card image with one partition with the given file(s) on it (you can pass a list of files) and inserts it into the phone. The Openmoko kernel should detect the event and the automounter should mount the partition. openmoko/qemu-auto.sh must be running already. If you pass no parameters, it ejects the media (the OM kernel is too dumb to detect this unfortunately). This will only work with gta01 emulation because gta02 has no SD.&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-quit.sh&lt;br /&gt;
&lt;br /&gt;
powers the VM down cleanly.&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-gadget.sh&lt;br /&gt;
&lt;br /&gt;
attempts to connect target's S3C USB slave to host's dummy HCD (if present and gadgetfs is mounted).&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
This QEMU tree has only been tested on GNU/Linux. To get graphical (not counting VNC) and/or audio output from the emulator you will need either SDL or Cocoa installed on your computer. To enable audio, see the available switches to the ./configure script.&lt;br /&gt;
&lt;br /&gt;
The scripts that sit in openmoko/ require lynx, wget, python, netpbm and most GNU base utilities installed in standard locations. The netpbm package contains tools necessary for bootsplash image conversion.&lt;br /&gt;
&lt;br /&gt;
All of the build-time and run-time requirements listed in [http://bellard.org/qemu/user-doc.html QEMU documentation] apply. This includes zlib, etc. On distributions that use binary packages, remember that you need the packages ending in '''-dev''' or '''-devel'''.&lt;br /&gt;
&lt;br /&gt;
== Qemu et Gnu debugger ==&lt;br /&gt;
&lt;br /&gt;
QEMU lets you debug operating system kernels and bootloaders like you debug all other programs. To do this you will need a debugger that speaks the GDB remote debugging protocol - [http://sourceware.org/gdb/ GDB] is the obvious choice. Some cross toolchains come with GDB already set up. Otherwise building cross-GDB yourself is quick and easy (compared to building binutils and cross-gcc).&lt;br /&gt;
&lt;br /&gt;
To debug u-boot, load the file &amp;quot;u-boot&amp;quot; into gdb (not &amp;quot;u-boot.bin&amp;quot;) that is produced by &amp;quot;make&amp;quot; when building u-boot. To debug a Linux kernel, load the file &amp;quot;vmlinux&amp;quot; from the main source directory into gdb. These files are in ELF format and contain all the symbol information and are not stripped of debugging data until you run &amp;quot;strip&amp;quot; on them, unlike &amp;quot;u-boot.bin&amp;quot; and &amp;quot;Image&amp;quot;/&amp;quot;zImage&amp;quot;/&amp;quot;uImage&amp;quot;. Next, tell QEMU to enable the gdbserver by appending the &amp;quot;-s&amp;quot; switch or issuing &amp;quot;gdbserver&amp;quot; in the monitor. Use the command &amp;lt;pre&amp;gt;(gdb) target remote localhost:1234&amp;lt;/pre&amp;gt; to make a connection to the emulator. From there you should be able to use all the usual GDB commands, including stepping instructions, setting breakpoints, watchpoints, inspecting stack, variables, registers and more. If gdb is running in the same directory from which it grabbed the ELF executable, the &amp;quot;edit&amp;quot; command should work so you can jump right to the source line which is executing.&lt;br /&gt;
&lt;br /&gt;
== Connexion réseau simple avec pppd ==&lt;br /&gt;
&lt;br /&gt;
One simple way to get a network connection from the emulated Neo is via an emulated serial port and [[pppd]]. Add ''-serial vc -serial pty'' to the [[QEMU command line]], and QEMU prints a device name on a line like &amp;quot;char device redirected to /dev/pts/12&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On the Neo side, open a terminal and run the command &amp;quot;pppd nodetach debug /dev/ttySAC1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On the host computer side, open a root terminal and run the command &amp;quot;pppd nodetach debug 192.168.68.1:192.168.68.2 noauth /dev/pts/12&amp;quot;, substituting the actual device name from above.&lt;br /&gt;
&lt;br /&gt;
Now on the host computer side, you should be able to &amp;quot;ping 192.168.68.2&amp;quot; and &amp;quot;ssh root@192.168.68.2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NB : If you see in pppd trace something like this &amp;quot;Received bad configure-rej:  12 06 00 00 00 00&amp;quot; again and again, you will ping but no application will work. It is probably the compression protocol (ccp) negotiation which fail. Add &amp;quot;noccp&amp;quot; to the two pppd commands like &amp;quot;pppd nodetach debug noccp /dev/ttySAC1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Etablir une connexion internet sur votre neo émulé ==&lt;br /&gt;
Before you start, you have to have a working pppd or USB connection, ([[#Simple_network_connection_with_pppd|see the previous chapter]] and [[#Setting up USB connection|the next chapter]])&lt;br /&gt;
&lt;br /&gt;
(I assume that your local ip-adress is 192.168.0.100 and your router is 192.168.0.1)&lt;br /&gt;
&lt;br /&gt;
In qemu terminal (or via ssh) type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ifdown usb0&lt;br /&gt;
$ route add default gw 192.168.68.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit /etc/resolv.conf:&lt;br /&gt;
nameserver 192.168.0.1&lt;br /&gt;
This will be your host-computer DNS server.&lt;br /&gt;
&lt;br /&gt;
On the host-computer type(as root , use sudo -i on ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 1 &amp;gt;&amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
echo 1 &amp;gt;&amp;gt; /proc/sys/net/ipv4/ip_dynaddr&lt;br /&gt;
&lt;br /&gt;
modprobe ip_tables&lt;br /&gt;
modprobe iptable_nat&lt;br /&gt;
modprobe ipt_MASQUERADE&lt;br /&gt;
&lt;br /&gt;
iptables -t filter -F&lt;br /&gt;
iptables -t nat    -F&lt;br /&gt;
&lt;br /&gt;
iptables -t filter -P INPUT       ACCEPT&lt;br /&gt;
iptables -t filter -P FORWARD     ACCEPT&lt;br /&gt;
iptables -t filter -P OUTPUT      ACCEPT&lt;br /&gt;
iptables -t nat    -P PREROUTING  ACCEPT&lt;br /&gt;
iptables -t nat    -P POSTROUTING ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.68.0/24 -j MASQUERADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Where eth0 is your network interface connected to the router)&lt;br /&gt;
&lt;br /&gt;
Thats it - now you can enjoy internet in qemu.&lt;br /&gt;
&lt;br /&gt;
== Etablir une connexion USB ==&lt;br /&gt;
&lt;br /&gt;
It is possible (although not very straight forward, probably about the complexity of tun-tap networking) to connect the virtual, emulated Neo1973 to the Linux PC on which the emulator is running, and work with it as if a real Neo1973 was plugged into the computer's USB port, but no twiddling with cables is needed. If you're testing your applications on the Neo, it may be worth setting up this kind of connection because it lets you enable normal [[USB_Networking|networking between the PC and the phone and ssh into it]] (which is much more comfortable than typing commands into the Openmoko's terminal emulator via on-screen keyboard). Here's what you will need in order to get this working:&lt;br /&gt;
&lt;br /&gt;
A Linux host with a 2.6 series kernel. The following drivers compiled-in or in modules: dummy_hcd, gadgetfs, usbnet, cdc_ether. [[Building Gadget USB Module|A detailed guide to building the necessary modules is available (primarily Ubuntu focused).]] Generic instructions follow.&lt;br /&gt;
&lt;br /&gt;
Note that you need root access to perform most actions described here. Here's how to enable the drivers in menuconfig.&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''Support for USB Gadgets'''&lt;br /&gt;
&lt;br /&gt;
Find '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''USB Peripheral Controller''' and set it to '''Dummy HCD (DEVELOPMENT)'''&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''Gadget Filesystem (EXPERIMENTAL)''' (this one is good to have as a module)&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework'''&lt;br /&gt;
&lt;br /&gt;
(in 2.6.25 (from ???) '''Device Drivers''' -&amp;gt; '''Network device support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''')&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''' -&amp;gt; '''CDC Ethernet support (smart devices such as cable modems)'''&lt;br /&gt;
&lt;br /&gt;
(in 2.6.25 (from ???) '''Device Drivers''' -&amp;gt; '''Network device support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''' -&amp;gt; '''CDC Ethernet support (smart devices such as cable modems)''')&lt;br /&gt;
&lt;br /&gt;
These last two drivers are the same [[Getting Started with your Neo1973#By using Ethernet emulation over a USB cable|drivers that you need to work with a real Neo over USB network]]. After you've built the drivers, make sure that the copy of kernel headers in /usr/include/linux is up to date. In particular the file /usr/include/linux/usb_gadgetfs.h needs to be present and if your distribution came with headers older than 2.6.18 or so, then you need tell the package manager to update them, or you can do that manually with&lt;br /&gt;
&amp;lt;pre&amp;gt; # cp -a /usr/src/linux/include/linux/* /usr/include/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
(assuming that your kernel sources are in /usr/src/linux). It is important that this is done before building qemu because the build system checks if these headers are functional and in case they aren't found it will disable the USB Slave functionality.  Run &amp;quot;grep CONFIG_GADGETFS config-host.h&amp;quot; in qemu build directory to make sure that the detection succeeded.  If it didn't, correct your linux headers and reconfigure qemu.&lt;br /&gt;
&lt;br /&gt;
After building qemu and before running it, make sure that the modules are loaded into the kernel. I found it useful to load gadgetfs with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt; # modprobe gadgetfs default_uid=1000  # assuming my User ID is 1000&amp;lt;/pre&amp;gt;&lt;br /&gt;
and added the following line to my /etc/fstab:&lt;br /&gt;
&amp;lt;pre&amp;gt;gadget         /dev/gadget    gadgetfs   noauto,user,group         0   0&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make sure that the mountpoint /dev/gadget exists:&lt;br /&gt;
&amp;lt;pre&amp;gt; # mkdir -p /dev/gadget&amp;lt;/pre&amp;gt;&lt;br /&gt;
After that the rest of the procedure can be performed from your regular user account. Mounting gadgetfs is done with:&lt;br /&gt;
&amp;lt;pre&amp;gt; $ mount /dev/gadget&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;quot;default_uid&amp;quot; parameter changes the ownership on all files under /dev/gadget to your own and since the files there are created and destroyed dynamically, there's no easy way to have that performed by ''udev''. Now running qemu as you usually do but appending &amp;quot;-usb -usbgadget&amp;quot; (in the current version of the [[MokoMakefile]] this is not included) should enable the USB Slave functionality. The qemu monitor commands &amp;quot;info usbslave&amp;quot; and &amp;quot;usb_add gadget&amp;quot; will be useful. The former instruction asks the OS running under the emulator (Openmoko) to describe its slave features (that's what ''lsusb'' does after a Neo1973 is connected to a PC). You can see the available USB configurations in this command's output. Since gadgetfs allows only one configuration, we will need to choose the desired configuration - most device have only one such configuration, in which case you can use just &amp;quot;usb_add gadget&amp;quot; to connect to host; CDC ethernet devices however usually include a second configuration for RNDIS networking (i.e. Ms Windows compatibility) and so does Openmoko when using the g_ether driver. Hence, to get this right, wait for Openmoko to fully boot up and execute the following in QEMU monitor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU 0.9.0 monitor - type 'help' for more information&lt;br /&gt;
(qemu) info usbslave &lt;br /&gt;
USB2.2 device 1457:5122:&lt;br /&gt;
Manufacturer: Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
Product: RNDIS/Ethernet Gadget&lt;br /&gt;
Configuration 0: RNDIS&lt;br /&gt;
Configuration 1: CDC Ethernet&lt;br /&gt;
(qemu) &lt;br /&gt;
(qemu) usb_add gadget:1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If qemu gives &amp;quot;couldn't add device gadget:1&amp;quot;, double-check that it was built against gadgetfs - the file config-host.h must contain the line &amp;quot;#define CONFIG_GADGETFS 1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;1&amp;quot; in &amp;quot;usb_add gadget:N&amp;quot; is the number of the USB configuration that we want to use. If everything went correctly - you can check that in dmesg - you should now have a new network interface called ''usb0'' on the PC, through which you can talk to the Openmoko running in QEMU:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ dmesg | tail&lt;br /&gt;
&amp;lt;6&amp;gt;gadgetfs: bound to dummy_udc driver&lt;br /&gt;
&amp;lt;7&amp;gt;hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: new high speed USB device using dummy_hcd and address 3&lt;br /&gt;
&amp;lt;6&amp;gt;gadgetfs: connected&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: default language 0x0409&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: Product: RNDIS/Ethernet Gadget&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: Manufacturer: Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: adding 3-1:1.0 (config #1, interface 0)&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1:1.0: uevent&lt;br /&gt;
&amp;lt;7&amp;gt;cdc_ether 3-1:1.0: usb_probe_interface - got id&lt;br /&gt;
&amp;lt;7&amp;gt;cdc_ether 3-1:1.0: status ep3in, 16 bytes period 14&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: adding 3-1:1.1 (config #1, interface 1)&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1:1.1: uevent&lt;br /&gt;
 $ su -&lt;br /&gt;
Password:&lt;br /&gt;
 # tail /var/log/everything/current&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: connected&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: disconnected&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: configuration #1&lt;br /&gt;
May  8 19:25:32 [kernel] usb0: register 'cdc_ether' at usb-dummy_hcd-1, CDC Ethernet Device, 52:e7:eb:76:0a:d0&lt;br /&gt;
 # lsusb -vvv&lt;br /&gt;
Bus 003 Device 003: ID 1457:5122  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               2.00&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5122 &lt;br /&gt;
  bcdDevice            2.12&lt;br /&gt;
  iManufacturer           1 Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
  iProduct                2 RNDIS/Ethernet Gadget&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           80&lt;br /&gt;
    bNumInterfaces          2&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          7 CDC Ethernet&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      6 Ethernet Networking&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 CDC Communications Control&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               1.10&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      CDC Ethernet:&lt;br /&gt;
        iMacAddress                      3 52E7EB760AD0&lt;br /&gt;
        bmEthernetStatistics    0x00000000&lt;br /&gt;
        wMaxSegmentSize               1514&lt;br /&gt;
        wNumberMCFilters            0x0000&lt;br /&gt;
        bNumberPowerFilters              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval              14&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass        10 Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       1&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              4 Ethernet Data&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               0&lt;br /&gt;
Device Qualifier (for other device speed):&lt;br /&gt;
  bLength                10&lt;br /&gt;
  bDescriptorType         6&lt;br /&gt;
  bcdUSB               2.00&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
&lt;br /&gt;
 # ifconfig usb0 inet 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
 # exit&lt;br /&gt;
 $ ssh root@192.168.0.202&lt;br /&gt;
The authenticity of host '192.168.0.202 (192.168.0.202)' can't be established.&lt;br /&gt;
RSA key fingerprint is de:21:87:93:52:1c:6b:c7:69:29:6c:af:66:50:02:02.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
Warning: Permanently added '192.168.0.202' (RSA) to the list of known hosts.&lt;br /&gt;
root@192.168.0.202's password: &lt;br /&gt;
root@fic-gta01:~$ uname -a&lt;br /&gt;
Linux fic-gta01 2.6.20.7-moko8 #1 PREEMPT Wed Apr 25 11:13:52 UTC 2007 armv4tl unknown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connexion par le port série/Communication avec le u-boot ==&lt;br /&gt;
If you add the option ''-serial telnet:localhost:1200,server'' to QEMU will create a telnet server on port 1200 that you can connect to as the serial port.&amp;lt;br&amp;gt;&lt;br /&gt;
This will allow you to experiment with u-boot configuration without risking to brick the real device.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Please note that QEMU will wait for you to connect to the telnet server at port 1200 before starting the emulation.&amp;lt;br&amp;gt;&lt;br /&gt;
(use the command ''telnet localhost 1200'' to establish the connection)&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
*[[Building Gadget USB Module]] - Helpful guide&lt;br /&gt;
*[[Xephyr]] - Openmoko on i386&lt;br /&gt;
*[[Xoo]] - Openmoko on i386&lt;br /&gt;
&lt;br /&gt;
{{Languages|Openmoko_under_QEMU}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_under_QEMU</id>
		<title>Openmoko under QEMU</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_under_QEMU"/>
				<updated>2008-10-11T13:34:29Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* What hardware is supported */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Openmoko under QEMU}}&lt;br /&gt;
[http://en.wikipedia.org/wiki/Qemu QEMU] can be used in at least three ways to run Openmoko. Depending on the purpose that you are going to use the emulator for, you should decide on the target platform.&lt;br /&gt;
&lt;br /&gt;
*''PC'' - Openmoko can be built to run on regular i386 hardware, 32- or 64-bit and this is probably the fastest way to get Openmoko running if you want to get an impression of how it looks.  In this scenario QEMU would only serve for isolating your Openmoko installation from your normal system, or, if you're not on a UNIX system, QEMU provides a non-intrusive way to get Linux up quickly. More information can be found in the [[FAQ]] and [[Getting Openmoko working on host with Xoo|here]].&lt;br /&gt;
&lt;br /&gt;
*''Integrator/CP'' - this is the default ARM-based machine that QEMU knows about. This target is used with MACHINE=&amp;quot;qemuarm&amp;quot; and it is sufficient to run the original Openmoko rootfs image, although it doesn't emulate any of the [[:Category:Neo1973 Hardware | Neo1973 Hardware]] except the very CPU core. Read more in the [[FAQ#Q:_Is_there_an_emulator_available_for_Openmoko.3F|FAQ]].&lt;br /&gt;
&lt;br /&gt;
*''Neo1973'' - the QEMU tree available from Openmoko repositories is also capable of emulating most of the actual [[Neo1973]] (GTA01) hardware, although not all of it. Additionally, Neo FreeRunner emulation is a work-in-progress. When all of the emulator parts are more mature our code is going to be submitted and merged to the main QEMU development tree.&lt;br /&gt;
&lt;br /&gt;
== Neo1973 emulation ==&lt;br /&gt;
&lt;br /&gt;
This target will (obviously) run original Openmoko rootfs images, but then it should also be able to run the original u-boot and kernel images, the same ones that a real Neo1973 (GTA01) uses. Among other differences you will notice between this approach and the Integrator/CP target is you also get correct screen resolution, some (fake) battery readings, and other goodness. Currently missing parts of the GTA01 emulator are: [[Hardware:AGPS|AGPS]] and [[Bluetooth]] - these things will still be worked on, as well as general usability. Even with these things missing, QEMU should provide substantial help in debugging kernel and u-boot issues to developers.&lt;br /&gt;
&lt;br /&gt;
What QEMU can '''*not*''' be used for, and probably no other emulator can, is speed measures and getting the general feel of Openmoko performance. Code running in qemu runs with the maximum speed your host computer can provide with an overhead of translating target code to host code, and this overhead is not uniform across different instructions. This means that even if your virtual Neo reports near 100 BogoMIPS (which is the speed of a real Neo), different actions performed in the emulator will not run with the same speed. On most PCs you will notice the virtual Neo running faster than a real one (Audio related operations may be one of the exceptions).&lt;br /&gt;
&lt;br /&gt;
=== What hardware is supported ===&lt;br /&gt;
&lt;br /&gt;
Rough status for each of the components that need emulation, following the outline of [[:Category:Neo1973 Hardware | Neo1973 Hardware]] page.&lt;br /&gt;
{|&lt;br /&gt;
! Hardware !! Status !! Usage notes&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|S3C2410A Processor&lt;br /&gt;
|-&lt;br /&gt;
|ARM920T core || Works || Already in mainline QEMU.&lt;br /&gt;
|-&lt;br /&gt;
|Basic guts || Work || This includes GPIO interface, DMA, Interrupt Controller, Timers, NAND controller, MMC/SD host, [[I2C]] and IIS interfaces, Memory &amp;amp; Clock &amp;amp; Power management controllers, RAM.&lt;br /&gt;
|-&lt;br /&gt;
|Serial ports || Works || Use the &amp;quot;-serial&amp;quot; switch (maybe be specified multiple times) to tell QEMU where serial input/output should go to. GSM module will be connected on UART0.&lt;br /&gt;
|-&lt;br /&gt;
|RTC || Works || On start QEMU will load it with current time/date - the Neo1973 [[kernel]] doesn't use it for time/date source currently.&lt;br /&gt;
|-&lt;br /&gt;
|SPI || Works || The guest kernel can drive it using either the SPI interface or raw GPIO bitbanging.&lt;br /&gt;
|-&lt;br /&gt;
|LCD || Works || The virtual LCD will display contents in QEMU window unless &amp;quot;-nographic&amp;quot; is specified on command line.&lt;br /&gt;
|-&lt;br /&gt;
|ADC || Works || Mouse events in QEMU window generate what would be touchscreen events on a Neo1973 and are passed to the guest OS through the on-chip ADC.&lt;br /&gt;
|-&lt;br /&gt;
|OHCI USB || Works || This part is in mainline QEMU. Use the &amp;quot;-usb&amp;quot; switch to enable the controller and &amp;quot;usb_add&amp;quot; in QEMU monitor to attach new virtual or physical USB devices.&lt;br /&gt;
|-&lt;br /&gt;
|Slave USB || Works || Linux's dummy HCD in conjunction with gadget filesystem API is used to make the virtual Neo appear as a real one connected to the host computer. See [[#Setting up USB connection|Setting up USB connection]] below. (Experimental)&lt;br /&gt;
|-&lt;br /&gt;
|Watchdog || Works || This is one of the less important on-chip peripherals in S3C2410. It is however used by Linux for rebooting the board.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|[[I2C]] bus peripherals&lt;br /&gt;
|-&lt;br /&gt;
|[[PCF50606]] || Works || (Aka PMU) Fakes the battery charge level (set at 88%), POWER button, etc. Also contains an RTC, also unused by Linux.&lt;br /&gt;
|-&lt;br /&gt;
|[[LM4857]] || Works&lt;br /&gt;
|-&lt;br /&gt;
|[[WM8753L]] || Works || The CODEC is also connect to the CPU's IIS port. Basic [[Neo1973 Audio Subsystem|audio functionality]] is supported - see QEMU documentation on getting audio input/output from the emulator. Volume control has no effects.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|Other peripherals&lt;br /&gt;
|-&lt;br /&gt;
|NAND Flash || Works || However, some pieces are not confirmed to be completely compatible with the real hardware because of lack thereof. Use &amp;quot;-mtdblock flashimagefilenamehere&amp;quot; switch to point QEMU to your flash image. The file should be at least 69206016 bytes big.&lt;br /&gt;
|-&lt;br /&gt;
|JBT6K74-AS(PI) || Works || (Aka LCM) Wired to the SPI channel 1&lt;br /&gt;
|-&lt;br /&gt;
|Buttons || Work || Enter is the AUX button, Space is the POWER button. Wired to on-chip GPIO and PCF50606.&lt;br /&gt;
|-&lt;br /&gt;
|SD card || Works || This part is already in mainline QEMU. Use the &amp;quot;-sd cardimagegoeshere&amp;quot; switch to point QEMU to the card image. The regular QEMU monitor commands for removable media can also be used. The card works, however the on-chip host controller gave block length errors on heavy I/O despite working as described in specification. I suspect the kernel driver. DMA operation is not tested.&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth&lt;br /&gt;
|style=&amp;quot;background-color:#ffffcc;&amp;quot;|Works&lt;br /&gt;
|A generic Bluetooth HCI (just like the BlueCore4 chip) is connected to internal USB hub (just like the Delta DBFM dongle). Currently qemu emulates no other bluetooth devices, so the dongle behaves as if there was no BT-enabled slaves around, being the only device on the piconet, i.e. is not really useful. Likely a Bluetooth keyboard will be emulated. A physical Bluetooth dongle can also be attached to the emulator (see USB documentation in QEMU).&lt;br /&gt;
|-&lt;br /&gt;
|[[GSM]] || Works || A fake modem is connected to UART0 understanding a (currently quite limited) subset of AT commands. Ultimately it should support as much functionality as possible (basic AT command set, fake GPRS connections, dialing and SMS send/receive). This way all parts of the phone subsystem (CALYPSO, TWL3014, TRF6151) will not have to be emulated. There is a possibility to wire a real GSM modem to QEMU's serial port, or the [http://doc.trolltech.com/qtopia-4.3-snapshot/fd-ModemSimulator.html phonesim] modem simulator from the ''Qtopia'' project (use the --enable-phonesim switch to ./configure) as well as the [http://doc.trolltech.com/qtopia-4.3-snapshot/modem-emulator.html atinterface] modem emulator, also from Qtopia.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hardware:AGPS|AGPS]]&lt;br /&gt;
|style=&amp;quot;background-color:#ffcccc;&amp;quot;|To Do&lt;br /&gt;
|There are obvious difficulties emulating the chip, but hopefully it can be made to present the guest OS with some fixed coordinates later when more is known about the chip. Again a real chip could be connected to QEMU's serial port.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Current development is aiming for [[:Category:Neo1973_Hardware#GTA01Bv4 | GTA01Bv4]] compatibility; [[:Category:Neo1973_Hardware#GTA01Bv3 | earlier revisions]] can also be emulated if needed. The differences between the hardware revisions currently only manifest themselves in GPIO wiring. Hardware emulation is implemented in a clean-room manner using official specifications where possible.&lt;br /&gt;
&lt;br /&gt;
== Neo FreeRunner emulation ==&lt;br /&gt;
&lt;br /&gt;
The second line of Openmoko phones, the Neo FreeRunner (GTA02) saw various hardware changes and improvements since Neo1973 (GTA01).  QEMU has fullest support for the GTA01 (the first model), but partial GTA02 emulation is also planned.  This will only include the hardware components which were added in GTA02 and were not present in GTA01 (see [[Neo 1973 vs Neo FreeRunner]] for complete hardware difference list):&lt;br /&gt;
&lt;br /&gt;
* The u-blox GPS chip (i.e. raw NMEA protocol).&lt;br /&gt;
* The Atheros AR6001 WLAN / WiFi chip (and SDIO bus).&lt;br /&gt;
* The two LIS accelerometers.&lt;br /&gt;
* 128MiB, 1.8V NAND chip instead of 64MiB.&lt;br /&gt;
&lt;br /&gt;
What that means is that the emulated machine will internally not be exactly like Neo FreeRunner, but will be functionally the same.  That in turn means that it needs a custom kernel because it's neither a GTA01 nor GTA02 internally.  This kernel source will be provided as part of qemu.  The bootloader used will be the GTA01 build of u-boot.&lt;br /&gt;
&lt;br /&gt;
This approach is called paravirtualisation and is often used as an emulation solution for mobile platforms.  For a userspace programmer (Application developers) the machine will be visible as a genuine GTA02.  For a kernel hacker it will be a custom board.&lt;br /&gt;
&lt;br /&gt;
If there's an initiative among the users, to emulate GTA02 hardware to a bigger extent than explained here, patches / improvements will be always welcome because the QEMU project seeks to emulate the real hardware and stay always as close as possible to physical hardware (in other words, full emulation is preferred over paravirtualisation in the QEMU upstream).&lt;br /&gt;
&lt;br /&gt;
=== What hardware is supported ===&lt;br /&gt;
&lt;br /&gt;
Below is a rough status information for each of the components.&lt;br /&gt;
{|&lt;br /&gt;
! Hardware !! Status !! Usage notes&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|GTA01 hardware&lt;br /&gt;
|-&lt;br /&gt;
|Processor, on-chip and external peripherals || Work || See the GTA01 supported hardware chart above.  This hardware is at the base of the Neo FreeRunner emulator.  The same usage notes apply.&lt;br /&gt;
|- style=&amp;quot;background-color:#eeeedd;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|GTA02 components&lt;br /&gt;
|-&lt;br /&gt;
|GPS || Works || A virtual GPS chip is connected to the second serial port of the virtual machine, exactly like on the Neo FreeRunner.&lt;br /&gt;
|-&lt;br /&gt;
|WLAN&lt;br /&gt;
|style=&amp;quot;background-color:#ffffcc;&amp;quot;|Partial support&lt;br /&gt;
|The Atheros AR6001 (second firmware revision) is emulated to an extent that it gets detected by the kernel SDIO stack and registered as a network interface by the Atheros driver.  It doesn't allow for actual network communication yet.  The basic SDIO bus emulation is complete.&lt;br /&gt;
|-&lt;br /&gt;
|Accelerometers || Work || Two dummy accelerometers are connected to the virtual machine's I2C bus.  They provide a constant 1G reading at the moment.  One improvement idea to be implemented when there's some software available for testing, is to pass Qemu's SDL window movements as input to the virtual accelerometers, i.e. dragging the X window around would generate motion sensor events.  These events would be two-dimensional but should be enough for Application developers to test their programs' interactions with the movements.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How to get it running ==&lt;br /&gt;
&lt;br /&gt;
These instructions talk about the GTA01 emulator (default).&lt;br /&gt;
&lt;br /&gt;
=== Using MokoMakefile ===&lt;br /&gt;
&lt;br /&gt;
This is arguably the easiest way of building qemu-neo1973 since you won't need to deal with the compiling and flashing processes yourself. See [[Using_QEMU_with_MokoMakefile|MokoMakefile]] for details.&lt;br /&gt;
&lt;br /&gt;
If you *just* build QEMU and use the official images by typing &amp;quot;make qemu&amp;quot; only (as opposed to setting up monotone and openembedded and building an entire new image for yourself with MokoMakefile), then the build takes less time than the manual instructions below (since it's all done automatically).&lt;br /&gt;
&lt;br /&gt;
=== Manual setup ===&lt;br /&gt;
&lt;br /&gt;
To obtain the latest source code for the emulator, you will want to do something like the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn checkout https://svn.openmoko.org/trunk/src/host/qemu-neo1973&lt;br /&gt;
$ cd qemu-neo1973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now, we're going to configure and build the emulator (Note [[#Requirements|Requirements]] below):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ./configure --target-list=arm-softmmu  # GCC 3.x will be required, see --cc=&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you dont want gcc-3.x then you can apply patch from here&lt;br /&gt;
https://bugs.gentoo.org/show_bug.cgi?id=160627&lt;br /&gt;
like so&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ patch -p2 &amp;lt; quemu-gcc4.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See other available options for the configure script by appending &amp;quot;--help&amp;quot;.&lt;br /&gt;
Now you should have a working emulator under the name &amp;quot;arm-softmmu/qemu-system-arm&amp;quot;. To run Openmoko you will also need to somehow install Openmoko on your virtual phone, which is totally clean of any software at this moment. There are several block devices to choose from, the best option is probably to do exactly what the Neo1973 manufacturer does before it ships the device to the final user. This process is described in [[Bootloader]], [[Kernel]], [[NAND bad blocks]] and [[Devirginator]] but you don't need to know all the details. Two scripts are provided to generate a firmware for your phone, as realistic as possible. First run&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openmoko/download.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
which will look up the list of latest available Openmoko snapshot builds from buildhost.openmoko.org and choose the most recent [[u-boot]], Kernel, and root filesystem images, and download the images (unless they are already found in the openmoko/ directory). These binaries will be used by the flash.sh script. First make sure you have the netpbm package installed for some graphics conversion utilities. On Ubuntu this can be done by:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install netpbm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openmoko/flash.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
which runs the emulator, loads u-boot into it and then uses u-boot's capability to program the Flash memory to install all the necessary parts of the system into the virtual Flash. It will also set up all the bootloading process including a boot menu (ENTER is [AUX] and SPACE is [POWER]), splash, u-boot environment and some default kernel parameters. If everything goes OK, the script should print a command which you can use to start using the emulator.&lt;br /&gt;
&lt;br /&gt;
QEMU has '''*tons*''' of commandline switches and things that can be configured. You can look them up in [http://bellard.org/qemu/user-doc.html QEMU user docs]. You will probably want to use the &amp;quot;-snapshot&amp;quot; switch, among other ones. Saving and restoring emulation state at any point (unrelated to &amp;quot;-snapshot&amp;quot;) should work as per QEMU user docs too. In addition the monitor commands &amp;quot;help&amp;quot; and &amp;quot;info&amp;quot; are of great help. The monitor usually sits in second virtual console, thus ctrl-alt-2 and ctrl-alt-1 switch to monitor and back.&lt;br /&gt;
&lt;br /&gt;
=== Pre-built binaries ===&lt;br /&gt;
&lt;br /&gt;
Win32 binaries shipped with firmware can be downloaded from [http://yorick.keymeulen.com/openmoko-emulator-bin-20070625.rar openmoko-emulator-win32-bin-20070625.zip]. Tested on MS Windows XP and Vista Business.&lt;br /&gt;
&lt;br /&gt;
=== Neo FreeRunner (GTA02) ===&lt;br /&gt;
&lt;br /&gt;
The instructions for running the emulator are the same for FreeRunner, but the final command line to invoke qemu changes.  Instead of &amp;quot;-M gta01&amp;quot; as the machine name &amp;quot;-M gta02fake&amp;quot; has to be used.&lt;br /&gt;
&lt;br /&gt;
The kernel supporting GTA02 emulator is obtained by applying the ''openmoko/linux-gta02-pseudo.patch'' patch found in qemu-neo1973 sources, to the 2.6.24 openmoko kernel (vanilla linux-2.6.24 + the openmoko patchset from http://svn.openmoko.org/branches/src/target/kernel/2.6.24.x/patches/).  Since the GTA02 kernel support is still under heavy development, please refer to the openmoko/README file contained in qemu-neo1973 sources for the latest instructions on building the kernel.&lt;br /&gt;
&lt;br /&gt;
If a normal Openmoko kernel is used under Neo FreeRunner emulator, it will simply run as if the machine was a GTA01 and not detect any of the new peripherals.&lt;br /&gt;
&lt;br /&gt;
== Convenient Scripts ==&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-auto.sh&lt;br /&gt;
&lt;br /&gt;
launches qemu and opens a unix socket for communication. All additional parameters are passed to qemu. (e.g. openmoko/qemu-auto.sh -nographic launches the virtual machine with no graphics etc.).&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-upload.sh &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
produces a SD card image with one partition with the given file(s) on it (you can pass a list of files) and inserts it into the phone. The Openmoko kernel should detect the event and the automounter should mount the partition. openmoko/qemu-auto.sh must be running already. If you pass no parameters, it ejects the media (the OM kernel is too dumb to detect this unfortunately). This will only work with gta01 emulation because gta02 has no SD.&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-quit.sh&lt;br /&gt;
&lt;br /&gt;
powers the VM down cleanly.&lt;br /&gt;
&lt;br /&gt;
* openmoko/qemu-gadget.sh&lt;br /&gt;
&lt;br /&gt;
attempts to connect target's S3C USB slave to host's dummy HCD (if present and gadgetfs is mounted).&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
This QEMU tree has only been tested on GNU/Linux. To get graphical (not counting VNC) and/or audio output from the emulator you will need either SDL or Cocoa installed on your computer. To enable audio, see the available switches to the ./configure script.&lt;br /&gt;
&lt;br /&gt;
The scripts that sit in openmoko/ require lynx, wget, python, netpbm and most GNU base utilities installed in standard locations. The netpbm package contains tools necessary for bootsplash image conversion.&lt;br /&gt;
&lt;br /&gt;
All of the build-time and run-time requirements listed in [http://bellard.org/qemu/user-doc.html QEMU documentation] apply. This includes zlib, etc. On distributions that use binary packages, remember that you need the packages ending in '''-dev''' or '''-devel'''.&lt;br /&gt;
&lt;br /&gt;
== QEMU and GNU debugger ==&lt;br /&gt;
&lt;br /&gt;
QEMU lets you debug operating system kernels and bootloaders like you debug all other programs. To do this you will need a debugger that speaks the GDB remote debugging protocol - [http://sourceware.org/gdb/ GDB] is the obvious choice. Some cross toolchains come with GDB already set up. Otherwise building cross-GDB yourself is quick and easy (compared to building binutils and cross-gcc).&lt;br /&gt;
&lt;br /&gt;
To debug u-boot, load the file &amp;quot;u-boot&amp;quot; into gdb (not &amp;quot;u-boot.bin&amp;quot;) that is produced by &amp;quot;make&amp;quot; when building u-boot. To debug a Linux kernel, load the file &amp;quot;vmlinux&amp;quot; from the main source directory into gdb. These files are in ELF format and contain all the symbol information and are not stripped of debugging data until you run &amp;quot;strip&amp;quot; on them, unlike &amp;quot;u-boot.bin&amp;quot; and &amp;quot;Image&amp;quot;/&amp;quot;zImage&amp;quot;/&amp;quot;uImage&amp;quot;. Next, tell QEMU to enable the gdbserver by appending the &amp;quot;-s&amp;quot; switch or issuing &amp;quot;gdbserver&amp;quot; in the monitor. Use the command &amp;lt;pre&amp;gt;(gdb) target remote localhost:1234&amp;lt;/pre&amp;gt; to make a connection to the emulator. From there you should be able to use all the usual GDB commands, including stepping instructions, setting breakpoints, watchpoints, inspecting stack, variables, registers and more. If gdb is running in the same directory from which it grabbed the ELF executable, the &amp;quot;edit&amp;quot; command should work so you can jump right to the source line which is executing.&lt;br /&gt;
&lt;br /&gt;
== Simple network connection with pppd ==&lt;br /&gt;
&lt;br /&gt;
One simple way to get a network connection from the emulated Neo is via an emulated serial port and [[pppd]]. Add ''-serial vc -serial pty'' to the [[QEMU command line]], and QEMU prints a device name on a line like &amp;quot;char device redirected to /dev/pts/12&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On the Neo side, open a terminal and run the command &amp;quot;pppd nodetach debug /dev/ttySAC1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On the host computer side, open a root terminal and run the command &amp;quot;pppd nodetach debug 192.168.68.1:192.168.68.2 noauth /dev/pts/12&amp;quot;, substituting the actual device name from above.&lt;br /&gt;
&lt;br /&gt;
Now on the host computer side, you should be able to &amp;quot;ping 192.168.68.2&amp;quot; and &amp;quot;ssh root@192.168.68.2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NB : If you see in pppd trace something like this &amp;quot;Received bad configure-rej:  12 06 00 00 00 00&amp;quot; again and again, you will ping but no application will work. It is probably the compression protocol (ccp) negotiation which fail. Add &amp;quot;noccp&amp;quot; to the two pppd commands like &amp;quot;pppd nodetach debug noccp /dev/ttySAC1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Setting up Internet connection for your qemu neo ==&lt;br /&gt;
Before you start, you have to have a working pppd or USB connection, ([[#Simple_network_connection_with_pppd|see the previous chapter]] and [[#Setting up USB connection|the next chapter]])&lt;br /&gt;
&lt;br /&gt;
(I assume that your local ip-adress is 192.168.0.100 and your router is 192.168.0.1)&lt;br /&gt;
&lt;br /&gt;
In qemu terminal (or via ssh) type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ifdown usb0&lt;br /&gt;
$ route add default gw 192.168.68.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit /etc/resolv.conf:&lt;br /&gt;
nameserver 192.168.0.1&lt;br /&gt;
This will be your host-computer DNS server.&lt;br /&gt;
&lt;br /&gt;
On the host-computer type(as root , use sudo -i on ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 1 &amp;gt;&amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
echo 1 &amp;gt;&amp;gt; /proc/sys/net/ipv4/ip_dynaddr&lt;br /&gt;
&lt;br /&gt;
modprobe ip_tables&lt;br /&gt;
modprobe iptable_nat&lt;br /&gt;
modprobe ipt_MASQUERADE&lt;br /&gt;
&lt;br /&gt;
iptables -t filter -F&lt;br /&gt;
iptables -t nat    -F&lt;br /&gt;
&lt;br /&gt;
iptables -t filter -P INPUT       ACCEPT&lt;br /&gt;
iptables -t filter -P FORWARD     ACCEPT&lt;br /&gt;
iptables -t filter -P OUTPUT      ACCEPT&lt;br /&gt;
iptables -t nat    -P PREROUTING  ACCEPT&lt;br /&gt;
iptables -t nat    -P POSTROUTING ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.68.0/24 -j MASQUERADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Where eth0 is your network interface connected to the router)&lt;br /&gt;
&lt;br /&gt;
Thats it - now you can enjoy internet in qemu.&lt;br /&gt;
&lt;br /&gt;
== Setting up USB connection ==&lt;br /&gt;
&lt;br /&gt;
It is possible (although not very straight forward, probably about the complexity of tun-tap networking) to connect the virtual, emulated Neo1973 to the Linux PC on which the emulator is running, and work with it as if a real Neo1973 was plugged into the computer's USB port, but no twiddling with cables is needed. If you're testing your applications on the Neo, it may be worth setting up this kind of connection because it lets you enable normal [[USB_Networking|networking between the PC and the phone and ssh into it]] (which is much more comfortable than typing commands into the Openmoko's terminal emulator via on-screen keyboard). Here's what you will need in order to get this working:&lt;br /&gt;
&lt;br /&gt;
A Linux host with a 2.6 series kernel. The following drivers compiled-in or in modules: dummy_hcd, gadgetfs, usbnet, cdc_ether. [[Building Gadget USB Module|A detailed guide to building the necessary modules is available (primarily Ubuntu focused).]] Generic instructions follow.&lt;br /&gt;
&lt;br /&gt;
Note that you need root access to perform most actions described here. Here's how to enable the drivers in menuconfig.&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''Support for USB Gadgets'''&lt;br /&gt;
&lt;br /&gt;
Find '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''USB Peripheral Controller''' and set it to '''Dummy HCD (DEVELOPMENT)'''&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Gadget Support''' -&amp;gt; '''Gadget Filesystem (EXPERIMENTAL)''' (this one is good to have as a module)&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework'''&lt;br /&gt;
&lt;br /&gt;
(in 2.6.25 (from ???) '''Device Drivers''' -&amp;gt; '''Network device support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''')&lt;br /&gt;
&lt;br /&gt;
Find and enable '''Device Drivers''' -&amp;gt; '''USB support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''' -&amp;gt; '''CDC Ethernet support (smart devices such as cable modems)'''&lt;br /&gt;
&lt;br /&gt;
(in 2.6.25 (from ???) '''Device Drivers''' -&amp;gt; '''Network device support''' -&amp;gt; '''USB Network Adapters''' -&amp;gt; '''Multi-purpose USB Networking Framework''' -&amp;gt; '''CDC Ethernet support (smart devices such as cable modems)''')&lt;br /&gt;
&lt;br /&gt;
These last two drivers are the same [[Getting Started with your Neo1973#By using Ethernet emulation over a USB cable|drivers that you need to work with a real Neo over USB network]]. After you've built the drivers, make sure that the copy of kernel headers in /usr/include/linux is up to date. In particular the file /usr/include/linux/usb_gadgetfs.h needs to be present and if your distribution came with headers older than 2.6.18 or so, then you need tell the package manager to update them, or you can do that manually with&lt;br /&gt;
&amp;lt;pre&amp;gt; # cp -a /usr/src/linux/include/linux/* /usr/include/linux/&amp;lt;/pre&amp;gt;&lt;br /&gt;
(assuming that your kernel sources are in /usr/src/linux). It is important that this is done before building qemu because the build system checks if these headers are functional and in case they aren't found it will disable the USB Slave functionality.  Run &amp;quot;grep CONFIG_GADGETFS config-host.h&amp;quot; in qemu build directory to make sure that the detection succeeded.  If it didn't, correct your linux headers and reconfigure qemu.&lt;br /&gt;
&lt;br /&gt;
After building qemu and before running it, make sure that the modules are loaded into the kernel. I found it useful to load gadgetfs with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt; # modprobe gadgetfs default_uid=1000  # assuming my User ID is 1000&amp;lt;/pre&amp;gt;&lt;br /&gt;
and added the following line to my /etc/fstab:&lt;br /&gt;
&amp;lt;pre&amp;gt;gadget         /dev/gadget    gadgetfs   noauto,user,group         0   0&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make sure that the mountpoint /dev/gadget exists:&lt;br /&gt;
&amp;lt;pre&amp;gt; # mkdir -p /dev/gadget&amp;lt;/pre&amp;gt;&lt;br /&gt;
After that the rest of the procedure can be performed from your regular user account. Mounting gadgetfs is done with:&lt;br /&gt;
&amp;lt;pre&amp;gt; $ mount /dev/gadget&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;quot;default_uid&amp;quot; parameter changes the ownership on all files under /dev/gadget to your own and since the files there are created and destroyed dynamically, there's no easy way to have that performed by ''udev''. Now running qemu as you usually do but appending &amp;quot;-usb -usbgadget&amp;quot; (in the current version of the [[MokoMakefile]] this is not included) should enable the USB Slave functionality. The qemu monitor commands &amp;quot;info usbslave&amp;quot; and &amp;quot;usb_add gadget&amp;quot; will be useful. The former instruction asks the OS running under the emulator (Openmoko) to describe its slave features (that's what ''lsusb'' does after a Neo1973 is connected to a PC). You can see the available USB configurations in this command's output. Since gadgetfs allows only one configuration, we will need to choose the desired configuration - most device have only one such configuration, in which case you can use just &amp;quot;usb_add gadget&amp;quot; to connect to host; CDC ethernet devices however usually include a second configuration for RNDIS networking (i.e. Ms Windows compatibility) and so does Openmoko when using the g_ether driver. Hence, to get this right, wait for Openmoko to fully boot up and execute the following in QEMU monitor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU 0.9.0 monitor - type 'help' for more information&lt;br /&gt;
(qemu) info usbslave &lt;br /&gt;
USB2.2 device 1457:5122:&lt;br /&gt;
Manufacturer: Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
Product: RNDIS/Ethernet Gadget&lt;br /&gt;
Configuration 0: RNDIS&lt;br /&gt;
Configuration 1: CDC Ethernet&lt;br /&gt;
(qemu) &lt;br /&gt;
(qemu) usb_add gadget:1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If qemu gives &amp;quot;couldn't add device gadget:1&amp;quot;, double-check that it was built against gadgetfs - the file config-host.h must contain the line &amp;quot;#define CONFIG_GADGETFS 1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;1&amp;quot; in &amp;quot;usb_add gadget:N&amp;quot; is the number of the USB configuration that we want to use. If everything went correctly - you can check that in dmesg - you should now have a new network interface called ''usb0'' on the PC, through which you can talk to the Openmoko running in QEMU:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ dmesg | tail&lt;br /&gt;
&amp;lt;6&amp;gt;gadgetfs: bound to dummy_udc driver&lt;br /&gt;
&amp;lt;7&amp;gt;hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: new high speed USB device using dummy_hcd and address 3&lt;br /&gt;
&amp;lt;6&amp;gt;gadgetfs: connected&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: default language 0x0409&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: Product: RNDIS/Ethernet Gadget&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: Manufacturer: Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
&amp;lt;6&amp;gt;usb 3-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: adding 3-1:1.0 (config #1, interface 0)&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1:1.0: uevent&lt;br /&gt;
&amp;lt;7&amp;gt;cdc_ether 3-1:1.0: usb_probe_interface - got id&lt;br /&gt;
&amp;lt;7&amp;gt;cdc_ether 3-1:1.0: status ep3in, 16 bytes period 14&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1: adding 3-1:1.1 (config #1, interface 1)&lt;br /&gt;
&amp;lt;7&amp;gt;usb 3-1:1.1: uevent&lt;br /&gt;
 $ su -&lt;br /&gt;
Password:&lt;br /&gt;
 # tail /var/log/everything/current&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: connected&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: disconnected&lt;br /&gt;
May  8 19:25:32 [kernel] gadgetfs: configuration #1&lt;br /&gt;
May  8 19:25:32 [kernel] usb0: register 'cdc_ether' at usb-dummy_hcd-1, CDC Ethernet Device, 52:e7:eb:76:0a:d0&lt;br /&gt;
 # lsusb -vvv&lt;br /&gt;
Bus 003 Device 003: ID 1457:5122  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               2.00&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5122 &lt;br /&gt;
  bcdDevice            2.12&lt;br /&gt;
  iManufacturer           1 Linux 2.6.20.7-moko8/s3c2410_udc&lt;br /&gt;
  iProduct                2 RNDIS/Ethernet Gadget&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           80&lt;br /&gt;
    bNumInterfaces          2&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          7 CDC Ethernet&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      6 Ethernet Networking&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 CDC Communications Control&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               1.10&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      CDC Ethernet:&lt;br /&gt;
        iMacAddress                      3 52E7EB760AD0&lt;br /&gt;
        bmEthernetStatistics    0x00000000&lt;br /&gt;
        wMaxSegmentSize               1514&lt;br /&gt;
        wNumberMCFilters            0x0000&lt;br /&gt;
        bNumberPowerFilters              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval              14&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass        10 Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       1&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              4 Ethernet Data&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               0&lt;br /&gt;
Device Qualifier (for other device speed):&lt;br /&gt;
  bLength                10&lt;br /&gt;
  bDescriptorType         6&lt;br /&gt;
  bcdUSB               2.00&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
&lt;br /&gt;
 # ifconfig usb0 inet 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
 # exit&lt;br /&gt;
 $ ssh root@192.168.0.202&lt;br /&gt;
The authenticity of host '192.168.0.202 (192.168.0.202)' can't be established.&lt;br /&gt;
RSA key fingerprint is de:21:87:93:52:1c:6b:c7:69:29:6c:af:66:50:02:02.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
Warning: Permanently added '192.168.0.202' (RSA) to the list of known hosts.&lt;br /&gt;
root@192.168.0.202's password: &lt;br /&gt;
root@fic-gta01:~$ uname -a&lt;br /&gt;
Linux fic-gta01 2.6.20.7-moko8 #1 PREEMPT Wed Apr 25 11:13:52 UTC 2007 armv4tl unknown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connecting to the serial port/Communicating with u-boot  ==&lt;br /&gt;
If you add the option ''-serial telnet:localhost:1200,server'' to QEMU will create a telnet server on port 1200 that you can connect to as the serial port.&amp;lt;br&amp;gt;&lt;br /&gt;
This will allow you to experiment with u-boot configuration without risking to brick the real device.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Please note that QEMU will wait for you to connect to the telnet server at port 1200 before starting the emulation.&amp;lt;br&amp;gt;&lt;br /&gt;
(use the command ''telnet localhost 1200'' to establish the connection)&lt;br /&gt;
&lt;br /&gt;
== Instant boot ==&lt;br /&gt;
Actually it not instant but a lot faster that actually booting.&lt;br /&gt;
&lt;br /&gt;
The boot speed is achieved by saving the virtual machine.&lt;br /&gt;
&lt;br /&gt;
Here are the steps required:&lt;br /&gt;
* Boot Qemu as you usually do &lt;br /&gt;
* Wait till the emulated Neo has finished starting up.  &lt;br /&gt;
* Go to the ''virtual console 2'' (press ''ctrl+alt+2'')&lt;br /&gt;
* Save the virtual machine state using '''savevm''' ''tagName''&lt;br /&gt;
Next time you want to boot you can either:&lt;br /&gt;
# Start the emulator and go to the 2. console and ''loadvm tagName''&lt;br /&gt;
# Add '''-loadvm tagName'''&lt;br /&gt;
After a short delay the emulator is just like you left it when you saved the state.&lt;br /&gt;
&lt;br /&gt;
I created a script that launches qemu using the -loadvm option, result: Instant Moko&amp;amp;trade;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[[Building Gadget USB Module]] - Helpful guide&lt;br /&gt;
*[[Xephyr]] - Openmoko on i386&lt;br /&gt;
*[[Xoo]] - Openmoko on i386&lt;br /&gt;
&lt;br /&gt;
{{Languages|Openmoko_under_QEMU}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2008.9_Update/fr</id>
		<title>Om 2008.9 Update/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2008.9_Update/fr"/>
				<updated>2008-10-10T10:17:27Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Téléchargement et intégration dans la mémoire flash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Om2008.9 Update}}&lt;br /&gt;
== Sommaire ==&lt;br /&gt;
La mise à jour '''Om 2008.9 Update''' est la première des nombreuses [http://en.wikipedia.org/wiki/Point_release mise à jour mineure] à avoir lieu après la publication originelle de [[Om2008.8|la version majeure Om 2008.8]] et est recommandée pour tous les utilisateurs de [http://downloads.openmoko.org/releases/ Om version 2008.8]. Cette version intègre des mises à niveau générales du système d'exploitation qui améliorent la stabilité, la compatibilité ainsi que la sécurité de votre Neo.&lt;br /&gt;
&lt;br /&gt;
For detailed information about fixes and updates, please visit [https://docs.openmoko.org/trac/query?status=closed&amp;amp;group=component&amp;amp;order=priority&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=status&amp;amp;col=type&amp;amp;col=priority&amp;amp;col=milestone&amp;amp;col=component&amp;amp;milestone=Om2008.9 Openmoko Trac].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Products Affected:  Neo FreeRunner&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installer la mise à jour ==&lt;br /&gt;
{{Warning|It is recommended that you back up your Neo prior to installing any updates.}}&lt;br /&gt;
=== Téléchargement et intégration dans la mémoire flash ===&lt;br /&gt;
&lt;br /&gt;
Pour installer la version 2008.9, téléchargez le système de fichiers racine et l'image du noyau disponibles à [http://downloads.openmoko.org/releases/Om2008.9/ la page de téléchargement] et installez les fichiers conformément aux instructions de la page [[Flashing the Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
Pour obtenir l'installation des dernières versions de logiciels de la distribution ASU, lancer les commandes ''opkg update'' &amp;amp;&amp;amp; ''opkg upgrade'' suffit. La mise à jour de l'écran de démarrage ne sera pas effectuée, mais c'est un détail.&lt;br /&gt;
&lt;br /&gt;
Les fichiers comportant ''-20080916-'' dans le nom et les fichiers sans date sont identiques (ce sont des liens symboliques). Le décalage de trois jours entre les fichiers 2008-09-16 et 2008-09-19 (dans la colonne &amp;quot;date de modification&amp;quot;) est normal : c'est le temps que cela a pris de prendre les fichiers dans le site de développement git, construire les paquets, les tester et les publier.&lt;br /&gt;
&lt;br /&gt;
== Quel est le contenu ==&lt;br /&gt;
&lt;br /&gt;
'''Distribution'''&lt;br /&gt;
* Created public unstable/testing/stable branches for Om 2008&lt;br /&gt;
* New meta toolchain [http://lists.openmoko.org/pipermail/devel/2008-September/002030.html Details]&lt;br /&gt;
* Fixed issue with unknown wifi showing in settings&lt;br /&gt;
* Fixed Qtopia build issues&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=10&amp;amp;component=Distro&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;milestone=Om2008.9&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''Illume'''&lt;br /&gt;
* Fixed suspend request issues in illume&lt;br /&gt;
* Added low battery alert signal - battery turns red &lt;br /&gt;
* Added carrier information&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=3&amp;amp;component=E+-+Illume&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=changetime&amp;amp;milestone=Om2008.9&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''Installer'''&lt;br /&gt;
* Improved overall error handling and stability&lt;br /&gt;
* Fixed issues with packages getting switched to wrong categories&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=6&amp;amp;component=Installer&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;milestone=Om2008.9&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''Locations'''&lt;br /&gt;
* Fixed issues with accuracy of tag saving&lt;br /&gt;
* Fixed tag text issues&lt;br /&gt;
* Fixed issues with the location of saving maps&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=4&amp;amp;component=Locations&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''Qtopia'''&lt;br /&gt;
* Improved overall call/message handling during suspend&lt;br /&gt;
* Improved PIN dialog pop up&lt;br /&gt;
* Fixed issues with showing UTF8 correctly&lt;br /&gt;
* Improved sound handling issues during calls&lt;br /&gt;
* Improved overall GUI usability issues&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=10&amp;amp;component=Qtopia&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;milestone=Om2008.9&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''Settings'''&lt;br /&gt;
* Improved speed of opening/closing of application&lt;br /&gt;
* Improved suspend time handling&lt;br /&gt;
* Fixed issues with sound profile not switching correctly&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=10&amp;amp;component=Settings&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;milestone=Om2008.9&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''System Software'''&lt;br /&gt;
* Fixed issues with time changes after removal of battery&lt;br /&gt;
* Fixed issues with no sound after resume&lt;br /&gt;
* Improved AUX light during charging &lt;br /&gt;
* Improved overall suspend/resume handling&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=8&amp;amp;component=System+Software&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=changetime&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
Also, along that distribution update comes a new (more sober) splash screen.&lt;br /&gt;
&lt;br /&gt;
==Problèmes connus==&lt;br /&gt;
&lt;br /&gt;
'''GSM'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1662 GSM not working properly after x hours]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1832 Cannot dial numbers starting with * or #]&lt;br /&gt;
&lt;br /&gt;
'''WiFi'''&lt;br /&gt;
 &lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1929 WiFi can only connect once]&lt;br /&gt;
* A lot of focus is on wifi at the moment.  An Om update is scheduled to release once we have basic usability working on the device.&lt;br /&gt;
&lt;br /&gt;
'''Audio quality'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1267 Strong echo when calling a Neo from another phone]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1640 Improve overall audio]&lt;br /&gt;
&lt;br /&gt;
'''System Software''' &lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1597 After long suspend, kernel thread events]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1315 xglamo: performance decreases after a while]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1682 Neo turns off before reaching x]&lt;br /&gt;
&lt;br /&gt;
'''Battery'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1158 Charging stops even while connected to the charger]&lt;br /&gt;
&lt;br /&gt;
==Qu'est-ce qui vient après ?==&lt;br /&gt;
Some targets for 2008.10&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=accepted&amp;amp;status=assigned&amp;amp;status=in_testing&amp;amp;status=new&amp;amp;status=reopened&amp;amp;group=component&amp;amp;order=priority&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=type&amp;amp;col=priority&amp;amp;milestone=Om2008.10 2008.10 Milestone list]&lt;br /&gt;
&lt;br /&gt;
==Références==&lt;br /&gt;
Some useful resources:&lt;br /&gt;
&lt;br /&gt;
* [[Om2008.8|Om 2008.8]]&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;group=component&amp;amp;order=priority&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=status&amp;amp;col=type&amp;amp;col=priority&amp;amp;col=milestone&amp;amp;col=component&amp;amp;milestone=Om2008.9 Om 2008.9 Milestone list]&lt;br /&gt;
* [http://onlinedev.blogspot.com/search/label/om2008.8%20review Alasal's Test Reports]&lt;br /&gt;
[[category:Om 2008.9]]&lt;br /&gt;
* Matthias's [http://www.unixarea.de/openmoko.txt installation report].&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2008.8/fr</id>
		<title>Om 2008.8/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2008.8/fr"/>
				<updated>2008-10-09T09:24:41Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Problèmes connus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Om 2008.8}}&lt;br /&gt;
{{Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
{{Distributions|Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''Om 2008.8''' est le successeur de [[Om 2007.2]] et son nom de code est '''ASU'''. Cette version a été [http://list.openmoko.org/pipermail/community/2008-August/025619.html lancée] le '''8 août 2008'''. (+ mise à jour de la version &amp;quot;stable&amp;quot; à partir du '''26 août 2008'''). Om 2008.8 utilise le lanceur EFL, des applications graphiques personnalisées et [[QtopiaOnX11|Qtopia sur X11]] pour la téléphonie. Il s'agit du premier pas de GTK+ sur X11 vers l'utilisation de nombreuses couches graphiques simultanément.&lt;br /&gt;
&lt;br /&gt;
== Quoi de neuf? ==&lt;br /&gt;
&lt;br /&gt;
Comparée à Om2007.2 qui a eu un développement plus long, Om 2008.8 est sans aucun doute une version majeure &amp;quot;.0&amp;quot;. Pensez KDE 4.0 comparée à KDE 3.5, mais pas Linux 2.6.23 vs. Linux 2.6.22. Les mises à jour sont quotidiennes, certaines bonnes, d'autres mauvaises. Si vous voulez le niveau de stabilité requis pour utiliser le FreeRunner comme téléphone principal, il est recommandé pour l'instant de garder Om2007.2 dans la mémoire flash du téléphone et de tester Om 2008.8 sur une carte microSD amovible.&lt;br /&gt;
&lt;br /&gt;
Les principaux changements visibles côté utilisateur sont les suivants :&lt;br /&gt;
&lt;br /&gt;
* L'interface utilisateur a été entièrement revue avec un nouveau gestionnaire de fenêtre [[illume]]. Il est visuellement plus riche, et personnalisable en utilisant vos propres fichiers [[Edje]].&lt;br /&gt;
*'''[[Om2008.8_Installer|Un installeur graphique]]''' permet d'ajouter facilement de nouveaux [[Themes]], de nouvelles applications et d'ajouter des fonctionnalités.&lt;br /&gt;
* Une nouvelle application nommée [Locations] est fournie. Elle permet d'enregistrer vos endroits favoris ainsi que de les partager avec des amis par SMS.&lt;br /&gt;
* La gestion d'énergie a été améliorée : Le bouton Aux permet maintenant de bloquer l'écran, le bouton Power met en veille et la diode rouge derrière le bouton Aux s'illumine lors de la charge.&lt;br /&gt;
* Le [[Om2008.8_Keyboard|clavier]] est maintenant celui de Qtopia (que ce soit une amélioration ou pas a été le sujet de [[Keyboard_Debate|nombreuses discussions]]).&lt;br /&gt;
&lt;br /&gt;
Côté développement, les principaux changements sont :&lt;br /&gt;
* Plusieurs kits de développement : '''Om2008.8''' est compatible avec les applications [http://www.enlightenment.org/ EFL], [http://trolltech.com/products/qtopia Qtopia] et [http://www.gtk.org GTK+].&lt;br /&gt;
* Un [[Community Repository|dépôt communautaire]] a été mis en place et intégré à [[Om2008.8_Installer|l'installeur de logiciels]].&lt;br /&gt;
* Les '''codes source''' sont accessibles au public, ce qui permet la personnalisation du système jusqu'aux couches bas niveau.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, vous pouvez consulter le [[Om 2008.8 Guide|guide Om 2008.8]] et [[Om2008.8 Feature Plan|les fonctionnalités prévues pour Om 2008.8]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;padding: 0%; margin:0em 0em 1em 0em; border:1px solid #c0c0c0; background:#eeeeee; width:100%;floating=&amp;quot;center&amp;quot;; &amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 uboot.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 home.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Installer4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 installer1.png|200px|center]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Main.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Edit1.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om locations4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:List.png|200px|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Pour installer la distribution stable Om2008.8 sur le Neo FreeRunner, téléchargez le système de fichiers racine et l'image du noyau à partir de la page [[Download|Téléchargement]] et mettez-la en place comme indiqué à [[Flashing the Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
== Problèmes connus ==&lt;br /&gt;
&lt;br /&gt;
Seuls les principaux problèmes sont listés ici et certains peuvent avoir été résolus par les mises à jour de la version stable (voir [http://onlinedev.blogspot.com/search/label/om2008.8%20review Alasal's test reports] ainsi que la section &amp;quot;Mises à jour&amp;quot; ci-dessous). Pour des informations plus précises, consulter le gestionnaire de bugs : [http://docs.openmoko.org/trac/search?q=2008.8 toutes les bogues de 2008.8].&lt;br /&gt;
&lt;br /&gt;
'''Mise en veille'''&lt;br /&gt;
&lt;br /&gt;
Les versions de fin août on tendance à se mettre en veille au bout de 30s quel que soit le réglage du paramètre. Désactiver l'économiseur d'écran avec `xset s off' désactive la mise en veille complètement. Cette commande doit être tapée dans une fenètre terminal du téléphone lui-même. Si vous voulez le déclencher d'une session ssh, il faut alors utiliser la commande `xset -display :0 s off'.&lt;br /&gt;
&lt;br /&gt;
Alex a résolu le problème en allant dans les paramètres Illume, puis Power et en mettant à OFF les deux paramètres. L'économiseur est alors toujours actif mais peut être désactivé facilement en touchant l'écran.&lt;br /&gt;
&lt;br /&gt;
Si au réveil du téléphone le son ne fonctionne plus (plus de sonnerie ou de son quand on appelle quelqu'un), la raison probable est que le serveur de son pulseaudio est installé. Ceci arrive quand openmoko-mediaplayer2 est installé. Le problème est déjà [http://lists.openmoko.org/pipermail/openmoko-kernel/2008-August/004877.html en cours de résolution].&lt;br /&gt;
&lt;br /&gt;
'''GSM'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1766 Appels et réception de SMS bloqués]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1662 Après x heures, le GSM ne fonctionne plus correctement]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1832 Impossible de composer les numéros commençant par * ou #]&lt;br /&gt;
&lt;br /&gt;
'''WiFi'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1929 Le WiFi ne se connecte qu'une fois]&lt;br /&gt;
&lt;br /&gt;
'''Qualité Audio'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1721 le Dialer Qt est parfois muet pendant l'établissement d'un appel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1640 Improve overall audio]&lt;br /&gt;
&lt;br /&gt;
'''Logiciels systèmes'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1736 L'écran de démarrage se met en veille et ne se réveille jamais s'il n'est pas touché pendant le démarrage]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1597 Après une longue veille, évènements au niveau des threads kernel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1315 xglamo : performance diminuée après un moment]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1682 Le Neo s'arrête avant d'avoir lancé X]&lt;br /&gt;
&lt;br /&gt;
'''Consommation de CPU élevée pour QPE'''&lt;br /&gt;
* QPE parcourt tout le système de fichier (y compris la carte SD) pour trouver les documents, fichiers mp3, etc... Si vous ne voulez pas cela vous pouvez éditer &amp;lt;tt&amp;gt;/opt/Qtopia/etc/default/Trolltech/Storage.conf&amp;lt;/tt&amp;gt; et désactiver le parcours de la carte SD (remplacer 1 par 0).&lt;br /&gt;
&lt;br /&gt;
'''Réseau'''&lt;br /&gt;
* Pas d'installations/mises à jour possibles ou des pings vers des noms de domaines en raison d'une défaillance DNS. Ce problème survient parce que le fichier /etc/resolv.conf est vide par défaut. Ajoutez cette ligne dans /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 up echo nameserver 208.67.222.222 &amp;gt;/etc/resolv.conf&lt;br /&gt;
 up echo nameserver 208.67.220.220 &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Cette ligne est à ajouter après la ligne 'gateway address' et avant 'bluetooth networking'. Après la modification, il convient de redémarrer l'appareil. Ensuite, allez compléter manuellement /etc/resolv.conf en utilisant les données de ce fichier sur votre machine locale ou l'adresse DNS.&lt;br /&gt;
&lt;br /&gt;
Pour résoudre les DNS sans redémarrer, entrer les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 echo nameserver 208.67.222.222 &amp;gt; /etc/resolv.conf&lt;br /&gt;
 echo nameserver 208.67.220.220 &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Cela devrait résoudre la majeure partie de vos soucis de réseau. Si vous avez besoin d'autres aides, référez vous au [[USB Networking|réseau par USB]].&lt;br /&gt;
&lt;br /&gt;
{{note| [http://en.wikipedia.org/wiki/Resolvconf resolv.conf] est installé et devrait normalement être utilisé&lt;br /&gt;
&lt;br /&gt;
'''Problème''' : Certaines parties de resolvconf sont manquantes : sans les scripts dans /etc/network/if-{up,down}.d, sans /etc/resolvconf/run/enable-updates et /lib/resolvconf/list-records cela ne fonctionne pas. Même si ces scripts sont rajoutés /etc/resolvconf/run devrait être un lien vers /var/run ou /etc/resolv.conf devrait pointer vers /etc/resolvconf/run/resolv.conf. Une fois que tout cela est corrigé, cela semble fonctionner à partir du moment où vous rajoutez ceci à la fin du fichier /etc/network/interfaces à la fin de la section usb0 :&lt;br /&gt;
&lt;br /&gt;
    dns-nameservers 192.168.0.200&lt;br /&gt;
    dns-search example.com&lt;br /&gt;
&lt;br /&gt;
ainsi que &amp;lt;tt&amp;gt;usb*&amp;lt;/tt&amp;gt; sous &amp;lt;tt&amp;gt;eth*&amp;lt;/tt&amp;gt; dans &amp;lt;tt&amp;gt;/etc/resolvconf/interface-order&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note| '''Solution:''' Etapes pour rajouter le script manquant resolvconf : &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;touch /etc/resolvconf/run/enable-updates&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd /etc ; rm resolv.conf ; ln -s /etc/resolvconf/run/resolv.conf .&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir /lib/resolvconf/ ; cd /lib/resolvconf/&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget http://87.227.108.179/list-records&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;chmod +x list-records&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; et supprimez les lignes:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;       network 192.168.0.0&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;       gateway 192.168.0.200&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si vous avez besoin d'utiliser le réseau usb pour accéder à internet, il faut rajouter par ssh une route par défaut comme ceci :&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;route add default gateway 192.168.0.200&amp;lt;/code&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* Le réseau par USB ne fonctionne qu'après un redémarrage suite au premier démarrage.&lt;br /&gt;
&lt;br /&gt;
'''Utilisabilité'''&lt;br /&gt;
&lt;br /&gt;
* Le dialogue PIN par défaut ne montre que les lettres. Vous devez glisser vos doigts de haut en bas sur le clavier pour changer les caractères en chiffres/lettres/spécial.&lt;br /&gt;
&lt;br /&gt;
* L'installeur n'a pas les droits administrateur, ce qui résulte en une impossibilité d'utiliser opkg. Solution : exécuter &amp;quot;killall packagekitd&amp;quot; (sur le FreeRunner ou lorsque vous y êtes connectés en ssh).&lt;br /&gt;
&lt;br /&gt;
== Mises à jour officielles pour Om 2008.8 &amp;quot;stable&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Après la sortie de la version Om 2008.8 (le 08/08/2008), le développement de ASU/Om2008.8 est passé sur modèle inspiré de Debian avec trois branches : &amp;quot;stable&amp;quot;, &amp;quot;testing&amp;quot; et &amp;quot;unstable&amp;quot; ([http://lists.openmoko.org/pipermail/community/2008-August/026491.html voir ce message] pour plus de details).&lt;br /&gt;
&lt;br /&gt;
les mises à jours officielles de la branche &amp;quot;stable&amp;quot; sont maintenant (26/08/2008) disponibles sous 2 formes (voir [http://lists.openmoko.org/pipermail/community/2008-August/027997.html ce message]) :&lt;br /&gt;
* dans http://downloads.openmoko.org/repository/Om2008.8/ pour opkg (qui doit être déjà configuré dans 2008.8)&lt;br /&gt;
* comme images de flash dans http://downloads.openmoko.org/releases/Om2008.8-update/&lt;br /&gt;
Le 19 septembre, une mise à jour mineure appelée [[Om2008.9 Update]] a été publiée.&lt;br /&gt;
&lt;br /&gt;
La version de développement à long terme est appelée ''org.openmoko.dev''. Cette version est focalisée sur les fonctionnalités de base du système (pas d'applications installées par défaut) et commencera par se synchroniser avec les versions les plus récentes des composants. Les correctifs critiques de cette version devraient se propager à la version ''.asu.stable'' après un certain délai. Attention : l'utilisation des mises à jour binaires de cette version (ou de tout dépôt non-2008.8) provoquera probablement des problèmes de dépendance insolubles.&lt;br /&gt;
&lt;br /&gt;
== Dédicace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
De  : Openmoko&lt;br /&gt;
A : liste de diffusion openmoko-community&lt;br /&gt;
&lt;br /&gt;
Om 2008.8 a été créé pour être vide, afin d'offrir une vitrine pour vos idées.&lt;br /&gt;
&lt;br /&gt;
Pensez à nos produits comme des galeries d'art. Nous en construisons l'environnement. &lt;br /&gt;
Chacune différente de la suivante. &lt;br /&gt;
Vous pourrez prendre la liberté d'imaginer la vôtre parce que nous voulons que vous ajoutiez votre touche. &lt;br /&gt;
Choisissez : vous pouvez utiliser, créer ou les deux.&lt;br /&gt;
&lt;br /&gt;
Peu importe le chemin, vous créez à votre image. C'est à votre sujet.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Om 2008.8/fr]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2008.8/fr</id>
		<title>Om 2008.8/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2008.8/fr"/>
				<updated>2008-10-09T09:12:07Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Mises à jours officielles pour Om 2008.8 &amp;quot;stable&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Om 2008.8}}&lt;br /&gt;
{{Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
{{Distributions|Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''Om 2008.8''' est le successeur de [[Om 2007.2]] et son nom de code est '''ASU'''. Cette version a été [http://list.openmoko.org/pipermail/community/2008-August/025619.html lancée] le '''8 août 2008'''. (+ mise à jour de la version &amp;quot;stable&amp;quot; à partir du '''26 août 2008'''). Om 2008.8 utilise le lanceur EFL, des applications graphiques personnalisées et [[QtopiaOnX11|Qtopia sur X11]] pour la téléphonie. Il s'agit du premier pas de GTK+ sur X11 vers l'utilisation de nombreuses couches graphiques simultanément.&lt;br /&gt;
&lt;br /&gt;
== Quoi de neuf? ==&lt;br /&gt;
&lt;br /&gt;
Comparée à Om2007.2 qui a eu un développement plus long, Om 2008.8 est sans aucun doute une version majeure &amp;quot;.0&amp;quot;. Pensez KDE 4.0 comparée à KDE 3.5, mais pas Linux 2.6.23 vs. Linux 2.6.22. Les mises à jour sont quotidiennes, certaines bonnes, d'autres mauvaises. Si vous voulez le niveau de stabilité requis pour utiliser le FreeRunner comme téléphone principal, il est recommandé pour l'instant de garder Om2007.2 dans la mémoire flash du téléphone et de tester Om 2008.8 sur une carte microSD amovible.&lt;br /&gt;
&lt;br /&gt;
Les principaux changements visibles côté utilisateur sont les suivants :&lt;br /&gt;
&lt;br /&gt;
* L'interface utilisateur a été entièrement revue avec un nouveau gestionnaire de fenêtre [[illume]]. Il est visuellement plus riche, et personnalisable en utilisant vos propres fichiers [[Edje]].&lt;br /&gt;
*'''[[Om2008.8_Installer|Un installeur graphique]]''' permet d'ajouter facilement de nouveaux [[Themes]], de nouvelles applications et d'ajouter des fonctionnalités.&lt;br /&gt;
* Une nouvelle application nommée [Locations] est fournie. Elle permet d'enregistrer vos endroits favoris ainsi que de les partager avec des amis par SMS.&lt;br /&gt;
* La gestion d'énergie a été améliorée : Le bouton Aux permet maintenant de bloquer l'écran, le bouton Power met en veille et la diode rouge derrière le bouton Aux s'illumine lors de la charge.&lt;br /&gt;
* Le [[Om2008.8_Keyboard|clavier]] est maintenant celui de Qtopia (que ce soit une amélioration ou pas a été le sujet de [[Keyboard_Debate|nombreuses discussions]]).&lt;br /&gt;
&lt;br /&gt;
Côté développement, les principaux changements sont :&lt;br /&gt;
* Plusieurs kits de développement : '''Om2008.8''' est compatible avec les applications [http://www.enlightenment.org/ EFL], [http://trolltech.com/products/qtopia Qtopia] et [http://www.gtk.org GTK+].&lt;br /&gt;
* Un [[Community Repository|dépôt communautaire]] a été mis en place et intégré à [[Om2008.8_Installer|l'installeur de logiciels]].&lt;br /&gt;
* Les '''codes source''' sont accessibles au public, ce qui permet la personnalisation du système jusqu'aux couches bas niveau.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, vous pouvez consulter le [[Om 2008.8 Guide|guide Om 2008.8]] et [[Om2008.8 Feature Plan|les fonctionnalités prévues pour Om 2008.8]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;padding: 0%; margin:0em 0em 1em 0em; border:1px solid #c0c0c0; background:#eeeeee; width:100%;floating=&amp;quot;center&amp;quot;; &amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 uboot.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 home.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Installer4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 installer1.png|200px|center]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Main.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Edit1.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om locations4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:List.png|200px|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Pour installer la distribution stable Om2008.8 sur le Neo FreeRunner, téléchargez le système de fichiers racine et l'image du noyau à partir de la page [[Download|Téléchargement]] et mettez-la en place comme indiqué à [[Flashing the Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
== Problèmes connus ==&lt;br /&gt;
&lt;br /&gt;
Seuls les principaux problèmes sont listés ici et certains peuvent avoir été résolus par les mises à jour de la version stable (voir [http://onlinedev.blogspot.com/search/label/om2008.8%20review Alasal's test reports] ainsi que la section &amp;quot;Mises à jour&amp;quot; ci-dessous). Pour des informations plus précises, consulter le gestionnaire de bugs : [http://docs.openmoko.org/trac/search?q=2008.8 toutes les bogues de 2008.8].&lt;br /&gt;
&lt;br /&gt;
'''Mise en veille'''&lt;br /&gt;
&lt;br /&gt;
Les versions de fin août on tendance à se mettre en veille au bout de 30s quel que soit le réglage du paramètre. Désactiver l'économiseur d'écran avec `xset s off' désactive la mise en veille complètement. Cette commande doit être tapée dans une fenètre terminal du téléphone lui-même. Si vous voulez le déclencher d'une session ssh, il faut alors utiliser la commande `xset -display :0 s off'.&lt;br /&gt;
&lt;br /&gt;
Alex a résolu le problème en allant dans les paramètres Illume, puis Power et en mettant à OFF les deux paramètres. L'économiseur est alors toujours actif mais peut être désactivé facilement en touchant l'écran.&lt;br /&gt;
&lt;br /&gt;
Si au réveil du téléphone le son ne fonctionne plus (plus de sonnerie ou de son quand on appelle quelqu'un), la raison probable est que le serveur de son pulseaudio est installé. Ceci arrive quand openmoko-mediaplayer2 est installé. Le problème est déjà [http://lists.openmoko.org/pipermail/openmoko-kernel/2008-August/004877.html en cours de résolution].&lt;br /&gt;
&lt;br /&gt;
'''GSM'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1766 Appels et réception de SMS bloqués]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1662 Après x heures, le GSM ne fonctionne plus correctement]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1832 Impossible de composer les numéros commençant par * ou #]&lt;br /&gt;
&lt;br /&gt;
'''WiFi'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1929 Le WiFi ne se connecte qu'une fois]&lt;br /&gt;
&lt;br /&gt;
'''Qualité Audio'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1721 le Dialer Qt est parfois muet pendant l'établissement d'un appel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1640 Improve overall audio]&lt;br /&gt;
&lt;br /&gt;
'''Logiciels systèmes'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1736 L'écran de démarrage se met en veille et ne se réveille jamais s'il n'est pas touché pendant le démarrage]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1597 Après une longue veille, évènements au niveau des threads kernel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1315 xglamo : performance diminuée après un moment]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1682 Le Neo s'arrête avant d'avoir lancé X]&lt;br /&gt;
&lt;br /&gt;
'''Consommation de CPU élevée pour QPE'''&lt;br /&gt;
* QPE parcourt tout le système de fichier (y compris la carte SD) pour trouver les documents, fichiers mp3, etc... Si vous ne voulez pas cela vous pouvez éditer &amp;lt;tt&amp;gt;/opt/Qtopia/etc/default/Trolltech/Storage.conf&amp;lt;/tt&amp;gt; et désactiver le parcours de la carte SD (remplacer 1 par 0).&lt;br /&gt;
&lt;br /&gt;
'''Réseau'''&lt;br /&gt;
* Pas d'installations/mises à jour possibles ou des pings vers des noms de domaines en raison d'une défaillance DNS. Ce problème survient parce que le fichier /etc/resolv.conf est vide par défaut. Ajoutez cette ligne dans /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 up echo nameserver 192.168.0.200 &amp;gt;/etc/resolv.conf&lt;br /&gt;
Cette ligne est à ajouter après la ligne 'gateway address' et avant 'bluetooth networking'. Après la modification, il convient de redémarrer l'appareil. Ensuite, allez compléter manuellement /etc/resolv.conf en utilisant les données de ce fichier sur votre machine locale ou l'adresse DNS.&lt;br /&gt;
&lt;br /&gt;
Pour résoudre les DNS sans redémarrer, entrer les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 echo nameserver 208.67.222.222 &amp;gt; /etc/resolv.conf&lt;br /&gt;
 echo nameserver 208.67.220.220 &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Cela devrait résoudre la majeure partie de vos soucis de réseau. Si vous avez besoin d'autres aides, référez vous au [[USB Networking|réseau par USB]].&lt;br /&gt;
&lt;br /&gt;
{{note| [http://en.wikipedia.org/wiki/Resolvconf resolv.conf] est installé et devrait normalement être utilisé}}&lt;br /&gt;
&lt;br /&gt;
* Le réseau par USB ne devrait pas fonctionner après le démarrage initial.&lt;br /&gt;
&lt;br /&gt;
'''Utilisabilité'''&lt;br /&gt;
&lt;br /&gt;
* Le dialogue PIN par défaut ne montre que les lettres. Vous devez glisser vos doigts de haut en bas sur le clavier pour changer les caractères en chiffres/lettres/spécial.&lt;br /&gt;
&lt;br /&gt;
* L'installeur n'a pas les droits administrateur, ce qui résulte en une impossibilité d'utiliser opkg. Solution : exécuter &amp;quot;killall packagekitd&amp;quot; (sur le FreeRunner ou lorsque vous y êtes connectés en ssh).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mises à jour officielles pour Om 2008.8 &amp;quot;stable&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Après la sortie de la version Om 2008.8 (le 08/08/2008), le développement de ASU/Om2008.8 est passé sur modèle inspiré de Debian avec trois branches : &amp;quot;stable&amp;quot;, &amp;quot;testing&amp;quot; et &amp;quot;unstable&amp;quot; ([http://lists.openmoko.org/pipermail/community/2008-August/026491.html voir ce message] pour plus de details).&lt;br /&gt;
&lt;br /&gt;
les mises à jours officielles de la branche &amp;quot;stable&amp;quot; sont maintenant (26/08/2008) disponibles sous 2 formes (voir [http://lists.openmoko.org/pipermail/community/2008-August/027997.html ce message]) :&lt;br /&gt;
* dans http://downloads.openmoko.org/repository/Om2008.8/ pour opkg (qui doit être déjà configuré dans 2008.8)&lt;br /&gt;
* comme images de flash dans http://downloads.openmoko.org/releases/Om2008.8-update/&lt;br /&gt;
Le 19 septembre, une mise à jour mineure appelée [[Om2008.9 Update]] a été publiée.&lt;br /&gt;
&lt;br /&gt;
La version de développement à long terme est appelée ''org.openmoko.dev''. Cette version est focalisée sur les fonctionnalités de base du système (pas d'applications installées par défaut) et commencera par se synchroniser avec les versions les plus récentes des composants. Les correctifs critiques de cette version devraient se propager à la version ''.asu.stable'' après un certain délai. Attention : l'utilisation des mises à jour binaires de cette version (ou de tout dépôt non-2008.8) provoquera probablement des problèmes de dépendance insolubles.&lt;br /&gt;
&lt;br /&gt;
== Dédicace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
De  : Openmoko&lt;br /&gt;
A : liste de diffusion openmoko-community&lt;br /&gt;
&lt;br /&gt;
Om 2008.8 a été créé pour être vide, afin d'offrir une vitrine pour vos idées.&lt;br /&gt;
&lt;br /&gt;
Pensez à nos produits comme des galeries d'art. Nous en construisons l'environnement. &lt;br /&gt;
Chacune différente de la suivante. &lt;br /&gt;
Vous pourrez prendre la liberté d'imaginer la vôtre parce que nous voulons que vous ajoutiez votre touche. &lt;br /&gt;
Choisissez : vous pouvez utiliser, créer ou les deux.&lt;br /&gt;
&lt;br /&gt;
Peu importe le chemin, vous créez à votre image. C'est à votre sujet.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Om 2008.8/fr]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2008.8/fr</id>
		<title>Om 2008.8/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2008.8/fr"/>
				<updated>2008-10-09T09:09:44Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Quoi de neuf? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Om 2008.8}}&lt;br /&gt;
{{Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
{{Distributions|Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''Om 2008.8''' est le successeur de [[Om 2007.2]] et son nom de code est '''ASU'''. Cette version a été [http://list.openmoko.org/pipermail/community/2008-August/025619.html lancée] le '''8 août 2008'''. (+ mise à jour de la version &amp;quot;stable&amp;quot; à partir du '''26 août 2008'''). Om 2008.8 utilise le lanceur EFL, des applications graphiques personnalisées et [[QtopiaOnX11|Qtopia sur X11]] pour la téléphonie. Il s'agit du premier pas de GTK+ sur X11 vers l'utilisation de nombreuses couches graphiques simultanément.&lt;br /&gt;
&lt;br /&gt;
== Quoi de neuf? ==&lt;br /&gt;
&lt;br /&gt;
Comparée à Om2007.2 qui a eu un développement plus long, Om 2008.8 est sans aucun doute une version majeure &amp;quot;.0&amp;quot;. Pensez KDE 4.0 comparée à KDE 3.5, mais pas Linux 2.6.23 vs. Linux 2.6.22. Les mises à jour sont quotidiennes, certaines bonnes, d'autres mauvaises. Si vous voulez le niveau de stabilité requis pour utiliser le FreeRunner comme téléphone principal, il est recommandé pour l'instant de garder Om2007.2 dans la mémoire flash du téléphone et de tester Om 2008.8 sur une carte microSD amovible.&lt;br /&gt;
&lt;br /&gt;
Les principaux changements visibles côté utilisateur sont les suivants :&lt;br /&gt;
&lt;br /&gt;
* L'interface utilisateur a été entièrement revue avec un nouveau gestionnaire de fenêtre [[illume]]. Il est visuellement plus riche, et personnalisable en utilisant vos propres fichiers [[Edje]].&lt;br /&gt;
*'''[[Om2008.8_Installer|Un installeur graphique]]''' permet d'ajouter facilement de nouveaux [[Themes]], de nouvelles applications et d'ajouter des fonctionnalités.&lt;br /&gt;
* Une nouvelle application nommée [Locations] est fournie. Elle permet d'enregistrer vos endroits favoris ainsi que de les partager avec des amis par SMS.&lt;br /&gt;
* La gestion d'énergie a été améliorée : Le bouton Aux permet maintenant de bloquer l'écran, le bouton Power met en veille et la diode rouge derrière le bouton Aux s'illumine lors de la charge.&lt;br /&gt;
* Le [[Om2008.8_Keyboard|clavier]] est maintenant celui de Qtopia (que ce soit une amélioration ou pas a été le sujet de [[Keyboard_Debate|nombreuses discussions]]).&lt;br /&gt;
&lt;br /&gt;
Côté développement, les principaux changements sont :&lt;br /&gt;
* Plusieurs kits de développement : '''Om2008.8''' est compatible avec les applications [http://www.enlightenment.org/ EFL], [http://trolltech.com/products/qtopia Qtopia] et [http://www.gtk.org GTK+].&lt;br /&gt;
* Un [[Community Repository|dépôt communautaire]] a été mis en place et intégré à [[Om2008.8_Installer|l'installeur de logiciels]].&lt;br /&gt;
* Les '''codes source''' sont accessibles au public, ce qui permet la personnalisation du système jusqu'aux couches bas niveau.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, vous pouvez consulter le [[Om 2008.8 Guide|guide Om 2008.8]] et [[Om2008.8 Feature Plan|les fonctionnalités prévues pour Om 2008.8]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;padding: 0%; margin:0em 0em 1em 0em; border:1px solid #c0c0c0; background:#eeeeee; width:100%;floating=&amp;quot;center&amp;quot;; &amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 uboot.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 home.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Installer4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 installer1.png|200px|center]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Main.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Edit1.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om locations4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:List.png|200px|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Pour installer la distribution stable Om2008.8 sur le Neo FreeRunner, téléchargez le système de fichiers racine et l'image du noyau à partir de la page [[Download|Téléchargement]] et mettez-la en place comme indiqué à [[Flashing the Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
== Problèmes connus ==&lt;br /&gt;
&lt;br /&gt;
Seuls les principaux problèmes sont listés ici et certains peuvent avoir été résolus par les mises à jour de la version stable (voir [http://onlinedev.blogspot.com/search/label/om2008.8%20review Alasal's test reports] ainsi que la section &amp;quot;Mises à jour&amp;quot; ci-dessous). Pour des informations plus précises, consulter le gestionnaire de bugs : [http://docs.openmoko.org/trac/search?q=2008.8 toutes les bogues de 2008.8].&lt;br /&gt;
&lt;br /&gt;
'''Mise en veille'''&lt;br /&gt;
&lt;br /&gt;
Les versions de fin août on tendance à se mettre en veille au bout de 30s quel que soit le réglage du paramètre. Désactiver l'économiseur d'écran avec `xset s off' désactive la mise en veille complètement. Cette commande doit être tapée dans une fenètre terminal du téléphone lui-même. Si vous voulez le déclencher d'une session ssh, il faut alors utiliser la commande `xset -display :0 s off'.&lt;br /&gt;
&lt;br /&gt;
Alex a résolu le problème en allant dans les paramètres Illume, puis Power et en mettant à OFF les deux paramètres. L'économiseur est alors toujours actif mais peut être désactivé facilement en touchant l'écran.&lt;br /&gt;
&lt;br /&gt;
Si au réveil du téléphone le son ne fonctionne plus (plus de sonnerie ou de son quand on appelle quelqu'un), la raison probable est que le serveur de son pulseaudio est installé. Ceci arrive quand openmoko-mediaplayer2 est installé. Le problème est déjà [http://lists.openmoko.org/pipermail/openmoko-kernel/2008-August/004877.html en cours de résolution].&lt;br /&gt;
&lt;br /&gt;
'''GSM'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1766 Appels et réception de SMS bloqués]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1662 Après x heures, le GSM ne fonctionne plus correctement]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1832 Impossible de composer les numéros commençant par * ou #]&lt;br /&gt;
&lt;br /&gt;
'''WiFi'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1929 Le WiFi ne se connecte qu'une fois]&lt;br /&gt;
&lt;br /&gt;
'''Qualité Audio'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1721 le Dialer Qt est parfois muet pendant l'établissement d'un appel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1640 Improve overall audio]&lt;br /&gt;
&lt;br /&gt;
'''Logiciels systèmes'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1736 L'écran de démarrage se met en veille et ne se réveille jamais s'il n'est pas touché pendant le démarrage]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1597 Après une longue veille, évènements au niveau des threads kernel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1315 xglamo : performance diminuée après un moment]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1682 Le Neo s'arrête avant d'avoir lancé X]&lt;br /&gt;
&lt;br /&gt;
'''Consommation de CPU élevée pour QPE'''&lt;br /&gt;
* QPE parcourt tout le système de fichier (y compris la carte SD) pour trouver les documents, fichiers mp3, etc... Si vous ne voulez pas cela vous pouvez éditer &amp;lt;tt&amp;gt;/opt/Qtopia/etc/default/Trolltech/Storage.conf&amp;lt;/tt&amp;gt; et désactiver le parcours de la carte SD (remplacer 1 par 0).&lt;br /&gt;
&lt;br /&gt;
'''Réseau'''&lt;br /&gt;
* Pas d'installations/mises à jour possibles ou des pings vers des noms de domaines en raison d'une défaillance DNS. Ce problème survient parce que le fichier /etc/resolv.conf est vide par défaut. Ajoutez cette ligne dans /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 up echo nameserver 192.168.0.200 &amp;gt;/etc/resolv.conf&lt;br /&gt;
Cette ligne est à ajouter après la ligne 'gateway address' et avant 'bluetooth networking'. Après la modification, il convient de redémarrer l'appareil. Ensuite, allez compléter manuellement /etc/resolv.conf en utilisant les données de ce fichier sur votre machine locale ou l'adresse DNS.&lt;br /&gt;
&lt;br /&gt;
Pour résoudre les DNS sans redémarrer, entrer les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 echo nameserver 208.67.222.222 &amp;gt; /etc/resolv.conf&lt;br /&gt;
 echo nameserver 208.67.220.220 &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Cela devrait résoudre la majeure partie de vos soucis de réseau. Si vous avez besoin d'autres aides, référez vous au [[USB Networking|réseau par USB]].&lt;br /&gt;
&lt;br /&gt;
{{note| [http://en.wikipedia.org/wiki/Resolvconf resolv.conf] est installé et devrait normalement être utilisé}}&lt;br /&gt;
&lt;br /&gt;
* Le réseau par USB ne devrait pas fonctionner après le démarrage initial.&lt;br /&gt;
&lt;br /&gt;
'''Utilisabilité'''&lt;br /&gt;
&lt;br /&gt;
* Le dialogue PIN par défaut ne montre que les lettres. Vous devez glisser vos doigts de haut en bas sur le clavier pour changer les caractères en chiffres/lettres/spécial.&lt;br /&gt;
&lt;br /&gt;
* L'installeur n'a pas les droits administrateur, ce qui résulte en une impossibilité d'utiliser opkg. Solution : exécuter &amp;quot;killall packagekitd&amp;quot; (sur le FreeRunner ou lorsque vous y êtes connectés en ssh).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mises à jours officielles pour Om 2008.8 &amp;quot;stable&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Après la sortie de la version Om 2008.8 (le 08/08/2008), le développement de ASU/Om2008.8 est passé sur modèle inspiré de Debian avec trois branches : &amp;quot;stable&amp;quot;, &amp;quot;testing&amp;quot; et &amp;quot;unstable&amp;quot; ([http://lists.openmoko.org/pipermail/community/2008-August/026491.html voir ce message] pour plus de details).&lt;br /&gt;
&lt;br /&gt;
les mises à jours officielles de la branche &amp;quot;stable&amp;quot; sont maintenant (26/08/2008) disponibles sous 2 formes (voir [http://lists.openmoko.org/pipermail/community/2008-August/027997.html ce message]) :&lt;br /&gt;
* dans http://downloads.openmoko.org/repository/Om2008.8/ pour opkg (qui doit être déjà configuré dans 2008.8)&lt;br /&gt;
* comme images de flash dans http://downloads.openmoko.org/releases/Om2008.8-update/&lt;br /&gt;
Le 19 septembre, une mise à jour mineure appelée [[Om2008.9 Update]] a été publiée.&lt;br /&gt;
&lt;br /&gt;
La version de développement à long terme est appelée ''org.openmoko.dev''. Cette version est focalisée sur les fonctionnalités de base du système (pas d'applications installées par défaut) et commencera par se synchroniser avec les versions les plus récentes des composants. Les correctifs critiques de cette version devraient se propager à la version ''.asu.stable'' après un certain délai. Attention : l'utilisation des mises à jour binaires de cette version (ou de tout dépôt non-2008.8) provoquera probablement des problèmes de dépendance insolubles. &lt;br /&gt;
&lt;br /&gt;
== Dédicace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
De  : Openmoko&lt;br /&gt;
A : liste de diffusion openmoko-community&lt;br /&gt;
&lt;br /&gt;
Om 2008.8 a été créé pour être vide, afin d'offrir une vitrine pour vos idées.&lt;br /&gt;
&lt;br /&gt;
Pensez à nos produits comme des galeries d'art. Nous en construisons l'environnement. &lt;br /&gt;
Chacune différente de la suivante. &lt;br /&gt;
Vous pourrez prendre la liberté d'imaginer la vôtre parce que nous voulons que vous ajoutiez votre touche. &lt;br /&gt;
Choisissez : vous pouvez utiliser, créer ou les deux.&lt;br /&gt;
&lt;br /&gt;
Peu importe le chemin, vous créez à votre image. C'est à votre sujet.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Om 2008.8/fr]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2008.8/fr</id>
		<title>Om 2008.8/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2008.8/fr"/>
				<updated>2008-10-09T09:08:42Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Om 2008.8}}&lt;br /&gt;
{{Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
{{Distributions|Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''Om 2008.8''' est le successeur de [[Om 2007.2]] et son nom de code est '''ASU'''. Cette version a été [http://list.openmoko.org/pipermail/community/2008-August/025619.html lancée] le '''8 août 2008'''. (+ mise à jour de la version &amp;quot;stable&amp;quot; à partir du '''26 août 2008'''). Om 2008.8 utilise le lanceur EFL, des applications graphiques personnalisées et [[QtopiaOnX11|Qtopia sur X11]] pour la téléphonie. Il s'agit du premier pas de GTK+ sur X11 vers l'utilisation de nombreuses couches graphiques simultanément.&lt;br /&gt;
&lt;br /&gt;
== Quoi de neuf? ==&lt;br /&gt;
&lt;br /&gt;
Comparée à Om2007.2 qui a eu un développement plus long, Om 2008.8 est sans aucun doute une version majeure &amp;quot;.0&amp;quot;. Pensez KDE 4.0 comparée à KDE 3.5, mais pas Linux 2.6.23 vs. Linux 2.6.22. Les mises à jour sont quotidiennes, certaines bonnes, d'autres mauvaises. Si vous voulez le niveau de stabilité requis pour utiliser le FreeRunner comme téléphone principal, il est recommandé pour l'instant de garder Om2007.2 dans la mémoire flash du téléphone et de tester Om 2008.8 sur une carte microSD amovible.&lt;br /&gt;
&lt;br /&gt;
Les principaux changements visibles côté utilisateur sont les suivants :&lt;br /&gt;
&lt;br /&gt;
* L'interface utilisateur a été entièrement revue avec un nouveau gestionnaire de fenêtre [[illume]]. Il est visuellement plus riche, et personnalisable en utilisant vos propres fichiers [[Edje]].&lt;br /&gt;
*'''[[Om2008.8_Installer|Un installeur graphique]]''' permet d'ajouter facilement de nouveaux [[Themes]], de nouvelles applications et d'ajouter des fonctionnalités.&lt;br /&gt;
* Une nouvelle application nommée [Locations] est fournie. Elle permet d'enregistrer vos endroits favoris ainsi que de les partager avec des amis par SMS.&lt;br /&gt;
* La gestion d'énergie a été améliorée : Le bouton Aux permet maintenant de bloquer l'écran, le bouton Power met en veille et la diode rouge derrière le bouton Aux s'illumine lors de la charge.&lt;br /&gt;
* Le [[Om2008.8_Keyboard|clavier]] est maintenant celui de Qtopia (que ce soit une amélioration ou pas a été le sujet de [[Keyboard_Debate|nombreuses discussions]]).&lt;br /&gt;
&lt;br /&gt;
Côté développement, les principaux changements sont :&lt;br /&gt;
* Plusieurs kits de développement : Om2008.8 est compatible avec les applications [http://www.enlightenment.org/ EFL], [http://trolltech.com/products/qtopia Qtopia] et [http://www.gtk.org GTK+].&lt;br /&gt;
* Un [[Community Repository|dépôt communautaire]] a été mis en place et intégré à [[Om2008.8_Installer|l'installeur de logiciels]].&lt;br /&gt;
* Les '''codes source''' sont accessibles au public, ce qui permet la personnalisation du système jusqu'aux couches bas niveau.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, vous pouvez consulter le [[Om 2008.8 Guide|guide Om 2008.8]] et [[Om2008.8 Feature Plan|les fonctionnalités prévues pour Om 2008.8]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;padding: 0%; margin:0em 0em 1em 0em; border:1px solid #c0c0c0; background:#eeeeee; width:100%;floating=&amp;quot;center&amp;quot;; &amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 uboot.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 home.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Installer4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 installer1.png|200px|center]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Main.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Edit1.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om locations4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:List.png|200px|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Pour installer la distribution stable Om2008.8 sur le Neo FreeRunner, téléchargez le système de fichiers racine et l'image du noyau à partir de la page [[Download|Téléchargement]] et mettez-la en place comme indiqué à [[Flashing the Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
== Problèmes connus ==&lt;br /&gt;
&lt;br /&gt;
Seuls les principaux problèmes sont listés ici et certains peuvent avoir été résolus par les mises à jour de la version stable (voir [http://onlinedev.blogspot.com/search/label/om2008.8%20review Alasal's test reports] ainsi que la section &amp;quot;Mises à jour&amp;quot; ci-dessous). Pour des informations plus précises, consulter le gestionnaire de bugs : [http://docs.openmoko.org/trac/search?q=2008.8 toutes les bogues de 2008.8].&lt;br /&gt;
&lt;br /&gt;
'''Mise en veille'''&lt;br /&gt;
&lt;br /&gt;
Les versions de fin août on tendance à se mettre en veille au bout de 30s quel que soit le réglage du paramètre. Désactiver l'économiseur d'écran avec `xset s off' désactive la mise en veille complètement. Cette commande doit être tapée dans une fenètre terminal du téléphone lui-même. Si vous voulez le déclencher d'une session ssh, il faut alors utiliser la commande `xset -display :0 s off'.&lt;br /&gt;
&lt;br /&gt;
Alex a résolu le problème en allant dans les paramètres Illume, puis Power et en mettant à OFF les deux paramètres. L'économiseur est alors toujours actif mais peut être désactivé facilement en touchant l'écran.&lt;br /&gt;
&lt;br /&gt;
Si au réveil du téléphone le son ne fonctionne plus (plus de sonnerie ou de son quand on appelle quelqu'un), la raison probable est que le serveur de son pulseaudio est installé. Ceci arrive quand openmoko-mediaplayer2 est installé. Le problème est déjà [http://lists.openmoko.org/pipermail/openmoko-kernel/2008-August/004877.html en cours de résolution].&lt;br /&gt;
&lt;br /&gt;
'''GSM'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1766 Appels et réception de SMS bloqués]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1662 Après x heures, le GSM ne fonctionne plus correctement]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1832 Impossible de composer les numéros commençant par * ou #]&lt;br /&gt;
&lt;br /&gt;
'''WiFi'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1929 Le WiFi ne se connecte qu'une fois]&lt;br /&gt;
&lt;br /&gt;
'''Qualité Audio'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1721 le Dialer Qt est parfois muet pendant l'établissement d'un appel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1640 Improve overall audio]&lt;br /&gt;
&lt;br /&gt;
'''Logiciels systèmes'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1736 L'écran de démarrage se met en veille et ne se réveille jamais s'il n'est pas touché pendant le démarrage]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1597 Après une longue veille, évènements au niveau des threads kernel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1315 xglamo : performance diminuée après un moment]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1682 Le Neo s'arrête avant d'avoir lancé X]&lt;br /&gt;
&lt;br /&gt;
'''Consommation de CPU élevée pour QPE'''&lt;br /&gt;
* QPE parcourt tout le système de fichier (y compris la carte SD) pour trouver les documents, fichiers mp3, etc... Si vous ne voulez pas cela vous pouvez éditer &amp;lt;tt&amp;gt;/opt/Qtopia/etc/default/Trolltech/Storage.conf&amp;lt;/tt&amp;gt; et désactiver le parcours de la carte SD (remplacer 1 par 0).&lt;br /&gt;
&lt;br /&gt;
'''Réseau'''&lt;br /&gt;
* Pas d'installations/mises à jour possibles ou des pings vers des noms de domaines en raison d'une défaillance DNS. Ce problème survient parce que le fichier /etc/resolv.conf est vide par défaut. Ajoutez cette ligne dans /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 up echo nameserver 192.168.0.200 &amp;gt;/etc/resolv.conf&lt;br /&gt;
Cette ligne est à ajouter après la ligne 'gateway address' et avant 'bluetooth networking'. Après la modification, il convient de redémarrer l'appareil. Ensuite, allez compléter manuellement /etc/resolv.conf en utilisant les données de ce fichier sur votre machine locale ou l'adresse DNS.&lt;br /&gt;
&lt;br /&gt;
Pour résoudre les DNS sans redémarrer, entrer les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 echo nameserver 208.67.222.222 &amp;gt; /etc/resolv.conf&lt;br /&gt;
 echo nameserver 208.67.220.220 &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Cela devrait résoudre la majeure partie de vos soucis de réseau. Si vous avez besoin d'autres aides, référez vous au [[USB Networking|réseau par USB]].&lt;br /&gt;
&lt;br /&gt;
{{note| [http://en.wikipedia.org/wiki/Resolvconf resolv.conf] est installé et devrait normalement être utilisé}}&lt;br /&gt;
&lt;br /&gt;
* Le réseau par USB ne devrait pas fonctionner après le démarrage initial.&lt;br /&gt;
&lt;br /&gt;
'''Utilisabilité'''&lt;br /&gt;
&lt;br /&gt;
* Le dialogue PIN par défaut ne montre que les lettres. Vous devez glisser vos doigts de haut en bas sur le clavier pour changer les caractères en chiffres/lettres/spécial.&lt;br /&gt;
&lt;br /&gt;
* L'installeur n'a pas les droits administrateur, ce qui résulte en une impossibilité d'utiliser opkg. Solution : exécuter &amp;quot;killall packagekitd&amp;quot; (sur le FreeRunner ou lorsque vous y êtes connectés en ssh).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mises à jours officielles pour Om 2008.8 &amp;quot;stable&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Après la sortie de la version Om 2008.8 (le 08/08/2008), le développement de ASU/Om2008.8 est passé sur modèle inspiré de Debian avec trois branches : &amp;quot;stable&amp;quot;, &amp;quot;testing&amp;quot; et &amp;quot;unstable&amp;quot; ([http://lists.openmoko.org/pipermail/community/2008-August/026491.html voir ce message] pour plus de details).&lt;br /&gt;
&lt;br /&gt;
les mises à jours officielles de la branche &amp;quot;stable&amp;quot; sont maintenant (26/08/2008) disponibles sous 2 formes (voir [http://lists.openmoko.org/pipermail/community/2008-August/027997.html ce message]) :&lt;br /&gt;
* dans http://downloads.openmoko.org/repository/Om2008.8/ pour opkg (qui doit être déjà configuré dans 2008.8)&lt;br /&gt;
* comme images de flash dans http://downloads.openmoko.org/releases/Om2008.8-update/&lt;br /&gt;
Le 19 septembre, une mise à jour mineure appelée [[Om2008.9 Update]] a été publiée.&lt;br /&gt;
&lt;br /&gt;
La version de développement à long terme est appelée ''org.openmoko.dev''. Cette version est focalisée sur les fonctionnalités de base du système (pas d'applications installées par défaut) et commencera par se synchroniser avec les versions les plus récentes des composants. Les correctifs critiques de cette version devraient se propager à la version ''.asu.stable'' après un certain délai. Attention : l'utilisation des mises à jour binaires de cette version (ou de tout dépôt non-2008.8) provoquera probablement des problèmes de dépendance insolubles. &lt;br /&gt;
&lt;br /&gt;
== Dédicace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
De  : Openmoko&lt;br /&gt;
A : liste de diffusion openmoko-community&lt;br /&gt;
&lt;br /&gt;
Om 2008.8 a été créé pour être vide, afin d'offrir une vitrine pour vos idées.&lt;br /&gt;
&lt;br /&gt;
Pensez à nos produits comme des galeries d'art. Nous en construisons l'environnement. &lt;br /&gt;
Chacune différente de la suivante. &lt;br /&gt;
Vous pourrez prendre la liberté d'imaginer la vôtre parce que nous voulons que vous ajoutiez votre touche. &lt;br /&gt;
Choisissez : vous pouvez utiliser, créer ou les deux.&lt;br /&gt;
&lt;br /&gt;
Peu importe le chemin, vous créez à votre image. C'est à votre sujet.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Om 2008.8/fr]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2008.8/fr</id>
		<title>Om 2008.8/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2008.8/fr"/>
				<updated>2008-10-09T09:05:21Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Om 2008.8}}&lt;br /&gt;
{{Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
{{Distributions|Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''Om 2008.8''' est le successeur de [[Om 2007.2]] et son nom de code est '''ASU'''. Cette version a été [http://list.openmoko.org/pipermail/community/2008-August/025619.html lancée] le '''8 août 2008'''. (+ mise à jour de la version &amp;quot;stable&amp;quot; à partir du '''26 août 2008'''). Om 2008.8 utilise le lanceur EFL, des applications graphiques personnalisées et [[QtopiaOnX11|Qtopia sur X11]] pour la téléphonie. Il s'agit du premier pas de GTK+ sur X11 vers l'utilisation de nombreuses couches graphiques simultanément.&lt;br /&gt;
&lt;br /&gt;
== Quoi de neuf? ==&lt;br /&gt;
&lt;br /&gt;
Comparée à Om2007.2 qui a eu un développement plus long, Om 2008.8 est sans aucun doute une version majeure &amp;quot;.0&amp;quot;. Pensez KDE 4.0 comparée à KDE 3.5, mais pas Linux 2.6.23 vs. Linux 2.6.22. Les mises à jour sont quotidiennes, certaines bonnes, d'autres mauvaises. Si vous voulez le niveau de stabilité requis pour utiliser le FreeRunner comme téléphone principal, il est recommandé pour l'instant de garder Om2007.2 dans la mémoire flash du téléphone et de tester Om 2008.8 sur une carte microSD amovible.&lt;br /&gt;
&lt;br /&gt;
Les principaux changements visibles côté utilisateur sont les suivants :&lt;br /&gt;
&lt;br /&gt;
* L'interface utilisateur a été entièrement revue avec un nouveau gestionnaire de fenêtre [[illume]]. Il est visuellement plus riche, et personnalisable en utilisant vos propres fichiers [[Edje]].&lt;br /&gt;
*'''[[Om2008.8_Installer|Un installeur graphique]]''' permet d'ajouter facilement de nouveaux [[Themes]], de nouvelles applications et d'ajouter des fonctionnalités.&lt;br /&gt;
* Une nouvelle application nommée [Locations] est fournie. Elle permet d'enregistrer vos endroits favoris ainsi que de les partager avec des amis par SMS.&lt;br /&gt;
* La gestion d'énergie a été améliorée : Le bouton Aux permet maintenant de bloquer l'écran, le bouton Power met en veille et la diode rouge derrière le bouton Aux s'illumine quand on charge.&lt;br /&gt;
* Le [[Om2008.8_Keyboard|clavier]] est maintenant celui de Qtopia (que ce soit une amélioration ou pas a été le sujet de [[Keyboard_Debate|nombreuses discussions]]).&lt;br /&gt;
&lt;br /&gt;
Côté développement, les principaux changements sont :&lt;br /&gt;
* Plusieurs kits de développement : Om2008.8 est compatible avec les applications [http://www.enlightenment.org/ EFL], [http://trolltech.com/products/qtopia Qtopia] et [http://www.gtk.org GTK+].&lt;br /&gt;
* Un [[Community Repository|dépôt communautaire]] a été mis en place et intégré à [[Om2008.8_Installer|l'installeur de logiciels]].&lt;br /&gt;
* Les '''codes source''' sont accessibles au public, ce qui permet la personnalisation du système jusqu'aux couches bas niveau.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, vous pouvez consulter le [[Om 2008.8 Guide|guide Om 2008.8]] et [[Om2008.8 Feature Plan|les fonctionnalités prévues pour Om 2008.8]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;padding: 0%; margin:0em 0em 1em 0em; border:1px solid #c0c0c0; background:#eeeeee; width:100%;floating=&amp;quot;center&amp;quot;; &amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 uboot.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 home.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Installer4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 installer1.png|200px|center]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Main.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Edit1.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om locations4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:List.png|200px|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Pour installer la distribution stable Om2008.8 sur le Neo FreeRunner, téléchargez le système de fichiers racine et l'image du noyau à partir de la page [[Download|Téléchargement]] et mettez-la en place comme indiqué à [[Flashing the Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
== Problèmes connus ==&lt;br /&gt;
&lt;br /&gt;
Seuls les principaux problèmes sont listés ici et certains peuvent avoir été résolus par les mises à jour de la version stable (voir [http://onlinedev.blogspot.com/search/label/om2008.8%20review Alasal's test reports] ainsi que la section &amp;quot;Mises à jour&amp;quot; ci-dessous). Pour des informations plus précises, consulter le gestionnaire de bugs : [http://docs.openmoko.org/trac/search?q=2008.8 toutes les bogues de 2008.8].&lt;br /&gt;
&lt;br /&gt;
'''Mise en veille'''&lt;br /&gt;
&lt;br /&gt;
Les versions de fin août on tendance à se mettre en veille au bout de 30s quel que soit le réglage du paramètre. Désactiver l'économiseur d'écran avec `xset s off' désactive la mise en veille complètement. Cette commande doit être tapée dans une fenètre terminal du téléphone lui-même. Si vous voulez le déclencher d'une session ssh, il faut alors utiliser la commande `xset -display :0 s off'.&lt;br /&gt;
&lt;br /&gt;
Alex a résolu le problème en allant dans les paramètres Illume, puis Power et en mettant à OFF les deux paramètres. L'économiseur est alors toujours actif mais peut être désactivé facilement en touchant l'écran.&lt;br /&gt;
&lt;br /&gt;
Si au réveil du téléphone le son ne fonctionne plus (plus de sonnerie ou de son quand on appelle quelqu'un), la raison probable est que le serveur de son pulseaudio est installé. Ceci arrive quand openmoko-mediaplayer2 est installé. Le problème est déjà [http://lists.openmoko.org/pipermail/openmoko-kernel/2008-August/004877.html en cours de résolution].&lt;br /&gt;
&lt;br /&gt;
'''GSM'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1766 Appels et réception de SMS bloqués]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1662 Après x heures, le GSM ne fonctionne plus correctement]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1832 Impossible de composer les numéros commençant par * ou #]&lt;br /&gt;
&lt;br /&gt;
'''WiFi'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1929 Le WiFi ne se connecte qu'une fois]&lt;br /&gt;
&lt;br /&gt;
'''Qualité Audio'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1721 le Dialer Qt est parfois muet pendant l'établissement d'un appel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1640 Improve overall audio]&lt;br /&gt;
&lt;br /&gt;
'''Logiciels systèmes'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1736 L'écran de démarrage se met en veille et ne se réveille jamais s'il n'est pas touché pendant le démarrage]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1597 Après une longue veille, évènements au niveau des threads kernel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1315 xglamo : performance diminuée après un moment]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1682 Le Neo s'arrête avant d'avoir lancé X]&lt;br /&gt;
&lt;br /&gt;
'''Consommation de CPU élevée pour QPE'''&lt;br /&gt;
* QPE parcourt tout le système de fichier (y compris la carte SD) pour trouver les documents, fichiers mp3, etc... Si vous ne voulez pas cela vous pouvez éditer &amp;lt;tt&amp;gt;/opt/Qtopia/etc/default/Trolltech/Storage.conf&amp;lt;/tt&amp;gt; et désactiver le parcours de la carte SD (remplacer 1 par 0).&lt;br /&gt;
&lt;br /&gt;
'''Réseau'''&lt;br /&gt;
* Pas d'installations/mises à jour possibles ou des pings vers des noms de domaines en raison d'une défaillance DNS. Ce problème survient parce que le fichier /etc/resolv.conf est vide par défaut. Ajoutez cette ligne dans /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 up echo nameserver 192.168.0.200 &amp;gt;/etc/resolv.conf&lt;br /&gt;
Cette ligne est à ajouter après la ligne 'gateway address' et avant 'bluetooth networking'. Après la modification, il convient de redémarrer l'appareil. Ensuite, allez compléter manuellement /etc/resolv.conf en utilisant les données de ce fichier sur votre machine locale ou l'adresse DNS.&lt;br /&gt;
&lt;br /&gt;
Pour résoudre les DNS sans redémarrer, entrer les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 echo nameserver 208.67.222.222 &amp;gt; /etc/resolv.conf&lt;br /&gt;
 echo nameserver 208.67.220.220 &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Cela devrait résoudre la majeure partie de vos soucis de réseau. Si vous avez besoin d'autres aides, référez vous au [[USB Networking|réseau par USB]].&lt;br /&gt;
&lt;br /&gt;
{{note| [http://en.wikipedia.org/wiki/Resolvconf resolv.conf] est installé et devrait normalement être utilisé}}&lt;br /&gt;
&lt;br /&gt;
* Le réseau par USB ne devrait pas fonctionner après le démarrage initial.&lt;br /&gt;
&lt;br /&gt;
'''Utilisabilité'''&lt;br /&gt;
&lt;br /&gt;
* Le dialogue PIN par défaut ne montre que les lettres. Vous devez glisser vos doigts de haut en bas sur le clavier pour changer les caractères en chiffres/lettres/spécial.&lt;br /&gt;
&lt;br /&gt;
* L'installeur n'a pas les droits administrateur, ce qui résulte en une impossibilité d'utiliser opkg. Solution : exécuter &amp;quot;killall packagekitd&amp;quot; (sur le FreeRunner ou lorsque vous y êtes connectés en ssh).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mises à jours officielles pour Om 2008.8 &amp;quot;stable&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Après la sortie de la version Om 2008.8 (le 08/08/2008), le développement de ASU/Om2008.8 est passé sur modèle inspiré de Debian avec trois branches : &amp;quot;stable&amp;quot;, &amp;quot;testing&amp;quot; et &amp;quot;unstable&amp;quot; ([http://lists.openmoko.org/pipermail/community/2008-August/026491.html voir ce message] pour plus de details).&lt;br /&gt;
&lt;br /&gt;
les mises à jours officielles de la branche &amp;quot;stable&amp;quot; sont maintenant (26/08/2008) disponibles sous 2 formes (voir [http://lists.openmoko.org/pipermail/community/2008-August/027997.html ce message]) :&lt;br /&gt;
* dans http://downloads.openmoko.org/repository/Om2008.8/ pour opkg (qui doit être déjà configuré dans 2008.8)&lt;br /&gt;
* comme images de flash dans http://downloads.openmoko.org/releases/Om2008.8-update/&lt;br /&gt;
Le 19 septembre, une mise à jour mineure appelée [[Om2008.9 Update]] a été publiée.&lt;br /&gt;
&lt;br /&gt;
La version de développement à long terme est appelée ''org.openmoko.dev''. Cette version est focalisée sur les fonctionnalités de base du système (pas d'applications installées par défaut) et commencera par se synchroniser avec les versions les plus récentes des composants. Les correctifs critiques de cette version devraient se propager à la version ''.asu.stable'' après un certain délai. Attention : l'utilisation des mises à jour binaires de cette version (ou de tout dépôt non-2008.8) provoquera probablement des problèmes de dépendance insolubles. &lt;br /&gt;
&lt;br /&gt;
== Dédicace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
De  : Openmoko&lt;br /&gt;
A : liste de diffusion openmoko-community&lt;br /&gt;
&lt;br /&gt;
Om 2008.8 a été créé pour être vide, afin d'offrir une vitrine pour vos idées.&lt;br /&gt;
&lt;br /&gt;
Pensez à nos produits comme des galeries d'art. Nous en construisons l'environnement. &lt;br /&gt;
Chacune différente de la suivante. &lt;br /&gt;
Vous pourrez prendre la liberté d'imaginer la vôtre parce que nous voulons que vous ajoutiez votre touche. &lt;br /&gt;
Choisissez : vous pouvez utiliser, créer ou les deux.&lt;br /&gt;
&lt;br /&gt;
Peu importe le chemin, vous créez à votre image. C'est à votre sujet.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Om 2008.8/fr]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2008.8/fr</id>
		<title>Om 2008.8/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2008.8/fr"/>
				<updated>2008-10-09T08:27:44Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Om 2008.8}}&lt;br /&gt;
{{Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
{{Distributions|Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''Om 2008.8''' est le successeur de [[Om 2007.2]] et son nom de code est '''ASU'''. Cette version a été [http://list.openmoko.org/pipermail/community/2008-August/025619.html lancée] le '''8 août 2008'''. (+ mise à jour de la version &amp;quot;stable&amp;quot; à partir du '''26 août 2008'''). Om 2008.8 utilise le lanceur EFL, des applications graphiques personnalisées et [[QtopiaOnX11|Qtopia sur X11]] pour la téléphonie. Il s'agit du premier pas de GTK+ sur X11 vers l'utilisation de nombreuses couches graphiques simultanément.&lt;br /&gt;
&lt;br /&gt;
== Quoi de neuf? ==&lt;br /&gt;
&lt;br /&gt;
Comparée à Om2007.2 qui a eu un développement plus long, Om 2008.8 est sans aucun doute une version majeure &amp;quot;.0&amp;quot;. Pensez KDE 4.0 comparée à KDE 3.5, mais pas Linux 2.6.23 vs. Linux 2.6.22. Les mises à jour sont quotidiennes, certaines bonnes, d'autres mauvaises. Si vous voulez le niveau de stabilité requis pour utiliser le FreeRunner comme téléphone principal, il est recommandé pour l'instant de garder Om2007.2 dans la mémoire flash du téléphone et de tester Om 2008.8 sur une carte microSD amovible.&lt;br /&gt;
&lt;br /&gt;
Les principaux changements visibles côté utilisateur sont les suivants :&lt;br /&gt;
&lt;br /&gt;
* L'interface utilisateur a été entièrement revue avec un nouveau gestionnaire de fenêtre [[illume]]. Il est visuellement plus riche, et personnalisable en utilisant vos propres fichiers [[Edje]].&lt;br /&gt;
*'''[[Om2008.8_Installer|Un installeur graphique]]''' permet d'ajouter facilement de nouveaux [[Themes]], de nouvelles applications et d'ajouter des fonctionnalités.&lt;br /&gt;
* Une nouvelle application nommée [Locations] est fournie. Elle permet d'enregistrer vos endroits favoris ainsi que de les partager avec des amis par SMS.&lt;br /&gt;
* La gestion d'énergie a été améliorée : Le bouton Aux permet maintenant de bloquer l'écran, le bouton Power met en veille et la diode rouge derrière le bouton Aux s'illumine quand on charge.&lt;br /&gt;
* Le [[Om2008.8_Keyboard|clavier]] est maintenant celui de Qtopia (que ce soit une amélioration ou pas a été le sujet de [[Keyboard_Debate|nombreuses discussions]]).&lt;br /&gt;
&lt;br /&gt;
Côté développement, les principaux changements sont :&lt;br /&gt;
* Plusieurs kits de développement : Om2008.8 est compatible avec les applications [http://www.enlightenment.org/ EFL], [http://trolltech.com/products/qtopia Qtopia] et [http://www.gtk.org GTK+].&lt;br /&gt;
* Un [[Community Repository|dépôt communautaire]] a été mis en place et intégré à [[Om2008.8_Installer|l'installeur de logiciels]].&lt;br /&gt;
* Les '''codes source''' sont accessibles au public, ce qui permet la personnalisation du système jusqu'aux couches bas niveau.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, vous pouvez consulter le [[Om 2008.8 Guide|guide Om 2008.8]] et [[Om2008.8 Feature Plan|les fonctionnalités prévues pour Om 2008.8]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;padding: 0%; margin:0em 0em 1em 0em; border:1px solid #c0c0c0; background:#eeeeee; width:100%;floating=&amp;quot;center&amp;quot;; &amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 uboot.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 home.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Installer4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 installer1.png|200px|center]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Main.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Edit1.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om locations4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:List.png|200px|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Images Flash Om 2008.8 ===&lt;br /&gt;
&lt;br /&gt;
'''Téléchargement d'images Om 2008.8'''&lt;br /&gt;
&lt;br /&gt;
Ces images doivent être flashées dans la mémoire NAND du FreeRunner.&lt;br /&gt;
* [http://downloads.openmoko.org/releases/Om2008.8/Om2008.8.rootfs.jffs2 Om2008.8.rootfs.jffs2] (image du système de fichier racine)&lt;br /&gt;
* [http://downloads.openmoko.org/releases/Om2008.8/Om2008.8.uImage.bin Om2008.8.uimage.bin] (noyau)&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&lt;br /&gt;
&lt;br /&gt;
* Pour les instructions sur comment flasher l'appareil, rendez-vous à : [[Flashing the Neo FreeRunner|Flasher le Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
=== Alternative : exécution depuis une carte microSD ===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez installer cette distribution sur une carte microSD afin de pouvoir [[Boot from sd card|booter depuis une carte microSD]]. Les fichiers .tar sont disponibles [http://downloads.openmoko.org/releases/Om2008.8/ ici]. Cela permet de garder une autre distribution installée sur la mémoire NAND (pour tester 2008.8 tout en gardant 2007.2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problèmes connus ==&lt;br /&gt;
'''GSM'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1662 Après x heures, le GSM ne fonctionne plus correctement]&lt;br /&gt;
* [https://docs.openmoko.org/trac/ticket/1765 Pas de dialogue Pin, donc GSM inutilisable]&lt;br /&gt;
&lt;br /&gt;
'''WiFi'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1625 Le WiFi ne se connecte qu'une fois]&lt;br /&gt;
&lt;br /&gt;
'''Qualité Audio'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1721 le Dialer Qt est parfois muet pendant l'établissement d'un appel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1640 Improve overall audio]&lt;br /&gt;
&lt;br /&gt;
'''Logiciels systèmes'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1736 L'écran de démarrage se met en veille et ne se réveille jamais s'il n'est pas touché pendant le démarrage]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1597 Après une longue veille, évènements au niveau des threads kernel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1315 xglamo : performance diminuée après un moment]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1682 Le Neo s'arrête avant d'avoir lancé X]&lt;br /&gt;
&lt;br /&gt;
'''Réseau'''&lt;br /&gt;
* Pas d'installations/mises à jour possibles ou des pings vers des noms de domaines en raison d'une défaillance DNS. Ce problème survient parce que le fichier /etc/resolv.conf est vide par défaut. Ajoutez cette ligne dans /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 up echo nameserver 192.168.0.200 &amp;gt;/etc/resolv.conf&lt;br /&gt;
Cette ligne est à ajouter après la ligne 'gateway address' et avant 'bluetooth networking'. Après la modification, il convient de redémarrer l'appareil. Ensuite, allez compléter manuellement /etc/resolv.conf en utilisant les données de ce fichier sur votre machine locale ou l'adresse DNS.&lt;br /&gt;
&lt;br /&gt;
Pour résoudre les DNS sans redémarrer, entrer les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 echo nameserver 208.67.222.222 &amp;gt; /etc/resolv.conf&lt;br /&gt;
 echo nameserver 208.67.220.220 &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Cela devrait résoudre la majeure partie de vos soucis de réseau. Si vous avez besoin d'autres aides, référez vous au [[USB Networking|réseau par USB]].&lt;br /&gt;
&lt;br /&gt;
{{note| [http://en.wikipedia.org/wiki/Resolvconf resolv.conf] est installé et devrait normalement être utilisé}}&lt;br /&gt;
&lt;br /&gt;
* Le réseau par USB ne devrait pas fonctionner après le démarrage initial.&lt;br /&gt;
&lt;br /&gt;
'''Utilisabilité'''&lt;br /&gt;
&lt;br /&gt;
* Le dialogue PIN par défaut ne montre que les lettres. Vous devez glisser vos doigts de haut en bas sur le clavier pour changer les caractères en chiffres/lettres/spécial.&lt;br /&gt;
&lt;br /&gt;
* L'installeur n'a pas les droits administrateur, ce qui résulte en une impossibilité d'utiliser opkg. Solution : exécuter &amp;quot;killall packagekitd&amp;quot; (sur le FreeRunner ou lorsque vous y êtes connectés en ssh).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mises à jours officielles pour Om 2008.8 &amp;quot;stable&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Après la sortie de la version Om 2008.8 (le 08/08/2008), le développement de ASU/Om2008.8 est passé sur modèle inspiré de Debian avec trois branches : &amp;quot;stable&amp;quot;, &amp;quot;testing&amp;quot; et &amp;quot;unstable&amp;quot; ([http://lists.openmoko.org/pipermail/community/2008-August/026491.html voir ce message] pour plus de details).&lt;br /&gt;
&lt;br /&gt;
les mises à jours officielles de la branche &amp;quot;stable&amp;quot; sont maintenant (26/08/2008) disponibles sous 2 formes (voir [http://lists.openmoko.org/pipermail/community/2008-August/027997.html ce message]) :&lt;br /&gt;
* dans http://downloads.openmoko.org/repository/Om2008.8/ pour opkg (qui doit être déjà configuré dans 2008.8)&lt;br /&gt;
* comme images de flash dans http://downloads.openmoko.org/releases/Om2008.8-update/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dédicace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
De  : Openmoko&lt;br /&gt;
A : liste de diffusion openmoko-community&lt;br /&gt;
&lt;br /&gt;
Om 2008.8 a été créé pour être vide, afin d'offrir une vitrine pour vos idées.&lt;br /&gt;
&lt;br /&gt;
Pensez à nos produits comme des galeries d'art. Nous en construisons l'environnement. &lt;br /&gt;
Chacune différente de la suivante. &lt;br /&gt;
Vous pourrez prendre la liberté d'imaginer la vôtre parce que nous voulons que vous ajoutiez votre touche. &lt;br /&gt;
Choisissez : vous pouvez utiliser, créer ou les deux.&lt;br /&gt;
&lt;br /&gt;
Peu importe le chemin, vous créez à votre image. C'est à votre sujet.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Om 2008.8/fr]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2008.8/fr</id>
		<title>Om 2008.8/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2008.8/fr"/>
				<updated>2008-10-08T20:18:18Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Om 2008.8}}&lt;br /&gt;
{{Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
{{Distributions|Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''Om 2008.8''' est le successeur de [[Om 2007.2]] et son nom de code est '''ASU'''. Cette version a été [http://list.openmoko.org/pipermail/community/2008-August/025619.html lancée] le '''8 août 2008'''. (+ mise à jour de la version &amp;quot;stable&amp;quot; à partir du '''26 août 2008'''). Om 2008.8 utilise le lanceur EFL, des applications graphiques personnalisées et [[QtopiaOnX11|Qtopia sur X11]] pour la téléphonie. Il s'agit du premier pas de GTK+ sur X11 vers l'utilisation de nombreuses couches graphiques simultanément.&lt;br /&gt;
&lt;br /&gt;
== Quoi de neuf? ==&lt;br /&gt;
&lt;br /&gt;
Comparée à Om2007.2 qui a eu un développement plus long, Om 2008.8 est sans aucun doute une version majeure &amp;quot;.0&amp;quot;. Pensez KDE 4.0 comparée à KDE 3.5, mais pas Linux 2.6.23 vs. Linux 2.6.22. Les mises à jour sont quotidiennes, certaines bonnes, d'autres mauvaises. Si vous voulez le niveau de stabilité requis pour utiliser le FreeRunner comme téléphone principal, il est recommandé pour l'instant de garder Om2007.2 dans la mémoire flash du téléphone et de tester Om 2008.8 sur une carte microSD amovible.&lt;br /&gt;
&lt;br /&gt;
Les principaux changements du côté utilisateurs:&lt;br /&gt;
&lt;br /&gt;
* L'interface utilisateur a été entièrement revu avec un nouveau gestionnaire de fenêtre [[illume]]. Il est visuellement plus riche, et personnalisable en utilisant vos propres fichiers [[Edje]].&lt;br /&gt;
*'''[[Om2008.8_Installer|Un installeur graphique]]''' permet d'ajouter facilement de nouveaux [[Themes]], nouvelles applications et fonctionnalités.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;padding: 0%; margin:0em 0em 1em 0em; border:1px solid #c0c0c0; background:#eeeeee; width:100%;floating=&amp;quot;center&amp;quot;; &amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 uboot.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 home.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Installer4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 installer1.png|200px|center]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Main.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Edit1.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om locations4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:List.png|200px|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personnalisation ===&lt;br /&gt;
&lt;br /&gt;
'''Om 2008.8''' vous permet de personnaliser de nombreux aspects de votre Neo.&lt;br /&gt;
&lt;br /&gt;
*  '''Ajustez les thèmes''' en personnalisant vos propres fichiers [[Edje]].&lt;br /&gt;
*  Les '''codes source''' sont disponibles au public, permettant la personnalisation de toutes les couches logicielles, même celles de plus bas niveau.&lt;br /&gt;
&lt;br /&gt;
=== Partage ===&lt;br /&gt;
* Partagez vos ([[Om2008.8_Locations|Locations]]) :&lt;br /&gt;
Vous pouvez utiliser '''Locations''' pour sauvegarder vos endroits préférés et éventuellement les envoyer à vos amis par SMS.  N'est-ce pas cool ?!&lt;br /&gt;
* Partagez vos applications (cf. [[Om2008.8_Installer|Installeur]])&lt;br /&gt;
:Partagez vos idées à travers le monde en ajoutant des packages au [http://wiki.openmoko.org/wiki/CommunityRepository dépôt communautaire].  Il s'agit d'une grosse base de données pour tous les projets openmoko et peut être accessible aisément à tout utilisateur par l'intermédiaire de l'[[Om2008.8 Installer|installeur]].&lt;br /&gt;
&lt;br /&gt;
=== Guide Om 2008.8 ===&lt;br /&gt;
Un guide pour connaître Om2008.8 : [[Om 2008.8 Guide]]&lt;br /&gt;
A guide for getting to know Om 2008.8 : [[Om 2008.8 Guide|Guide Om 2008.8]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Images Flash Om 2008.8 ===&lt;br /&gt;
&lt;br /&gt;
'''Téléchargement d'images Om 2008.8'''&lt;br /&gt;
&lt;br /&gt;
Ces images doivent être flashées dans la mémoire NAND du FreeRunner.&lt;br /&gt;
* [http://downloads.openmoko.org/releases/Om2008.8/Om2008.8.rootfs.jffs2 Om2008.8.rootfs.jffs2] (image du système de fichier racine)&lt;br /&gt;
* [http://downloads.openmoko.org/releases/Om2008.8/Om2008.8.uImage.bin Om2008.8.uimage.bin] (noyau)&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&lt;br /&gt;
&lt;br /&gt;
* Pour les instructions sur comment flasher l'appareil, rendez-vous à : [[Flashing the Neo FreeRunner|Flasher le Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
=== Alternative : exécution depuis une carte microSD ===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez installer cette distribution sur une carte microSD afin de pouvoir [[Boot from sd card|booter depuis une carte microSD]]. Les fichiers .tar sont disponibles [http://downloads.openmoko.org/releases/Om2008.8/ ici]. Cela permet de garder une autre distribution installée sur la mémoire NAND (pour tester 2008.8 tout en gardant 2007.2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problèmes connus ==&lt;br /&gt;
'''GSM'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1662 Après x heures, le GSM ne fonctionne plus correctement]&lt;br /&gt;
* [https://docs.openmoko.org/trac/ticket/1765 Pas de dialogue Pin, donc GSM inutilisable]&lt;br /&gt;
&lt;br /&gt;
'''WiFi'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1625 Le WiFi ne se connecte qu'une fois]&lt;br /&gt;
&lt;br /&gt;
'''Qualité Audio'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1721 le Dialer Qt est parfois muet pendant l'établissement d'un appel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1640 Improve overall audio]&lt;br /&gt;
&lt;br /&gt;
'''Logiciels systèmes'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1736 L'écran de démarrage se met en veille et ne se réveille jamais s'il n'est pas touché pendant le démarrage]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1597 Après une longue veille, évènements au niveau des threads kernel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1315 xglamo : performance diminuée après un moment]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1682 Le Neo s'arrête avant d'avoir lancé X]&lt;br /&gt;
&lt;br /&gt;
'''Réseau'''&lt;br /&gt;
* Pas d'installations/mises à jour possibles ou des pings vers des noms de domaines en raison d'une défaillance DNS. Ce problème survient parce que le fichier /etc/resolv.conf est vide par défaut. Ajoutez cette ligne dans /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 up echo nameserver 192.168.0.200 &amp;gt;/etc/resolv.conf&lt;br /&gt;
Cette ligne est à ajouter après la ligne 'gateway address' et avant 'bluetooth networking'. Après la modification, il convient de redémarrer l'appareil. Ensuite, allez compléter manuellement /etc/resolv.conf en utilisant les données de ce fichier sur votre machine locale ou l'adresse DNS.&lt;br /&gt;
&lt;br /&gt;
Pour résoudre les DNS sans redémarrer, entrer les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 echo nameserver 208.67.222.222 &amp;gt; /etc/resolv.conf&lt;br /&gt;
 echo nameserver 208.67.220.220 &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Cela devrait résoudre la majeure partie de vos soucis de réseau. Si vous avez besoin d'autres aides, référez vous au [[USB Networking|réseau par USB]].&lt;br /&gt;
&lt;br /&gt;
{{note| [http://en.wikipedia.org/wiki/Resolvconf resolv.conf] est installé et devrait normalement être utilisé}}&lt;br /&gt;
&lt;br /&gt;
* Le réseau par USB ne devrait pas fonctionner après le démarrage initial.&lt;br /&gt;
&lt;br /&gt;
'''Utilisabilité'''&lt;br /&gt;
&lt;br /&gt;
* Le dialogue PIN par défaut ne montre que les lettres. Vous devez glisser vos doigts de haut en bas sur le clavier pour changer les caractères en chiffres/lettres/spécial.&lt;br /&gt;
&lt;br /&gt;
* L'installeur n'a pas les droits administrateur, ce qui résulte en une impossibilité d'utiliser opkg. Solution : exécuter &amp;quot;killall packagekitd&amp;quot; (sur le FreeRunner ou lorsque vous y êtes connectés en ssh).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mises à jours officielles pour Om 2008.8 &amp;quot;stable&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Après la sortie de la version Om 2008.8 (le 08/08/2008), le développement de ASU/Om2008.8 est passé sur modèle inspiré de Debian avec trois branches : &amp;quot;stable&amp;quot;, &amp;quot;testing&amp;quot; et &amp;quot;unstable&amp;quot; ([http://lists.openmoko.org/pipermail/community/2008-August/026491.html voir ce message] pour plus de details).&lt;br /&gt;
&lt;br /&gt;
les mises à jours officielles de la branche &amp;quot;stable&amp;quot; sont maintenant (26/08/2008) disponibles sous 2 formes (voir [http://lists.openmoko.org/pipermail/community/2008-August/027997.html ce message]) :&lt;br /&gt;
* dans http://downloads.openmoko.org/repository/Om2008.8/ pour opkg (qui doit être déjà configuré dans 2008.8)&lt;br /&gt;
* comme images de flash dans http://downloads.openmoko.org/releases/Om2008.8-update/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dédicace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
De  : Openmoko&lt;br /&gt;
A : liste de diffusion openmoko-community&lt;br /&gt;
&lt;br /&gt;
Om 2008.8 a été créé pour être vide, afin d'offrir une vitrine pour vos idées.&lt;br /&gt;
&lt;br /&gt;
Pensez à nos produits comme des galeries d'art. Nous en construisons l'environnement. &lt;br /&gt;
Chacune différente de la suivante. &lt;br /&gt;
Vous pourrez prendre la liberté d'imaginer la vôtre parce que nous voulons que vous ajoutiez votre touche. &lt;br /&gt;
Choisissez : vous pouvez utiliser, créer ou les deux.&lt;br /&gt;
&lt;br /&gt;
Peu importe le chemin, vous créez à votre image. C'est à votre sujet.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Om 2008.8/fr]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2008.8/fr</id>
		<title>Om 2008.8/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2008.8/fr"/>
				<updated>2008-10-08T20:17:54Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Om 2008.8}}&lt;br /&gt;
{{Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
{{Distributions|Om 2008.8}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''Om 2008.8''' est le successeur de [[Om 2007.2]] et son nom de code est '''ASU'''. Cette version a été [http://list.openmoko.org/pipermail/community/2008-August/025619.html lancée] le '''8 août 2008'''. (+ mise à jour de la version &amp;quot;stable&amp;quot; à partir du '''26 août 2008'''). Om 2008.8 utilise le lanceur EFL, des applications graphiques personnalisées et [[QtopiaOnX11|Qtopia sur X11]] pour la téléphonie. Il s'agit du premier pas de GTK+ sur X11 vers l'utilisation de nombreuses couches graphiques ensemble.&lt;br /&gt;
&lt;br /&gt;
== Quoi de neuf? ==&lt;br /&gt;
&lt;br /&gt;
Comparée à Om2007.2 qui a eu un développement plus long, Om 2008.8 est sans aucun doute une version majeure &amp;quot;.0&amp;quot;. Pensez KDE 4.0 comparée à KDE 3.5, mais pas Linux 2.6.23 vs. Linux 2.6.22. Les mises à jour sont quotidiennes, certaines bonnes, d'autres mauvaises. Si vous voulez le niveau de stabilité requis pour utiliser le FreeRunner comme téléphone principal, il est recommandé pour l'instant de garder Om2007.2 dans la mémoire flash du téléphone et de tester Om 2008.8 sur une carte microSD amovible.&lt;br /&gt;
&lt;br /&gt;
Les principaux changements du côté utilisateurs:&lt;br /&gt;
&lt;br /&gt;
* L'interface utilisateur a été entièrement revu avec un nouveau gestionnaire de fenêtre [[illume]]. Il est visuellement plus riche, et personnalisable en utilisant vos propres fichiers [[Edje]].&lt;br /&gt;
*'''[[Om2008.8_Installer|Un installeur graphique]]''' permet d'ajouter facilement de nouveaux [[Themes]], nouvelles applications et fonctionnalités.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;padding: 0%; margin:0em 0em 1em 0em; border:1px solid #c0c0c0; background:#eeeeee; width:100%;floating=&amp;quot;center&amp;quot;; &amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 uboot.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 home.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Installer4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om2008 installer1.png|200px|center]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Main.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Edit1.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:Om locations4.png|200px|center]]&lt;br /&gt;
! style=&amp;quot;background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% &amp;quot; |&lt;br /&gt;
[[Image:List.png|200px|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personnalisation ===&lt;br /&gt;
&lt;br /&gt;
'''Om 2008.8''' vous permet de personnaliser de nombreux aspects de votre Neo.&lt;br /&gt;
&lt;br /&gt;
*  '''Ajustez les thèmes''' en personnalisant vos propres fichiers [[Edje]].&lt;br /&gt;
*  Les '''codes source''' sont disponibles au public, permettant la personnalisation de toutes les couches logicielles, même celles de plus bas niveau.&lt;br /&gt;
&lt;br /&gt;
=== Partage ===&lt;br /&gt;
* Partagez vos ([[Om2008.8_Locations|Locations]]) :&lt;br /&gt;
Vous pouvez utiliser '''Locations''' pour sauvegarder vos endroits préférés et éventuellement les envoyer à vos amis par SMS.  N'est-ce pas cool ?!&lt;br /&gt;
* Partagez vos applications (cf. [[Om2008.8_Installer|Installeur]])&lt;br /&gt;
:Partagez vos idées à travers le monde en ajoutant des packages au [http://wiki.openmoko.org/wiki/CommunityRepository dépôt communautaire].  Il s'agit d'une grosse base de données pour tous les projets openmoko et peut être accessible aisément à tout utilisateur par l'intermédiaire de l'[[Om2008.8 Installer|installeur]].&lt;br /&gt;
&lt;br /&gt;
=== Guide Om 2008.8 ===&lt;br /&gt;
Un guide pour connaître Om2008.8 : [[Om 2008.8 Guide]]&lt;br /&gt;
A guide for getting to know Om 2008.8 : [[Om 2008.8 Guide|Guide Om 2008.8]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Images Flash Om 2008.8 ===&lt;br /&gt;
&lt;br /&gt;
'''Téléchargement d'images Om 2008.8'''&lt;br /&gt;
&lt;br /&gt;
Ces images doivent être flashées dans la mémoire NAND du FreeRunner.&lt;br /&gt;
* [http://downloads.openmoko.org/releases/Om2008.8/Om2008.8.rootfs.jffs2 Om2008.8.rootfs.jffs2] (image du système de fichier racine)&lt;br /&gt;
* [http://downloads.openmoko.org/releases/Om2008.8/Om2008.8.uImage.bin Om2008.8.uimage.bin] (noyau)&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&lt;br /&gt;
&lt;br /&gt;
* Pour les instructions sur comment flasher l'appareil, rendez-vous à : [[Flashing the Neo FreeRunner|Flasher le Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
=== Alternative : exécution depuis une carte microSD ===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez installer cette distribution sur une carte microSD afin de pouvoir [[Boot from sd card|booter depuis une carte microSD]]. Les fichiers .tar sont disponibles [http://downloads.openmoko.org/releases/Om2008.8/ ici]. Cela permet de garder une autre distribution installée sur la mémoire NAND (pour tester 2008.8 tout en gardant 2007.2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problèmes connus ==&lt;br /&gt;
'''GSM'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1662 Après x heures, le GSM ne fonctionne plus correctement]&lt;br /&gt;
* [https://docs.openmoko.org/trac/ticket/1765 Pas de dialogue Pin, donc GSM inutilisable]&lt;br /&gt;
&lt;br /&gt;
'''WiFi'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1625 Le WiFi ne se connecte qu'une fois]&lt;br /&gt;
&lt;br /&gt;
'''Qualité Audio'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1721 le Dialer Qt est parfois muet pendant l'établissement d'un appel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1640 Improve overall audio]&lt;br /&gt;
&lt;br /&gt;
'''Logiciels systèmes'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1736 L'écran de démarrage se met en veille et ne se réveille jamais s'il n'est pas touché pendant le démarrage]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1597 Après une longue veille, évènements au niveau des threads kernel]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1315 xglamo : performance diminuée après un moment]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1682 Le Neo s'arrête avant d'avoir lancé X]&lt;br /&gt;
&lt;br /&gt;
'''Réseau'''&lt;br /&gt;
* Pas d'installations/mises à jour possibles ou des pings vers des noms de domaines en raison d'une défaillance DNS. Ce problème survient parce que le fichier /etc/resolv.conf est vide par défaut. Ajoutez cette ligne dans /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 up echo nameserver 192.168.0.200 &amp;gt;/etc/resolv.conf&lt;br /&gt;
Cette ligne est à ajouter après la ligne 'gateway address' et avant 'bluetooth networking'. Après la modification, il convient de redémarrer l'appareil. Ensuite, allez compléter manuellement /etc/resolv.conf en utilisant les données de ce fichier sur votre machine locale ou l'adresse DNS.&lt;br /&gt;
&lt;br /&gt;
Pour résoudre les DNS sans redémarrer, entrer les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 echo nameserver 208.67.222.222 &amp;gt; /etc/resolv.conf&lt;br /&gt;
 echo nameserver 208.67.220.220 &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Cela devrait résoudre la majeure partie de vos soucis de réseau. Si vous avez besoin d'autres aides, référez vous au [[USB Networking|réseau par USB]].&lt;br /&gt;
&lt;br /&gt;
{{note| [http://en.wikipedia.org/wiki/Resolvconf resolv.conf] est installé et devrait normalement être utilisé}}&lt;br /&gt;
&lt;br /&gt;
* Le réseau par USB ne devrait pas fonctionner après le démarrage initial.&lt;br /&gt;
&lt;br /&gt;
'''Utilisabilité'''&lt;br /&gt;
&lt;br /&gt;
* Le dialogue PIN par défaut ne montre que les lettres. Vous devez glisser vos doigts de haut en bas sur le clavier pour changer les caractères en chiffres/lettres/spécial.&lt;br /&gt;
&lt;br /&gt;
* L'installeur n'a pas les droits administrateur, ce qui résulte en une impossibilité d'utiliser opkg. Solution : exécuter &amp;quot;killall packagekitd&amp;quot; (sur le FreeRunner ou lorsque vous y êtes connectés en ssh).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mises à jours officielles pour Om 2008.8 &amp;quot;stable&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Après la sortie de la version Om 2008.8 (le 08/08/2008), le développement de ASU/Om2008.8 est passé sur modèle inspiré de Debian avec trois branches : &amp;quot;stable&amp;quot;, &amp;quot;testing&amp;quot; et &amp;quot;unstable&amp;quot; ([http://lists.openmoko.org/pipermail/community/2008-August/026491.html voir ce message] pour plus de details).&lt;br /&gt;
&lt;br /&gt;
les mises à jours officielles de la branche &amp;quot;stable&amp;quot; sont maintenant (26/08/2008) disponibles sous 2 formes (voir [http://lists.openmoko.org/pipermail/community/2008-August/027997.html ce message]) :&lt;br /&gt;
* dans http://downloads.openmoko.org/repository/Om2008.8/ pour opkg (qui doit être déjà configuré dans 2008.8)&lt;br /&gt;
* comme images de flash dans http://downloads.openmoko.org/releases/Om2008.8-update/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dédicace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
De  : Openmoko&lt;br /&gt;
A : liste de diffusion openmoko-community&lt;br /&gt;
&lt;br /&gt;
Om 2008.8 a été créé pour être vide, afin d'offrir une vitrine pour vos idées.&lt;br /&gt;
&lt;br /&gt;
Pensez à nos produits comme des galeries d'art. Nous en construisons l'environnement. &lt;br /&gt;
Chacune différente de la suivante. &lt;br /&gt;
Vous pourrez prendre la liberté d'imaginer la vôtre parce que nous voulons que vous ajoutiez votre touche. &lt;br /&gt;
Choisissez : vous pouvez utiliser, créer ou les deux.&lt;br /&gt;
&lt;br /&gt;
Peu importe le chemin, vous créez à votre image. C'est à votre sujet.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Om 2008.8/fr]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/fr</id>
		<title>Main Page/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/fr"/>
				<updated>2008-10-08T19:58:01Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main Page}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 2.5ex; text-align: center; font: bold x-large sans&amp;quot;&amp;gt;Openmoko™ - Open. Mobile. Free.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Openmoko™ est un projet destiné à fournir des téléphones portables dotés d'une couche logicielle opensource. &lt;br /&gt;
A l'heure actuelle, Openmoko propose à la vente le téléphone [[Neo FreeRunner/fr|Neo FreeRunner]] dédié pour l'instant à des utilisateurs avancés.&lt;br /&gt;
Une fois que la couche logicielle sera plus élaborée, le grand public pourra être visé.&lt;br /&gt;
&lt;br /&gt;
La couche logicielle Openmoko -qui inclue un serveur X complet- permet aux utilisateurs et développeurs de transformer la plateforme matérielle en des produits exceptionnels.&lt;br /&gt;
Notre licence donne la liberté d'adapter l'interface graphique, voir de la modifier complètement, de changer le fond d'écran, ou encore de modifier totalement l'aspect du logiciel !&lt;br /&gt;
La licence donne ainsi par exemple la liberté à l'utilisateur de transformer son téléphone en un appareil médical, en un espace de vente portatif ou encore de pouvoir installer simplement ses applications favorites.&lt;br /&gt;
En plus de proposer un logiciel libre sur nos machines, nous fournissons aussi l'intégralité des fichiers [http://downloads.openmoko.org/CAD/ CAD] sous licence Creative Commons.&lt;br /&gt;
Par ailleurs, nous avons annoncé la diffusion des [http://downloads.openmoko.org/schematics/ schémas de nos produits] au LinuxWorld 2008.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveautés et évènements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveau sur Openmoko ?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008|Lettre de la communauté]]&lt;br /&gt;
* 2/10: Nokia publie [http://qtextended.org/ Qt Extented 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Une nouvelle version [[FDOM]]&lt;br /&gt;
* 19/9: Mise à jour mineure [[Om2008.9_Update/fr|Om 2008.9]]&lt;br /&gt;
* 11/9: L'équipe travaillant sur la structure publie la [http://downloads.openmoko.org/framework/milestone3/ mise à jour 3] de la distribution FSO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[Weekly_Engineering_News|Rapport hebdomadaire d'évolution de Openmoko]]&lt;br /&gt;
* [[News Archive/fr|(archives des nouveautés)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;A propos d'Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/fr|Introduction]]&lt;br /&gt;
* [[Why Openmoko|Pourquoi Openmoko ?]]&lt;br /&gt;
* [[Neo FreeRunner/fr|Le Neo FreeRunner]]&lt;br /&gt;
* [[Supported Hardware|Matériel supporté]]&lt;br /&gt;
* [[FAQ/fr|FAQ]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Se procurer Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko|Obtenir Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
* [http://bearstech.com/shop bearstech : le revendeur Français]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les utilisateurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les développeurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Où commencer ?&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/fr|Guide de démarrage du Neo FreeRunner]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Distributions logicielles&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Tableau comparatif des fonctionnalités]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU) ]] - [[Om 2007.2|Om 2007.2 (ancienne version stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[FDOM - a Fat and Dirty OM based distribution|FDOM]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Communauté Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Discussion_Forums| Forums de discussion]]&lt;br /&gt;
* [[Community Repository|Dépôt Communautaire]]&lt;br /&gt;
* [[Development resources | Ressources concernant le développement]]&lt;br /&gt;
* [http://openmoko-fr.org Communauté Française]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Développement applicatif&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide|Guide du développeur Openmoko]]&lt;br /&gt;
* [[Toolchain/fr|Suite d'outils]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Introduction à Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projets hébergés dans notre Forge]&lt;br /&gt;
* [[OpenmokoFramework/fr|Interface de communication dbus utilisée par Openmoko]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Intégration et distributions&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded/fr|Librairie de développement OpenEmbedded]]&lt;br /&gt;
* [[MokoMakefile|Compiler Openmoko à l'aide du MokoMakefile ]]&lt;br /&gt;
* [[Opkg|Opkg, le gestionnaire de packages]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Emulation&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU/fr|Openmoko en environnement QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consultez les articles par [[:Category:Categories|Categories]].&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2008.9_Update/fr</id>
		<title>Om 2008.9 Update/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2008.9_Update/fr"/>
				<updated>2008-10-08T19:57:05Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: New page: {{Languages|Om2008.9 Update}} == Sommaire == La mise à jour '''Om 2008.9 Update''' est la première des nombreuses [http://en.wikipedia.org/wiki/Point_release mise à jour mineure] à avo...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Om2008.9 Update}}&lt;br /&gt;
== Sommaire ==&lt;br /&gt;
La mise à jour '''Om 2008.9 Update''' est la première des nombreuses [http://en.wikipedia.org/wiki/Point_release mise à jour mineure] à avoir lieu après la publication originelle de [[Om2008.8|la version majeure Om 2008.8]] et est recommandée pour tous les utilisateurs de [http://downloads.openmoko.org/releases/ Om version 2008.8]. Cette version intègre des mises à niveau générales du système d'exploitation qui améliorent la stabilité, la compatibilité ainsi que la sécurité de votre Neo.&lt;br /&gt;
&lt;br /&gt;
For detailed information about fixes and updates, please visit [https://docs.openmoko.org/trac/query?status=closed&amp;amp;group=component&amp;amp;order=priority&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=status&amp;amp;col=type&amp;amp;col=priority&amp;amp;col=milestone&amp;amp;col=component&amp;amp;milestone=Om2008.9 Openmoko Trac].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Products Affected:  Neo FreeRunner&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installer la mise à jour ==&lt;br /&gt;
{{Warning|It is recommended that you back up your Neo prior to installing any updates.}}&lt;br /&gt;
=== Téléchargement et intégration dans la mémoire flash ===&lt;br /&gt;
&lt;br /&gt;
To install the exact 2008.9 point release, download the Root Filesystem and the Kernel image files from [http://downloads.openmoko.org/releases/Om2008.9/ Download] page and install according to [[Flashing the Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
If you prefer to stay at the head tip of the ASU distribution, just doing ''opkg update'' &amp;amp;&amp;amp; ''opkg upgrade'' is enough. You may want to flash the splash screen only, but this is cosmetic.&lt;br /&gt;
&lt;br /&gt;
The files with ''-20080916-'' in the name and the files without date are identical (symlinks actually). The three days discrepancy between 2008-09-16 (in the filenames) and 2008-09-19 (in the last modified column) is normal, that is the time it took to pull the files from the git, build the packages, test them and publish them.&lt;br /&gt;
&lt;br /&gt;
== Quel est le contenu ==&lt;br /&gt;
&lt;br /&gt;
'''Distribution'''&lt;br /&gt;
* Created public unstable/testing/stable branches for Om 2008&lt;br /&gt;
* New meta toolchain [http://lists.openmoko.org/pipermail/devel/2008-September/002030.html Details]&lt;br /&gt;
* Fixed issue with unknown wifi showing in settings&lt;br /&gt;
* Fixed Qtopia build issues&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=10&amp;amp;component=Distro&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;milestone=Om2008.9&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''Illume'''&lt;br /&gt;
* Fixed suspend request issues in illume&lt;br /&gt;
* Added low battery alert signal - battery turns red &lt;br /&gt;
* Added carrier information&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=3&amp;amp;component=E+-+Illume&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=changetime&amp;amp;milestone=Om2008.9&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''Installer'''&lt;br /&gt;
* Improved overall error handling and stability&lt;br /&gt;
* Fixed issues with packages getting switched to wrong categories&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=6&amp;amp;component=Installer&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;milestone=Om2008.9&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''Locations'''&lt;br /&gt;
* Fixed issues with accuracy of tag saving&lt;br /&gt;
* Fixed tag text issues&lt;br /&gt;
* Fixed issues with the location of saving maps&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=4&amp;amp;component=Locations&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''Qtopia'''&lt;br /&gt;
* Improved overall call/message handling during suspend&lt;br /&gt;
* Improved PIN dialog pop up&lt;br /&gt;
* Fixed issues with showing UTF8 correctly&lt;br /&gt;
* Improved sound handling issues during calls&lt;br /&gt;
* Improved overall GUI usability issues&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=10&amp;amp;component=Qtopia&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;milestone=Om2008.9&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''Settings'''&lt;br /&gt;
* Improved speed of opening/closing of application&lt;br /&gt;
* Improved suspend time handling&lt;br /&gt;
* Fixed issues with sound profile not switching correctly&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=10&amp;amp;component=Settings&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=changetime&amp;amp;milestone=Om2008.9&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
'''System Software'''&lt;br /&gt;
* Fixed issues with time changes after removal of battery&lt;br /&gt;
* Fixed issues with no sound after resume&lt;br /&gt;
* Improved AUX light during charging &lt;br /&gt;
* Improved overall suspend/resume handling&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;max=8&amp;amp;component=System+Software&amp;amp;order=changetime&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=changetime&amp;amp;desc=1&amp;amp;resolution=fixed Details]&lt;br /&gt;
&lt;br /&gt;
Also, along that distribution update comes a new (more sober) splash screen.&lt;br /&gt;
&lt;br /&gt;
==Problèmes connus==&lt;br /&gt;
&lt;br /&gt;
'''GSM'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1662 GSM not working properly after x hours]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1832 Cannot dial numbers starting with * or #]&lt;br /&gt;
&lt;br /&gt;
'''WiFi'''&lt;br /&gt;
 &lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1929 WiFi can only connect once]&lt;br /&gt;
* A lot of focus is on wifi at the moment.  An Om update is scheduled to release once we have basic usability working on the device.&lt;br /&gt;
&lt;br /&gt;
'''Audio quality'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1267 Strong echo when calling a Neo from another phone]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1640 Improve overall audio]&lt;br /&gt;
&lt;br /&gt;
'''System Software''' &lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1597 After long suspend, kernel thread events]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1315 xglamo: performance decreases after a while]&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1682 Neo turns off before reaching x]&lt;br /&gt;
&lt;br /&gt;
'''Battery'''&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/ticket/1158 Charging stops even while connected to the charger]&lt;br /&gt;
&lt;br /&gt;
==Qu'est-ce qui vient après ?==&lt;br /&gt;
Some targets for 2008.10&lt;br /&gt;
&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=accepted&amp;amp;status=assigned&amp;amp;status=in_testing&amp;amp;status=new&amp;amp;status=reopened&amp;amp;group=component&amp;amp;order=priority&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=owner&amp;amp;col=type&amp;amp;col=priority&amp;amp;milestone=Om2008.10 2008.10 Milestone list]&lt;br /&gt;
&lt;br /&gt;
==Références==&lt;br /&gt;
Some useful resources:&lt;br /&gt;
&lt;br /&gt;
* [[Om2008.8|Om 2008.8]]&lt;br /&gt;
* [http://docs.openmoko.org/trac/query?status=closed&amp;amp;group=component&amp;amp;order=priority&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=status&amp;amp;col=type&amp;amp;col=priority&amp;amp;col=milestone&amp;amp;col=component&amp;amp;milestone=Om2008.9 Om 2008.9 Milestone list]&lt;br /&gt;
* [http://onlinedev.blogspot.com/search/label/om2008.8%20review Alasal's Test Reports]&lt;br /&gt;
[[category:Om 2008.9]]&lt;br /&gt;
* Matthias's [http://www.unixarea.de/openmoko.txt installation report].&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/fr</id>
		<title>Main Page/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/fr"/>
				<updated>2008-10-08T19:43:27Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main Page}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 2.5ex; text-align: center; font: bold x-large sans&amp;quot;&amp;gt;Openmoko™ - Open. Mobile. Free.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Openmoko™ est un projet destiné à fournir des téléphones portables dotés d'une couche logicielle opensource. &lt;br /&gt;
A l'heure actuelle, Openmoko propose à la vente le téléphone [[Neo FreeRunner/fr|Neo FreeRunner]] dédié pour l'instant à des utilisateurs avancés.&lt;br /&gt;
Une fois que la couche logicielle sera plus élaborée, le grand public pourra être visé.&lt;br /&gt;
&lt;br /&gt;
La couche logicielle Openmoko -qui inclue un serveur X complet- permet aux utilisateurs et développeurs de transformer la plateforme matérielle en des produits exceptionnels.&lt;br /&gt;
Notre licence donne la liberté d'adapter l'interface graphique, voir de la modifier complètement, de changer le fond d'écran, ou encore de modifier totalement l'aspect du logiciel !&lt;br /&gt;
La licence donne ainsi par exemple la liberté à l'utilisateur de transformer son téléphone en un appareil médical, en un espace de vente portatif ou encore de pouvoir installer simplement ses applications favorites.&lt;br /&gt;
En plus de proposer un logiciel libre sur nos machines, nous fournissons aussi l'intégralité des fichiers [http://downloads.openmoko.org/CAD/ CAD] sous licence Creative Commons.&lt;br /&gt;
Par ailleurs, nous avons annoncé la diffusion des [http://downloads.openmoko.org/schematics/ schémas de nos produits] au LinuxWorld 2008.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveautés et évènements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveau sur Openmoko ?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008|Lettre de la communauté]]&lt;br /&gt;
* 2/10: Nokia publie [http://qtextended.org/ Qt Extented 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Une nouvelle version [[FDOM]]&lt;br /&gt;
* 19/9: Mise à jour mineure [[Om2008.9_Update|Om 2008.9]]&lt;br /&gt;
* 11/9: L'équipe travaillant sur la structure publie la [http://downloads.openmoko.org/framework/milestone3/ mise à jour 3] de la distribution FSO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[Weekly_Engineering_News|Rapport hebdomadaire d'évolution de Openmoko]]&lt;br /&gt;
* [[News Archive/fr|(archives des nouveautés)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;A propos d'Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/fr|Introduction]]&lt;br /&gt;
* [[Why Openmoko|Pourquoi Openmoko ?]]&lt;br /&gt;
* [[Neo FreeRunner/fr|Le Neo FreeRunner]]&lt;br /&gt;
* [[Supported Hardware|Matériel supporté]]&lt;br /&gt;
* [[FAQ/fr|FAQ]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Se procurer Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko|Obtenir Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
* [http://bearstech.com/shop bearstech : le revendeur Français]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les utilisateurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les développeurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Où commencer ?&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/fr|Guide de démarrage du Neo FreeRunner]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Distributions logicielles&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Tableau comparatif des fonctionnalités]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU) ]] - [[Om 2007.2|Om 2007.2 (ancienne version stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[FDOM - a Fat and Dirty OM based distribution|FDOM]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Communauté Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Discussion_Forums| Forums de discussion]]&lt;br /&gt;
* [[Community Repository|Dépôt Communautaire]]&lt;br /&gt;
* [[Development resources | Ressources concernant le développement]]&lt;br /&gt;
* [http://openmoko-fr.org Communauté Française]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Développement applicatif&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide|Guide du développeur Openmoko]]&lt;br /&gt;
* [[Toolchain/fr|Suite d'outils]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Introduction à Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projets hébergés dans notre Forge]&lt;br /&gt;
* [[OpenmokoFramework/fr|Interface de communication dbus utilisée par Openmoko]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Intégration et distributions&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded/fr|Librairie de développement OpenEmbedded]]&lt;br /&gt;
* [[MokoMakefile|Compiler Openmoko à l'aide du MokoMakefile ]]&lt;br /&gt;
* [[Opkg|Opkg, le gestionnaire de packages]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Emulation&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU/fr|Openmoko en environnement QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consultez les articles par [[:Category:Categories|Categories]].&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/fr</id>
		<title>Main Page/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/fr"/>
				<updated>2008-10-08T19:35:51Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main Page}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 2.5ex; text-align: center; font: bold x-large sans&amp;quot;&amp;gt;Openmoko™ - Open. Mobile. Free.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Openmoko™ est un projet destiné à fournir des téléphones portables dotés d'une couche logicielle opensource. &lt;br /&gt;
A l'heure actuelle, Openmoko propose à la vente le téléphone [[Neo FreeRunner/fr|Neo FreeRunner]] dédié pour l'instant à des utilisateurs avancés.&lt;br /&gt;
Une fois que la couche logicielle sera plus élaborée, le grand public pourra être visé.&lt;br /&gt;
&lt;br /&gt;
La couche logicielle Openmoko -qui inclue un serveur X complet- permet aux utilisateurs et développeurs de transformer la plateforme matérielle en des produits exceptionnels.&lt;br /&gt;
Notre licence donne la liberté d'adapter l'interface graphique, voir de la modifier complètement, de changer le fond d'écran, ou encore de modifier totalement l'aspect du logiciel !&lt;br /&gt;
La licence donne ainsi par exemple la liberté à l'utilisateur de transformer son téléphone en un appareil médical, en un espace de vente portatif ou encore de pouvoir installer simplement ses applications favorites.&lt;br /&gt;
En plus de proposer un logiciel libre sur nos machines, nous fournissons aussi l'intégralité des fichiers [http://downloads.openmoko.org/CAD/ CAD] sous licence Creative Commons.&lt;br /&gt;
Par ailleurs, nous avons annoncé la diffusion des [http://downloads.openmoko.org/schematics/ schémas de nos produits] au LinuxWorld 2008.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveautés et évènements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveau sur Openmoko ?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008|Lettre de la communauté]]&lt;br /&gt;
* 2/10: Nokia publie [http://qtextended.org/ Qt Extented 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Une nouvelle version [[FDOM]]&lt;br /&gt;
* 19/9: Mise à jour mineure [[Om2008.9_Update|Om 2008.9]]&lt;br /&gt;
* 11/9: L'équipe travaillant sur la structure publie la [http://downloads.openmoko.org/framework/milestone3/ mise à jour 3] de la distribution FSO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[Weekly_Engineering_News|Rapport hebdomadaire d'évolution de Openmoko]]&lt;br /&gt;
* [[News Archive/fr|(archives des nouveautés)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;A propos d'Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/fr|Introduction]]&lt;br /&gt;
* [[Why Openmoko|Pourquoi Openmoko ?]]&lt;br /&gt;
* [[Neo FreeRunner/fr|Le Neo FreeRunner]]&lt;br /&gt;
* [[Supported Hardware|Matériel supporté]]&lt;br /&gt;
* [[FAQ/fr|FAQ]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Se procurer Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko|Obtenir Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
* [http://bearstech.com/shop bearstech : le revendeur Français]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les utilisateurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les développeurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Où commencer ?&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/fr|Guide de démarrage du Neo FreeRunner]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Distributions logicielles&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Tableau comparatif des fonctionnalités]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU) ]] - [[Om 2007.2|Om 2007.2 (ancienne version stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[FDOM - a Fat and Dirty OM based distribution|FDOM]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Communauté Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Discussion_Forums| Forums de discussion]]&lt;br /&gt;
* [[Community Repository|Dépôt Communautaire]]&lt;br /&gt;
* [[Development resources | Ressources concernant le développement]]&lt;br /&gt;
* [http://openmoko-fr.org Communauté Française]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Développement applicatif&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide|Guide du développeur Openmoko]]&lt;br /&gt;
* [[Toolchain|Suite d'outils]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Introduction à Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projets hébergés dans notre Forge]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Intégration et distributions&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|Librairie de développement OpenEmbedded]]&lt;br /&gt;
* [[MokoMakefile|Compiler Openmoko à l'aide du MokoMakefile ]]&lt;br /&gt;
* [[Opkg|Opkg, le gestionnaire de packages]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Emulation&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU|Openmoko sous QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/fr</id>
		<title>Main Page/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/fr"/>
				<updated>2008-10-08T19:31:06Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main Page}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 2.5ex; text-align: center; font: bold x-large sans&amp;quot;&amp;gt;Openmoko™ - Open. Mobile. Free.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Openmoko™ est un projet destiné à fournir des téléphones portables dotés d'une couche logicielle opensource. &lt;br /&gt;
A l'heure actuelle, Openmoko propose à la vente le téléphone [[Neo FreeRunner/fr|Neo FreeRunner]] dédié pour l'instant à des utilisateurs avancés.&lt;br /&gt;
Une fois que la couche logicielle sera plus élaborée, le grand public pourra être visé.&lt;br /&gt;
&lt;br /&gt;
La couche logicielle Openmoko -qui inclue un serveur X complet- permet aux utilisateurs et développeurs de transformer la plateforme matérielle en des produits exceptionnels.&lt;br /&gt;
Notre licence donne la liberté d'adapter l'interface graphique, voir de la modifier complètement, de changer le fond d'écran, ou encore de modifier totalement l'aspect du logiciel !&lt;br /&gt;
La licence donne ainsi par exemple la liberté à l'utilisateur de transformer son téléphone en un appareil médical, en un espace de vente portatif ou encore de pouvoir installer simplement ses applications favorites.&lt;br /&gt;
En plus de proposer un logiciel libre sur nos machines, nous fournissons aussi l'intégralité des fichiers [http://downloads.openmoko.org/CAD/ CAD] sous licence Creative Commons.&lt;br /&gt;
Par ailleurs, nous avons annoncé la diffusion des [http://downloads.openmoko.org/schematics/ schémas de nos produits] au LinuxWorld 2008.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveautés et évènements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveau sur Openmoko ?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008|Lettre de la communauté]]&lt;br /&gt;
* 2/10: Nokia publie [http://qtextended.org/ Qt Extented 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Une nouvelle version [[FDOM]]&lt;br /&gt;
* 19/9: Mise à jour mineure [[Om2008.9_Update|Om 2008.9]]&lt;br /&gt;
* 11/9: L'équipe travaillant sur la structure publie la [http://downloads.openmoko.org/framework/milestone3/ mise à jour 3] de la distribution FSO.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[Weekly_Engineering_News|Rapport hebdomadaire d'évolution de Openmoko]].&lt;br /&gt;
* [[News Archive/fr|(archives des nouveautés)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;A propos d'Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/fr|Introduction]]&lt;br /&gt;
* [[Why Openmoko|Pourquoi Openmoko ?]]&lt;br /&gt;
* [[Neo FreeRunner/fr|Le Neo FreeRunner]]&lt;br /&gt;
* [[Supported Hardware|Matériel supporté]]&lt;br /&gt;
* [[FAQ/fr|FAQ]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Se procurer Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko|Obtenir Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
* [http://bearstech.com/shop bearstech : le revendeur Français]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les utilisateurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les développeurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Où commencer ?&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/fr|Guide de démarrage du Neo FreeRunner]]&lt;br /&gt;
* [[FAQ#Getting_Started_with_your_Neo_FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Logiciel&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Distributions logicielles Openmoko]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU) ]] - [[Om 2007.2|Om 2007.2 (ancienne version stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[FDOM - a Fat and Dirty OM based distribution|FDOM]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Communauté Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Discussion_Forums| Forums de discussion]]&lt;br /&gt;
* [[Community Repository|Dépôt Communautaire]]&lt;br /&gt;
* [[Development resources | Ressources concernant le développement]]&lt;br /&gt;
* [http://openmoko-fr.org Communauté Française]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Développement applicatif&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide|Guide du développeur Openmoko]]&lt;br /&gt;
* [[Toolchain|Suite d'outils]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Introduction à Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projets hébergés dans notre Forge]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Intégration et distributions&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|Librairie de développement OpenEmbedded]]&lt;br /&gt;
* [[MokoMakefile|Compiler Openmoko à l'aide du MokoMakefile ]]&lt;br /&gt;
* [[Opkg|Opkg, le gestionnaire de packages]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Emulation&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU|Openmoko sous QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/fr</id>
		<title>Main Page/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/fr"/>
				<updated>2008-10-08T19:27:16Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main Page}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 2.5ex; text-align: center; font: bold x-large sans&amp;quot;&amp;gt;Openmoko™ - Open. Mobile. Free.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Openmoko™ est un projet destiné à fournir des téléphones portables dotés d'une couche logicielle opensource. &lt;br /&gt;
A l'heure actuelle, Openmoko propose à la vente le téléphone [[Neo FreeRunner/fr|Neo FreeRunner]] dédié pour l'instant à des utilisateurs avancés.&lt;br /&gt;
Une fois que la couche logicielle sera plus élaborée, le grand public pourra être visé.&lt;br /&gt;
&lt;br /&gt;
La couche logicielle Openmoko -qui inclue un serveur X complet- permet aux utilisateurs et développeurs de transformer la plateforme matérielle en des produits exceptionnels.&lt;br /&gt;
Notre licence donne la liberté d'adapter l'interface graphique, voir de la modifier complètement, de changer le fond d'écran, ou encore de modifier totalement l'aspect du logiciel !&lt;br /&gt;
La licence donne ainsi par exemple la liberté à l'utilisateur de transformer son téléphone en un appareil médical, en un espace de vente portatif ou encore de pouvoir installer simplement ses applications favorites.&lt;br /&gt;
En plus de proposer un logiciel libre sur nos machines, nous fournissons aussi l'intégralité des fichiers [http://downloads.openmoko.org/CAD/ CAD] sous licence Creative Commons.&lt;br /&gt;
Par ailleurs, nous avons annoncé la diffusion des [http://downloads.openmoko.org/schematics/ schémas de nos produits] au LinuxWorld 2008.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveautés et évènements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveau sur Openmoko ?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008|Community update]]&lt;br /&gt;
* 2/10: Nokia released [http://qtextended.org/ Qt Extented 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Une nouvelle version [[FDOM]]&lt;br /&gt;
* 19/9: point release of [[Om2008.9_Update|Om 2008.9]]&lt;br /&gt;
* 11/9: The framework team releases [http://downloads.openmoko.org/framework/milestone3/ milestone 3] of the FSO distribution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[Weekly_Engineering_News|Rapport hebdomadaire d'évolution de Openmoko]].&lt;br /&gt;
* [[News Archive/fr|(archives des nouveautés)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;A propos d'Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/fr|Introduction]]&lt;br /&gt;
* [[Why Openmoko|Pourquoi Openmoko ?]]&lt;br /&gt;
* [[Neo FreeRunner/fr|Le Neo FreeRunner]]&lt;br /&gt;
* [[Supported Hardware|Matériel supporté]]&lt;br /&gt;
* [[FAQ/fr|FAQ]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Se procurer Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko|Obtenir Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
* [http://bearstech.com/shop bearstech : le revendeur Français]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les utilisateurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les développeurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Où commencer ?&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/fr|Guide de démarrage du Neo FreeRunner]]&lt;br /&gt;
* [[FAQ#Getting_Started_with_your_Neo_FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Logiciel&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Distributions logicielles Openmoko]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU) ]] - [[Om 2007.2|Om 2007.2 (ancienne version stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[FDOM - a Fat and Dirty OM based distribution|FDOM]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Communauté Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Discussion_Forums| Forums de discussion]]&lt;br /&gt;
* [[Community Repository|Dépôt Communautaire]]&lt;br /&gt;
* [[Development resources | Ressources concernant le développement]]&lt;br /&gt;
* [http://openmoko-fr.org Communauté Française]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Développement applicatif&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide|Guide du développeur Openmoko]]&lt;br /&gt;
* [[Toolchain|Suite d'outils]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Introduction à Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projets hébergés dans notre Forge]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Intégration et distributions&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|Librairie de développement OpenEmbedded]]&lt;br /&gt;
* [[MokoMakefile|Compiler Openmoko à l'aide du MokoMakefile ]]&lt;br /&gt;
* [[Opkg|Opkg, le gestionnaire de packages]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Emulation&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU|Openmoko sous QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/fr</id>
		<title>Main Page/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/fr"/>
				<updated>2008-10-08T19:26:51Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main Page}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 2.5ex; text-align: center; font: bold x-large sans&amp;quot;&amp;gt;Openmoko™ - Open. Mobile. Free.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Openmoko™ est un projet destiné à fournir des téléphones portables dotés d'une couche logicielle opensource. &lt;br /&gt;
A l'heure actuelle, Openmoko propose à la vente le téléphone [[Neo FreeRunner/fr|Neo FreeRunner]] dédié pour l'instant à des utilisateurs avancés.&lt;br /&gt;
Une fois que la couche logicielle sera plus élaborée, le grand public pourra être visé.&lt;br /&gt;
&lt;br /&gt;
La couche logicielle Openmoko -qui inclue un serveur X complet- permet aux utilisateurs et développeurs de transformer la plateforme matérielle en des produits exceptionnels.&lt;br /&gt;
Notre licence donne la liberté d'adapter l'interface graphique, voir de la modifier complètement, de changer le fond d'écran, ou encore de modifier totalement l'aspect du logiciel !&lt;br /&gt;
La licence donne ainsi par exemple la liberté à l'utilisateur de transformer son téléphone en un appareil médical, en un espace de vente portatif ou encore de pouvoir installer simplement ses applications favorites.&lt;br /&gt;
En plus de proposer un logiciel libre sur nos machines, nous fournissons aussi l'intégralité des fichiers [http://downloads.openmoko.org/CAD/ CAD] sous licence Creative Commons.&lt;br /&gt;
Par ailleurs, nous avons annoncé la diffusion des [http://downloads.openmoko.org/schematics/ schémas de nos produits] au LinuxWorld 2008.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveautés et évènements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveau sur Openmoko ?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008|Community update]]&lt;br /&gt;
* 2/10: Nokia released [http://qtextended.org/ Qt Extented 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Une nouvelle version [[FDOM]]&lt;br /&gt;
* 19/9: point release of [[Om2008.9_Update|Om 2008.9]]&lt;br /&gt;
* 11/9: The framework team releases [http://downloads.openmoko.org/framework/milestone3/ milestone 3] of the FSO distribution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[Weekly_Engineering_News Rapport hebdomadaire d'évolution de Openmoko]].&lt;br /&gt;
* [[News Archive/fr|(archives des nouveautés)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;A propos d'Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/fr|Introduction]]&lt;br /&gt;
* [[Why Openmoko|Pourquoi Openmoko ?]]&lt;br /&gt;
* [[Neo FreeRunner/fr|Le Neo FreeRunner]]&lt;br /&gt;
* [[Supported Hardware|Matériel supporté]]&lt;br /&gt;
* [[FAQ/fr|FAQ]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Se procurer Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko|Obtenir Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
* [http://bearstech.com/shop bearstech : le revendeur Français]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les utilisateurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les développeurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Où commencer ?&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/fr|Guide de démarrage du Neo FreeRunner]]&lt;br /&gt;
* [[FAQ#Getting_Started_with_your_Neo_FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Logiciel&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Distributions logicielles Openmoko]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU) ]] - [[Om 2007.2|Om 2007.2 (ancienne version stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[FDOM - a Fat and Dirty OM based distribution|FDOM]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Communauté Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Discussion_Forums| Forums de discussion]]&lt;br /&gt;
* [[Community Repository|Dépôt Communautaire]]&lt;br /&gt;
* [[Development resources | Ressources concernant le développement]]&lt;br /&gt;
* [http://openmoko-fr.org Communauté Française]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Développement applicatif&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide|Guide du développeur Openmoko]]&lt;br /&gt;
* [[Toolchain|Suite d'outils]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Introduction à Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projets hébergés dans notre Forge]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Intégration et distributions&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|Librairie de développement OpenEmbedded]]&lt;br /&gt;
* [[MokoMakefile|Compiler Openmoko à l'aide du MokoMakefile ]]&lt;br /&gt;
* [[Opkg|Opkg, le gestionnaire de packages]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Emulation&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU|Openmoko sous QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/fr</id>
		<title>Main Page/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/fr"/>
				<updated>2008-10-08T19:14:04Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main Page}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 2.5ex; text-align: center; font: bold x-large sans&amp;quot;&amp;gt;Openmoko™ - Open. Mobile. Free.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Openmoko™ est un projet destiné à fournir des téléphones portables dotés d'une couche logicielle opensource. &lt;br /&gt;
A l'heure actuelle, Openmoko propose à la vente le téléphone [[Neo FreeRunner/fr|Neo FreeRunner]] dédié pour l'instant à des utilisateurs avancés.&lt;br /&gt;
Une fois que la couche logicielle sera plus élaborée, le grand public pourra être visé.&lt;br /&gt;
&lt;br /&gt;
La couche logicielle Openmoko -qui inclue un serveur X complet- permet aux utilisateurs et développeurs de transformer la plateforme matérielle en des produits exceptionnels.&lt;br /&gt;
Notre licence donne la liberté d'adapter l'interface graphique, voir de la modifier complètement, de changer le fond d'écran, ou encore de modifier totalement l'aspect du logiciel !&lt;br /&gt;
La licence donne ainsi par exemple la liberté à l'utilisateur de transformer son téléphone en un appareil médical, en un espace de vente portatif ou encore de pouvoir installer simplement ses applications favorites.&lt;br /&gt;
En plus de proposer un logiciel libre sur nos machines, nous fournissons aussi l'intégralité des fichiers [http://downloads.openmoko.org/CAD/ CAD] sous licence Creative Commons.&lt;br /&gt;
Par ailleurs, nous avons annoncé la diffusion des [http://downloads.openmoko.org/schematics/ schémas de nos produits] au LinuxWorld 2008.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveautés et évènements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveau sur Openmoko ?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008|Community update]]&lt;br /&gt;
* 2/10: Nokia released [http://qtextended.org/ Qt Extented 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Une nouvelle version [[FDOM]]&lt;br /&gt;
* 19/9: point release of [[Om2008.9_Update|Om 2008.9]]&lt;br /&gt;
* 11/9: The framework team releases [http://downloads.openmoko.org/framework/milestone3/ milestone 3] of the FSO distribution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [Weekly_Engineering_News Rapport hebdomadaire d'évolution de Openmoko].&lt;br /&gt;
* [[News Archive/fr|(archives des nouveautés)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;A propos d'Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/fr|Introduction]]&lt;br /&gt;
* [[Why Openmoko|Pourquoi Openmoko ?]]&lt;br /&gt;
* [[Neo FreeRunner/fr|Le Neo FreeRunner]]&lt;br /&gt;
* [[Supported Hardware|Matériel supporté]]&lt;br /&gt;
* [[FAQ/fr|FAQ]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Se procurer Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko|Obtenir Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
* [http://bearstech.com/shop bearstech : le revendeur Français]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les utilisateurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les développeurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Où commencer ?&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/fr|Guide de démarrage du Neo FreeRunner]]&lt;br /&gt;
* [[FAQ#Getting_Started_with_your_Neo_FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Logiciel&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Distributions logicielles Openmoko]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU) ]] - [[Om 2007.2|Om 2007.2 (ancienne version stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[FDOM - a Fat and Dirty OM based distribution|FDOM]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Communauté Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Discussion_Forums| Forums de discussion]]&lt;br /&gt;
* [[Community Repository|Dépôt Communautaire]]&lt;br /&gt;
* [[Development resources | Ressources concernant le développement]]&lt;br /&gt;
* [http://openmoko-fr.org Communauté Française]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Développement applicatif&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide|Guide du développeur Openmoko]]&lt;br /&gt;
* [[Toolchain|Suite d'outils]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Introduction à Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projets hébergés dans notre Forge]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Intégration et distributions&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|Librairie de développement OpenEmbedded]]&lt;br /&gt;
* [[MokoMakefile|Compiler Openmoko à l'aide du MokoMakefile ]]&lt;br /&gt;
* [[Opkg|Opkg, le gestionnaire de packages]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Emulation&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU|Openmoko sous QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/fr</id>
		<title>Main Page/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/fr"/>
				<updated>2008-10-08T19:06:47Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main Page}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 2.5ex; text-align: center; font: bold x-large sans&amp;quot;&amp;gt;Openmoko™ - Open. Mobile. Free.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Openmoko™ est un projet destiné à fournir des téléphones portables dotés d'une couche logicielle opensource. &lt;br /&gt;
A l'heure actuelle, Openmoko propose à la vente le téléphone [[Neo FreeRunner/fr|Neo FreeRunner]] dédié pour l'instant à des utilisateurs avancés.&lt;br /&gt;
Une fois que la couche logicielle sera plus élaborée, le grand public pourra être visé.&lt;br /&gt;
&lt;br /&gt;
La couche logicielle Openmoko -qui inclue un serveur X complet- permet aux utilisateurs et développeurs de transformer la plateforme matérielle en des produits exceptionnels.&lt;br /&gt;
Notre licence donne la liberté d'adapter l'interface graphique, voir de la modifier complètement, de changer le fond d'écran, ou encore de modifier totalement l'aspect du logiciel !&lt;br /&gt;
La licence donne ainsi par exemple la liberté à l'utilisateur de transformer son téléphone en un appareil médical, en un espace de vente portatif ou encore de pouvoir installer simplement ses applications favorites.&lt;br /&gt;
En plus de proposer un logiciel libre sur nos machines, nous fournissons aussi l'intégralité des fichiers [http://downloads.openmoko.org/CAD/ CAD] sous licence Creative Commons.&lt;br /&gt;
Par ailleurs, nous avons annoncé la diffusion des [http://downloads.openmoko.org/schematics/ schémas de nos produits] au LinuxWorld 2008.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveautés et évènements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Nouveau sur Openmoko ?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008|Community update]]&lt;br /&gt;
* 2/10: Nokia released [http://qtextended.org/ Qt Extented 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Une nouvelle version [[FDOM]]&lt;br /&gt;
* 19/9: point release of [[Om2008.9_Update|Om 2008.9]]&lt;br /&gt;
* 11/9: The framework team releases [http://downloads.openmoko.org/framework/milestone3/ milestone 3] of the FSO distribution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[News Archive/fr|(archives des news)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;A propos d'Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/fr|Introduction]]&lt;br /&gt;
* [[Why Openmoko|Pourquoi Openmoko ?]]&lt;br /&gt;
* [[Neo FreeRunner/fr|Le Neo FreeRunner]]&lt;br /&gt;
* [[Supported Hardware|Matériel supporté]]&lt;br /&gt;
* [[FAQ/fr|FAQ]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Se procurer Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko|Obtenir Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
* [http://bearstech.com/shop bearstech : le revendeur Français]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les utilisateurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Pour les développeurs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Où commencer ?&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/fr|Guide de démarrage du Neo FreeRunner]]&lt;br /&gt;
* [[FAQ#Getting_Started_with_your_Neo_FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Logiciel&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Distributions logicielles Openmoko]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU) ]] - [[Om 2007.2|Om 2007.2 (ancienne version stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[FDOM - a Fat and Dirty OM based distribution|FDOM]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Communauté Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Discussion_Forums| Forums de discussion]]&lt;br /&gt;
* [[Community Repository|Dépôt Communautaire]]&lt;br /&gt;
* [[Development resources | Ressources concernant le développement]]&lt;br /&gt;
* [http://openmoko-fr.org Communauté Française]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Développement applicatif&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide|Guide du développeur Openmoko]]&lt;br /&gt;
* [[Toolchain|Suite d'outils]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Introduction à Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projets hébergés dans notre Forge]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Intégration et distributions&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|Librairie de développement OpenEmbedded]]&lt;br /&gt;
* [[MokoMakefile|Compiler Openmoko à l'aide du MokoMakefile ]]&lt;br /&gt;
* [[Opkg|Opkg, le gestionnaire de packages]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Emulation&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU|Openmoko sous QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T17:51:16Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Autres articles sur des sujets connexes qui pourront vous intéresser */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous désirez installer ce projet sur votre ordinateur pour l'intégrer à d'autres (cas d'une librairie partagée par exemple), vous pouvez lancer les commandes suivantes qui effectueront l'installation dans un répertoire précis.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
Vous devez modifier certains éléments pour compiler votre propre projet en partant des fichiers exemples openmoko-sample2 :&lt;br /&gt;
&lt;br /&gt;
* dupliquez le code source de l'application exemple que vous venez de télécharger&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* renommez le dossier en utilisant le nom de votre projet (dans cet exemple nom-de-mon-projet) et effacez les sources de l'ancien projet &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 nom-de-mon-projet&lt;br /&gt;
 cd nom-de-mon-projet&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* installez vos codes sources (dans cet exemple mes-sources) dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cp mes-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* dans le répertoire principal du projet, modifier le fichier autogen.sh en mettant à jour la ligne sur le nom du paquet&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;nom-de-mon-projet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier configure.ac en mettant à jour les lignes suivantes ('main.c' doit correspondre au fichier principal de votre projet)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(nom-de-mon-projet, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* aller dans le dossier data/ et renommez ces fichiers avec le nom de votre projet&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png nom-de-mon-projet.png&lt;br /&gt;
 mv openmoko-sample.desktop nom-de-mon-projet.desktop&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier Makefile.am du répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier Makefile.in dans le répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier nom-de-mon-projet.desktop en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 Name=nom-de-mon-projet&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* et rajoutez la ligne suivante dans ce fichier&lt;br /&gt;
&lt;br /&gt;
 Icon=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* placez-vous dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modifiez Makefile.am en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = nom-de-mon-projet	&lt;br /&gt;
 nom_de_mon_projet_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 nom_de_mon_projet_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* faites bien attention à remplacer main.c par le nom de tous vos fichiers .c et .h et de remplacer tous les caractères '-' par '_' dans le nom des variables&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
Nous avons inclus un script qui créée le paquet ipkg à partir de votre application. Ceci n'est pas nécessaire si vous voulez juste tester votre application sur le Neo (un scp du binaire et des données suffit). C'est malgré tout pratique si vous voulez distribuer votre application à d'autres personnes.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez openmoko-sample2_0.1_armv4t.ipk , vous pouvez le `scp' sur votre Neo puis l'installer :&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Bien que vous puissiez diffuser le paquet ipkg généré, n'oubliez pas que ce n'est qu'un paquet brut de fonderie qui ne contient pas toutes les informations d'un paquet abouti : il vous manquera la gestion des dépendances. Vous trouverez ci-dessous la méthode pour les rajouter.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi fournir la version, une description et une chaîne d'informations (auteur/contact) via un fichier de contrôle :&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
Un exemple type de fichier myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: paquet construit avec la suite d'outils openmoko&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
=Utilisation étendue=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Bloquera avec le message d'erreur &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; jusqu'à ce que /usr/local/openmoko/arm/setup-env soit modifié. LDFLAGS doit être changé de :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
J'ai aussi dû changer le script 'build' pour indiquer en dur le chemin d'accès du compilateur.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Rajouter les bibliothèques nécessaires à la variable _LDADD dans src/Makefile.am. Par exemple :&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
Prenez soin de relancer la commande om-conf après cette modification.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Vous aurez besoin un jour ou l'autre de compiler une application dont les dépendances ne sont pas fournies précompilées par la suite d'outil, comme une bibliothèque rarement utilisée.&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, n'hésitez pas à demander l'inclusion de ces bibliothèques complémentaires à la prochaine version de la suite d'outils Openmoko. D'ici là, vous pouvez étendre la suite d'outils dont vous disposez. Mettons que nous voulons ajouter la bibliothèque appelée liburiparse :&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
C'est tout.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
Si vous avez écrit une application sympa que vous désirez partager avec d'autres, la meilleure méthode est de&lt;br /&gt;
&lt;br /&gt;
# Placer le code source de votre application sur un serveur internet accessible par tous&lt;br /&gt;
# fournir un fichier de description [[BitBake]] à [[OpenEmbedded]], si possible par l'intermédiaire du [http://bugzilla.openembedded.org gestionnaire de bugs OpenEmbedded].&lt;br /&gt;
&lt;br /&gt;
Voir aussi [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Certaines versions de la suite d'outils ont des fichiers .la corrompus. Si vous compilez une application avec la suite d'outils et que vous obtenez l'erreur '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la', vous êtes touché par ce bogue. Pour corriger cela vous devez aller dans le répertoire &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;, ouvrir les fichiers .la et changer &amp;quot;/space/fic...&amp;quot; en &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. Vous devrez corriger plusieurs fichiers .la. Pour l'erreur pango il faut modifier &amp;quot;libpangocairo-1.0.la&amp;quot;, mais il y a le problème avec d'autres fichiers .la.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous vous trouverez un correctif expérimental au problème .la. Décompactez l'archive .tar.bz2 en tant que super-utilisateur, et exécutez le script bash suivant en tant que super-utilisateur :&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T17:50:42Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Utilisation étendue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous désirez installer ce projet sur votre ordinateur pour l'intégrer à d'autres (cas d'une librairie partagée par exemple), vous pouvez lancer les commandes suivantes qui effectueront l'installation dans un répertoire précis.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
Vous devez modifier certains éléments pour compiler votre propre projet en partant des fichiers exemples openmoko-sample2 :&lt;br /&gt;
&lt;br /&gt;
* dupliquez le code source de l'application exemple que vous venez de télécharger&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* renommez le dossier en utilisant le nom de votre projet (dans cet exemple nom-de-mon-projet) et effacez les sources de l'ancien projet &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 nom-de-mon-projet&lt;br /&gt;
 cd nom-de-mon-projet&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* installez vos codes sources (dans cet exemple mes-sources) dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cp mes-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* dans le répertoire principal du projet, modifier le fichier autogen.sh en mettant à jour la ligne sur le nom du paquet&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;nom-de-mon-projet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier configure.ac en mettant à jour les lignes suivantes ('main.c' doit correspondre au fichier principal de votre projet)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(nom-de-mon-projet, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* aller dans le dossier data/ et renommez ces fichiers avec le nom de votre projet&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png nom-de-mon-projet.png&lt;br /&gt;
 mv openmoko-sample.desktop nom-de-mon-projet.desktop&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier Makefile.am du répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier Makefile.in dans le répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier nom-de-mon-projet.desktop en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 Name=nom-de-mon-projet&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* et rajoutez la ligne suivante dans ce fichier&lt;br /&gt;
&lt;br /&gt;
 Icon=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* placez-vous dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modifiez Makefile.am en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = nom-de-mon-projet	&lt;br /&gt;
 nom_de_mon_projet_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 nom_de_mon_projet_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* faites bien attention à remplacer main.c par le nom de tous vos fichiers .c et .h et de remplacer tous les caractères '-' par '_' dans le nom des variables&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
Nous avons inclus un script qui créée le paquet ipkg à partir de votre application. Ceci n'est pas nécessaire si vous voulez juste tester votre application sur le Neo (un scp du binaire et des données suffit). C'est malgré tout pratique si vous voulez distribuer votre application à d'autres personnes.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez openmoko-sample2_0.1_armv4t.ipk , vous pouvez le `scp' sur votre Neo puis l'installer :&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Bien que vous puissiez diffuser le paquet ipkg généré, n'oubliez pas que ce n'est qu'un paquet brut de fonderie qui ne contient pas toutes les informations d'un paquet abouti : il vous manquera la gestion des dépendances. Vous trouverez ci-dessous la méthode pour les rajouter.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi fournir la version, une description et une chaîne d'informations (auteur/contact) via un fichier de contrôle :&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
Un exemple type de fichier myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: paquet construit avec la suite d'outils openmoko&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
=Utilisation étendue=&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Bloquera avec le message d'erreur &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; jusqu'à ce que /usr/local/openmoko/arm/setup-env soit modifié. LDFLAGS doit être changé de :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
J'ai aussi dû changer le script 'build' pour indiquer en dur le chemin d'accès du compilateur.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Rajouter les bibliothèques nécessaires à la variable _LDADD dans src/Makefile.am. Par exemple :&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
Prenez soin de relancer la commande om-conf après cette modification.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Vous aurez besoin un jour ou l'autre de compiler une application dont les dépendances ne sont pas fournies précompilées par la suite d'outil, comme une bibliothèque rarement utilisée.&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, n'hésitez pas à demander l'inclusion de ces bibliothèques complémentaires à la prochaine version de la suite d'outils Openmoko. D'ici là, vous pouvez étendre la suite d'outils dont vous disposez. Mettons que nous voulons ajouter la bibliothèque appelée liburiparse :&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
C'est tout.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
Si vous avez écrit une application sympa que vous désirez partager avec d'autres, la meilleure méthode est de&lt;br /&gt;
&lt;br /&gt;
# Placer le code source de votre application sur un serveur internet accessible par tous&lt;br /&gt;
# fournir un fichier de description [[BitBake]] à [[OpenEmbedded]], si possible par l'intermédiaire du [http://bugzilla.openembedded.org gestionnaire de bugs OpenEmbedded].&lt;br /&gt;
&lt;br /&gt;
Voir aussi [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Certaines versions de la suite d'outils ont des fichiers .la corrompus. Si vous compilez une application avec la suite d'outils et que vous obtenez l'erreur '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la', vous êtes touché par ce bogue. Pour corriger cela vous devez aller dans le répertoire &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;, ouvrir les fichiers .la et changer &amp;quot;/space/fic...&amp;quot; en &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. Vous devrez corriger plusieurs fichiers .la. Pour l'erreur pango il faut modifier &amp;quot;libpangocairo-1.0.la&amp;quot;, mais il y a le problème avec d'autres fichiers .la.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous vous trouverez un correctif expérimental au problème .la. Décompactez l'archive .tar.bz2 en tant que super-utilisateur, et exécutez le script bash suivant en tant que super-utilisateur :&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T17:50:10Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Autres articles sur des sujets connexes qui pourront vous intéresser */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous désirez installer ce projet sur votre ordinateur pour l'intégrer à d'autres (cas d'une librairie partagée par exemple), vous pouvez lancer les commandes suivantes qui effectueront l'installation dans un répertoire précis.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
Vous devez modifier certains éléments pour compiler votre propre projet en partant des fichiers exemples openmoko-sample2 :&lt;br /&gt;
&lt;br /&gt;
* dupliquez le code source de l'application exemple que vous venez de télécharger&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* renommez le dossier en utilisant le nom de votre projet (dans cet exemple nom-de-mon-projet) et effacez les sources de l'ancien projet &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 nom-de-mon-projet&lt;br /&gt;
 cd nom-de-mon-projet&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* installez vos codes sources (dans cet exemple mes-sources) dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cp mes-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* dans le répertoire principal du projet, modifier le fichier autogen.sh en mettant à jour la ligne sur le nom du paquet&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;nom-de-mon-projet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier configure.ac en mettant à jour les lignes suivantes ('main.c' doit correspondre au fichier principal de votre projet)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(nom-de-mon-projet, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* aller dans le dossier data/ et renommez ces fichiers avec le nom de votre projet&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png nom-de-mon-projet.png&lt;br /&gt;
 mv openmoko-sample.desktop nom-de-mon-projet.desktop&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier Makefile.am du répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier Makefile.in dans le répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier nom-de-mon-projet.desktop en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 Name=nom-de-mon-projet&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* et rajoutez la ligne suivante dans ce fichier&lt;br /&gt;
&lt;br /&gt;
 Icon=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* placez-vous dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modifiez Makefile.am en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = nom-de-mon-projet	&lt;br /&gt;
 nom_de_mon_projet_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 nom_de_mon_projet_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* faites bien attention à remplacer main.c par le nom de tous vos fichiers .c et .h et de remplacer tous les caractères '-' par '_' dans le nom des variables&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
Nous avons inclus un script qui créée le paquet ipkg à partir de votre application. Ceci n'est pas nécessaire si vous voulez juste tester votre application sur le Neo (un scp du binaire et des données suffit). C'est malgré tout pratique si vous voulez distribuer votre application à d'autres personnes.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez openmoko-sample2_0.1_armv4t.ipk , vous pouvez le `scp' sur votre Neo puis l'installer :&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Bien que vous puissiez diffuser le paquet ipkg généré, n'oubliez pas que ce n'est qu'un paquet brut de fonderie qui ne contient pas toutes les informations d'un paquet abouti : il vous manquera la gestion des dépendances. Vous trouverez ci-dessous la méthode pour les rajouter.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi fournir la version, une description et une chaîne d'informations (auteur/contact) via un fichier de contrôle :&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
Un exemple type de fichier myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: paquet construit avec la suite d'outils openmoko&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
===Utilisation étendue===&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Bloquera avec le message d'erreur &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; jusqu'à ce que /usr/local/openmoko/arm/setup-env soit modifié. LDFLAGS doit être changé de :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
J'ai aussi dû changer le script 'build' pour indiquer en dur le chemin d'accès du compilateur.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Rajouter les bibliothèques nécessaires à la variable _LDADD dans src/Makefile.am. Par exemple :&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
Prenez soin de relancer la commande om-conf après cette modification.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Vous aurez besoin un jour ou l'autre de compiler une application dont les dépendances ne sont pas fournies précompilées par la suite d'outil, comme une bibliothèque rarement utilisée.&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, n'hésitez pas à demander l'inclusion de ces bibliothèques complémentaires à la prochaine version de la suite d'outils Openmoko. D'ici là, vous pouvez étendre la suite d'outils dont vous disposez. Mettons que nous voulons ajouter la bibliothèque appelée liburiparse :&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
C'est tout.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
Si vous avez écrit une application sympa que vous désirez partager avec d'autres, la meilleure méthode est de&lt;br /&gt;
&lt;br /&gt;
# Placer le code source de votre application sur un serveur internet accessible par tous&lt;br /&gt;
# fournir un fichier de description [[BitBake]] à [[OpenEmbedded]], si possible par l'intermédiaire du [http://bugzilla.openembedded.org gestionnaire de bugs OpenEmbedded].&lt;br /&gt;
&lt;br /&gt;
Voir aussi [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Certaines versions de la suite d'outils ont des fichiers .la corrompus. Si vous compilez une application avec la suite d'outils et que vous obtenez l'erreur '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la', vous êtes touché par ce bogue. Pour corriger cela vous devez aller dans le répertoire &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;, ouvrir les fichiers .la et changer &amp;quot;/space/fic...&amp;quot; en &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. Vous devrez corriger plusieurs fichiers .la. Pour l'erreur pango il faut modifier &amp;quot;libpangocairo-1.0.la&amp;quot;, mais il y a le problème avec d'autres fichiers .la.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous vous trouverez un correctif expérimental au problème .la. Décompactez l'archive .tar.bz2 en tant que super-utilisateur, et exécutez le script bash suivant en tant que super-utilisateur :&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T16:02:47Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Résolution de problèmes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous désirez installer ce projet sur votre ordinateur pour l'intégrer à d'autres (cas d'une librairie partagée par exemple), vous pouvez lancer les commandes suivantes qui effectueront l'installation dans un répertoire précis.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
Vous devez modifier certains éléments pour compiler votre propre projet en partant des fichiers exemples openmoko-sample2 :&lt;br /&gt;
&lt;br /&gt;
* dupliquez le code source de l'application exemple que vous venez de télécharger&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* renommez le dossier en utilisant le nom de votre projet (dans cet exemple nom-de-mon-projet) et effacez les sources de l'ancien projet &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 nom-de-mon-projet&lt;br /&gt;
 cd nom-de-mon-projet&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* installez vos codes sources (dans cet exemple mes-sources) dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cp mes-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* dans le répertoire principal du projet, modifier le fichier autogen.sh en mettant à jour la ligne sur le nom du paquet&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;nom-de-mon-projet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier configure.ac en mettant à jour les lignes suivantes ('main.c' doit correspondre au fichier principal de votre projet)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(nom-de-mon-projet, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* aller dans le dossier data/ et renommez ces fichiers avec le nom de votre projet&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png nom-de-mon-projet.png&lt;br /&gt;
 mv openmoko-sample.desktop nom-de-mon-projet.desktop&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier Makefile.am du répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier Makefile.in dans le répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier nom-de-mon-projet.desktop en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 Name=nom-de-mon-projet&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* et rajoutez la ligne suivante dans ce fichier&lt;br /&gt;
&lt;br /&gt;
 Icon=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* placez-vous dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modifiez Makefile.am en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = nom-de-mon-projet	&lt;br /&gt;
 nom_de_mon_projet_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 nom_de_mon_projet_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* faites bien attention à remplacer main.c par le nom de tous vos fichiers .c et .h et de remplacer tous les caractères '-' par '_' dans le nom des variables&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
Nous avons inclus un script qui créée le paquet ipkg à partir de votre application. Ceci n'est pas nécessaire si vous voulez juste tester votre application sur le Neo (un scp du binaire et des données suffit). C'est malgré tout pratique si vous voulez distribuer votre application à d'autres personnes.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez openmoko-sample2_0.1_armv4t.ipk , vous pouvez le `scp' sur votre Neo puis l'installer :&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Bien que vous puissiez diffuser le paquet ipkg généré, n'oubliez pas que ce n'est qu'un paquet brut de fonderie qui ne contient pas toutes les informations d'un paquet abouti : il vous manquera la gestion des dépendances. Vous trouverez ci-dessous la méthode pour les rajouter.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi fournir la version, une description et une chaîne d'informations (auteur/contact) via un fichier de contrôle :&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
Un exemple type de fichier myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: paquet construit avec la suite d'outils openmoko&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Bloquera avec le message d'erreur &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; jusqu'à ce que /usr/local/openmoko/arm/setup-env soit modifié. LDFLAGS doit être changé de :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
J'ai aussi dû changer le script 'build' pour indiquer en dur le chemin d'accès du compilateur.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Rajouter les bibliothèques nécessaires à la variable _LDADD dans src/Makefile.am. Par exemple :&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
Prenez soin de relancer la commande om-conf après cette modification.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Vous aurez besoin un jour ou l'autre de compiler une application dont les dépendances ne sont pas fournies précompilées par la suite d'outil, comme une bibliothèque rarement utilisée.&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, n'hésitez pas à demander l'inclusion de ces bibliothèques complémentaires à la prochaine version de la suite d'outils Openmoko. D'ici là, vous pouvez étendre la suite d'outils dont vous disposez. Mettons que nous voulons ajouter la bibliothèque appelée liburiparse :&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
C'est tout.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
Si vous avez écrit une application sympa que vous désirez partager avec d'autres, la meilleure méthode est de&lt;br /&gt;
&lt;br /&gt;
# Placer le code source de votre application sur un serveur internet accessible par tous&lt;br /&gt;
# fournir un fichier de description [[BitBake]] à [[OpenEmbedded]], si possible par l'intermédiaire du [http://bugzilla.openembedded.org gestionnaire de bugs OpenEmbedded].&lt;br /&gt;
&lt;br /&gt;
Voir aussi [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Certaines versions de la suite d'outils ont des fichiers .la corrompus. Si vous compilez une application avec la suite d'outils et que vous obtenez l'erreur '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la', vous êtes touché par ce bogue. Pour corriger cela vous devez aller dans le répertoire &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;, ouvrir les fichiers .la et changer &amp;quot;/space/fic...&amp;quot; en &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. Vous devrez corriger plusieurs fichiers .la. Pour l'erreur pango il faut modifier &amp;quot;libpangocairo-1.0.la&amp;quot;, mais il y a le problème avec d'autres fichiers .la.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous vous trouverez un correctif expérimental au problème .la. Décompactez l'archive .tar.bz2 en tant que super-utilisateur, et exécutez le script bash suivant en tant que super-utilisateur :&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T15:56:15Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Avoir votre application intégrée à OpenEmbedded */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous désirez installer ce projet sur votre ordinateur pour l'intégrer à d'autres (cas d'une librairie partagée par exemple), vous pouvez lancer les commandes suivantes qui effectueront l'installation dans un répertoire précis.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
Vous devez modifier certains éléments pour compiler votre propre projet en partant des fichiers exemples openmoko-sample2 :&lt;br /&gt;
&lt;br /&gt;
* dupliquez le code source de l'application exemple que vous venez de télécharger&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* renommez le dossier en utilisant le nom de votre projet (dans cet exemple nom-de-mon-projet) et effacez les sources de l'ancien projet &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 nom-de-mon-projet&lt;br /&gt;
 cd nom-de-mon-projet&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* installez vos codes sources (dans cet exemple mes-sources) dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cp mes-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* dans le répertoire principal du projet, modifier le fichier autogen.sh en mettant à jour la ligne sur le nom du paquet&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;nom-de-mon-projet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier configure.ac en mettant à jour les lignes suivantes ('main.c' doit correspondre au fichier principal de votre projet)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(nom-de-mon-projet, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* aller dans le dossier data/ et renommez ces fichiers avec le nom de votre projet&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png nom-de-mon-projet.png&lt;br /&gt;
 mv openmoko-sample.desktop nom-de-mon-projet.desktop&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier Makefile.am du répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier Makefile.in dans le répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier nom-de-mon-projet.desktop en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 Name=nom-de-mon-projet&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* et rajoutez la ligne suivante dans ce fichier&lt;br /&gt;
&lt;br /&gt;
 Icon=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* placez-vous dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modifiez Makefile.am en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = nom-de-mon-projet	&lt;br /&gt;
 nom_de_mon_projet_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 nom_de_mon_projet_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* faites bien attention à remplacer main.c par le nom de tous vos fichiers .c et .h et de remplacer tous les caractères '-' par '_' dans le nom des variables&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
Nous avons inclus un script qui créée le paquet ipkg à partir de votre application. Ceci n'est pas nécessaire si vous voulez juste tester votre application sur le Neo (un scp du binaire et des données suffit). C'est malgré tout pratique si vous voulez distribuer votre application à d'autres personnes.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez openmoko-sample2_0.1_armv4t.ipk , vous pouvez le `scp' sur votre Neo puis l'installer :&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Bien que vous puissiez diffuser le paquet ipkg généré, n'oubliez pas que ce n'est qu'un paquet brut de fonderie qui ne contient pas toutes les informations d'un paquet abouti : il vous manquera la gestion des dépendances. Vous trouverez ci-dessous la méthode pour les rajouter.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi fournir la version, une description et une chaîne d'informations (auteur/contact) via un fichier de contrôle :&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
Un exemple type de fichier myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: paquet construit avec la suite d'outils openmoko&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Bloquera avec le message d'erreur &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; jusqu'à ce que /usr/local/openmoko/arm/setup-env soit modifié. LDFLAGS doit être changé de :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
J'ai aussi dû changer le script 'build' pour indiquer en dur le chemin d'accès du compilateur.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Rajouter les bibliothèques nécessaires à la variable _LDADD dans src/Makefile.am. Par exemple :&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
Prenez soin de relancer la commande om-conf après cette modification.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Vous aurez besoin un jour ou l'autre de compiler une application dont les dépendances ne sont pas fournies précompilées par la suite d'outil, comme une bibliothèque rarement utilisée.&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, n'hésitez pas à demander l'inclusion de ces bibliothèques complémentaires à la prochaine version de la suite d'outils Openmoko. D'ici là, vous pouvez étendre la suite d'outils dont vous disposez. Mettons que nous voulons ajouter la bibliothèque appelée liburiparse :&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
C'est tout.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
Si vous avez écrit une application sympa que vous désirez partager avec d'autres, la meilleure méthode est de&lt;br /&gt;
&lt;br /&gt;
# Placer le code source de votre application sur un serveur internet accessible par tous&lt;br /&gt;
# fournir un fichier de description [[BitBake]] à [[OpenEmbedded]], si possible par l'intermédiaire du [http://bugzilla.openembedded.org gestionnaire de bugs OpenEmbedded].&lt;br /&gt;
&lt;br /&gt;
Voir aussi [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T15:51:17Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Ajouter des bibliothèques complémentaires à la suite d'outils */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous désirez installer ce projet sur votre ordinateur pour l'intégrer à d'autres (cas d'une librairie partagée par exemple), vous pouvez lancer les commandes suivantes qui effectueront l'installation dans un répertoire précis.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
Vous devez modifier certains éléments pour compiler votre propre projet en partant des fichiers exemples openmoko-sample2 :&lt;br /&gt;
&lt;br /&gt;
* dupliquez le code source de l'application exemple que vous venez de télécharger&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* renommez le dossier en utilisant le nom de votre projet (dans cet exemple nom-de-mon-projet) et effacez les sources de l'ancien projet &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 nom-de-mon-projet&lt;br /&gt;
 cd nom-de-mon-projet&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* installez vos codes sources (dans cet exemple mes-sources) dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cp mes-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* dans le répertoire principal du projet, modifier le fichier autogen.sh en mettant à jour la ligne sur le nom du paquet&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;nom-de-mon-projet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier configure.ac en mettant à jour les lignes suivantes ('main.c' doit correspondre au fichier principal de votre projet)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(nom-de-mon-projet, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* aller dans le dossier data/ et renommez ces fichiers avec le nom de votre projet&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png nom-de-mon-projet.png&lt;br /&gt;
 mv openmoko-sample.desktop nom-de-mon-projet.desktop&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier Makefile.am du répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier Makefile.in dans le répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier nom-de-mon-projet.desktop en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 Name=nom-de-mon-projet&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* et rajoutez la ligne suivante dans ce fichier&lt;br /&gt;
&lt;br /&gt;
 Icon=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* placez-vous dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modifiez Makefile.am en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = nom-de-mon-projet	&lt;br /&gt;
 nom_de_mon_projet_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 nom_de_mon_projet_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* faites bien attention à remplacer main.c par le nom de tous vos fichiers .c et .h et de remplacer tous les caractères '-' par '_' dans le nom des variables&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
Nous avons inclus un script qui créée le paquet ipkg à partir de votre application. Ceci n'est pas nécessaire si vous voulez juste tester votre application sur le Neo (un scp du binaire et des données suffit). C'est malgré tout pratique si vous voulez distribuer votre application à d'autres personnes.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez openmoko-sample2_0.1_armv4t.ipk , vous pouvez le `scp' sur votre Neo puis l'installer :&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Bien que vous puissiez diffuser le paquet ipkg généré, n'oubliez pas que ce n'est qu'un paquet brut de fonderie qui ne contient pas toutes les informations d'un paquet abouti : il vous manquera la gestion des dépendances. Vous trouverez ci-dessous la méthode pour les rajouter.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi fournir la version, une description et une chaîne d'informations (auteur/contact) via un fichier de contrôle :&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
Un exemple type de fichier myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: paquet construit avec la suite d'outils openmoko&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Bloquera avec le message d'erreur &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; jusqu'à ce que /usr/local/openmoko/arm/setup-env soit modifié. LDFLAGS doit être changé de :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
J'ai aussi dû changer le script 'build' pour indiquer en dur le chemin d'accès du compilateur.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Rajouter les bibliothèques nécessaires à la variable _LDADD dans src/Makefile.am. Par exemple :&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
Prenez soin de relancer la commande om-conf après cette modification.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Vous aurez besoin un jour ou l'autre de compiler une application dont les dépendances ne sont pas fournies précompilées par la suite d'outil, comme une bibliothèque rarement utilisée.&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, n'hésitez pas à demander l'inclusion de ces bibliothèques complémentaires à la prochaine version de la suite d'outils Openmoko. D'ici là, vous pouvez étendre la suite d'outils dont vous disposez. Mettons que nous voulons ajouter la bibliothèque appelée liburiparse :&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
C'est tout.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T15:47:36Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Utilisation des bibliothèques fournies par la suite d'outils */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous désirez installer ce projet sur votre ordinateur pour l'intégrer à d'autres (cas d'une librairie partagée par exemple), vous pouvez lancer les commandes suivantes qui effectueront l'installation dans un répertoire précis.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
Vous devez modifier certains éléments pour compiler votre propre projet en partant des fichiers exemples openmoko-sample2 :&lt;br /&gt;
&lt;br /&gt;
* dupliquez le code source de l'application exemple que vous venez de télécharger&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* renommez le dossier en utilisant le nom de votre projet (dans cet exemple nom-de-mon-projet) et effacez les sources de l'ancien projet &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 nom-de-mon-projet&lt;br /&gt;
 cd nom-de-mon-projet&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* installez vos codes sources (dans cet exemple mes-sources) dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cp mes-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* dans le répertoire principal du projet, modifier le fichier autogen.sh en mettant à jour la ligne sur le nom du paquet&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;nom-de-mon-projet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier configure.ac en mettant à jour les lignes suivantes ('main.c' doit correspondre au fichier principal de votre projet)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(nom-de-mon-projet, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* aller dans le dossier data/ et renommez ces fichiers avec le nom de votre projet&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png nom-de-mon-projet.png&lt;br /&gt;
 mv openmoko-sample.desktop nom-de-mon-projet.desktop&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier Makefile.am du répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier Makefile.in dans le répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier nom-de-mon-projet.desktop en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 Name=nom-de-mon-projet&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* et rajoutez la ligne suivante dans ce fichier&lt;br /&gt;
&lt;br /&gt;
 Icon=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* placez-vous dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modifiez Makefile.am en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = nom-de-mon-projet	&lt;br /&gt;
 nom_de_mon_projet_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 nom_de_mon_projet_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* faites bien attention à remplacer main.c par le nom de tous vos fichiers .c et .h et de remplacer tous les caractères '-' par '_' dans le nom des variables&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
Nous avons inclus un script qui créée le paquet ipkg à partir de votre application. Ceci n'est pas nécessaire si vous voulez juste tester votre application sur le Neo (un scp du binaire et des données suffit). C'est malgré tout pratique si vous voulez distribuer votre application à d'autres personnes.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez openmoko-sample2_0.1_armv4t.ipk , vous pouvez le `scp' sur votre Neo puis l'installer :&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Bien que vous puissiez diffuser le paquet ipkg généré, n'oubliez pas que ce n'est qu'un paquet brut de fonderie qui ne contient pas toutes les informations d'un paquet abouti : il vous manquera la gestion des dépendances. Vous trouverez ci-dessous la méthode pour les rajouter.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi fournir la version, une description et une chaîne d'informations (auteur/contact) via un fichier de contrôle :&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
Un exemple type de fichier myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: paquet construit avec la suite d'outils openmoko&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Bloquera avec le message d'erreur &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; jusqu'à ce que /usr/local/openmoko/arm/setup-env soit modifié. LDFLAGS doit être changé de :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
J'ai aussi dû changer le script 'build' pour indiquer en dur le chemin d'accès du compilateur.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Rajouter les bibliothèques nécessaires à la variable _LDADD dans src/Makefile.am. Par exemple :&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
Prenez soin de relancer la commande om-conf après cette modification.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T15:45:56Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Création du paquet associé à votre application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous désirez installer ce projet sur votre ordinateur pour l'intégrer à d'autres (cas d'une librairie partagée par exemple), vous pouvez lancer les commandes suivantes qui effectueront l'installation dans un répertoire précis.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
Vous devez modifier certains éléments pour compiler votre propre projet en partant des fichiers exemples openmoko-sample2 :&lt;br /&gt;
&lt;br /&gt;
* dupliquez le code source de l'application exemple que vous venez de télécharger&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* renommez le dossier en utilisant le nom de votre projet (dans cet exemple nom-de-mon-projet) et effacez les sources de l'ancien projet &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 nom-de-mon-projet&lt;br /&gt;
 cd nom-de-mon-projet&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* installez vos codes sources (dans cet exemple mes-sources) dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cp mes-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* dans le répertoire principal du projet, modifier le fichier autogen.sh en mettant à jour la ligne sur le nom du paquet&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;nom-de-mon-projet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier configure.ac en mettant à jour les lignes suivantes ('main.c' doit correspondre au fichier principal de votre projet)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(nom-de-mon-projet, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* aller dans le dossier data/ et renommez ces fichiers avec le nom de votre projet&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png nom-de-mon-projet.png&lt;br /&gt;
 mv openmoko-sample.desktop nom-de-mon-projet.desktop&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier Makefile.am du répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier Makefile.in dans le répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier nom-de-mon-projet.desktop en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 Name=nom-de-mon-projet&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* et rajoutez la ligne suivante dans ce fichier&lt;br /&gt;
&lt;br /&gt;
 Icon=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* placez-vous dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modifiez Makefile.am en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = nom-de-mon-projet	&lt;br /&gt;
 nom_de_mon_projet_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 nom_de_mon_projet_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* faites bien attention à remplacer main.c par le nom de tous vos fichiers .c et .h et de remplacer tous les caractères '-' par '_' dans le nom des variables&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
Nous avons inclus un script qui créée le paquet ipkg à partir de votre application. Ceci n'est pas nécessaire si vous voulez juste tester votre application sur le Neo (un scp du binaire et des données suffit). C'est malgré tout pratique si vous voulez distribuer votre application à d'autres personnes.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez openmoko-sample2_0.1_armv4t.ipk , vous pouvez le `scp' sur votre Neo puis l'installer :&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Bien que vous puissiez diffuser le paquet ipkg généré, n'oubliez pas que ce n'est qu'un paquet brut de fonderie qui ne contient pas toutes les informations d'un paquet abouti : il vous manquera la gestion des dépendances. Vous trouverez ci-dessous la méthode pour les rajouter.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi fournir la version, une description et une chaîne d'informations (auteur/contact) via un fichier de contrôle :&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
Un exemple type de fichier myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: paquet construit avec la suite d'outils openmoko&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Bloquera avec le message d'erreur &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; jusqu'à ce que /usr/local/openmoko/arm/setup-env soit modifié. LDFLAGS doit être changé de :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
J'ai aussi dû changer le script 'build' pour indiquer en dur le chemin d'accès du compilateur.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Add the necessary libraries to the _LDADD field in src/Makefile.am, for example:&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
make sure to run om-conf again after this.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T15:33:12Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous désirez installer ce projet sur votre ordinateur pour l'intégrer à d'autres (cas d'une librairie partagée par exemple), vous pouvez lancer les commandes suivantes qui effectueront l'installation dans un répertoire précis.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
Vous devez modifier certains éléments pour compiler votre propre projet en partant des fichiers exemples openmoko-sample2 :&lt;br /&gt;
&lt;br /&gt;
* dupliquez le code source de l'application exemple que vous venez de télécharger&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* renommez le dossier en utilisant le nom de votre projet (dans cet exemple nom-de-mon-projet) et effacez les sources de l'ancien projet &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 nom-de-mon-projet&lt;br /&gt;
 cd nom-de-mon-projet&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* installez vos codes sources (dans cet exemple mes-sources) dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cp mes-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* dans le répertoire principal du projet, modifier le fichier autogen.sh en mettant à jour la ligne sur le nom du paquet&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;nom-de-mon-projet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier configure.ac en mettant à jour les lignes suivantes ('main.c' doit correspondre au fichier principal de votre projet)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(nom-de-mon-projet, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* aller dans le dossier data/ et renommez ces fichiers avec le nom de votre projet&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png nom-de-mon-projet.png&lt;br /&gt;
 mv openmoko-sample.desktop nom-de-mon-projet.desktop&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier Makefile.am du répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier Makefile.in dans le répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier nom-de-mon-projet.desktop en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 Name=nom-de-mon-projet&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* et rajoutez la ligne suivante dans ce fichier&lt;br /&gt;
&lt;br /&gt;
 Icon=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* placez-vous dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modifiez Makefile.am en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = nom-de-mon-projet	&lt;br /&gt;
 nom_de_mon_projet_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 nom_de_mon_projet_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* faites bien attention à remplacer main.c par le nom de tous vos fichiers .c et .h et de remplacer tous les caractères '-' par '_' dans le nom des variables&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
We have included a script to make an ipkg out of your application. Note that this is not needed to test your application on the Neo (for that you can just scp the resulting binary and data over), however it's very handy if you want to distribute your application to others.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Now you got openmoko-sample2_0.1_armv4t.ipk , you can `scp' it to your&lt;br /&gt;
Neo and install it:&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Note that while you can redistribute the generated ipkg, be aware that this is a bare-bones ipk that contains no further information, i.e. you will lack library dependencies. See below how to fix this.&lt;br /&gt;
&lt;br /&gt;
You can also supply the version number, a description, and an author / contacts string in a control file:&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
A template of myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: package built by openmoko toolchain&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Bloquera avec le message d'erreur &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; jusqu'à ce que /usr/local/openmoko/arm/setup-env soit modifié. LDFLAGS doit être changé de :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
J'ai aussi dû changer le script 'build' pour indiquer en dur le chemin d'accès du compilateur.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Add the necessary libraries to the _LDADD field in src/Makefile.am, for example:&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
make sure to run om-conf again after this.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T15:27:29Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Comment créer son propre projet à partir du projet exemple */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous désirez installer ce projet sur votre ordinateur pour l'intégrer à d'autres (cas d'une librairie partagée par exemple), vous pouvez lancer les commandes suivantes qui effectueront l'installation dans un répertoire précis.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
Vous devez modifier certains éléments pour compiler votre propre projet en partant des fichiers exemples openmoko-sample2 :&lt;br /&gt;
&lt;br /&gt;
* dupliquez le code source de l'application exemple que vous venez de télécharger&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* renommez le dossier en utilisant le nom de votre projet (dans cet exemple nom-de-mon-projet) et effacez les sources de l'ancien projet &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 nom-de-mon-projet&lt;br /&gt;
 cd nom-de-mon-projet&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* installez vos codes sources (dans cet exemple mes-sources) dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cp mes-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* dans le répertoire principal du projet, modifier le fichier autogen.sh en mettant à jour la ligne sur le nom du paquet&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;nom-de-mon-projet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier configure.ac en mettant à jour les lignes suivantes ('main.c' doit correspondre au fichier principal de votre projet)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(nom-de-mon-projet, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* aller dans le dossier data/ et renommez ces fichiers avec le nom de votre projet&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png nom-de-mon-projet.png&lt;br /&gt;
 mv openmoko-sample.desktop nom-de-mon-projet.desktop&lt;br /&gt;
&lt;br /&gt;
* modifier le fichier Makefile.am du répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier Makefile.in dans le répertoire data/ en mettant à jour les lignes suivantes&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = nom-de-mon-projet.desktop&lt;br /&gt;
 dist_appicon_DATA = nom-de-mon-projet.png&lt;br /&gt;
&lt;br /&gt;
* modifier nom-de-mon-projet.desktop en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 Name=nom-de-mon-projet&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* et rajoutez la ligne suivante dans ce fichier&lt;br /&gt;
&lt;br /&gt;
 Icon=nom-de-mon-projet&lt;br /&gt;
&lt;br /&gt;
* placez-vous dans le répertoire src/&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modifiez Makefile.am en mettant à jour les lignes suivantes&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = nom-de-mon-projet	&lt;br /&gt;
 nom_de_mon_projet_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 nom_de_mon_projet_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* faites bien attention à remplacer main.c par le nom de tous vos fichiers .c et .h et de remplacer tous les caractères '-' par '_' dans le nom des variables&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
We have included a script to make an ipkg out of your application. Note that this is not needed to test your application on the Neo (for that you can just scp the resulting binary and data over), however it's very handy if you want to distribute your application to others.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Now you got openmoko-sample2_0.1_armv4t.ipk , you can `scp' it to your&lt;br /&gt;
Neo and install it:&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Note that while you can redistribute the generated ipkg, be aware that this is a bare-bones ipk that contains no further information, i.e. you will lack library dependencies. See below how to fix this.&lt;br /&gt;
&lt;br /&gt;
You can also supply the version number, a description, and an author / contacts string in a control file:&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
A template of myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: package built by openmoko toolchain&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Will fail with error message &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; until /usr/local/openmoko/arm/setup-env is modified. LDFLAGS should be changed from:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I also had to change the 'build' script to hardcode the path to the compiler.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Add the necessary libraries to the _LDADD field in src/Makefile.am, for example:&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
make sure to run om-conf again after this.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T15:10:53Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Création d'un projet exemple */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous désirez installer ce projet sur votre ordinateur pour l'intégrer à d'autres (cas d'une librairie partagée par exemple), vous pouvez lancer les commandes suivantes qui effectueront l'installation dans un répertoire précis.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
In order to build your own project by using openmoko-sample2 files, some changes are needed:&lt;br /&gt;
&lt;br /&gt;
* copy the downloaded sample application source&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* rename the folder with the name of your project (in this example your-project-name) and delete old sample files &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 your-project-name&lt;br /&gt;
 cd your-project-name&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* copy your sources (in this example your-sources) into src/&lt;br /&gt;
&lt;br /&gt;
 cp your-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* now in the main folder modify autogen.sh by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;your-project-name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modify configure.ac by updating the following lines ('main.c' should be the main file in your project)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(your-project-name, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* go into data/ folder and rename these files with the name of your project&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png your-project-name.png&lt;br /&gt;
 mv openmoko-sample.desktop your-project-name.desktop&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am inside data/ by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.in inside data/ by updating the following lines&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify your-project-name.desktop by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 Name=your-project-name&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=your-project-name&lt;br /&gt;
&lt;br /&gt;
* and by adding the following line&lt;br /&gt;
&lt;br /&gt;
 Icon=your-project-name&lt;br /&gt;
&lt;br /&gt;
* move into src/ folder&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = your-project-name	&lt;br /&gt;
 your_project_name_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 your_project_name_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* be sure to put instead of main.c all your .c and .h files and modify all the '-' characters with '_' in the variable names&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
We have included a script to make an ipkg out of your application. Note that this is not needed to test your application on the Neo (for that you can just scp the resulting binary and data over), however it's very handy if you want to distribute your application to others.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Now you got openmoko-sample2_0.1_armv4t.ipk , you can `scp' it to your&lt;br /&gt;
Neo and install it:&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Note that while you can redistribute the generated ipkg, be aware that this is a bare-bones ipk that contains no further information, i.e. you will lack library dependencies. See below how to fix this.&lt;br /&gt;
&lt;br /&gt;
You can also supply the version number, a description, and an author / contacts string in a control file:&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
A template of myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: package built by openmoko toolchain&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Will fail with error message &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; until /usr/local/openmoko/arm/setup-env is modified. LDFLAGS should be changed from:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I also had to change the 'build' script to hardcode the path to the compiler.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Add the necessary libraries to the _LDADD field in src/Makefile.am, for example:&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
make sure to run om-conf again after this.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-08T14:18:04Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Création d'un projet exemple */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. Cette commande vérifie aussi que les bibliothèques et outils nécessaires sont disponibles sur votre système. Si le script bloque, jetez un coup d'oeil aux notes concernant les paquets nécessaires de la section Prérequis ci-dessus.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez si vous voulez modifier le code source dans le répertoire openmoko-sample2/src. Avant de passer à la suite, placez-vous dans le répertoire exemple.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Si vous utilisez une ancienne version de la suite d'outils, il peut être nécessaire de créer le fichier makefile en lançant la commande &amp;quot;./autogen.sh&amp;quot;. Dans les autres cas vous pouvez directement compiler l'application à partir du code source en tapant :&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* S'il y a des erreurs, par exemple &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;, résolvez-les. Consultez aussi la section &amp;quot;Résolution de problèmes&amp;quot; à la fin de cette page qui aborde les problèmes les plus fréquents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to install this project on host for staging usage later, a shared library, for example, you can do the following to install it into a given configured prefix.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
In order to build your own project by using openmoko-sample2 files, some changes are needed:&lt;br /&gt;
&lt;br /&gt;
* copy the downloaded sample application source&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* rename the folder with the name of your project (in this example your-project-name) and delete old sample files &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 your-project-name&lt;br /&gt;
 cd your-project-name&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* copy your sources (in this example your-sources) into src/&lt;br /&gt;
&lt;br /&gt;
 cp your-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* now in the main folder modify autogen.sh by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;your-project-name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modify configure.ac by updating the following lines ('main.c' should be the main file in your project)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(your-project-name, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* go into data/ folder and rename these files with the name of your project&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png your-project-name.png&lt;br /&gt;
 mv openmoko-sample.desktop your-project-name.desktop&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am inside data/ by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.in inside data/ by updating the following lines&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify your-project-name.desktop by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 Name=your-project-name&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=your-project-name&lt;br /&gt;
&lt;br /&gt;
* and by adding the following line&lt;br /&gt;
&lt;br /&gt;
 Icon=your-project-name&lt;br /&gt;
&lt;br /&gt;
* move into src/ folder&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = your-project-name	&lt;br /&gt;
 your_project_name_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 your_project_name_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* be sure to put instead of main.c all your .c and .h files and modify all the '-' characters with '_' in the variable names&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
We have included a script to make an ipkg out of your application. Note that this is not needed to test your application on the Neo (for that you can just scp the resulting binary and data over), however it's very handy if you want to distribute your application to others.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Now you got openmoko-sample2_0.1_armv4t.ipk , you can `scp' it to your&lt;br /&gt;
Neo and install it:&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Note that while you can redistribute the generated ipkg, be aware that this is a bare-bones ipk that contains no further information, i.e. you will lack library dependencies. See below how to fix this.&lt;br /&gt;
&lt;br /&gt;
You can also supply the version number, a description, and an author / contacts string in a control file:&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
A template of myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: package built by openmoko toolchain&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Will fail with error message &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; until /usr/local/openmoko/arm/setup-env is modified. LDFLAGS should be changed from:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I also had to change the 'build' script to hardcode the path to the compiler.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Add the necessary libraries to the _LDADD field in src/Makefile.am, for example:&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
make sure to run om-conf again after this.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-07T15:13:56Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Création d'un projet exemple */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Rappelez-vous de positionner les variables d'environnement appropriées (de nouveau avec &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot;) pour openmoko :&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez créer une configuration de compilation pour cette application. This also checks if all needed libraries, tools, etc.. is available on your system. If this fails see the notes about the needed packages in the section &amp;quot;Prerequisites&amp;quot; mentioned earlier.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Optionally now you can modify the source code in openmoko-sample2/src.  Before the next step, go into the sample directory.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* If you are using an older version of the toolchain, you may have to create the makefile by running &amp;quot;./autogen.sh&amp;quot;.  Otherwise, to build the application from the source code just type:&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* If there are errors (i.e. &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;) deal with them.  Also see &amp;quot;Troubleshooting&amp;quot; section at the end of this page for known issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to install this project on host for staging usage later, a shared library, for example, you can do the following to install it into a given configured prefix.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
In order to build your own project by using openmoko-sample2 files, some changes are needed:&lt;br /&gt;
&lt;br /&gt;
* copy the downloaded sample application source&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* rename the folder with the name of your project (in this example your-project-name) and delete old sample files &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 your-project-name&lt;br /&gt;
 cd your-project-name&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* copy your sources (in this example your-sources) into src/&lt;br /&gt;
&lt;br /&gt;
 cp your-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* now in the main folder modify autogen.sh by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;your-project-name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modify configure.ac by updating the following lines ('main.c' should be the main file in your project)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(your-project-name, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* go into data/ folder and rename these files with the name of your project&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png your-project-name.png&lt;br /&gt;
 mv openmoko-sample.desktop your-project-name.desktop&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am inside data/ by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.in inside data/ by updating the following lines&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify your-project-name.desktop by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 Name=your-project-name&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=your-project-name&lt;br /&gt;
&lt;br /&gt;
* and by adding the following line&lt;br /&gt;
&lt;br /&gt;
 Icon=your-project-name&lt;br /&gt;
&lt;br /&gt;
* move into src/ folder&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = your-project-name	&lt;br /&gt;
 your_project_name_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 your_project_name_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* be sure to put instead of main.c all your .c and .h files and modify all the '-' characters with '_' in the variable names&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
We have included a script to make an ipkg out of your application. Note that this is not needed to test your application on the Neo (for that you can just scp the resulting binary and data over), however it's very handy if you want to distribute your application to others.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Now you got openmoko-sample2_0.1_armv4t.ipk , you can `scp' it to your&lt;br /&gt;
Neo and install it:&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Note that while you can redistribute the generated ipkg, be aware that this is a bare-bones ipk that contains no further information, i.e. you will lack library dependencies. See below how to fix this.&lt;br /&gt;
&lt;br /&gt;
You can also supply the version number, a description, and an author / contacts string in a control file:&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
A template of myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: package built by openmoko toolchain&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Will fail with error message &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; until /usr/local/openmoko/arm/setup-env is modified. LDFLAGS should be changed from:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I also had to change the 'build' script to hardcode the path to the compiler.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Add the necessary libraries to the _LDADD field in src/Makefile.am, for example:&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
make sure to run om-conf again after this.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-07T15:06:08Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Autres articles sur des sujets connexes qui pourront vous intéresser */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Remember to set the proper environment variables (again with &amp;quot;sh&amp;quot; or &amp;quot;bash&amp;quot;) for openmoko:&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* You need to create a build configuration for this application. This also checks if all needed libraries, tools, etc.. is available on your system. If this fails see the notes about the needed packages in the section &amp;quot;Prerequisites&amp;quot; mentioned earlier.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Optionally now you can modify the source code in openmoko-sample2/src.  Before the next step, go into the sample directory.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* If you are using an older version of the toolchain, you may have to create the makefile by running &amp;quot;./autogen.sh&amp;quot;.  Otherwise, to build the application from the source code just type:&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* If there are errors (i.e. &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;) deal with them.  Also see &amp;quot;Troubleshooting&amp;quot; section at the end of this page for known issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to install this project on host for staging usage later, a shared library, for example, you can do the following to install it into a given configured prefix.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
In order to build your own project by using openmoko-sample2 files, some changes are needed:&lt;br /&gt;
&lt;br /&gt;
* copy the downloaded sample application source&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* rename the folder with the name of your project (in this example your-project-name) and delete old sample files &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 your-project-name&lt;br /&gt;
 cd your-project-name&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* copy your sources (in this example your-sources) into src/&lt;br /&gt;
&lt;br /&gt;
 cp your-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* now in the main folder modify autogen.sh by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;your-project-name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modify configure.ac by updating the following lines ('main.c' should be the main file in your project)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(your-project-name, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* go into data/ folder and rename these files with the name of your project&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png your-project-name.png&lt;br /&gt;
 mv openmoko-sample.desktop your-project-name.desktop&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am inside data/ by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.in inside data/ by updating the following lines&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify your-project-name.desktop by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 Name=your-project-name&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=your-project-name&lt;br /&gt;
&lt;br /&gt;
* and by adding the following line&lt;br /&gt;
&lt;br /&gt;
 Icon=your-project-name&lt;br /&gt;
&lt;br /&gt;
* move into src/ folder&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = your-project-name	&lt;br /&gt;
 your_project_name_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 your_project_name_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* be sure to put instead of main.c all your .c and .h files and modify all the '-' characters with '_' in the variable names&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
We have included a script to make an ipkg out of your application. Note that this is not needed to test your application on the Neo (for that you can just scp the resulting binary and data over), however it's very handy if you want to distribute your application to others.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Now you got openmoko-sample2_0.1_armv4t.ipk , you can `scp' it to your&lt;br /&gt;
Neo and install it:&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Note that while you can redistribute the generated ipkg, be aware that this is a bare-bones ipk that contains no further information, i.e. you will lack library dependencies. See below how to fix this.&lt;br /&gt;
&lt;br /&gt;
You can also supply the version number, a description, and an author / contacts string in a control file:&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
A template of myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: package built by openmoko toolchain&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Utiliser la suite d'outils externe est une méthode simple pour compiler des applications à destination de votre Neo. Lorsque vous serez habitué à cette procédure, vous pourrez alors vous intéresser aux articles suivants :&lt;br /&gt;
* Utiliser [[Qemu/fr|Qemu]] pour tester vos applications dans un environnement émulé&lt;br /&gt;
** Les utilisateurs Ubuntu pourraient préférer l'article [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Utiliser [[Host-based_development_with_Xoo_and_Xephyr|développement sur un hôte]] pour améliorer votre efficacité&lt;br /&gt;
* Utiliser [[OpenEmbedded/fr|OpenEmbedded]] pour personnaliser votre image de la distribution Openmoko&lt;br /&gt;
&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Will fail with error message &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; until /usr/local/openmoko/arm/setup-env is modified. LDFLAGS should be changed from:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I also had to change the 'build' script to hardcode the path to the compiler.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Add the necessary libraries to the _LDADD field in src/Makefile.am, for example:&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
make sure to run om-conf again after this.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-07T14:59:27Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Création d'un projet exemple */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
Choisissez un répertoire de destination (dans cet exemple ~/) puis :&lt;br /&gt;
&lt;br /&gt;
* copiez le source code téléchargé de l'application exemple :&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Remember to set the proper environment variables (again with &amp;quot;sh&amp;quot; or &amp;quot;bash&amp;quot;) for openmoko:&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* You need to create a build configuration for this application. This also checks if all needed libraries, tools, etc.. is available on your system. If this fails see the notes about the needed packages in the section &amp;quot;Prerequisites&amp;quot; mentioned earlier.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Optionally now you can modify the source code in openmoko-sample2/src.  Before the next step, go into the sample directory.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* If you are using an older version of the toolchain, you may have to create the makefile by running &amp;quot;./autogen.sh&amp;quot;.  Otherwise, to build the application from the source code just type:&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* If there are errors (i.e. &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;) deal with them.  Also see &amp;quot;Troubleshooting&amp;quot; section at the end of this page for known issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to install this project on host for staging usage later, a shared library, for example, you can do the following to install it into a given configured prefix.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
In order to build your own project by using openmoko-sample2 files, some changes are needed:&lt;br /&gt;
&lt;br /&gt;
* copy the downloaded sample application source&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* rename the folder with the name of your project (in this example your-project-name) and delete old sample files &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 your-project-name&lt;br /&gt;
 cd your-project-name&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* copy your sources (in this example your-sources) into src/&lt;br /&gt;
&lt;br /&gt;
 cp your-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* now in the main folder modify autogen.sh by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;your-project-name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modify configure.ac by updating the following lines ('main.c' should be the main file in your project)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(your-project-name, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* go into data/ folder and rename these files with the name of your project&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png your-project-name.png&lt;br /&gt;
 mv openmoko-sample.desktop your-project-name.desktop&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am inside data/ by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.in inside data/ by updating the following lines&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify your-project-name.desktop by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 Name=your-project-name&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=your-project-name&lt;br /&gt;
&lt;br /&gt;
* and by adding the following line&lt;br /&gt;
&lt;br /&gt;
 Icon=your-project-name&lt;br /&gt;
&lt;br /&gt;
* move into src/ folder&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = your-project-name	&lt;br /&gt;
 your_project_name_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 your_project_name_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* be sure to put instead of main.c all your .c and .h files and modify all the '-' characters with '_' in the variable names&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
We have included a script to make an ipkg out of your application. Note that this is not needed to test your application on the Neo (for that you can just scp the resulting binary and data over), however it's very handy if you want to distribute your application to others.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Now you got openmoko-sample2_0.1_armv4t.ipk , you can `scp' it to your&lt;br /&gt;
Neo and install it:&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Note that while you can redistribute the generated ipkg, be aware that this is a bare-bones ipk that contains no further information, i.e. you will lack library dependencies. See below how to fix this.&lt;br /&gt;
&lt;br /&gt;
You can also supply the version number, a description, and an author / contacts string in a control file:&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
A template of myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: package built by openmoko toolchain&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Using the external toolchain is an easy way to build applications for your Neo. If you are familiar with this procedure, you might also want to look into&lt;br /&gt;
* Using [[Qemu]] to test your applications in an emulated environment&lt;br /&gt;
** Ubuntu users might prefer to look at [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Using [[Host-based_development_with_Xoo_and_Xephyr|host-based development]] to improve your efficiency&lt;br /&gt;
* Using [[OpenEmbedded]] to customize your Openmoko distribution image&lt;br /&gt;
&lt;br /&gt;
==&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Will fail with error message &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; until /usr/local/openmoko/arm/setup-env is modified. LDFLAGS should be changed from:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I also had to change the 'build' script to hardcode the path to the compiler.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Add the necessary libraries to the _LDADD field in src/Makefile.am, for example:&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
make sure to run om-conf again after this.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-07T14:57:42Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
In a chosen destination directory (in this example ~/):&lt;br /&gt;
&lt;br /&gt;
* copy the downloaded sample application source:&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Remember to set the proper environment variables (again with &amp;quot;sh&amp;quot; or &amp;quot;bash&amp;quot;) for openmoko:&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* You need to create a build configuration for this application. This also checks if all needed libraries, tools, etc.. is available on your system. If this fails see the notes about the needed packages in the section &amp;quot;Prerequisites&amp;quot; mentioned earlier.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Optionally now you can modify the source code in openmoko-sample2/src.  Before the next step, go into the sample directory.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* If you are using an older version of the toolchain, you may have to create the makefile by running &amp;quot;./autogen.sh&amp;quot;.  Otherwise, to build the application from the source code just type:&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* If there are errors (i.e. &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;) deal with them.  Also see &amp;quot;Troubleshooting&amp;quot; section at the end of this page for known issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to install this project on host for staging usage later, a shared library, for example, you can do the following to install it into a given configured prefix.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
In order to build your own project by using openmoko-sample2 files, some changes are needed:&lt;br /&gt;
&lt;br /&gt;
* copy the downloaded sample application source&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* rename the folder with the name of your project (in this example your-project-name) and delete old sample files &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 your-project-name&lt;br /&gt;
 cd your-project-name&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* copy your sources (in this example your-sources) into src/&lt;br /&gt;
&lt;br /&gt;
 cp your-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* now in the main folder modify autogen.sh by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;your-project-name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modify configure.ac by updating the following lines ('main.c' should be the main file in your project)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(your-project-name, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* go into data/ folder and rename these files with the name of your project&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png your-project-name.png&lt;br /&gt;
 mv openmoko-sample.desktop your-project-name.desktop&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am inside data/ by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.in inside data/ by updating the following lines&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify your-project-name.desktop by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 Name=your-project-name&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=your-project-name&lt;br /&gt;
&lt;br /&gt;
* and by adding the following line&lt;br /&gt;
&lt;br /&gt;
 Icon=your-project-name&lt;br /&gt;
&lt;br /&gt;
* move into src/ folder&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = your-project-name	&lt;br /&gt;
 your_project_name_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 your_project_name_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* be sure to put instead of main.c all your .c and .h files and modify all the '-' characters with '_' in the variable names&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
We have included a script to make an ipkg out of your application. Note that this is not needed to test your application on the Neo (for that you can just scp the resulting binary and data over), however it's very handy if you want to distribute your application to others.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Now you got openmoko-sample2_0.1_armv4t.ipk , you can `scp' it to your&lt;br /&gt;
Neo and install it:&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Note that while you can redistribute the generated ipkg, be aware that this is a bare-bones ipk that contains no further information, i.e. you will lack library dependencies. See below how to fix this.&lt;br /&gt;
&lt;br /&gt;
You can also supply the version number, a description, and an author / contacts string in a control file:&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
A template of myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: package built by openmoko toolchain&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Using the external toolchain is an easy way to build applications for your Neo. If you are familiar with this procedure, you might also want to look into&lt;br /&gt;
* Using [[Qemu]] to test your applications in an emulated environment&lt;br /&gt;
** Ubuntu users might prefer to look at [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Using [[Host-based_development_with_Xoo_and_Xephyr|host-based development]] to improve your efficiency&lt;br /&gt;
* Using [[OpenEmbedded]] to customize your Openmoko distribution image&lt;br /&gt;
&lt;br /&gt;
==&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Will fail with error message &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; until /usr/local/openmoko/arm/setup-env is modified. LDFLAGS should be changed from:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I also had to change the 'build' script to hardcode the path to the compiler.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Add the necessary libraries to the _LDADD field in src/Makefile.am, for example:&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
make sure to run om-conf again after this.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-07T14:57:12Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
In a chosen destination directory (in this example ~/):&lt;br /&gt;
&lt;br /&gt;
* copy the downloaded sample application source:&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Remember to set the proper environment variables (again with &amp;quot;sh&amp;quot; or &amp;quot;bash&amp;quot;) for openmoko:&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* You need to create a build configuration for this application. This also checks if all needed libraries, tools, etc.. is available on your system. If this fails see the notes about the needed packages in the section &amp;quot;Prerequisites&amp;quot; mentioned earlier.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Optionally now you can modify the source code in openmoko-sample2/src.  Before the next step, go into the sample directory.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* If you are using an older version of the toolchain, you may have to create the makefile by running &amp;quot;./autogen.sh&amp;quot;.  Otherwise, to build the application from the source code just type:&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* If there are errors (i.e. &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;) deal with them.  Also see &amp;quot;Troubleshooting&amp;quot; section at the end of this page for known issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to install this project on host for staging usage later, a shared library, for example, you can do the following to install it into a given configured prefix.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
In order to build your own project by using openmoko-sample2 files, some changes are needed:&lt;br /&gt;
&lt;br /&gt;
* copy the downloaded sample application source&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* rename the folder with the name of your project (in this example your-project-name) and delete old sample files &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 your-project-name&lt;br /&gt;
 cd your-project-name&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* copy your sources (in this example your-sources) into src/&lt;br /&gt;
&lt;br /&gt;
 cp your-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* now in the main folder modify autogen.sh by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;your-project-name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modify configure.ac by updating the following lines ('main.c' should be the main file in your project)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(your-project-name, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* go into data/ folder and rename these files with the name of your project&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png your-project-name.png&lt;br /&gt;
 mv openmoko-sample.desktop your-project-name.desktop&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am inside data/ by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.in inside data/ by updating the following lines&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify your-project-name.desktop by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 Name=your-project-name&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=your-project-name&lt;br /&gt;
&lt;br /&gt;
* and by adding the following line&lt;br /&gt;
&lt;br /&gt;
 Icon=your-project-name&lt;br /&gt;
&lt;br /&gt;
* move into src/ folder&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = your-project-name	&lt;br /&gt;
 your_project_name_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 your_project_name_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* be sure to put instead of main.c all your .c and .h files and modify all the '-' characters with '_' in the variable names&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
We have included a script to make an ipkg out of your application. Note that this is not needed to test your application on the Neo (for that you can just scp the resulting binary and data over), however it's very handy if you want to distribute your application to others.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Now you got openmoko-sample2_0.1_armv4t.ipk , you can `scp' it to your&lt;br /&gt;
Neo and install it:&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Note that while you can redistribute the generated ipkg, be aware that this is a bare-bones ipk that contains no further information, i.e. you will lack library dependencies. See below how to fix this.&lt;br /&gt;
&lt;br /&gt;
You can also supply the version number, a description, and an author / contacts string in a control file:&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
A template of myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: package built by openmoko toolchain&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Using the external toolchain is an easy way to build applications for your Neo. If you are familiar with this procedure, you might also want to look into&lt;br /&gt;
* Using [[Qemu]] to test your applications in an emulated environment&lt;br /&gt;
** Ubuntu users might prefer to look at [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Using [[Host-based_development_with_Xoo_and_Xephyr|host-based development]] to improve your efficiency&lt;br /&gt;
* Using [[OpenEmbedded]] to customize your Openmoko distribution image&lt;br /&gt;
&lt;br /&gt;
==&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Will fail with error message &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; until /usr/local/openmoko/arm/setup-env is modified. LDFLAGS should be changed from:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I also had to change the 'build' script to hardcode the path to the compiler.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Add the necessary libraries to the _LDADD field in src/Makefile.am, for example:&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
make sure to run om-conf again after this.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Toolchain/fr</id>
		<title>Toolchain/fr</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Toolchain/fr"/>
				<updated>2008-10-07T14:56:49Z</updated>
		
		<summary type="html">&lt;p&gt;Pierrebrua: /* Cette page est en cours de traduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Toolchain}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Une suite d'outils de développement est un ensemble de logiciels qui permet de compiler du code. Dans le cadre du projet Openmoko, il faut séparer les différents cas qu'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
;(a) Développer une application unique&lt;br /&gt;
:Le plus approprié est d'utiliser un environnement de compilation croisée préparé d'avance par le projet Openmoko. Sur cette page vous trouverez une procédure qui décrit pas à pas comment démarrer avec cet environnement, générer un fichier exécutable et le déclencher sur la plateforme choisie. Il se peut que vous ayez entendu parler d' ''OpenEmbedded'' mais en tant que développeur d'applications vous ne devriez '''pas''' l'utiliser.&lt;br /&gt;
;(b) Intégration de composants système ou personnalisation d'une distribution logicielle&lt;br /&gt;
:Pour cela vous devriez utiliser [[OpenEmbedded/fr|OpenEmbedded]] qui construit son propre environnement de compilation croisée lors de la phase de construction. L'intégration de composants système et la personnalisation d'une distribution ne sont pas abordés dans cette page.&lt;br /&gt;
&lt;br /&gt;
=Utilisation élémentaire de l'environnement de compilation croisée=&lt;br /&gt;
&lt;br /&gt;
==Prérequis==&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place cet environnement, vous devez être à l'aise avec Linux et les outils en ligne de commande ainsi que disposer d'un ordinateur compatible x86 avec au moins 1Go de place libre sur le disque dur. Vous devez avoir l'habitude de compiler des programmes à partir du code source en utilisant le compilateur de votre distribution. La suite de ce document adopte comme hypothèse que vous avez accès en écriture à votre répertoire racine (~) ainsi qu'au répertoire &amp;lt;tt&amp;gt;/usr/local&amp;lt;/tt&amp;gt; (en tant que superutilisateur si besoin). Si ce n'est pas le cas, veuillez contacter l'administrateur système pour assistance.&lt;br /&gt;
&lt;br /&gt;
Dernier point important : vous devez disposer d'un environnement fonctionnel qui permette de compiler des logiciels (en mode natif) par l'intermédiaire des outils de la suite logicielle autotools (le triplet '''./configure, make, make install''').&lt;br /&gt;
&lt;br /&gt;
Une liste (incomplète?) des logiciels nécessaires -- merci de compléter cette liste au besoin :&lt;br /&gt;
&lt;br /&gt;
* For most Linux version you might only need to install the packages&lt;br /&gt;
** autoconf, automake&lt;br /&gt;
** binutils, gcc, gcc-c++&lt;br /&gt;
** libtool&lt;br /&gt;
** ccache&lt;br /&gt;
** intltool&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.04 ( le versions antérieure n'intègrent pas libmokoui2 ) la commande suivante installe les éléments nécessaires :&lt;br /&gt;
 sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev \&lt;br /&gt;
 ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Ubuntu 8.10 la commande additionnelle est requise :&lt;br /&gt;
 sudo apt-get install uboot-mkimage&lt;br /&gt;
&lt;br /&gt;
* Pour la distribution Fedora-Core la commande suivante déclenchée en tant que &amp;lt;tt&amp;gt;super-utilisateur&amp;lt;/tt&amp;gt; est nécessaire :&lt;br /&gt;
 yum install gcc gcc-c++ autoconf automake binutils libtool glib2-devel \&lt;br /&gt;
 ccache libXrender-devel intltool GConf2-devel mtools gettext-devel&lt;br /&gt;
Fedora-Core ne semble pas contenir la bibliothèque &amp;lt;tt&amp;gt;libmokoui2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Téléchargement et installation==&lt;br /&gt;
&lt;br /&gt;
{{Note|Si vous désirez améliorer une application existante et que vous avez une distribution Debian ou Ubuntu i386 (i.e. avec des paquets .deb), vous préférerez peut-être éviter la phase suivante et plutôt utiliser la méthode décrite à&lt;br /&gt;
[http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html Développement d'applications Openmoko en 5 minutes] par Andreas Dalsgaard. (procédure basée sur la distribution 2007.2)}}&lt;br /&gt;
&lt;br /&gt;
La suite d'outils de développement précompilée peut être téléchargée à [http://downloads.openmoko.org/toolchains downloads.openmoko.org]:&lt;br /&gt;
&lt;br /&gt;
* Créez un répertoire de destination pour les logiciels, par exemple :&lt;br /&gt;
&lt;br /&gt;
  mkdir ~/sources&lt;br /&gt;
  cd ~/sources&lt;br /&gt;
&lt;br /&gt;
* Téléchargez le paquet adapté à votre architecture de processeur (x86_64 or i686) :&lt;br /&gt;
&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
 ou&lt;br /&gt;
  wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines personnes ont des problèmes avec la version 20080521 des outils.  Si vous observez des erreurs, essayez une version différente. (information valide en date du 23 juillet 2008)}}&lt;br /&gt;
&lt;br /&gt;
Ensuite vous aurez à décompresser ce paquet dans votre système. Cet environnement doit obligatoirement être installé dans le répertoire &amp;lt;tt&amp;gt;/usr/local/openmoko/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Vous avez les possibilités suivantes :&lt;br /&gt;
&lt;br /&gt;
* La décompresser directement en tant que super-utilisateur en utilisant la commande su (ou en préfixant votre commande avec &amp;quot;sudo&amp;quot; si vous utilisez Debian/Ubuntu) :&lt;br /&gt;
&lt;br /&gt;
   cd /&lt;br /&gt;
   tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Sur les variantes de Debian (par exemple Ubuntu), vous pouvez utiliser alien(+fakeroot) pour créer un paquet facile à installer à partir du fichier .tar.bz2 :&lt;br /&gt;
&lt;br /&gt;
   bunzip2 openmoko-*-arm-linux-gnueabi-toolchain.tar.bz2&lt;br /&gt;
   gzip openmoko-*-arm-linux-gnueabi-toolchain.tar&lt;br /&gt;
   fakeroot alien -d openmoko-*-arm-linux-gnueabi-toolchain.tar.gz&lt;br /&gt;
   sudo dpkg -i openmoko_*-arm-linux-gnueabi-toolchain*.deb&lt;br /&gt;
&lt;br /&gt;
* La suite de développement précompilée n'est disponible que pour architectures x86_64 ou i686. Si vous le désirez vous pouvez la recréer sous OpenEmbedded avec la commande :&lt;br /&gt;
&lt;br /&gt;
   bitbake meta-toolchain-openmoko&lt;br /&gt;
&lt;br /&gt;
Pour finir, vous devez modifier certaines variables d'environnement pour que les outils utilisés par la suite de développement soient trouvés. La suite de développement intègre un script qui effectue cela, il suffit de l'exécuter via la commande [http://learnlinux.tsf.org.za/courses/build/shell-scripting/ch10s02.html source] de votre interpréteur de commande.&lt;br /&gt;
Si vous n'utilisez pas l'un des interpréteurs &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; (vous pouvez vérifier avec la commande &amp;quot;echo $SHELL&amp;quot;), vous devez démarrer &amp;quot;sh&amp;quot; ou &amp;quot;bash&amp;quot; d'abord.&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* Vous devez au moins ajouter le répertoire /usr/local/openmoko/arm/bin à votre variable d'environnement $PATH, sinon les étapes suivantes (om-conf et make) ne fonctionneront pas. &lt;br /&gt;
 export PATH=$PATH:/usr/local/openmoko/arm/bin &lt;br /&gt;
Note: Cela ne fonctionnera que pour votre session en cours. Rajoutez cette commande à votre script de démarrage (~/.bashrc par exemple) pour rendre cette modification permanente.&lt;br /&gt;
&lt;br /&gt;
==Installation de nouvelles bibliothèques==&lt;br /&gt;
&lt;br /&gt;
La suite d'outils Openmoko ne contient pas beaucoup de bibliothèques par défaut. Ceci dit on peut télécharger et installer des bibliothèques complémentaires. Par défaut on utilise le [http://downloads.openmoko.org/repository/testing/ répertoire de paquets Testing] pour ces bibliothèques complémentaires.&lt;br /&gt;
&lt;br /&gt;
*Vous devez modifier certaines variables d'environnement avant de télécharger des bibliothèques complémentaires :&lt;br /&gt;
  . /usr/local/openmoko/arm/environment-setup&lt;br /&gt;
&lt;br /&gt;
*Etape 1 : mise à jour la base de données opkg (Remarque : utilisez l'alias '''opkg-target''' et non '''opkg''')&lt;br /&gt;
 opkg-target update&lt;br /&gt;
&lt;br /&gt;
*Etape 2 : choisissez un paquet que vous voulez rajouter. Le paquet edje par exemple. Si vous voulez développer un projet qui utilise le composant edje de Enlightenment, vous pouvez utiliser '''opkg-target list''' pour afficher les nombreux paquets installables. La commande '''grep''' vous sera d'une grande aide.(Rappelez-vous, vous devez installer le paquet -dev package et pas seulement libedje.)&lt;br /&gt;
 opkg-target list |grep edje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 3 : installation&lt;br /&gt;
 opkg-target install libedje-dev&lt;br /&gt;
&lt;br /&gt;
*Etape 4 : préparez-vous une tasse de thé et attendez.&lt;br /&gt;
&lt;br /&gt;
==Création d'un projet exemple==&lt;br /&gt;
&lt;br /&gt;
In a chosen destination directory (in this example ~/):&lt;br /&gt;
&lt;br /&gt;
* copy the downloaded sample application source:&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
&lt;br /&gt;
* Remember to set the proper environment variables (again with &amp;quot;sh&amp;quot; or &amp;quot;bash&amp;quot;) for openmoko:&lt;br /&gt;
&lt;br /&gt;
 . /usr/local/openmoko/arm/setup-env&lt;br /&gt;
&lt;br /&gt;
* You need to create a build configuration for this application. This also checks if all needed libraries, tools, etc.. is available on your system. If this fails see the notes about the needed packages in the section &amp;quot;Prerequisites&amp;quot; mentioned earlier.&lt;br /&gt;
&lt;br /&gt;
 om-conf openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* Optionally now you can modify the source code in openmoko-sample2/src.  Before the next step, go into the sample directory.&lt;br /&gt;
&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
* If you are using an older version of the toolchain, you may have to create the makefile by running &amp;quot;./autogen.sh&amp;quot;.  Otherwise, to build the application from the source code just type:&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* If there are errors (i.e. &amp;quot;You need to install gnome-common from the GNOME CVS&amp;quot;) deal with them.  Also see &amp;quot;Troubleshooting&amp;quot; section at the end of this page for known issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to install this project on host for staging usage later, a shared library, for example, you can do the following to install it into a given configured prefix.&lt;br /&gt;
 om-conf --prefix=/usr/local/openmoko openmoko-sample2&lt;br /&gt;
 cd openmoko-sample2&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Comment créer son propre projet à partir du projet exemple==&lt;br /&gt;
&lt;br /&gt;
In order to build your own project by using openmoko-sample2 files, some changes are needed:&lt;br /&gt;
&lt;br /&gt;
* copy the downloaded sample application source&lt;br /&gt;
&lt;br /&gt;
 cp -r /usr/local/openmoko/source/openmoko-sample2 ~/&lt;br /&gt;
 &lt;br /&gt;
* rename the folder with the name of your project (in this example your-project-name) and delete old sample files &lt;br /&gt;
&lt;br /&gt;
 mv openmoko-sample2 your-project-name&lt;br /&gt;
 cd your-project-name&lt;br /&gt;
 cd src&lt;br /&gt;
 rm *.c&lt;br /&gt;
&lt;br /&gt;
* copy your sources (in this example your-sources) into src/&lt;br /&gt;
&lt;br /&gt;
 cp your-sources .&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
* now in the main folder modify autogen.sh by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 PKG_NAME=&amp;quot;your-project-name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* modify configure.ac by updating the following lines ('main.c' should be the main file in your project)&lt;br /&gt;
&lt;br /&gt;
 AC_INIT(your-project-name, 0.0.1, http://www.openmoko.org/)    &lt;br /&gt;
 AC_CONFIG_SRCDIR(src/main.c)&lt;br /&gt;
&lt;br /&gt;
* go into data/ folder and rename these files with the name of your project&lt;br /&gt;
&lt;br /&gt;
 cd data&lt;br /&gt;
 mv openmoko-sample.png your-project-name.png&lt;br /&gt;
 mv openmoko-sample.desktop your-project-name.desktop&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am inside data/ by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.in inside data/ by updating the following lines&lt;br /&gt;
 &lt;br /&gt;
 dist_desktop_DATA = your-project-name.desktop&lt;br /&gt;
 dist_appicon_DATA = your-project-name.png&lt;br /&gt;
&lt;br /&gt;
* modify your-project-name.desktop by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 Name=your-project-name&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Version=0.0.1&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=your-project-name&lt;br /&gt;
&lt;br /&gt;
* and by adding the following line&lt;br /&gt;
&lt;br /&gt;
 Icon=your-project-name&lt;br /&gt;
&lt;br /&gt;
* move into src/ folder&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
* modify Makefile.am by updating the following lines&lt;br /&gt;
&lt;br /&gt;
 bin_PROGRAMS = your-project-name	&lt;br /&gt;
 your_project_name_SOURCES = \				&lt;br /&gt;
  		main.c &lt;br /&gt;
 your_project_name_LDADD  = @DEPENDENCIES_LIBS@&lt;br /&gt;
&lt;br /&gt;
* be sure to put instead of main.c all your .c and .h files and modify all the '-' characters with '_' in the variable names&lt;br /&gt;
&lt;br /&gt;
==Création du paquet associé à votre application==&lt;br /&gt;
&lt;br /&gt;
We have included a script to make an ipkg out of your application. Note that this is not needed to test your application on the Neo (for that you can just scp the resulting binary and data over), however it's very handy if you want to distribute your application to others.&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg openmoko-sample2&lt;br /&gt;
&lt;br /&gt;
Now you got openmoko-sample2_0.1_armv4t.ipk , you can `scp' it to your&lt;br /&gt;
Neo and install it:&lt;br /&gt;
&lt;br /&gt;
 scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:&lt;br /&gt;
 ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
Note that while you can redistribute the generated ipkg, be aware that this is a bare-bones ipk that contains no further information, i.e. you will lack library dependencies. See below how to fix this.&lt;br /&gt;
&lt;br /&gt;
You can also supply the version number, a description, and an author / contacts string in a control file:&lt;br /&gt;
&lt;br /&gt;
 om-make-ipkg myapp myapp_control&lt;br /&gt;
&lt;br /&gt;
A template of myapp_control:&lt;br /&gt;
&lt;br /&gt;
 Package: $appname&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Description: package built by openmoko toolchain&lt;br /&gt;
 Section: openmoko/applications&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: $USER&lt;br /&gt;
 Architecture: armv4t&lt;br /&gt;
 Homepage: http://www.openmoko.org/&lt;br /&gt;
 Depends: &lt;br /&gt;
 Source: ${SRC}&lt;br /&gt;
&lt;br /&gt;
==Autres articles sur des sujets connexes qui pourront vous intéresser==&lt;br /&gt;
&lt;br /&gt;
Using the external toolchain is an easy way to build applications for your Neo. If you are familiar with this procedure, you might also want to look into&lt;br /&gt;
* Using [[Qemu]] to test your applications in an emulated environment&lt;br /&gt;
** Ubuntu users might prefer to look at [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
* Using [[Host-based_development_with_Xoo_and_Xephyr|host-based development]] to improve your efficiency&lt;br /&gt;
* Using [[OpenEmbedded]] to customize your Openmoko distribution image&lt;br /&gt;
&lt;br /&gt;
==&lt;br /&gt;
==Compilation du noyau Openmoko à partir de l'entrepôt git en utilisant la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openmoko.org/git/kernel.git linux-2.6&lt;br /&gt;
 cd linux-2.6&lt;br /&gt;
 git checkout -b mystable origin/stable&lt;br /&gt;
 cp defconfig-gta02 .config&lt;br /&gt;
 ./build&lt;br /&gt;
&lt;br /&gt;
Will fail with error message &amp;quot;arm-angstrom-linux-gnueabi-ld: unrecognized option '-Wl,-rpath-link,/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/lib'&amp;quot; until /usr/local/openmoko/arm/setup-env is modified. LDFLAGS should be changed from:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-rpath-link,${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -Wl,-O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to:&lt;br /&gt;
&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -rpath-link ${OMTOOL_DIR}/arm/arm-angstrom-linux-gnueabi/lib -O1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I also had to change the 'build' script to hardcode the path to the compiler.&lt;br /&gt;
&lt;br /&gt;
==Utilisation des bibliothèques fournies par la suite d'outils==&lt;br /&gt;
Add the necessary libraries to the _LDADD field in src/Makefile.am, for example:&lt;br /&gt;
 openmoko_sample2_LDADD  = @DEPENDENCIES_LIBS@ -lmokogsmd2&lt;br /&gt;
&lt;br /&gt;
make sure to run om-conf again after this.&lt;br /&gt;
&lt;br /&gt;
==Ajouter des bibliothèques complémentaires à la suite d'outils==&lt;br /&gt;
&lt;br /&gt;
Sooner or later you will want to compile an application that has dependencies which can't be fulfilled by the precompiled toolchain, e.g. some obscure libraries.&lt;br /&gt;
&lt;br /&gt;
In that case, feel free to request the inclusion of additional libraries into the next release of the Openmoko toolchain. Until then, here is how you enhance your already installed toolchain. Say, we want to add the library called liburiparse:&lt;br /&gt;
&lt;br /&gt;
 cd ~/source&lt;br /&gt;
 wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2&lt;br /&gt;
 tar xjf uriparser-0.6.0.tar.bz2&lt;br /&gt;
 cd uriparser-0.6.0&lt;br /&gt;
 ./configure --host=arm-angstrom-linux-gnueabi \&lt;br /&gt;
 --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
==Avoir votre application intégrée à OpenEmbedded==&lt;br /&gt;
&lt;br /&gt;
If you have written a cool application which you want to share with others, the best way to do that is to&lt;br /&gt;
&lt;br /&gt;
# upload your application source code to a public location&lt;br /&gt;
# submit a [[BitBake]] recipe to [[OpenEmbedded]], preferably via the [http://bugzilla.openembedded.org OpenEmbedded bugtracker].&lt;br /&gt;
&lt;br /&gt;
See also [[Customizing the Openmoko Distribution]].&lt;br /&gt;
&lt;br /&gt;
==Résolution de problèmes==&lt;br /&gt;
&lt;br /&gt;
* Some Versions of the Toolchain have corrupt .la files. If you compile an application using the Toolchain and you receive a '/space/fic/openmoko-daily/neo1973/work/armv4t-angstrom-linux-gnueabi/pango-1.18.3-r0/pango-1.18.3/pango/libpangoft2-1.0.la' error, you are affected. To fix that you should go to your &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot; directory and open the affected .la files and change &amp;quot;/space/fic...&amp;quot; to &amp;quot;/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&amp;quot;. You have to fix more than one .la file. For the pango error you have to change &amp;quot;libpangocairo-1.0.la&amp;quot;, but there are more corrupt .la files.&lt;br /&gt;
&lt;br /&gt;
Attached is a beta fix for the .la problem. Untar the .tar.bz2 as root, and execute the following bash script as root:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/sh&lt;br /&gt;
        DIR=/usr/local/openmoko/arm&lt;br /&gt;
        for la in `find $DIR -iname \*.la`; do&lt;br /&gt;
         dependency_libs=&lt;br /&gt;
         . $la&lt;br /&gt;
         for lib in $dependency_libs ; do&lt;br /&gt;
         delib=`echo $lib | grep -E .la$`&lt;br /&gt;
         if [ -z $delib ] ; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         elif [ -f $delib ]; then&lt;br /&gt;
          echo -n&lt;br /&gt;
         else&lt;br /&gt;
          basedelib=`basename $delib`&lt;br /&gt;
          replacedelibs=`find $DIR -iname $basedelib`&lt;br /&gt;
          found=0&lt;br /&gt;
          for replacedelib in $replacedelibs ; do&lt;br /&gt;
          if [ $replacedelib == $delib ]; then&lt;br /&gt;
           found=1&lt;br /&gt;
          fi&lt;br /&gt;
          done&lt;br /&gt;
          if [ $found -gt 0 ] ; then&lt;br /&gt;
           echo -n&lt;br /&gt;
          else&lt;br /&gt;
            sed_delib=`echo $delib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            sed_replacedelib=`echo $replacedelib | sed 's/\//\\\\\//g'`&lt;br /&gt;
            # A bit slow, we could chain expressions for speed. :)&lt;br /&gt;
            cp $la $la.old&lt;br /&gt;
            cat $la | sed &amp;quot;s/$sed_delib/$sed_replacedelib/g&amp;quot; &amp;gt; $la.new&lt;br /&gt;
            mv $la.new $la&lt;br /&gt;
            rm $la.old&lt;br /&gt;
          fi&lt;br /&gt;
         fi&lt;br /&gt;
         done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
* Merci d'utiliser la liste de diffusion associée au développement [http://lists.openmoko.org/mailman/listinfo/openmoko-devel Openmoko-Devel].&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>Pierrebrua</name></author>	</entry>

	</feed>