Frédéric BOITEUX, lundi 14 mai 2007, 13:31:04 CEST > > Le ven 11 mai 2007 23:27:07 CEST, fred <[EMAIL PROTECTED]> a écrit : > > > > > Bonsoir, > > Salut,
’soir, > > > > udev étant chargé de créer les devices à la volée (et de charger les > > modules adéquats, j'imagine) lorsque l'on branche un device donné, je me > > demande comment faire l'inverse, à savoir décharger les sus-dits modules > > lorsque > > l'on débranche le sus-dit device. > Mauvaise supposition, udev ne [dé]charge pas de modules (lorsqu'on > voudrait accéder à un device), voir : > http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ Je pense que Fred imaginait que udev, en plus de créer les dev, chargeait les modules au branchement d’un périphérique. Ce n’est pas le cas : c’est le noyau qui le fait à partir de la table des identifiants exportée par chaque module (ces tables se retrouvent dans les fichiers modules.*map). Donc, on branche le bidule, le noyau le voit, charge le module, envoie un événement « hotplug » à udev, qui crée le /dev/machin. Pour rmmoder le module au débranchement du bidule, il suffirait d’intercepter l’hypothétique événement hotplug de débranchement et d’y réagir en faisant un rmmod du module. Il reste à voir udev pour vérifier l’existence d’un tel événement et savoir comment y réagir. Sinon, avec un noyau 2.4, il y a le drapeau « autoclean » qui indique au noyau que le module peut être déchargé automatiquement après un certain temps d’inactivité (env. 1 min), et aussi par la commande rmmod --all. Mais bon, si ça a été retiré du 2.6... (Et il semblerait même qu’il y ai des raisons de ne pas permettre de décharger des modules du tout.) Au fait, pourquoi veux-tu décharger des modules ? -- Sylvain Sauvage

