0% ont trouvé ce document utile (0 vote)
38 vues12 pages

Guide complet sur le système udev

Le document décrit le système udev qui gère dynamiquement les périphériques sous Linux. Il contient les composants d'udev, les fichiers de configuration et de règles, les opérateurs et variables utilisés, ainsi que des commandes comme udevadm pour contrôler et interroger udev.

Transféré par

mormorromrom
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
38 vues12 pages

Guide complet sur le système udev

Le document décrit le système udev qui gère dynamiquement les périphériques sous Linux. Il contient les composants d'udev, les fichiers de configuration et de règles, les opérateurs et variables utilisés, ainsi que des commandes comme udevadm pour contrôler et interroger udev.

Transféré par

mormorromrom
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

udev

Le système udev

 udev est un système dynamique qui fait que le répertoire /dev ne contient
que les noms des périphériques physiquement présents.
Les composants du système udev

 Le démon udevd
 Il est normalement démarré et arrêté par le script /etc/init.d/udev.
 $ ps -e | grep udev
 Le pseudo système de fichiers sysfs
 Le système udev trouve les informations dont il a besoin dans
l'arborescence /sys
Les fichiers de configuration

 se trouvent dans le répertoire /etc/udev. Le principal fichier de


configuration est /etc/udev/udev.conf.
 contient la configuration de base du système udev.
 contient des définitions de variables : variable=valeur.
 Une variable peut ne pas être définie s'il existe une valeur par défaut.
Les fichiers de règles

 définissent des règles qu'il faut appliquer à la création de certains fichiers


périphériques.
 chaque ligne d'un fichier contient au moins un couple clé valeur
 Il existe deux types de clés : les clés comparatives et les clés de définition.
 Les clés comparatives expriment une condition et les clés de définition une
action.
Les opérateurs

Les clés comparatives utilisent les opérateurs :


 == pour tester l'égalité.
 != pour tester la différence.
Les clés de définition utilisent les opérateurs :
 = pour affecter une valeur à une clé. La clé est réinitialisée à la nouvelle valeur.
La(es)
 ancienne(s) valeur(s) de la clé est(sont) remplacée(s).
 += pour ajouter une valeur à une clé. Une clé peut donc contenir une liste de
valeurs.
 := pour affecter une valeur à une clé mais aussi en interdire la modification par
des règles qui seraient exécutées après.
Quelques clés

 ACTION Définit l'évènement.


 DEVPATH Définit le chemin d'accès au périphérique dans sysfs..
 ENV{Variable} La variable d'environnement Variable.
 KERNEL Définit le nom du périphérique attribué par le noyau.
 NAME Définit le nom du fichier périphérique à créer dans /dev.
 SUBSYSTEM Définit le type de périphérique (ie. block, character,usb...)
 DRIVER Définit le nom du pilote (« driver ») du périphérique.
 PROGRAM Nom d'un programme externe à exécuter.
 RUN Nom d'un progamme supplémentaire à exécuter.
 SYMLINK Nom(s) des liens symboliques à créer pour ce périphérique.
 OWNER, GROUP, MODE Le propriétaire, le groupe et les droits du périphérique.
L'utilisation des jokers dans les valeurs.

 Il est possible d'utiliser les jokers bien connus du shell : *, ? et [] pour donner
un modèle de chaîne de caractères.
 Exple:
$ more 85-hdparm.rules
ACTION=="add", SUBSYSTEM=="block", KERNEL=="[sh]d[a-z]",
\RUN+="/lib/udev/hdparm"
 Dans la clause KERNEL=="[sh]d[a-z]" le membre de droite signifie sda à sdz
ou hda à hdz.
 Dans la clause NAME=="?*" le membre de droite signifie au moins un
caractère.
Quelques variables prédéfinies utiles
dans les règles.
 Ces varaibles sont exprimées sous la forme %k ou $variable.
 %k, $kernel Le nom noyau du périphérqiue.
 %n, $number Le numéro du périphérique, ainsi %n vaut 3 pour sda3.
 $driver Le nom du pilote (« driver ») du périphérique.
 %M Le majeur du périphérique.
 %m Le mineur du périphérique.
 %E{variable}, La valeur de la variable d’environnement « variable ».
 $e{variable}
La commande udevadm

 permet de contrôler et d'interroger le système udev


udevadm commande [options] [arguments]
 La commande indique quelle action udevadm doit exécuter.
 Certaines commandes ont des options et des arguments.
 Les commandes sont :
 udevadm info [options]
 udevadm trigger [options]
 udevadm settle [options]
 udevadm control [options] instruction
 udevadm monitor [options]
 udevadm test [options] devpath
 udevadm version
 udevadm help
udevadm

 Les options des commandes sont de la forme –option=valeur


 L'exemple qui suit affiche toutes (« query=all ») les information du disque
sda (--name=sda »).
 $ udevadm info –query=all --name=sda
 surveiller les évènements reçus et traités par udev
 #udevadm monitor
Créer ses propres règles

 Les noms des fichiers de règle sont de la forme nn-description.rules. ils sont
parcourus et exécuter par udev dans l'ordre des préfixes numériques nn.
 Ils se trouvent sous /etc/udev/rules.d/
 Pour construire la règle, commençons par visualiser les attributs du
périphérique.
 # udevadm info --query=all –name=sdb1 # ou udevadm info --query=all –
path=/block/sdb/sdb1
 # cat 99-reglesutilisateurs.rules
 ENV{ID_FS_LABEL}=="MA_CLE",SYMLINK+="macle",ENV{GENERATED}="1"
 Pour tester
 # udevadm test /block/sdb/sdb1

Vous aimerez peut-être aussi