Modules du noyau (KLD)

De Diablotins.org.


Image:brush.png

Sommaire

Synopsis

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.

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 /boot/defaults/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 :