Il pourrait arriver que lorsque vous connectez un périphérique USB du genre caméra ou disque dur externe, vous désiriez exécuter une action ou série d’actions que le gestionnaire gnome ne permet pas… La solution est d’utiliser le gestionnaire de périphériques du noyau udev pour détecter la connexion du périphérique et lancer le script de votre choix.

Tout d’abord connectez votre périphérique et exécutez la commande lsusb, ce qui devrait vous permettre de voir la liste de ceux connectés.

$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 008: ID 059f:100c LaCie, Ltd

Les informations qui nous intéressent sont le Vendor ID, 059f et le product ID, 100c. Maintenant, il suffit d’ajouter un fichier de créer un fichier de règles udev : vim /etc/udev/rules.d/90-myrules.rules.

ACTION=="add",ATTRS{idVendor}=="059f",ATTRS{idProduct}=="100c",RUN+="/usr/local/un_script.sh"

Puis redémarrez le gestionnaire udev :

$ /etc/init.d/udev restart

Et voilà, à la prochaine connexion de votre périphérique, le script sera automatiquement exécuté (en tant que root). Il ne reste qu’un problème : s’assurer que HAL n’informe pas gnome de la connexion de l’appareil pour que celui-ci ne fasse rien !

Pour cela, il faut créer un fichier vim /etc/hal/fdi/preprobe/10-ignoreDD.fdi

 
    true

Attention, le numéro de vendeur et de périphérique ne sont plus en hexadécimal, mais en valeur décimal, une petite conversion est à faire !

Enfin, redémarrez HAL :

$ /etc/init.d/hal restart

Informations complémentaires pour le fichier de règles udev :

  • Ajouter sur la ligne : SYMLINK+="boun_device". Cela créera boun_device dans le répertoire /dev. Si vous utilisez plusieurs périphériques USB, vous aurez ainsi un moyen d’accès à votre périphérique qui ne dépendra pas dans lequel vous avez branché vos appareils !
  • Dans les fichiers de règles, chaque ligne correspond à un périphérique. Si vous désirez utiliser plusieurs lignes, ajouter le caractère “\” pour continuer sur la ligne suivante.

Pour plus d’information sur udev, voir man udev !

2 commentaires

  • max (1 comments), le 27 février 2010

    Super informations… J’ai mis ça en place mais quand je connecte mon disque usb, le script se lance 1 fois puis quand il est fini il se lance 3 fois et après cela encore 1 fois… assez embetant… une idée?

  • geek85 (1 comments), le 3 mars 2010

    merci beaucoup, je me suis servi de cet article pour relancer mon daemon g15daemon lorsque je remet mon clavier g15!

Poster un commentaire

Subscribe without commenting