Re: udev et modules...
Frédéric BOITEUX, lundi 14 mai 2007, 13:31:04 CEST
>
> Le ven 11 mai 2007 23:27:07 CEST, fred <fredantispam@free.fr> 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
Reply to: