Tables des matières. - Modules Chargeables. << >> Up Title Contents

Modules Chargeables.


Quest ce quun module ?

Un module est une option (pilote de périphérique, gestionnaire de fichiers...) peu souvent utilisée dans le noyau, que l'on a retirée au moment de la compilation pour éviter qu'elle ne soit en permanence active sur le système. Cette partie que nous allons maintenant appeler module, sera intégrée ou retirée du noyau en cours d'utilisation au gré des besoins de l'utilisateur.

Pourquoi installer des modules ?

Les modules chargeables permettent en n'installant pas en permanence des pilotes peu souvent utilisés, de gagner de la mémoire vive, et la taille du noyau généré avec cette option est beaucoup plus petite. Cette méthode est très intéressante pour les noyaux complexes.

Quelles archives de modules utiliser ?

Il existe plusieurs versions d'archives de modules, elles sont toutes en rapport avec une série de noyaux. Le numéro de version de l'archive de modules doit toujours être égal ou inférieur à la version du noyau que vous utilisez. Vous trouverez ces fichiers sur tous les bons cites ftp, ou sur les compilations d'archives sur CDROM.

Comment installer les modules ?

Avant de commencer.

Compiler un nouveau noyau et valider l'option `Enable loadable module support' dans la section `Loadable module support'. Cette option permettra au noyau de charger par la suite les modules.

Pendant l'exécution de make xconfig vous devez répondre m aux options qui pourraient être compilées sous la forme de modules chargeables (par exemple: des pilotes SCSI ou de réseau, des gestionnaires de fichiers...).

Pendant l'exécution de make xconfig vous devez définir les options que vous voulez inclure dans le noyau comme "résidentes" et définir les caractéristiques que vous voulez voir compiler comme modules chargeables.

Vous choisirez généralement un ensemble minimal d'options résidentes nécessaire pour démarrer le sytème par exemple :

Le système de fichiers de votre partition racine

Un gestionnaire SCSI, mais voir ci-dessous pour la liste des modules SCSI!
Le support normal des disques durs
Le support de réseau (CONFIG_NET)
Le support TCP/IP (CONFIG_NET) mais sans gestionnaires!
Plus les options dont vous ne pouvez pas vous passer...
Le jeu de modules va constamment croissant et vous devriez être capable de choisir l'option "m" dans "make xconfig" pour les caractéristiques que le noyau actuel peut offrir comme modules chargeables.

Vous avez aussi la possibilité de créer des modules qui soient moins dépendants de la version du noyau. Cette option peut être sélectionnée durant l'exécution de "make xconfig", en validant CONFIG_MODVERSIONS, elle est très utile pour les versions "stables" du noyau, telles que les noyaux des séries 1.2 et 2.0.

Si vous avez des modules qui sont basés sur des sources qui ne sont pas inclus dans les sources officielles du noyau, vous apprécierez certainement cette option...

Voici un échantillon des modules disponibles inclus dans les sources du noyau:

* La plupart des systèmes de fichiers: minix, xiafs, msdos, umsdos, sysv, isofs, hpfs, smbfs, nfs.

* Le support SCSI de niveau intermédiaire (requis par les gestionnaires SCSI de haut et bas niveaux).

* La plupart des gestionnaires SCSI de bas niveau: (c'est-à-dire aha1542, in2000).

* Les gestionnaires SCSI de haut niveau: disque, bande, cdrom, périphériques génériques.

* La plupart des gestionnaires ethernet: (il y en a trop à nommer, veuillez voir le fichier ./Documentation/networking/net-modules.txt).

* La plupart des gestionnaires de CD ROM:

aztcd: Aztech,Orchid,Okano,Wearnes

cm206: Philips/LMS CM206

gscd: Goldstar GCDR-420

mcd, mcdx: Mitsumi LU005, FX001

optcd: Optics Storage Dolphin 8000AT

sjcd: Sanyo CDR-H94A

sbpcd: Matsushita/Panasonic CR52x, CR56x, CD200, Longshine LCS-7260, TEAC CD-55A

sonycd535: Sony CDU-531/535, CDU-510/515

* Et beaucoup de modules divers, tels que:

lp: ligne d'imprimante

binfmt_elf: chargeur elf

binfmt_java: chargeur java

isp16: interface cdrom

serial: l'interface serie (tty)

Une fois votre noyau compilé, vous devez créer les modules en faisant:

make modules

Cette commande compilera tous les modules et mettra à jour le répertoire linux/modules. Dans ce répertoire, vous trouverez alors un paquet de liens symboliques pointant sur les divers fichiers objet dans l'arborescence du noyau.

Maintenant, après que vous ayez créé tous vos modules, vous devez les installer avec la commande :

make modules_install

Ceci copiera tous les nouveaux modules vers des sous-répertoires dans "/lib/modules/version_de_noyau/", ou "version_de_noyau" est la valeur actuelle du noyau.

Aussitôt que vous avez redémarré le nouveau noyau, vous pouvez installer et retirer des modules à la demande avec les utilitaires: "insmod" et "rmmod".

Commandes pour utiliser les modules.

Les trois principales commandes sont, insmod, lsmod, et rmmod.

insmod: insère un module dans le noyau en cours d'exécution. Vous indiquez comme paramètres, le nom du module à charger, et le chemin d'accès complet au module. Par exemple, pour installer le gestionnaire de fichiers msdos, vous devez taper la commande suivante:

insmod /lib/modules/1.x.xx/fs/msdos.o [Entrée]

rmmod: quand vous aurez fini d'utiliser ce gestionnaire de fichiers, vous devrez le retirer du noyau. Vous devrez passer à cette commande comme paramètre, le nom du module, par exemple pour retirer le gestionnaire msdos tapez la commande:

rmmod msdos.o [Entrée]

Avec cette commande il n'est pas besoin d'indiquer le chemin d'accès au module à enlever.

lsmod: vous permet d'afficher la liste des modules en cours d'utilisation. Vous aurez les noms des modules, et le nombre de pages mémoires utilisées pour chaque module.

Pour les autres commandes de gestion des modules, nous vous conseillons de lire les pages du man correspondantes.

Commandes supplémentaires.

Vous devez également accéder à deux utilitaires: "modprobe" et "depmod". modprobe est un "enveloppeur" (ou extension) de "insmod".

Ces utilitaires sont (et maintiennent) un ensemble de fichiers qui décrivent tous les modules qui sont disponibles pour le noyau actuel dans la hiérarchie /lib/modules ainsi que leurs dépendances. Pour utiliser l'utilitaire modprobe, vous pouvez charger un module comme ceci:

/sbin/modprobe module

sans prêter plus d'attention au noyau que vous faites tourner ou aux autres modules dont dépend ce module.

Avec l'aide du fichier de configuration modprobe: "/etc/conf.modules" vous pouvez programmer le comportement de modprobe de nombreuses façons, y compris une configuration automatique des options de insmod pour chaque module.

Pour réussir à utiliser modprobe, placez la commande suivante dans votre script /etc/rc.d/rc.S.

/sbin/depmod -a

Cette commande calcule les dépendances entre les différents modules, ensuite, si vous faites par exemple :

/sbin/modprobe umsdos

vous chargerez automatiquement à la fois les modules msdos et umsdos, puisque umsdos ne tourne que ci le module msdos est actif.


<< >> Up Title Contents

© 1996-1997 "Logiciels du Soleil"