Décembre 2011 Archives

2011-12-31 14:50

Vim et les dictionnaires en Français

logo vim

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 :

setlocal spelllang=fr

Il suffit maintenant de rentrer la commande suivante dans Vim :

:set spell

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 :

Alerte : Liste de mots "fr.utf-8.spl" ou "fr.ascii.spl" introuvable

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


Posted by St3rk | Permanent link

2011-12-10 23:28

Installer TinyOS sous Debian Squeeze

logo TinyOS

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 :

# TinyOS
deb http://tinyprod.net/debian-dev squeeze main

Mettre à jour les dépôts et installer les paquets nécessaires :

# aptitude update
# 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 :

$ mkdir ~/local
$ 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 PATH=$HOME/local/tinyos-2.x/local/bin:$PATH
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 :

$ source ~/.bashrc

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 :

$ cd $TOSROOT/apps/Blink

Puis testons la compilation pour les TelosB :

$ make telosb

Si aucune erreur ne s'est produite, on obtient la dernière ligne devrait être la suivante :

writing TOS image

Enfin la compilation pour TOSSIM :

$ make micaz sim

La dernière ligne doit être la suivante :

*** Successfully built micaz TOSSIM library.

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.


Posted by St3rk | Permanent link

2011-12-08 18:55

Le Sagem Spiga sous Debian Squeeze (partie 1)

photo spiga

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 :

# modprobe libertas_sdio

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 :

xinput set-button-map 12 12 12 12 4 5 6 7 8 9 10 11 12

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 :

xmodmap -e "keycode 133 = Pointer_Button1 Pointer_Button3"

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.


Posted by St3rk | Permanent link