Ceci est une ancienne révision du document !
Gestion des modules du noyau avec kld sous FreeBSD
La gestion des modules chargables du noyau FreeBSD s'effectue avec la suite d'outils kld (Kernel LoaDer) qui a été intégrée sous FreeBSD 3.0. Cette suite comprend :
- kldload qui permet de charger des modules au noyau.
- kldunload au contraire décharge les modules souhaités.
- kldstat permet de lister les modules actuellement chargés dans le noyau.
- kldxref sert quand à lui à créer et mettre à jour l'index des modules noyau dans
/boot/kernel/
ou/boot/modules/
(intégré sous FreeBSD 5.0). Le fichier d'index se nommelinker.hints
.
Concernant les fichiers ou répertoires des modules, vous trouverez les modules fournis avec le noyau dans le répertoire /boot/kernel/
et pour les modules installés manuellement c'est dans /boot/modules/
, les fichiers de modules finissent par l'extension .ko
pour Kernel Object. Le noyau en lui même est /boot/kernel/kernel
.
Utilisation de la suite d'outils kld
Pour faciliter la rédaction de ce tutoriel on va utiliser l'utilitaire d'administration sudo.
Pour charger un module :
sudo kldload modules.ko
Pour décharger un module :
sudo kldunload modules.ko
.ko
d'un module. Si vous n'avez pas de complétion complète avec votre shell vous pouvez indiquer le chemin du module, exemple : sudo kldload /boot/kernel/linux.ko
Pour lister les modules actuellement chargés dans le noyau :
kldstat
Charger des modules de manière permanente
Pour charger des modules de manière permanente il faut soit les renseigner dans le fichier /boot/loader.conf
ou /etc/rc.conf
, vous pouvez également les charger de façon individuel ou par petit groupe de modules dans les répertoires /boot/loader.conf.d/
et /etc/rc.conf.d/
.
Ajouter module dans /boot/loader.conf
:
sudo echo nom_module_load="YES" >> /boot/loader.conf
/etc/rc.conf
, le module est chargé directement au boot de FreeBSD sans lecture préalable de /etc/rc.conf
.
Ajouter module dans /etc/rc.conf
:
sudo echo kld_list="module" >> /etc/rc.conf
pour ajouter d'autres modules dans /etc/rc.conf
, vous avez la possibilité d'en ajouter plusieurs sur un ligne (séparés par un espace) :
sudo echo kld_list+="module module2" >> /etc/rc.conf