Les composants matériels des PC sont nombreux et variés. Pour pouvoir les utiliser correctement, vous aurez besoin d'un « pilote » qui permettra au système d'exploitation (sous Linux, le noyau) d'accéder à ce matériel. Il y a en gros deux mécanismes pour intégrer des pilotes au noyau :
Les pilotes peuvent être compilés directement dans le noyau. Dans ce guide, de tels noyaux (« d'un seul bloc ») sont qualifiés de noyaux monolithiques. Certains pilotes ne peuvent être utilisés que sous cette forme.
Les pilotes peuvent n'être chargés dans le noyau qu'en fonction des besoins. On qualifie dans ce cas le noyau de modulaire. L'avantage est que seuls les pilotes nécessaires sont chargés et que le noyau ne contient aucun élément inutile.
Lors de la configuration du noyau, on établit quels pilotes sont liés
physiquement au noyau et lesquels sont placés dans des modules. Tous les
composants du noyau qui ne sont pas impérativement nécessaires au cours
du processus d'amorçage devraient être compilés sous forme de modules. On
s'assure ainsi que le noyau n'est pas trop volumineux et qu'il peut être
chargé sans difficulté à partir du BIOS et de n'importe quel gestionnaire
d'amorçage. Les pilotes pour ext2, les pilotes SCSI
pour un système SCSI et d'autres fonctionnalités similaires doivent être
directement compilés au sein du noyau. Inversement, la prise en charge
d'isofs, de msdos ou du son
(sound), qui ne sont pas nécessaires au démarrage de
l'ordinateur, devraient toujours être compilées sous forme de modules.
![]() | Astuce |
|---|---|
Vous pouvez même fabriquer des modules pour les pilotes nécessaires à l'amorçage du système. Dans ce cas, le disque virtuel initial est utilisé pour charger ces modules à l'amorçage. | |
Les modules du noyau se trouvent dans le répertoire
/lib/modules/<version>.
version correspond à la version du noyau en
cours d'exécution.
Le programme hwinfo à votre disposition sous SUSE LINUX permet de
reconnaître le matériel actuellement présent sur l'ordinateur et de
choisir les pilotes servant à gérer ce matériel. La commande
hwinfo --help vous offre un
court paragraphe d'aide. Par exemple, pour obtenir des informations sur
les périphériques SCSI installés, saisissez la commande
hwinfo --scsi. Toutes ces
informations sont également disponibles dans le module d'informations
sur le matériel de YaST.
Vous trouverez les utilitaires pour charger les modules dans le
noyau dans le paquetage module-init-tools.
Vous y trouverez les commandes suivantes :
insmod charge le module indiqué après
l'avoir recherché dans un sous-répertoire de
/lib/modules/<version>. Il est
toutefois conseillé d'utiliser modprobe à la
place de insmod car
modprobe vérifie également les dépendances du
module.
Le module indiqué est déchargé. Cela n'est bien sûr possible
que si la fonctionnalité correspondante du noyau n'est plus
utilisée. Par conséquent, il n'est pas possible de décharger le
module isofs lorsqu'un un CD est encore monté.
Crée le fichier modules.dep dans le
répertoire /lib/modules/<version> qui
définit les dépendances entre tous les modules. C'est nécessaire
pour s'assurer que lors du chargement de modules, tous les
modules qui en dépendent sont également chargés. Ce fichier est
généré au démarrage du système s'il n'existe pas.
Charge ou décharge un module en prenant en compte les
dépendances de ce module. Cette commande est très puissante et
permet de faire de nombreuses choses comme essayer tous les
modules d'un certain type, jusqu'à réussir à charger l'un d'entre
eux. Contrairement au chargement au moyen d'insmod, modprobe
analyse le fichier /etc/modprobe.conf et on
devrait donc en principe l'employer pour charger des modules.
Pour des informations détaillées à ce sujet, consultez les pages
de manuel appropriées.
Indique quels sont les modules actuellement chargés et par
combien d'autres modules ils sont utilisés. Les modules qui ont
été chargés par le démon du noyau sont identifiés par l'étiquette
autoclean. Cette étiquette signale que ces
modules seront automatiquement retirés s'ils restent inutilisés
pendant un certain temps.
Affiche des informations sur un module. Étant donné que ces informations sont extraites du module, seules les informations qui ont été intégrées par les développeurs du pilote pourront être affichées. Les informations peuvent contenir l'auteur, une description, la licence, les paramètres de module, les dépendances et les alias.
Le chargement des modules est influencé par les fichiers
/etc/modprobe.conf et
/etc/modprobe.conf.local, ainsi que par le
répertoire /etc/modprobe.d.Reportez-vous à la page
de manuel man modprobe.conf.
On trouve également dans ce fichier les paramètres des modules qui
accèdent directement au matériel. Les modules de ce type, par exemple pour un
lecteur CD-ROM ou un pilote réseau, peuvent nécessiter des options
spécifiques au système. Les paramètres utilisés sont décrits dans les
sources du noyau. Installez le paquetage kernel-source et lisez la documentation
contenue dans le répertoire
/usr/src/linux/Documentation.
Le chargeur de modules du noyau est la méthode la plus élégante d'utiliser les modules. Kmod veille en arrière-plan à ce que les modules nécessaires soient automatiquement chargés au moyen d'appels à modprobe dès que l'on accède à la fonctionnalité correspondante du noyau.
Pour utiliser Kmod, cochez l'option (CONFIG_KMOD) lors de la
configuration du noyau. Kmod n'est pas conçu pour décharger les modules
automatiquement. Si l'on considère la quantité de mémoire vive (RAM)
actuellement installée dans les ordinateurs, le gain de mémoire serait
marginal.