Différences entre versions de « HotPlug »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m (ajout exemple d'environnement dans le script; noter l'utilisation en dur de /dev/sda1)
imported>SylvainBeucler
m (quelques clarifications)
Ligne 1 : Ligne 1 :
Se lance après le montage des systèmes de fixer
+
Au démarrage, se lance après!
 +
* le montage des systèmes de fichiers
 +
* après le support USB
  
Se lance après le support USB
+
Au lancement, il y a ''coldplug'', c'est à dire des événements hotplug comme on branchait tous les périphériques à ce moment-là.
  
Au lancement, 'coldplug', c'est à dire hotplug comme si les périphériques étaient branchés à ce moment-là.
+
Fournit par le paquet Debian 'hotplug', ou bien 'udev' (quelle différence?) (udev requiert noyau Linux 2.6).
  
Fournit par le paquet Debian 'hotplug', ou bien 'udev'.
+
Fichiers: cf. man 8 hotplug
  
Fichiers: cf. man 8 hotplug
+
----
  
 
Que veut dire ceci?
 
Que veut dire ceci?

Version du 27 janvier 2006 à 16:40

Au démarrage, se lance après!

  • le montage des systèmes de fichiers
  • après le support USB

Au lancement, il y a coldplug, c'est à dire des événements hotplug comme on branchait tous les périphériques à ce moment-là.

Fournit par le paquet Debian 'hotplug', ou bien 'udev' (quelle différence?) (udev requiert noyau Linux 2.6).

Fichiers: cf. man 8 hotplug


Que veut dire ceci?

/etc/hotplug/NAME/DRIVER         driver setup scripts, invoked by agents

Réponse: par exemple:

/etc/hotplug/usb/usb-storage

sera appelé si le périphérique qu'on vient de brancher utilise le module noyau 'usb_storage'

Code périphérique "mass storage device": 8/6/80

Exemple de fichier de hook: http://forums.gentoo.org/viewtopic-t-113911.html

#!/bin/bash

#create a script to undo our actions upon removal
if [ "$INTERFACE" = "8/6/80" ]; then
   if [ "$PRODUCT" = "5e3/702/33" -o "$PRODUCT" = "05e3/0702/0033" ]; then
       mount /backup
       cat <<'EOF' > $REMOVER
#!/bin/bash
umount -f /backup
EOF
       chmod a+x $REMOVER
   fi
fi

#!/bin/bash
#DEBUG
#echo "======="
#(
#    echo $0 $*
#    env
#)> /tmp/hot.txt
#echo "======="


On note qu'on doit faire directement référence, dans /etc/fstab, à un nom de périphérique (ici /dev/sda1). Ce serait mieux que hotplug nous dise lequel.

Exemple de sortie DEBUG ci-dessus:

SUBSYSTEM=usb
DEVPATH=/devices/pci0000:00/0000:00:10.2/usb3/3-2/3-2:1.0
REMOVER=/var/run/usb/%proc%bus%usb%003%002
PATH=/bin:/sbin:/usr/sbin:/usr/bin
ACTION=add
MODALIAS=usb:v05E3p0702d0033dc00dsc00dp00ic08isc06ip50
PWD=/etc/hotplug
UDEV_LOG=1
MANAGED_EVENT=1
UDEVD_EVENT=1
SHLVL=2
HOME=/
DEVICE=/proc/bus/usb/003/002
INTERFACE=8/6/80
PRODUCT=5e3/702/33
TYPE=usb
PHYSDEVBUS=usb
SEQNUM=379
_=/usr/bin/env

Voir aussi