Certains périphériques demandent un peu plus de configuration que le simple alias d'un périphérique et d'un module.
Les périphériques sont habituellement identifiés par leur
nombre majeur, par exemple 27 pour ftape
. Toutefois, si
vous regardez les entrées de /dev
pour le nombre majeur
10, vous verrez un certain nombre de périphériques très
différents. Parmi ceux-ci :
De façon évidente, ces périphériques sont contrôlés par
différents modules et non un seul. Pour cela, kerneld
utilise le nombre majeur et le nombre mineur :
alias char-major-10-1 psaux # For PS/2 mouse alias char-major-10-130 wdt # For WDT watchdog
Vous avez besoin d'un version du noyau 1.3.82 ou supérieure
pour l'utiliser. Les versions plus anciennes ne passaient pas le
nombre mineur à kerneld
, ce qui ne permettait pas à
kerneld
de savoir quel module il fallait charger.
Les gestionnaires de périphériques SCSI sont constitués d'un
adaptateur pour la carte SCSI (par exemple pour une Adaptec
1542) et d'un gestionnaire pour le type de périphérique SCSI que
vous utilisez, comme un disque dur, un lecteur de CD-ROM ou un
lecteur de cartouche. Tous peuvent être chargés sous forme de
modules. Cependant, lorsque vous voulez accéder à un lecteur de
CD-ROM connecté à une carte Adaptec, le noyau et
kerneld
savent seulement qu'il faut charger le module
sr_mod pour gérer le CD-ROM SCSI, mais ils ignorent
à quel contrôleur SCSI il est connecté, donc quel module
charger pour gérer le contrôleur SCSI.
Pour résoudre cela, vous pouvez ajouter une entrée pour le
module du contrôleur SCSI au fichier /etc/conf.modules
qui indiquera à kerneld
quel module charger parmi
toutes les possibilités :
alias scd0 sr_mod # sr_mod pour SCSI CD-ROM's ... alias scsi_hostadapter aha1542 # ... doit utiliser le pilote # Adaptec 1542
Cela ne fonctionne que pour un noyau de version 1.3.82 ou supérieure.
Cela marche si vous n'avez qu'une carte SCSI, sinon, c'est un
peu plus difficile. En général, vous ne pouvez pas avoir
kerneld
qui charge le pilote d'une carte SCSI si le
gestionnaire d'un autre contrôleur est déjà installé. Vous
devez soit construire un noyau avec les deux gestionnaires (ils
ne sont plus sous forme de modules) soit les charger manuellement.
Il y a une possibilité pour que kerneld
charge
plusieurs gestionnaires SCSI. James Tsiao a eu cette idée : vous
pouvez avoir kerneld
qui charge le second controleur
SCSI en mettant la dépendance dans le fichier
modules.dep
à la main. Vous avez juste besoin d'une
entrée comme :
/lib/modules/2.0.30/scsi/st.o: /lib/modules/2.0.30/scsi/aha1542.oPour que
kerneld
charge le module aha1542.o
avant qu'il charge st.o. Ma machine à la maison est
configurée exactement comme au-dessus et fonctionne très bien
pour tous les périphérique de mon second contrôleur SCSI,
incluant lecteurs de cartouche, CD-ROM et des périphériques SCSI
génériques. L'inconvéniant est que depmod -a
ne peut
pas détecter ces dépendances. Donc, l'utilisateur doit les
ajouter à la main et ne pas lancer depmod -a
au
démarrage. Une fois configuré, kerneld
chargera
automatiquement aha1542.o comme il faut.
Vous devez être conscient que cette technique ne marche que si vous avez différents types de périphériques sur deux contrôleurs. Par exemple les disques durs sur un contrôleur et les lecteurs de CD-ROM, de cartouches et les périphériques génériques sur l'autres.
post-install
Parfois, charger un module n'est pas suffisant pour qu'il fonctionne correctement. Par exemple, si vous avez compilé le pilote de votre carte son en tant que module, il est souvent pratique de le régler pour un certain volume sonore. Le seul problème, c'est que cette initialisation disparaît lors du chargement suivant du module. Voici un truc de Ben Galliart bgailla@luc.edu :
Il faut installer le paquetage setmix-0.1
(
ftp://sunsite.unc.edu/pub/Linux/apps/sound/mixers/setmix-0.1.tar.gz)
et ensuite ajouter les lignes suivantes au fichier
/etc/conf.modules
:
post-install sound /usr/local/bin/setmix -f /etc/volume.confAinsi
kerneld
exécute la commande indiquée
par l'entrée post-install sound
après que le module son
ait été chargé. Donc, le module son est configuré par la commande
/usr/local/bin/setmix -f /etc/volume.conf
.
Cela peut s'avérer très utile pour d'autres modules, par exemple
le module lp peut être configuré par le programme
tunelp
en ajoutant :
post-install lp tunelp <options>Pour que
kerneld
reconnaisse ces options, vous devez
avoir une version 1.3.69 de kerneld
ou supérieure.
Note : une version précédente de ce mini-HOWTO mentionne une
option pre-remove
qui peut être utilisée pour excécuter
une commande juste avant que kerneld
ne décharge un
module. Toutefois, cela n'a jamais marché et son utilisation est
déconseillée. Heureusement, cette options disparaitra dans une
future version de kerneld
. L'ensemble des opérations
d'initialisation des modules est en cours de modification en ce
moment, et peut différer sur votre système au moment où
vous lirez ceci.