Décembre 2011 Archives
2011-12-31 14:50
Vim et les dictionnaires en Français

Bon, je dois me confesser. J'hésite actuellement à passer de Vim (l'éditeur de texte, pas l'expert en ventilation) à Emacs, pour profiter de Org Mode. J'utilise pour l'instant Taskwarrior, qui semble beaucoup moins ergonomique.
En attendant de me faire pousser des doigts pour enchainer avec fluidité les "ctrl + c", "ctrl + n", "ctrl + machin", "ctrl + truc", et aussi parce que Vim c'est cool, je repousse le moment où je devrai tout réapprendre.
Et parmi toutes les features super cool, il y a la correction orthographique. Ajouter dans le fichier ~/.vimrc la ligne :
Il suffit maintenant de rentrer la commande suivante dans Vim :
Et hop, tous les mots incorrects sont surlignés en rouge.
Sauf que parfois, lors de la première utilisation, au lieu de télécharger les dictionnaires automatiquement Vim affiche beau message d'erreur :
Pas grave, il suffit de les télécharger à la main :
# cd /usr/share/vim/vim73/spell/ # wget http://ftp.vim.org/pub/vim/runtime/spell/fr.utf-8.spl # wget http://ftp.vim.org/pub/vim/runtime/spell/fr.utf-8.sug
2011-12-10 23:28
Installer TinyOS sous Debian Squeeze

Plus un pense bête qu'un réel article, voici comment installer TinyOS et ses différents outils pour travailler sur des cartes TelosB. On installera également les outils pour les cartes MICAz, car c'est la seule architecture supportée par le simulateur TOSSIM.
Ajouter le dépôt suivant dans /etc/apt/sources.list :
deb http://tinyprod.net/debian-dev squeeze main
Mettre à jour les dépôts et installer les paquets nécessaires :
# aptitude install subversion automake gcc g++ python-dev nesc msp430-tinyos avr-tinyos
Récupérer les derniers outils sur le dépôt subversion, et les compiler :
$ cd ~/local
$ svn checkout http://tinyos-main.googlecode.com/svn/trunk/ tinyos-2.x
$ cd ~/local/tinyos-2.x/tools/
$ ./Bootstrap
$ ./configure --prefix=$HOME/local/tinyos-2.x/local
$ make
$ make install
Ajouter les variables d'environnement qui vont bien à la fin du fichier ~/.bashrc :
export TOSROOT=$HOME/local/tinyos-2.x
export TOSDIR=$TOSROOT/tos
export MAKERULES=$TOSROOT/support/make/Makerules
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.
export PYTHONPATH=.:$TOSROOT/support/sdk/python:$PYTHONPATH
export PATH=$TOSROOT/support/sdk/c:$PATH
Sourcer le ~/.bashrc afin de prendre en compte immédiatement ces variables d'environnement :
Tester que tout s'est bien déroulé, et que la compilation se déroule correctement. Commençons par nous rendre dans un répertoire contenant les sources d'un programme :
Puis testons la compilation pour les TelosB :
Si aucune erreur ne s'est produite, on obtient la dernière ligne devrait être la suivante :
Enfin la compilation pour TOSSIM :
La dernière ligne doit être la suivante :
Cool, tout s'est bien déroulé ;-)
À noter que cette installation ne sera utilisable que par l'utilisateur courant, mais elle a le mérite de ne pas "pourrir" le système.
2011-12-08 18:55
Le Sagem Spiga sous Debian Squeeze (partie 1)
J'ai acquis récemment un Sagem Spiga. J'en rêvais à sa sortie, mais les 500€ demandés me paraissaient excessifs par rapport au matériel embarqué. J'aurai donc attendu deux ans, et l'offre vente privée, pour le trouver à un prix raisonnable. Et je suis content de mon achat : la finition est correcte, l'autonomie comparable à celle annoncée, et il rentre bien dans ma poche de jean. Même mon 12" parait énorme à côté :-)
Étant donné le matériel exotique de cet ordinateur (Intel GMA500 pour le GPU, Marvell 8686 pour le wifi), j'avais un peu peur de côté "pochette surprise". Voici donc un récapitulatif de ce qui fonctionne aujourd'hui sous Debian Squeeze, et quelques astuces sur la manière d'y parvenir.
Choisir le périphérique sur lequel booter
C'est tout bête, mais j'ai mis un moment avant de trouver comment faire, la manipulation n'étant pas expliqué dans la notice. La combinaison magique est "Fn + o", soit F11. On peut ensuite booter sur un périphérique USB (clef USB/disque dur/lecteur de CD-rom externe).
Faire fonctionner le WIFI
Première étape, obtenir une connexion internet. Étant donné l'absence de port RJ45, il n'y a pas d'alternative : le WIFI doit fonctionner. Heureusement, un pilote (assez buggé) existe. L'utilisation d'un gestionnaire de connexion (comme wicd ou network-manager) entraîne un crash du système. Il faudra donc utiliser Wireless Tools, et éventuellement wpa_supplicant.
L'installation est assez facile. Commençons par télécharger l'archive dont on a besoin sur le site de marvell. Pour cela, sélectionnons la plate-forme "Linux 2.6 - fedora", puis le driver nommé "SD-8686-LINUX26-SYSKT-9.70.3.p24-26409.P45-GPL".
Une fois cette archive extraite, on remarque qu'elle en contient deux autres, dont une nommée "SD-8686-FEDORA26FC6-SYSKT-GPL-9.70.3.p24-26409.P45.tar". C'est cette dernière qui nous sera utile, et qu'il faut de nouveau extraire. On obtient alors un dossier "FwImage" contenant deux fichier : helper_sd.bin et sd8686.bin. Renommer helper_sd.bin en sd8686_helper.bin. Copier ensuite sd8686.bin et sd8686_helper.bin dans le dossier /lib/firmware du spiga.
Le module doit maintenant être chargé, à l'aide de la commande suivante :
On devrait voir apparaître une nouvelle interface nommé wlan0 :
# iwconfig
lo no wireless extensions.
pan0 no wireless extensions.
wlan0 IEEE 802.11b/g ESSID:""
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power=15 dBm
Retry short limit:8 RTS thr=2347 B Fragment thr=2346 B
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
On peut démarrer l'interface et vérifier son fonctionnement :
# ifconfig wlan0 up
# iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 00:03:52:xx:xx:xx
ESSID:"Auversup sans fil"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=41/100 Signal level=-89 dBm Noise level=-96 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Cell 02 - Address: 00:03:52:xx:xx:xx
ESSID:"eduroam"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=41/100 Signal level=-89 dBm Noise level=-96 dBm
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : 802.1x
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : 802.1x
On voit ici que notre carte détecte deux hotspot. Pour se connecter à "Auversup sans fil", nous allons utiliser les outils iwconfig et dhcpcd :
# iwconfig wlan0 essid "Auversup sans fil" # dhcpcd wlan0
Dans le cas où on souhaite se connecter à un réseau crypté par WPA, il faudra utiliser l'outils wpa_supplicant. Les gestionnaires de connexion, bien plus ergonomiques, font malheureusement crasher le système.
Configurer l'écran et le clavier
Le wifi est maintenant fonctionnel, mais il reste deux problèmes à régler rapidement :
- l'écran tactile est mal supporté, chaque contact est interprété comme un clic. Chaque mouvement du curseur entraîne donc des "drag and drop".
- la touche "m" est mal reconnue, et le mapping est plus que perfectible
Désactiver le clic au contact de l'écran
On utilise xinput, afin de remapper le clic gauche de l'écran tactile (reconnu comme une souris) sur une action qui n'existe pas :
Après avoir exécuté cette commande, nous n'avons plus de moyen de cliquer. Nous allons donc remapper une touche du clavier comme étant le clic gauche :
Le touche "windows" fera maintenant office de clic gauche, et la combinaison "shift + windows" de clic droit. Mais pour cela, il faut activer l'émulation du clic grâce au clavier avec les commandes suivantes :
xkbset m xkbset exp =m
Remapper les autres touches
On peut ensuite remapper quelques touches :
xmodmap -e "keycode 58 = m M m M exclam" xmodmap -e "keycode 47 = comma question comma question parenright" xmodmap -e "keycode 59 = semicolon period semicolon period bracketright" xmodmap -e "keycode 46 = l L l L dollar" xmodmap -e "keycode 44 = j J j J less" xmodmap -e "keycode 45 = k K k K greater"
Ces lignes permettent :
- de remapper "m" sur la bonne touche, et d'attribuer "!" à la combinaison "alt-gr + m"
- de ramapper "," "?" et ")" sur la touche "$"
- d'obtenir "$" avec la combinaison de touches "alt-gr + l"
- d'obtenir "<" avec la combinaison de touches "alt-gr + j"
- d'obtenir ">" avec la combinaison de touches "alt-gr + k"
La touche reconnue comme alt-gr est celle comportant une petite maison. Ces réglages peuvent bien entendu être modifiés comme bon vous semble.
MAJ : le pilote eGalax semble maintenant fonctionner correctement. On peut le trouver ici.
Il suffit de le décompresser et d'exécuter setup.sh. La calibration de fait ensuite à l'aide de l'utilitaire eGalaxTouch.