Retourner aux forums || Retourner au forum general.general

general.general : Maps et scripts hotplug

Posté par jerome (page perso, ) le 17 août 2004
0
Bonjour le bouchot,

J'essaie depuis une heure de trouver comment déclencher quelques évènements bien particuliers (et très divers) lorsque que je branche ma clé USB.
J'ai commencé à regarder du coté de hotplug : il faut que je créé une entrée dans /etc/hotplug/usb/handmap du style :
# usb module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
(source /lib/modules/$(uname -r)/modules.usbmap

Là les problèmes commencent ... Je ne vois pas ou trouver certaines infos nécessaires. En effet, match_flag n'apparait ni dans /proc/bus/usb/devices, ni dans lsusb -vv, ...

Une idée quant à la manière de procéder pour récupérer ces infos ?
(Tant qu'à faire, j'aimerai que ça fonctionne juste avec hotplug, pas avec un autre soft du genre magicdev, etc).

> Lire le message (2 commentaires, moyenne: 5,5).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

bon, ...

Posté par jerome (page perso, ) le 17/08/2004 à 15:34. (lien). Évalué à 7.

En fait, ça marche assez bien.
Pour ceux que ça pourrait intéresser, voilà comment ça se passe :
1. on branche la clé
2. on fait un "lsusb -vv" en root, on colle le tout dans un fichier,
3. on regarde les infos à récupérer à s'inspirant de /etc/hotplug/usb.handmap et le /lib/modules/version_kernel/modules.usbmap,
4. on écrit la ligne qui va bien dans /etc/hotplug/usb.usermap,
5. on écrit le script qui va bien avec et que l'on place dans /etc/hotplug/usb/

Ça devrait marcher.

Pour exemple :
lsusb donne :
idVendor 0x04bb I-O Data Device, Inc.
idProduct 0x0c01
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 5 SFF-8070i
bInterfaceProtocol 80

ce qui donne comme "map" dans /etc/hotplug/usb.usermap :
script.sh 0x0000 0x04bb 0x0c01 0x0000 0x0000 0x00 0x00 0x00 0x08 0x05 0x50 0x00000000
(notons que 80=0x50)

Voilà. Ça marche nickel.

  • [^]Re: bon, ...

    Posté par jerome (page perso, ) le 18/08/2004 à 07:39. (lien). Évalué à 4.

    Ha oui,
    J'oubliais le script minimal qui va avec ...

    #!/bin/sh
    USER='cequevousvoulez'
    # /dev/sda est créé après l'exec de ce script, donc pour
    # faire le gruik, j'attends 2 sec en arrière plan.
    (sleep && sudo -u $USER mount /mnt/cle_usb) &

    Note : Dans /etc/fstab : /dev/sda /mnt/cle_usb vfat noauto,sync,dirsync,noatime,users 0 0

    Amusez vous bien.

Revenir en haut de page || Retourner aux forums || Retourner au forum general.general