Livre de chevet du développeur FreeBSD | ||
---|---|---|
Précédent | Chapitre 16. Ecrire des pilotes de périphériques pour FreeBSD | Suivant |
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);
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 | Sommaire | Suivant |
Ecrire des pilotes de périphériques pour FreeBSD | Niveau supérieur | Accéder au pilote d'un périphérique |
Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.
Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <[email protected]>.
Pour les questions sur cette documentation, contactez <[email protected]>.