Si vous voulez lancer automatiquement un programme lorque vous branchez un périphérique ou que vous voulez modifier les noms des périphériques, c'est dans les règes UDEV qu'il faut « tripatouiller ».
Exemple 1 - autocalibration d’un joystick
créer le fichier /etc/udev/rules.d/10-input.rules qui contient :
Code : Tout sélectionner
SUBSYSTEM=="input", ACTION=="add", ATTRS{name}=="SAITEK CYBORG 3D USB", RUN+="/home/bin/jscal-cyborg"
Code : Tout sélectionner
udevadm info -a -n /dev/input/js0
Exemple 2 - déclenchement d’une sauvegarde lors du branchement d’un disque usb externe
créer le fichier /etc/udev/rules.d/10-usb.rules qui contient :
Code : Tout sélectionner
SUBSYSTEM=="block", ACTION=="add", ATTRS{idVendor}=="0951", ATTRS{idProduct}=="0002", ATTRS{serial}=="001D60B16392AC61A5680012",\
RUN+="/home/bin/mon_script_de_backup"
Code : Tout sélectionner
SUBSYSTEM=="drm", ACTION=="change", PROGRAM=="/usr/bin/cat /sys/class/drm/card0-HDMI-A-1/status",\
RESULT=="connected", RUN+="/usr/bin/ln -s /etc/asound.hdmi /etc/asound.conf"
SUBSYSTEM=="drm", ACTION=="change", PROGRAM=="/usr/bin/cat /sys/class/drm/card0-HDMI-A-1/status",\
RESULT=="disconnected", RUN+="/usr/bin/rm /etc/asound.conf"
Code : Tout sélectionner
pcm.!default {
type hw
card 0
device 3
}
Exemple 4 - forcer les noms des cartes réseau
créer un fichier /etc/udev/rules.d/10-network.rules qui contient :
Code : Tout sélectionner
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:9a:f5:d3:22:ba", NAME="net0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="68:5f:41:95:2f:7e", NAME="wifi0"
Une fois la règle crée on peut la charger en faisant un :
Code : Tout sélectionner
sudo udevadm control --reload-rules
https://wiki.archlinux.org/index.php/Udev
http://reactivated.net/writing_udev_rules.html
et les pages de man d'udev