Utilisateur:Pini
De openmoko-fr.
Ingénieur Informaticien. La quarantaine passée.
Debian GNU/Linux à la maison depuis 1998, et au boulot depuis 2002.
Heureux possesseur d'un FreeRunner depuis fin août 2008. C'est bien entendu une Debian qui le fait tourner, sur une carte microSDHC de 8Go.
Journal
23/06/2009
navit dans Debian/unstable
Après une longue période dans Debian/experimental, navit vient d'intégrer Debian/unstable en version 0.1.1. Avec un peu de chance, bientôt dans testing !
18/05/2009
libgarmin dans Debian/unstable
Mon package libgarmin vient d'entrer dans Debian/unstable.
Prochaine étape activer le plugin Garmin dans le package navit.
23/03/2009
Wifi - Debian - Noyau 2.6.28
Avec le noyau 2.6.28 le wifi n'est plus activé par défaut. L'avantage c'est que la batterie s'en porte mieux. L'inconvénient c'est qu'il faut scripter un peu...
Activation:
echo 1 > /sys/bus/platform/drivers/gta02-pm-wlan/gta02-pm-wlan.0/power_on echo s3c2440-sdi > /sys/bus/platform/drivers/s3c2440-sdi/bind
Désactivation:
echo 0 > /sys/bus/platform/drivers/gta02-pm-wlan/gta02-pm-wlan.0/power_on echo s3c2440-sdi > /sys/bus/platform/drivers/s3c2440-sdi/unbind
Le device ethO n'est présent et visible qu'en mode activé.
09/03/2009
Flash de la puce GSM
Aujourd'hui c'est décidé, je me lance dans le flashage de la puce GSM du FR. J'en ai marre qu'on me dise que mon téléphone a un son pourri. Avec un peu chance il y aura un mieux !
Je commence donc à dépiler les infos :
- la page GSM/Flashing sur le wiki officiel
- le récent fil de discussion sur openmoko-fr
Puis je vais chercher le firmware up-to-date. Il y a dans ce lien un répertoire moko11. Allons voir. Bon... Le firmware a l'air d'être le fichier calypso-moko11.m0. Mais qu'est-ce donc que ce flash-moko11_uSD-image.tar.gz ? Par curiosité je récupère cette tarball et je l'inspecte. Elle contient deux fichiers :
$ tar tvzf flash-moko11_uSD-image.tar.gz -rw-r--r-- root/root 283115520 2009-02-28 20:53 flash-moko11-2.image -rw-r--r-- jr/users 493 2009-02-28 20:56 README.txt
Et le README.txt nous dit :
dd if=flash-moko11-2.image of=<your_uSD_device>; #this is NO partition # for a transcend microSD reader USB dongle this is /dev/sdb on my system # YMMV insert uSD, we recommend you don't insert SIM, boot from uSD via U-Boot wait until "green", usually takes some 6min tested with NOR U-Boot 1.3.2-moko12 (May 9 2008 - 10:28:48) and with NAND U-Boot 1.3.2-dirty-moko12 (Aug 25 2008 - 00:18:23) Please report any problems as well as U-Boot versions it doesn't boot with to joerg@openmoko.org
Ce serait donc un kit de flashage prêt à l'emploi. Je décide de tester :
- Copie de l'image sur la carte uSD 512 Mo Transcend que j'ai en stock
- Arrêt du FR
- Insertion de la carte uSD dans le FR
- Retrait de la carte SIM
- Reboot sur la carte uSD par le menu NOR
- Scrutation de la console du FR en serrant les fesses...
Le FR commence par booter normalement, puis au bout d'un moment la console passe en fond bleu. C'est assez difficile à lire, mais on perçoit que le flashage effectif commence avec une barre de progression en ***.
Cela dure quelques minutes. Au premier tiers la progression est interrompue par des messages console. Aïe... En lisant bien on voit que ce sont des messages relatifs au bluetooth, et la barre de progression reprend plus loin. Ouf !
Quand c'est terminé, il y a une pause de 30 secondes environ, puis la console passe en fond vert avec affichage du logo Angström puis invite de login.
Il n'y a plus plus qu'à rebooter sur la Debian puis à tenter un coup de fil. Ça marche !
Quant à dire si le son s'est amélioré pour mes interlocuteurs, on verra ça après un rex de quelques jours.
update du lendemain
Aucune amélioration rapport au son :(
04/03/2009
Navit uploadé dans la file NEW de Debian
Une grosse étape vient d'être franchie avec l'upload de mon package Navit dans la file NEW de Debian. Il doit être encore être traité par ftp-master. D'expérience ça peut prendre quelques jours comme plusieurs semaines.
Si ça passe, Navit sera alors disponible officiellement dans Debian, dans l'archive experimental pour l'instant.
Nous viserons unstable dès que le package sera un peu plus stable (il reste en particulier des problèmes d'endianness à régler pour que cela marche correctement sur toutes les architectures et pas seulement sur les little-endian.
27/02/2009
Stabilité de Debian / FSO M5 - Mon record d'uptime
Un petit billet pour manifester ma satisfaction quand à la stabilité de la dernière mouture de Debian / FSO.
Jusqu'à présent je n'avais jamais réussi à atteindre 3 jours d'uptime avec mon FR. Sachant que le temps de veille n'est pas comptabilisé, ça correspond à 4 à 7 jours d'utilisation (pour mon usage).
Aujourd'hui mon FR s'est arrêté pour cause de batterie vide. Il avait atteint un uptime de 4 jours et 8 heures environ. J'avais regardé la date de boot hier justement : eh bien ça fait pile poil 10 jours d'utilisation, tout ça en étant bien stressé : compilations / tests / segfaults / sigbus de Navit.
Dommage que la batterie se décharge aussi vite...
17/02/2009
Navit en cours d'intégration dans Debian
Je me suis porté volontaire pour l'intégration de Navit dans Debian. J'ai créé mon compte sur alioth.debian.org et on m'a donné accès au dépôt git qui a supporté la première tentative de packaging officiel. Cette nuit j'ai remonté mes premières modifs. Le package compile sur mon PC. Mais il reste un maximum de travail, en particulier au niveau des copyrights.
Les prochaines versions du package qui atterriront sur mon dépôt debian seront issues de ces builds.
12/02/2009
Kernel 2.6.28
Le kernel 2.6.28 de MSO M5 vient d'atterrir dans les dépôts debian. La mise à jour n'est pas immédiate...
Tout d'abord, s'assurer que /dev/mmcblk0p1 est bien monté sur /boot. Si ce n'est pas le cas, l'ajouter au fichier /etc/fstab :
/dev/mmcblk0p1 /boot auto defaults 0 0
Puis :
# mount -a
Ensuite, il faut supprimer à la main le lien /boot/uImage.bin qui pointe sur l'ancien kernel :
# ls -l /boot/uImage.bin lrwxrwxrwx 1 root root 35 déc 17 19:28 /boot/uImage.bin -> vmlinuz-2.6.24-20081103.git7172ec57 # rm /boot/uImage.bin
Enfin on peut mettre le kernel à jour :
# apt-get update # apt-get install linux-image-2.6.28-openmoko-gta02
Vérifier que le lien dans /boot est réapparu et pointe sur le bon kernel :
# ls -l /boot/uImage.bin lrwxrwxrwx 1 root root 35 fév 12 01:28 /boot/uImage.bin -> vmlinuz-2.6.28-20090105.git69b2aa26
Reboot en serrant les fesses... Ça marche !
Tiens, et du coup le témoin de charge sur POWER remarche.
05/02/2009
\o/ Navit - J'ai trouvé ! \o/
Je vais enfin pouvoir faire mes nuits ;)
En réfléchissant un peu je me suis dit qu'il y avait une chance que ça se passe dans la configuration dynamique du noyau (/proc ou /sys). J'ai donc adapté en conséquence mes requêtes google sur le sujet, et je suis tombé sur la réponse que j'attendais :
# on arm, enable kernel fixups on alignement errors: echo 2 > /proc/cpu/alignment
En vérifiant sur Om2008.12 on trouve la valeur 3 (fixup+warn) :
root@om-gta02:~# cat /proc/cpu/alignment User: 0 System: 0 Skipped: 0 Half: 0 Word: 0 Multi: 0 User faults: 3 (fixup+warn)
Mais je vais rester sur 2, histoire de ne pas encombrer les logs.
Mon mystérieux bug Navit - Ça se précise
Après de longues soirées de gdb sur Navit (pfiouuu ! ça fait longtemps que je n'ai pas fait de C), je crois bien avoir trouvé - en partie - de quoi il retourne. C'est tout bêtement un problème d'alignement qui ne se manifeste que sur Debian :/
Les fichiers des maps MG sont mappés en mémoire. Les données sont ensuite accédées directement par des pointeurs sur les structures ad'hoc. Et les fichiers sont faits de telle façon que les données ne sont pas alignées du tout. Du coup, au moment de lire un unsigned short (par exemple) sur une adresse impaire, ça plante.
La curiosité du jour c'est que c'est spécifique à Debian. Le même binaire exécuté sur Om2008.12 se comporte parfaitement bien.
Cas test
J'ai gratté vite-fait un petit cas test représentatif de la chose :
$ cat test.c
#include <stdio.h>
#include <stdlib.h>
struct test {
unsigned short s4;
char s1;
};
unsigned char buffer[6] = { 0 };
void test_align(unsigned char ** p) {
unsigned short copy;
struct test *current = (struct test *)(*p);
printf("*p = %p => 0x%02x 0x%02x 0x%02x\n", *p, **p, *(*p+1), *(*p+2));
copy = current->s4;
printf("s4 = %d %d %d\n", **p+*(*p+1)*256, current->s4, copy);
(*p) += 3;
}
int main(int argc, char * argv[]) {
printf("unsigned short = %d\n", sizeof(unsigned short));
printf("char = %d\n", sizeof(char));
printf("struct test = %d\n", sizeof(struct test));
printf("buffer = %p\n", buffer);
buffer[0] = buffer[3] = 1;
buffer[1] = buffer[4] = 2;
buffer[2] = buffer[5] = 3;
unsigned char *p = buffer;
test_align(&p);
test_align(&p);
exit(0);
}
Ça se compile bêtement par :
$ gcc -o test test.c
Exécution sous Debian
$ ./test unsigned short = 2 char = 1 struct test = 4 buffer = 0x107cd *p = 0x107cd => 0x01 0x02 0x03 s4 = 513 256 256 *p = 0x107d0 => 0x01 0x02 0x03 s4 = 513 513 513
En théorie (enfin... pour que Navit fonctionne correctement) les lignes "s4" devraient toutes deux être de la forme 513 513 513. Là on constate que quand *p est impair, c'est raté, la lecture se calant apparement sur l'octet pair précédent.
Exécution sous Om2008.12 installé en chroot sous Debian
$ schroot -c OM ./test I : [chroot Om2008.12] Exécution de la commande : « ./test » unsigned short = 2 char = 1 struct test = 4 buffer = 0x107cd *p = 0x107cd => 0x01 0x02 0x03 s4 = 513 256 256 *p = 0x107d0 => 0x01 0x02 0x03 s4 = 513 513 513
=> même problème
Sous Om2008.12 natif
root@om-gta02:~# mount /dev/mmcblk0p2 /mnt root@om-gta02:~# cd /mnt/home/pini/debian/navit-debug/ root@om-gta02:/mnt/home/pini/debian/navit-debug# ./test unsigned short = 2 char = 1 struct test = 4 buffer = 0x107cd *p = 0x107cd => 0x01 0x02 0x03 s4 = 513 513 513 *p = 0x107d0 => 0x01 0x02 0x03 s4 = 513 513 513
Ça marche ! Et c'est bien le même binaire que sous Debian. Je n'ai rien recompilé sous Om2008.12.
Sous Debian, booté avec le noyau d'Om2008.12
Ça ne marche pas.
Sous Om2008.12 installé en chroot de Debian bootée avec le kernel d'Om2008.12
Ça ne marche pas non plus.
Alors quoi ?
- Ce n'est pas une question de libc6, sinon ça devrait marcher en chroot Om2008.12.
- Ce n'est pas une question de noyau, sinon ça fonctionnerait en Debian + Kernel Om2008.12
- Ce n'est pas les deux combinés, sinon ça fonctionnerait en Debian + Kernel 0m2008.12 + chroot sous Om2008.12
Si un bienveillant lecteur a une idée...!
Update
\o/ J'ai trouvé ! \o/
03/02/2009
FSO Milestone 5
Installation ce jour de FSO Milestone 5 par apt-get dist-upgrade.
Premiers constats à chaud :
- Rien de révolutionnaire.
- La mise en veille est beaucoup plus rapide.
- La gestion des DTMF est plus simple : les touches sont prises en compte au fur et à mesure de la frappe; plus besoin de valider à chaque fois.
- Le témoin de charge sur POWER ne marche plus (mais ça charge quand même).
- J'ai dû modifier sensiblement IdleBlocker en utilisant une connexion à org.freesmartphone.odeviced au lieu de org.freesmartphone.frameworkd qui répond maintenant un truc genre permission denied. Pour le reste du programme ça marche pareil.
17/01/2009
Réinstallation complète
Je suis enquiquiné depuis 10 jours par un plantage de navit que je n'arrive pas à reproduire ailleurs. Je suis même allé jusqu'à refaire une installation sous qemu. Rien !
C'est donc décidé : je réinstalle complètement ma debian. On verra bien si c'est la faute à un inode pas étanche de ma carte microSD...
Update (tard, dans la nuit)
C'était pas ça. Le gros vilain bug est toujours là. Dégouté :(
Update-1
Après 24h d'utilisation je constate que le recamping bug est toujours présent.
05/01/2009
Marco Polo Grosser Reiseplaner
J'ai reçu hier l'un de mes cadeaux de Noël : une carte d'Europe en DVD compatible avec Navit.
L'installation est relativement simple, mais assez longue (2,5 Go à transférer sur le FR).
Le seul prérequis est l'outil unshield heureusement disponible sous debian :
$ sudo apt-get install unshield
Je n'ai pas encore testé en navigation, mais les quelques coups d'oeil jetés sur les cartes me permettent de dire que la qualité est largement meilleure - incomparable - que celle d'OSM (pour la france du moins). Je ne regrette pas mes 25,90€ !
Localisation fr_FR sous Debian
$ sudo apt-get install locales $ sudo dpkg-reconfigure -plow locales
Choisir fr_FR.utf8. Et ajouter :
export LANG=fr_FR.utf8
dans ~/.profile
29/12/2008
Page wiki pour Navit
J'ai fini par créer une page Navit sur le wiki pour regrouper les infos que j'ai collectées jusqu'à présent.
28/12/2008
wicd-client - Désactiver l'autostart
Après une mise à jour hier soir wicd-client s'installait systématiquement dans le systray au démarrage. Dans l'absolu ce n'est pas un problème, sauf que la batterie ne passe pas la nuit - même en suspend - une fois que le wifi a été activé. J'ai donc cherché à désactiver proprement son auto-démarrage, sans obérer la possibilité de la lancer à la main le jour où j'en ai besoin.
Et la réponse est finalement assez simple.
L'auto-démarrage est commandé par le fichier /etc/xdg/autostart/wicd-tray.desktop. Pour le désactiver sans toucher à la config système, il suffit de créer le fichier $HOME/.config/autostart/wicd-tray.desktop avec le contenu suivant :
[Desktop Entry] Hidden=true
27/12/2008
Navit - Ça marche
J'ai testé Navit sur deux trajets > 100 km, avec un fond de cartes OSM. Globalement ça marche, mais j'ai rencontré quelques soucis :
- Lors d'une navigation, l'affichage ne se met à jour que lorsqu'on sort de l'écran. Il est impossible de connaître sa progression sauf à forcer manuellement un rafraîchissement via le zoom ou un recalcul de la route.
- Le temps de réponse devient rédhibitoire dès que l'on décoche l'option Display / Lock on Road.
- Je ne vois aucune différence lorsque l'option Map / Tracking est cochée ou non.
C'est dommage car je me disais qu'en désactivant Lock on Road et en activant le Tracking on pouvait contribuer à OSM via les traces générées. Mais j'ai dû louper quelque chose...
22/12/2008
Navit - Nouvelle tentative de packaging
Je suis reparti du packaging réalisé pour eeePC par yet another geek. J'ai dû le triturer un poil pour ce ça passe sur OpenMoko, mais rien de bien méchant :
- mise à jour des sources de Navit avec un snapshot SVN (0.1.0+svn1843)
- suppression du script wrapper navit.pl qui n'est pas adapté à OpenMoko
- relachement de la dépendance à gpsd sans spécification de version de sorte que fso-gpsd convienne
- il y a un Build-Depends sur libgarmin-dev que l'on trouve également sur le dépôt de yet another geek
Le résultat est sur mon dépôt :
deb http://pini.free.fr/debian unstable main deb-src http://pini.free.fr/debian unstable main
Je tâcherai de le mettre à jour régulièrement s'il donne satisfaction.
19/12/2008
Navit - Packaging
Update 20/12/2008 : Finalement je ne vais pas rester sur ce package qui s'appuie sur une version trop ancienne de Navit.
Navit n'est pas - encore - packagé pour Debian mais on peut récupérer le projet de package cité dans le ticket ITP. Ça se passe via git (depuis le FR) :
$ git clone git://git.debian.org/git/collab-maint/navit.git $ cd navit
Il faut aussi installer cvs, fakeroot et libxmu-dev :
$ sudo apt-get install cvs fakeroot libxmu-dev
Copier /usr/share/libtool/ltmain.sh :
$ cp /usr/share/libtool/ltmain.sh .
Puis patcher debian/rules pour empêcher sa suppression :
diff --git a/debian/rules b/debian/rules
index 2a24220..5d8dd74 100755
--- a/debian/rules
+++ b/debian/rules
@@ -69,7 +69,7 @@ clean-patched:
find $(CURDIR)/navit/xpm -mindepth 1 -maxdepth 1 -name '*.xpm' -o -name 'osd_*.png' -o -type f -name '*.png' -print0 | xargs -0 rm -f
rm -f ABOUT-NLS INSTALL aclocal.m4 compile config.guess \
config.h.in config.rpath config.sub configure depcomp \
- install-sh missing mkinstalldirs ltmain.sh
+ install-sh missing mkinstalldirs
rm -rf autom4te.cache m4
rm -f navit/graphics/cogl/graphics_cogl.loT
Y'a plus qu'à compiler le package :
$ dpkg-buildpackage -uc -us -b
et attendre une grosse heure...
16/12/2008
Retour à xserver-xorg
xserver-xglamo n'aura pas tenu 24h vu que quelques raccourcis claviers indispensables ne sont pas fonctionnels avec ce pilote : <Alt-Tab>, <Alt-C>. Il y a malgré tout espoir que ça s'arrange dans un proche avenir.
15/12/2008
Utilisation en non-root user
Aujourd'hui j'ai décidé de tenter l'utilisation du téléphone en non-root. J'ai suivi le chapitre correspondant de la page Debian du wiki officiel, que j'ai rafraichie pour l'occasion. Seules manips complémentaires que je n'ai pas cités car spécifiques à ma config :
- Récupération de la config osmo :
# mv /root/.osmo ~pini/ && chown -R pini:pini ~pini/.osmo
- Idem pour la config du bureau :
# mv /root/.config ~pini/ && chown -R pini:pini ~pini/.config
Après redémarrage, un coup d'oeil aux processes indique que la session graphique est propriété de mon user tandis que le démon frameworkd est propriété de root. C'est bien car ça évite de jouer avec sudo ou setuid pour activer le mode suspend (par exemple).
Update 03/02/2008
La politique de sécurité dbus est devenue plus stricte récemment. Pour pouvoir continuer à utiliser fso-frameworkd avec un utilisateur non-root il faut exécuter la manip suivante :
# cd /etc/dbus-1/system.d # sed 's/root/<mon_user>/' frameworkd.conf > <mon_user>-frameworkd.conf
Puis redémarrer dbus.
A terme il y a des chances que ces permissions soient gérées via un groupe spécifique.
xserver-xglamo avec clic droit
Suite à un mail d'Arne Anka sur la ML pkg-fso-maint je décide de donner une deuxième chance au pilote Xglamo. En effet, son mail donne la solution au seul problème qui m'empêchait d'utiliser ce pilote : l'indisponibilité du clic droit. Voici donc les manips pour passer en Xglamo :
-
# apt-get install xserver-xglamo
-
# chmod u+s /usr/bin/Xglamo
requis lorsque on utilise le FR en non-root - Modifier les options de démarrage X pour forcer le mode 96 dpi. Sinon on se retrouve avec des polices complètement inadaptées. Ça se passe au début du fichier /etc/init.d/nodm :
X_OPTIONS="vt4 -nolisten tcp -dpi 96"
- Bien entendu spécifier le pilote Xglamo dans /etc/X11/xorg.conf à la place de fbdev :
- Pour le clic droit, installer libgtkstylus
# apt-get install libgtkstylus
- Et y faire appel au tout début du fichier ~/.xsession :
export GTK_MODULES=libgtkstylus.so
- Enfin, redémarrer X :
# invoke-rc.d nodm restart
#Driver "fbdev" Driver "Xglamo"
Le clic droit est alors activé par une pression prolongée sur l'écran. En première approche il semble un peu moins facile à contrôler que celui du pilote tslib patché. On va voir à l'usage...
14/12/2008
Script de redémarrage sans reboot
J'ai mis à jour mon script de redémarrage sans reboot, à activer quand frameworkd est planté. En particulier quand on n'arrive pas à décrocher et que le vibreur continue indéfiniment...
#! /bin/sh echo 0 > /sys/devices/platform/neo1973-vibrator.0/leds/neo1973\:vibrator/delay_on invoke-rc.d nodm stop invoke-rc.d dbus restart rm -f /root/.xsession-errors invoke-rc.d nodm start
Grace a ce ptit script j'arrive à des uptimes > 2 jours, sans compter le temps passé en mode suspend. Du coup ça fait de l'ordre d'une semaine sans rebooter la bête !
11/12/2008
Écouter de la musique et téléphoner
Hier j'étais - encore - coincé dans un train avec un retard de 2h+ :(
J'ai passé le temps en écoutant une compil de mp3 qui avait récemment atterri sur mon FR. Et pendant l'écoute : un coup de fil. Moment de panique : "Ahhh ! Il faut que j'arrive à stopper la musique puis à décrocher, tout ça dans le délai imparti de 20 secondes".
Eh ben non :
- Pendant l'écoute j'avais réduit Sonata de sorte que Zhone restait accessible en premier plan
- Le fait de décrocher a basculé le contexte audio. Du coup je n'entendais plus la musique et j'ai pu téléphoner tranquillement
- La musique est réapparue tout de suite après avoir raccroché.
Quelques bemols cependant :
- Une fois décroché je n'avais pas mon interlocuteur dans le casque. J'ai du mener la conversation téléphonique directement sur le téléphone.
- Une fois raccroché, il y avait bien la musique dans le casque, mais aussi sur le haut parleur du FR. Debrancher puis rebrancher la prise jack a rétabli la situation.
06/12/2008
Swap
Aujourd'hui j'ai décidé de tenter la mise en place d'un swap sur ma carte uSDHC de 8 Go. En théorie, ce n'est pas très compliqué à faire sans tout casser. En pratique, ça ne se passe pas comme prévu...
Au départ
Device Boot Start End Blocks Id System /dev/mmcblk0p1 1 245 7832 83 Linux /dev/mmcblk0p2 246 246208 7870816 83 Linux
La théorie
- Reboot sur la mémoire flash
- Démontage des partitions de la carte SD
- fsck sur partion 2
- réduction du file system de la partition 2 à 787000 ko
- réduction de la partition 2 (- 256 Mo)
- ajustement du filesystem de la partition 2 pour qu'il occupe toute la place disponible
- création de la partition swap de 256 Mo à la suite de partition 2
La pratique
L'étape 4 (redimensionnement du filesystem de la partition 2) plante lamentablement avec un SegFault. Je suis donc parti pour essayer via mon PC mais je n'ai pas de lecteur de carte uSDHC. Le seul moyen de m'en sortir est de recopier le contenu brut de la carte sur le PC puis de le gérer via un loop device. On obtient la procédure suivante :
- Reboot sur la mémoire flash
- Démontage des partitions de la carte SD
- A partir d'ici on travaille exclusivement sur le PC
- Dump de l'image de la carte : ssh moko "dd if=/dev/mmcblk0" > moko.raw (c'est très long ; plusieurs heures)
- Attachement en loop device de la partition 2 : losetup -o 8028160 /dev/loop0 /home/pini/moko/moko.raw (pour calculer l'offset j'ai pris la taille du fichier raw moins la taille de la partition 2 ; ça a marché)
- e2fsck -f /dev/loop0
- resize2fs /dev/loop0 7870000K
- Détachement du loop device : losetup -d /dev/loop0
- Puis attachement de l'image complète de la carte pour gérer le partitionnement : losetup /dev/loop0 /home/pini/moko/moko.raw
- Avec parted sur /dev/loop0, réduction de 256 Mo la partion 2
- toujours sous parted sur /dev/loop0, création de la partion 3 en swap avec 256 Mo
- Détachement du loop device : losetup -d /dev/loop0
- Réattachement en loop device da la partition 2 : losetup -o 8028160 /dev/loop0 /home/pini/moko/moko.raw
- Reajustement du filesystem de la partition 2 : resize2fs /dev/loop0 <nouvelle taille de la partition>
- Désattachement du loop device
- Recopie de l'image sur la carte : cat moko.raw | ssh moko "dd of=/dev/mmcblk0" (très long aussi ; plusieurs heures)
- Sur le FR, fsck.ext3 -f /dev/mmcblk0p2
- puis : mkswap -c /dev/mmcblk0p3
- Reboot du FR en serrant les fesses....
- Configuration du /etc/fstab pour intégrer le swap
Bon... ben ça a l'air de marcher ! \o/
28/11/2008
mdbus
Je viens enfin de comprendre comment utiliser mdbus. Je ne sais pas pourquoi je coinçais... La page du wiki officiel est pourtant claire !
27/11/2008
Yauap - Player GST en ligne de commande
En cherchant un player audio pour configurer mes alarmes sous Osmo (voir ci-dessous) je suis tombé sur yauap, un player GST en ligne de commande. Comme il s'appuie sur GST il peut jouer n'importe quel format supporté par les plugins GST installés sur le FR.
Cerise sur le gâteau : yauap a aussi le mérite d'exposer une interface DBus. Sur un framework comme FSO ça peut servir ;)
Agenda Osmo
Je crois que j'ai enfin trouvé l'application agenda qui va pouvoir me servir sur le FreeRunner. Il s'agit d'Osmo. Comparée à dates, Osmo est légère, fonctionnelle, et permet un configuration très précise de l'alarme. Elle permet également de gérer son carnet d'adresse avec import/export en vcf.
Je la prend en test quelques jours... Dommage que les alarmes ne se déclenchent pas en mode suspend (mais ça ne ne crois pas que ce soit pour demain, dans n'importe quel Agenda du FR).
Identification du nom de l'appelant dans zhone
La toute dernière mise à jour de zhone intègre un must have patch qui affiche le nom du correspondant (trouvé dans le répertoire) en plus du numéro appelant.
Contournement du recamping bug
Le recamping bug est décrit dans le ticket FSO #1024. Il concerne la session GSM qui ne cesse de se ré-initier.
Pour contourner ce bug, le temps qu'il soit traité par une mise à jour du firmware Calypso, il suffit d'ajouter l'option suivante dans la config ogsmd du fichier /etc/frameworkd.conf:
ti_calypso_deep_sleep = never
20/11/2008
Développement - Comprendre FSO
J'ai passé un moment ce soir à essayer de comprendre l'architecture de FSO. Comme je pars de zéro à la fois sur dbus, glib et python, je me rends compte que ça ne va pas se faire en une soirée.
Je vais tenter de tenir une petite page à jour avec les infos que je glane.
Retour d'expérience sur Debian + FSO-M4
Après une journée de FSO-M4 je dois dire que la stabilité s'est sensiblement améliorée.
- J'avais coutume de fréquemment redémarrer la session graphique (nodm) et dbus pour avoir un zhone fonctionnel, et là j'ai passé la journée sans un seul redémarrage.
- Les SMS fonctionnent.
- La batterie a aussi l'air de tenir plus longtemps. Mais c'est un peu subjectif pour l'instant. A suivre...
Mais tout ça n'est peut-être dû qu'au fait que openmoko-panel-plugin n'est plus là (c'est qu'il mange de la CPU celui là...).
19/11/2008
Mise à jour avec FSO Milestone 4
Aujourd'hui le traditionnel "apt-get update && apt-get upgrade" m'a mis à jour la pile FSO avec la Milestone 4 packagée pour Debian.
zhone est un poil plus joli avec un nouveau thème.
openmoko-panel-plugin n'est pas encore porté sur FSO-M4 et a dû être désinstallé par apt. En attendant la nouvelle version j'ai expérimenté la configuration de commandes persos associées au bouton AUX via le fichier de configuration /etc/freesmartphone/oevents/rules.yaml. Il m'a suffit d'ajouter quelques sections trigger comme ci-dessous :
trigger: InputEvent()
filters:
- HasAttr(switch, "AUX")
- HasAttr(event, "released")
- HasAttr(duration, <N>)
actions: Command('<ma commande à moi>')
-
où :
- <N> = durée de pression sur AUX en secondes,
- <ma commande à moi> = commande système à cabler.
En faisant varier <N> et <ma commande à moi> sur plusieurs sections trigger j'ai pu cabler une poignée de commandes différentes en fonction du temps de pression sur AUX (0, 1, 2, 5 sec.).
01/11/2008
Installation de QtExtended sur la mémoire flash
Aujourd'hui j'ai franchi le pas : j'ai installé QtExtended 4.4.2 sur la mémoire flash de mon FR à la place de FDOM. Et je ne suis pas déçu. C'est clairement mieux fini que n'importe quelle autre distribution à ce jour.
Un seul - gros - défaut : je trouve cela quasi impossible de scroller sans stylet dans la liste de contacts.
Je vais tout de même rester avec le boot par défaut sur ma debian. Mais ça me fera quelque chose de joli et fonctionnel à montrer aux curieux.
25/10/2008
nodm et openmoko-panel-plugin
Toujours grâce à la mailing list pkg-fso-maint on apprend que zhone-session a été remplacé par nodm (automatic display manager). Il faut bricoler un peu pour que XFCE4 se lance avec le WM matchbox au lieu de xfwm. Il faut passer par le fichier /root/.xsession au lieu de /root/.config/xfce4/xinitrc. Voici ce que j'y ai mis :
#!/bin/sh exec matchbox-window-manager -use_titlebar yes -use_cursor no & xfce4-session
Un autre problème à régler est la disparition de matchbox-keyboard-toggle qui est supprimé avec zhone-session. Il est facilement remplacé en installant le package openmoko-panel-plugin qui inclut une icône pour activer / désactiver le clavier via le panel XFCE4. L'activation automatique de openmoko-panel-plugin se fait via le fichier /etc/xdg/xfce4-session/xfce4-session.rc :
[Failsafe Session] Count=6 ... Client5_Command=openmoko-panel-plugin Client5_PerScreen=False
Kernel debian
En scrutant les archives d'octobre 2008 de la mailing list pkg-fso-maint (équipe de maintenance des packages debian pour FSO) j'ai découvert que Le kernel openmoko est maintenant disponible sous forme de package, de la même façon que les autres kernel debian.
J'ai ainsi pu mettre à jour mon FR avec :
# apt-get install apt-get install linux-image-2.6.24-openmoko-gta02
23/10/2008
Sephora - Une nouvelle application de configuration
Une nouvelle application de configuration a vu le jour récemment pour les FR qui tournent sous debian avec xfce4. Il s'agit de Sephora. Cette appli en version 0.2alpha3 à ce jour permet de gérer au sein d'une même interface : GSM, GPRS, Wifi, Bluetooth, GPS, USB et l'alimentation. Pour chacun de ces items, Sephora présente le status (par exemple niveau de charge de la batterie) et permet d'agir sur la configuration (par exemple forcer le mode fast charge à 1000mA).
Pour les screenshots c'est par là.
J'ai bien entendu installé la chose sur mon FR et je peux d'ores et déjà dire que ça va me permettre de faire du ménage dans mes scripts !
Redémarrer le GSM sans rebooter
Le GSM plante relativement souvent sur mon FR. Au moins une fois pas jour.
Jusqu'à présent je m'en sortais en rebootant. Connaissant le temps de boot du FR, c'est long...
J'ai maintenant une meilleure méthode :
# invoke-rc.d zhone-session stop # invoke-rc.d dbus restart # invoke-rc.d zhone-session start
A l'issue de cette séquence il faut ressaisir son code PIN.
21/10/2008
Mode silencieux
debian-gta02:~# ls /etc/freesmartphone/opreferences/conf/phone/ default.yaml silent.yaml debian-gta02:~# cat /etc/freesmartphone/opreferences/conf/phone/default.yaml ring-tone: "<ma sonnerie préférée>.mp3" ring-volume: 10 message-tone: "notify_message.mp3" message-volume: 10 debian-gta02:~# cat /etc/freesmartphone/opreferences/conf/phone/silent.yaml ring-tone: "" ring-volume: 0
Remarques :
- <ma sonnerie préférée>.mp3 doit se trouver dans le répertoire /usr/share/openmoko/scenarios/
- Le paramètre ring-volume est sans effet à l'heure actuelle (FSO3).
20/10/2008
Menu u-boot facile
Le menu u-boot peut être personnalisé pour gérer de multiples configurations. Pour basculer d'une config à l'autre en boot par défaut, la méthode usuelle est de copier/coller la commande en question dans la variable bootcmd. A la longue c'est fatiguant.
Après quelques tatonnements, j'ai trouvé une méthode un peu plus souple :
- On définit les commandes de boot dans des variables boot_1, boot_2, ..., boot_n.
- On associe le menu_N à la commande boot_N via :
menu_N=Prompt menu N: run boot_N
- Pour la variable bootcmd :
bootcmd=run boot_${default}
- Il n'y a plus qu'à configurer la variable default pour que le boot par défaut bascule sur la commande de notre choix. Par exemple, pour booter par défaut sur boot_6 :
default=6
Configurer l'environnement u-boot
La modification de l'environnement u-boot est un peu lourde via "screen /dev/ttyACM0". En particulier dès qu'on touche à une flèche du clavier la commande en cours est perdue.
J'ai donc bricolé un petit script dans l'esprit du NeoTool qui permet de modifier tranquillement l'environnement u-boot sur le PC avant de le flasher sur le FR. Ce petit script gère en plus la sauvegarde / restauration de l'environnement.
Il est encore assez brut de fonderie. N'hésitez pas à proposer des patchs.
kernel FSO 2.6.24+r10.1
Après quelques semaines passées sur le kernel OM2008.8 du 03/09/2008 pour cause de suspend/resume non fonctionnel sur le kernel FSO, je viens de revenir à ce dernier. J'ai en effet testé avec succès une série de suspend/resume avec la dernière version en date : 2.6.24+r10.1 du 17/10/2008.

