Utilisateur:Pini/2008
Sommaire
|
Archive notes 2008
29/12/2008
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
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
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
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/2009
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.
Update 04/10/2009
Ce script est avantageusement remplacé par les commandes fw_printenv et fw_setenv du package uboot-envtools, à utiliser directement sur le FR.
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.