udev
100%

Périphériques · Leçon 5

udev

Découvrez comment udev traite les événements de périphériques du noyau pour appliquer règles, permissions et liens persistants.

Le noyau Linux signale à l'espace utilisateur les changements de périphériques par des uevents. Sur de nombreuses distributions actuelles, systemd-udevd traite ces événements avec des règles udev et une base de périphériques. Avec le devtmpfs alimenté par le noyau, ce mécanisme produit les propriétaires, permissions, propriétés et liens symboliques visibles autour de /dev.

De l'événement du noyau à la politique des périphériques

Lorsqu'un périphérique est ajouté, modifié, déplacé ou retiré, udev peut :

  • lire ses attributs sysfs et les propriétés de l'événement ;
  • appliquer une politique de propriétaire, groupe et mode à son nœud ;
  • ajouter des liens stables comme /dev/disk/by-id/... ;
  • étiqueter le périphérique pour d'autres services ;
  • lancer des traitements auxiliaires précisément délimités.

Le noyau reste responsable du périphérique réel et de son pilote. Supprimer un nœud de /dev ne retire pas physiquement le matériel, et créer un nœud avec mknod ne fait ni apparaître un matériel non pris en charge ni associer un pilote.

Qu'est-ce qui déclenche normalement le traitement udev lors d'un changement de périphérique ?

Emplacements et priorité des règles

Les règles se trouvent couramment dans :

  • /usr/lib/udev/rules.d/ pour les règles des fournisseurs ou des paquets ;
  • /run/udev/rules.d/ pour les règles d'exécution volatiles ;
  • /etc/udev/rules.d/ pour la politique locale de l'administrateur.

Les fichiers sont traités dans l'ordre lexical de leur nom ; selon l'implémentation installée, un fichier de même nom dans un répertoire prioritaire remplace la version de priorité inférieure. Une règle locale doit porter un nom choisi et correspondre à des propriétés stables plutôt qu'à des noms d'énumération.

Une règle peut toucher tous les périphériques correspondants : testez soigneusement sa portée. Ne modifiez pas directement les règles fournies par un paquet lorsqu'une surcharge ou une règle locale supplémentaire convient.

Quel répertoire est destiné aux règles udev locales et persistantes de l'administrateur ?

Inspecter un périphérique avec `udevadm`

Interrogez les propriétés udev d'un nœud existant :

$ udevadm info --query=all --name=/dev/sda

Utilisez un nœud présent sur le système actuel. udevadm info --attribute-walk --name=... affiche les attributs le long de la chaîne de parents sysfs, ce qui aide à construire une règle. udevadm monitor --kernel --udev --property observe les événements bruts et traités ; sa sortie peut exposer des identifiants, qu'il faut manipuler avec prudence.

Que demande udevadm info --query=all --name=/dev/sda ?

Appliquer avec soin les changements de règles

Le rechargement des fichiers de règles modifie le traitement des futurs événements ; il ne reconstruit pas automatiquement l'état de tous les périphériques existants. Le déclenchement manuel d'événements peut toucher de nombreux périphériques et services : limitez la cible et consultez la documentation de l'udevadm installé. Une commande de test peut simuler l'évaluation sans reproduire tous les effets d'un véritable événement.

Sauvegardez les règles locales, validez leur syntaxe, observez un périphérique de test connu et conservez un moyen de récupération avant de changer des permissions ou des noms. N'exécutez pas de longues tâches directement dans le traitement d'un événement udev ; déléguez-les à un service approprié.

Que modifie principalement le rechargement des règles udev ?

Leçon terminée

Vous avez terminé udev

Vous savez maintenant situer udev entre les événements du noyau et la politique des périphériques en espace utilisateur.

  • Relier les uevents et attributs sysfs à la correspondance des règles udev.

  • Distinguer les emplacements de règles des fournisseurs, d'exécution et locales.

  • Inspecter les propriétés et le flux d'événements avec udevadm.

  • Ne recharger et déclencher des règles qu'avec une portée étroite et testée.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Leçon Suivante
Retour à Périphériques