Quitter le forum et retourner au site

Règles UDEV - quelques exemples pratiques

Vous avez un didactiel ou une astuce particulière concernant un logiciel, partagez votre expérience dans cette partie.
Avatar de l’utilisateur
juice
Messages : 247
Inscription : dim. 29 juin 2008, 10:06
Distribution : Archlinux
Niveau : Confirmé
Localisation : Oberentzen

Règles UDEV - quelques exemples pratiques

Message par juice »

Bonjour à tous,

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"
le nom du périphérique et autres attributs peuvent être trouvés en faisant un :

Code : Tout sélectionner

udevadm info -a -n /dev/input/js0
ATTRS{name}=="SAITEK CYBORG 3D USB"


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"
Exemple 3 - autoconfiguration du son de la sortie HDMI

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"
ici, en fonction du résultat (clé RESULT) de la commande (clé PROGRAM) on exécute les actions désirées : le changement du fichier de configuration de alsa.

Code : Tout sélectionner

pcm.!default {
    type hw
    card 0
    device 3
}
avec /etc/asound.hdmi à adapter en fonction de votre carte son (faire un aplay -l pour lister les périphériques)


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"
C'est puls parlant que les nouveaux noms du genre enp5s0 etc.

Une fois la règle crée on peut la charger en faisant un :

Code : Tout sélectionner

sudo udevadm control --reload-rules
Plus d'infos sur :
https://wiki.archlinux.org/index.php/Udev
http://reactivated.net/writing_udev_rules.html

et les pages de man d'udev
Répondre