Forum général.général Maps et scripts hotplug

Posté par  (site web personnel) .
Étiquettes : aucune
0
17
août
2004
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).
  • # bon, ...

    Posté par  (site web personnel) . É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  (site web personnel) . É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.

Suivre le flux des commentaires

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