Table des matières

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 :

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
Vous n'êtes pas obligé de renseigner l'extension .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
Se charge plus vite que dans /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 une ligne (séparés par un espace) :

sudo echo kld_list+="module module2" >> /etc/rc.conf