Relation entre udev et hotplug


#1

Bonjour,

J’ai une petite question à vous soumettre. J’ai fait pas mal de recherches mais jusqu’à présent, je n’ai pas trouvé de réponse.
Voici ma compréhension des choses, corrigez moi si je me trompe.
udev est donc un successeur de devfs qui permet de créer la hiérarchie des devices présents dans le pseudo file system /dev.
udev utilise les évenements envoyés par le kernel et crée l’entrée ad hoc dans /dev.
Il y a déjà quelque temps, lors du passage à udev, le package hotplug a été enlevé.
J’avais lu par ailleurs que l’on trouvait dans /proc/sys/kernel/hotplug la commande qui était exécuté lorsqu’un nouveau device était connecté. Dans la plupart des distribs, on y trouve /sbin/hotplug. Chez moi, ce fichier est vide.
D’où ma question, comment est géré le hotplug sous ma debian ?
Ca fonctionne très bien mais j’aimerais comprendre comment.

Merci d’avance pour vos lumières.

François


#2

slt,

UDEV, apporte comme avantages (entre autres) :
la gestion automatique du répertoire /dev
la possibilité de nommer soi-même ses périphériques
UDEV s’applique à l’ensemble de la machine et ses périphériques mais prend un intérêt particulier dès que l’on utilise des périphériques mobiles qui se branchent à chaud via port USB et FireWire.

Que se passe-t-il au branchement d’une clé USB ?

  1. le noyau appelle /sbin/hotplug qui exécute un à un les utilitaires contenus dans /etc/hotplug.d/default
  2. /etc/hotplug.d/default/10-udev.hotplug crée dynamiquement les fichiers de périphériques dont vous avez besoin pour accéder à la clé USB (/dev/sda par exemple) et au(x) volume(s) de données qu’elle contient (/dev/sda1 par exemple)

kernel.org/pub/linux/utils/k … /udev.html


#3

Stonfi,

Merci pour ton aide, mais les choses sont un peu plus compliquées que cela.
Udev, dans ses dernières versions, remplace hotplug.
En fait, lorsque tu insères un périph dans ton système, le kernel exécute la commande qui se trouve dans /proc/sys/kernel/hotplug
Cette commande est généralement /sbin/hotplug mais sur les kernels récents (de 2.6.10à 2.6.14), /sbin/udevsend
Les kernels à partie de 2.6.15 n’ont besoin ni de l’un ni de l’autre

[quote]“Kernels >= 2.6.15 can directly read udev events via a netlink socket.
So there is no need anymore to run udevsend for every event.”[/quote]

Cool, je me suis répondu à ma propre question :smiley:

Merci à J. Warnier pour son aide

François


#4

Meerci de ma part aussi.