16.2. L'éditeur de liens dynamiques du noyau - KLD
Précédent | Chapitre 16. Ecrire des pilotes de périphériques pour FreeBSD | Suivant

## 16.2. L'éditeur de liens dynamiques du noyau - KLD

L'interface kld permet aux administrateurs système d'ajouter et d'enlever dynamiquement une fonctionnalité à un système en marche. Cela permet aux développeurs de pilote de périphérique de charger leurs nouveaux changements dans le noyau en fonctionnement sans redémarrer constamment pour tester ces derniers.

L'interface kld est utilisé au travers des commandes d'administrateur suivantes :

- `kldload` - charge un nouveau module dans le noyau
- `kldunload` - décharge un module du noyau
- `kldstat` - liste les modules chargés dans le noyau

Structure squelettique d'un module de noyau

/* * Squelette KLD * Inspiré de l'article d'Andrew Reiter paru sur Daemonnews */ #include <sys/types.h> #include <sys/module.h> #include <sys/systm.h> /* uprintf */ #include <sys/errno.h> #include <sys/param.h> /* defines utilise dans kernel.h */ #include <sys/kernel.h> /* types utilise dans le module d'initialisation */ /* * charge le gestionnaire quit traite du chargement et déchargement d'un KLD. */ static int skel_loader(struct module *m, int what, void *arg) { int err = 0; switch (what) { case MOD_LOAD: /* kldload */ uprintf("Skeleton KLD charge.\n"); break; case MOD_UNLOAD: uprintf("Skeleton KLD decharge.\n"); break; default: err = EINVAL; break; } return(err); } /* Declare ce module au reste du noyau */ DECLARE_MODULE(skeleton, skel_loader, SI_SUB_KLD, SI_ORDER_ANY);

### 16.2.1. Makefile

FreeBSD fournit un fichier d'inclusion "makefile" que vous pouvez utiliser pour compiler rapidement votre ajout au noyau.

SRCS=skeleton.c KMOD=skeleton .include <bsd.kmod.mk>

Lancer simplement la commande `make` avec ce fichier Makefile créera un fichier `skeleton.ko` qui peut être chargé dans votre système en tapant :

`#` kldload -v ./skeleton.ko

Précédent | Niveau supérieur | Suivant
Chapitre 16. Ecrire des pilotes de périphériques pour FreeBSD | Sommaire | 16.3. Accéder au pilote d'un périphérique

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.