Modules du noyau (KLD)

De Diablotins.org.


KLD, Modules externes au noyau
Image:brush.png
Bien que FreeBSD soit un noyau dit «monolithique», il est possible d'en charger et décharger certains modules à la volée, plutôt que de les déclarer dans le noyau lors de sa configuration.



Sommaire

Description

Ces modules se retrouvent dans /boot/kernel/ et portent l'extension ko (Kernel object ?).
Une liste des modules qu'il est possible de charger est disponible dans loader.conf(5), fichier consulté par le gestionnaire de démarrage.

Utilisation

La commande kldload(8) vous permet de charger un module:

kldload snd_ich        Charge le module de son de Intel.

Inversement la commande kldunload(8) le décharge.

kldunload snd_ich

Listez les modules déjà en mémoire avec kldstat(8):

david:~>kldstat
Id Refs Address    Size     Name
 1   15 0xc0400000 8e4474   kernel
 2    1 0xc0ce5000 29b88    linux.ko
 3    1 0xc0d0f000 1b1a8    snd_hda.ko
 4    2 0xc0d2b000 4a57c    sound.ko
 5    1 0xc0d76000 99026c   nvidia.ko
 6    1 0xc1707000 5314     sem.ko
 7    1 0xc170d000 6a48c    acpi.ko
 8    1 0xc6109000 2000     dragon_saver.ko

Le chargement et déchargement des modules n'est possible que si le niveau de sécurité est de niveau -1 ou 0, niveau réglable au travers de la variable sysctl «kern.securelevel».

Construction

Les modules sont construits avec le noyau.
Certaines options de make, directement ou via make.conf, permettent de le contrôler:

  • MODULES_OVERRIDE: Liste de modules à construire.
  • NO_MODULES: Ne construite aucun module.
  • PORTS_MODULES: Liste de ports à construire avec le noyau.
  • WITHOUT_MODULES: Liste de modules à exclure.

En savoir plus

Writing device drivers.

Projets :