Ce document explique comment utiliser la fonction
kerneld
avec les noyaux Linux. Il d�crit :
kerneld
;kerneld
avec des
modules qu'il ne conna�t pas ;kerneld
(peut s'av�rer tr�s
utile lors de la mise au point) ;kerneld
;La derni�re version de ce document peut �tre trouv�e � l'adresse http://eolicom.olicom.dk/~storner/kerneld-mini-HOWTO.html. Entre les versions du mini-HOWTO, vous pouvez trouver des mises � jour sur ma liste non tri�e des modifications � http://eolicom.olicom.dk/~storner/kern.html
La derni�re version fran�aise se trouve � l'adresse http://www.freenix.fr/linux/HOWTO/mini/.
Si vous d�couvrez dans ce document des choses fausses, envoyez-moi un mot � ce sujet. Les personnes suivantes ont contribu� � ce mini-HOWTO sur certains points :
J'appr�cierai les encouragements et les suggestions des lecteurs de ce mini-HOWTO.
kerneld
? kerneld
est li� � une fonctionnalit� introduite lors du
d�veloppement des noyaux de la s�rie 1.3 par Bjorn Ekwall.
Il perdure avec les noyaux 2.0 et 2.1. Il permet aux modules du
noyau (c'est-�-dire les pilotes de p�riph�riques, de r�seaux,
les syst�mes de fichiers...) d'�tre charg�s automatiquement
en fonction des besoins, sans utilisation manuelle des
commandes modprobe
ou insmod
.
Des aspects plus amusants, bien que ceux-ci ne soient pas (encore ?) int�gr�s dans le noyau standard :
kerneld
est compos� de deux entit�s s�par�es :
Ces deux parties doivent fonctionner pour que kerneld
soit op�rationnel. Le fait qu'une des deux soit initialis�e ne
suffit pas.
Il y a de bonnes raisons pour utiliser kerneld
. Voici
les miennes. D'autres peuvent l'utiliser pour d'autres raisons.
kerneld
.ftape
, par
exemple ou iBCS
, ne sont valables que sous forme de
modules. Mais je ne veux
pas m'emb�ter avec leur chargement et leur d�chargement � chaque
fois que j'en ai besoin.Bien s�r, il y a aussi des raisons pour que vous ne vouliez pas l'utiliser : vous pr�f�reriez avoir juste un fichier image de votre noyau avec tous vos pilotes � l'int�rieur. Dans ce cas, vous lisez le mauvais document.
Le support dans le noyau de Linux a �t� introduit avec Linux
1.3.57. Si vous avez une version plus ancienne, vous devrez
la mettre � jour si vous voulez qu'il supporte kerneld
. Tous
les sites ftp majeurs de Linux offrent les sources du noyau. Je
recommande que vous le mettiez � jour avec la derni�re version
2.0 (actuellement la 2.0.36) :
Pour les utilisateurs fran�ais, il vaut mieux utiliser le miroir francais ftp://ftp.lip6.fr/pub2/linux/kernel/sources/v2.0/linux-2.0.36.tar.gz
Le d�mon en mode utilisateur a �t� introduit avec le
paquetage modules-1.2.8
et avec le nouveau paquetage
modules-2.0
. Ils sont normalement trouvables � la m�me place que
les sources des noyaux mais les sites officiels sont :
Pour les utilisateurs fran�ais : ftp://ftp.lip6.fr/pub2/linux/kernel/sources/v2.0/modules-2.0.0.tar.gz
AVERTISSEMENT : si vous voulez essayer de charger des
modules avec les derniers noyaux 2.1 (d�veloppement), vous
devrez utiliser le dernier paquetage modutils-
(PAS
modules-
).
Mais regardez plus bas au sujet des probl�mes avec les modules
et les noyaux 2.1.
D'abord, ayez les parties n�cessaires : un noyau et les
derniers modules-utilities
. Ensuite, vous devez
installer les modules-utilities
. C'est tr�s simple : il
faut juste d�sempaqueter les sources et lancer make
install
. Ceci compile et installe les programmes suivants
dans /sbin
: genkym
, insmod
,
lsmod
, modprobe
, depmod
,
kerneld
. Je recommande que vous ajoutiez quelques
lignes dans les scripts de d�marrage pour faire les
initialisations n�cessaires lors du d�marrage de Linux. Ajoutez
les lignes suivantes � votre fichier
/etc/rc/rc.d/rc.sysinit
(si vous utilisez la
Slackware) ou � /etc/rc.d/rc.sysinit
(si vous
utilisez SysVinit, c'est-�-dire les distributions Debian,
RedHat, Caldera) :
# Demarrer kerneld - ceci doit arriver tres tot dans le # processus de demarrage, certainement AVANT que vous lanciez # fsck sur les syst�mes de fichiers qui ont besoins que les # pilotes de disque soient charg�s automatiquement if [ -x /sbin/kerneld ] then /sbin/kerneld fi # Vos commandes fsck fonctionnent ici # et votre command mount monte le syst�me de fichiers racine # en lecture seule. # Mettez � jour le fichier de d�pendance des modules du noyau # Votre syst�me de fichier racine doit �tre mont� en # lecture-�criture � partir de maintenant if [ -x /sbin/depmod ] then /sbin/depmod -a fiLa premi�re partie lance
kerneld
lui-m�me.
La second appelle depmod -a
au d�marrage. Le
programme depmod
construit une liste de tous les
modules disponibles et analyse leurs inter d�pendances. Donc il
sait si un module a besoin qu'un autre soit charg� avant lui.
NOTE : Les versions r�centes de kerneld
ont une
option pour utiliser la librairie GNU dbm : libgdbm
. Si
vous l'activez quand vous construisez les
modules-utilities
, kerneld
ne se lancera pas
si lidgdbm
n'est pas disponible, ce qui pourrait �tre
le cas si vous avez /usr
sur une partition s�par�e et
que vous lanciez kerneld
avant que /usr
ne soit
mont�e. La solution recommand�e est de d�placer libgdm
de /usr/lib
vers /lib
ou de faire un lien
statique de kerneld
.
Ensuite, d�fa�tes les sources du noyau, configurez et
construisez un noyau � votre convenance. Si vous ne l'avez jamais
fait avant, vous devriez lire le fichire README � la racine des
sources du noyau. Quand vous lancez make config
pour
configurer le noyau, vous devrez faire attention � des questions
qui apparaissent au d�but :
Enable loadable module support (CONFIG_MODULES) [Y/n/?] YVous devez s�lectioner la gestion des modules chargeables, sinon, il n'y aura pas de modules � charger pour
kerneld
.
R�pondez seulement oui (Y).
Kernel daemon support (CONFIG_KERNELD) [Y/n/?] YCeci est aussi n�cessaire. Ensuite, de nombreuses choses peuvent �tre mises sous forme de modules. Vous verrez des questions du genre :
Normal floppy disk support (CONFIG_BLK_DEV_FD) [M/n/y/?]o� vous pouvez r�pondre M pour Module. G�n�ralement, seuls les pilotes n�cessaires lors du d�marrage de votre syst�me (le pilote du disque dur, le pilote du syst�me de fichiers racine) doivent �tre mis dans le noyau ; le reste pouvant �tre construit sous forme de modules.
Quand vous avez fini avec make config
, lancez make
dep
, make clean
, make zImage
ou make
modules
, make modules
et make
modules_install
.
Ouf !
La commande make zImage
cr�e la nouvelle image du noyau
dans le fichier arch/i386/boot/zImage
. Vous devrez le
copier o� vous mettez votre image de boot. N'oubliez pas de
relancer LILO.
Pour plus d'informations sur la configuration, la construction
et l'installation de votre propre noyau, regardez le
Kerneld-HOWTO
post� r�guli�rement au
comp.os.linux.answers
et disponible sur le site
sunsite.unc.edu
� /pub/Linux/docs/HOWTO
. La
version fran�aise est disponible �
www.freenix.fr/linux
Maintenant, relancez le syst�me avec le nouveau noyau. Quand le
syst�me est pr�t, vous pouvez ex�cuter un ps ax
et vous
devriez voir une ligne pour kerneld
:
PID TTY STAT TIME COMMAND 59 ? S 0:01 /sbin/kerneld
Une des choses int�ressantes de kerneld
est qu'une fois
le noyau et le d�mon install�s, seule une tr�s petite initialisation
est n�cessaire. Pour commencer, essayez d'utiliser un des
pilotes que vous avez construit comme module. J'ai construit le
pilote de disquette comme module, donc je peux mettre une
disquette DOS dans le lecteur et :
osiris:~ $ mdir a: Volume in drive A has no label Volume Serial Number is 2E2B-1102 Directory for A:/ binuti~1 gz 1942 02-14-1996 11:35a binutils-2.6.0.6-2.6.0.7.diff.gz libc-5~1 gz 24747 02-14-1996 11:35a libc-5.3.4-5.3.5.diff.gz 2 file(s) 26689 bytesle pilote de disquette fonctionne : il a �t� charg� automatiquement par
kerneld
quand j'ai voulu utiliser
la disquette.
Pour voir que le module floppy
est en effet charg�,
vous pouvez lancer /sbin/lsmod
qui listera tous les
modules charg�s � l'instant :
osiris:~ $ /sbin/lsmod Module: #pages: Used by: floppy 11 0 (autoclean)Le mot ``autoclean'' signifie que le module sera automatiquement enlev� par
kerneld
quand il n'aura pas �t� utilis�
pendant plus d'une minute. Les 11 pages de m�moire (soit 44ko,
une page faisant 4ko) seront donc seulement utilis�es quand
j'acc�derai au lecteur de disquette ; si je n'utilise pas la
disquette pendant plus d'une minute, elles seront lib�r�es. Tr�s
int�ressant si vous �tes � court de m�moire pour vos
applications !
kerneld
sait-il quel module charger ? Bien que kerneld
connaisse d�j� les types les plus
communs de modules, il y a des situations dans lesquelles
kerneld
ne sera pas comment satisfaire une requ�te
venant du noyau. C'est le cas avec les pilotes de CD-ROM ou de
cartes r�seau, o� il existe plus d'un module possible
susceptible d'�tre charg�.
Les requ�tes que le d�mon de kerneld
re�oit du
noyau viennent d'un des �l�ments suivants :
kerneld
d�termine quel module doit �tre charg�
regardant le fichier de configuration
/etc/conf.modules
. Il y a deux types d'entr�e dans ce
fichier : les chemins (o� les fichiers des modules sont stock�s)
et les alias (quel module doit �tre charg�). Si vous n'avez pas
d�j� ce fichier, vous devrez le cr�er en lan�ant
/sbin/modprobe -c | grep -v '^path' >
/etc/conf.modules
Si vous voulez ajouter encore une autre directive ``path''
aux chemins par d�faut, vous devez inclure aussi tous les chemins
par d�faut �tant donn� qu'une directive path
dans
/etc/conf.modules
remplacera toutes celles que
modprobe
conna�t par d�faut.
Normalement, vous ne voudrez pas ajouter de path
par vous-m�me �tant donn� que l'ensemble des chemins par d�faut
prend en compte toutes les configurations normales, je vous le
promets !
D'un autre c�t�, si vous voulez juste ajouter un alias ou
une directive d'option, vos nouvelles entr�es dans
/etc/conf.modules
seront ajout�es � celles que
modprobe
conna�t d�j�. Si vous deviez red�finir un
alias ou une option, vos nouvelles entr�es dans
/etc/conf.modules
remplaceront celles d�j� pr�sentes.
Si vous lancez /sbin/modprobe -c
, vous aurez la
liste des modules connus par kerneld
et � quelles
requ�tes ils correspondent. Par exemple, la requ�te qui termine
le chargement du gestionnaire de disquettes correspond au
p�riph�rique bloc dont le num�ro majeur est 2 :
osiris:~ $ /sbin/modprobe -c | grep floppy alias block-major-2 floppy
Pourquoi block-major-2
? Parce que les lecteurs de
disquettes /dev/fd*
utilisent un num�ro majeur �gal
� 2 et sont de type bloc :
osiris:~ $ ls -l /dev/fd0 /dev/fd1 brw-rw-rw- 1 root root 2, 0 Mar 3 1995 /dev/fd0 brw-r--r-- 1 root root 2, 1 Mar 3 1995 /dev/fd1
Les p�riph�riques de type caract�re sont utilis�s de la m�me mani�re. Par exemple, le lecteur de bande correspond au num�ro majeur 27 :
osiris:~ $ ls -lL /dev/ftape crw-rw---- 1 root disk 27, 0 Jul 18 1994 /dev/ftape
Toutefois, kerneld
ne le conna�t pas par d�faut : il
n'est pas list� dans le r�sultat de /sbin/modprobe -c
.
Donc, pour configurer kerneld
de mani�re � charger
le gestionnaire ftape
, je dois ajouter une ligne au
fichier de configuration /etc/conf.modules
:
alias char-major-27 ftape
Vous pouvez aussi utiliser le nom du p�riph�rique � la place
de char-major-xxx
ou block-major-yyy
. Ceci est
particuli�rement utilis� pour les gestionnaires r�seaux. Par
exemple, un pilote pour une carte r�seau ne2000 utilis�e comme
eth0
pourrait �tre charg� avec :
alias eth0 ne
Si vous devez passer des options au gestionnaire (comme de
dire au module quelle IRQ la carte r�seau utilise), vous ajoutez
une ligne options
:
options ne irq=5
Ainsi kerneld
lancera le gestionnaire
NE2000 avec la commande :
/sbin/modprobe ne irq=5
Bien s�r, les options disponibles sont sp�cifiques aux modules que vous chargez.
Les formats binaires sont g�r�s de la m�me fa�on. A chaque
fois que vous essayez de lancer un programme que le noyau ne
sait pas comment ex�cuter, kerneld
lance une requ�te
pour binfmt-xxx
, ou xxx
est le nombre
d�termin� � partir des tous premiers octets de l'ex�cutable.
Donc la configuration de kerneld
pour la gestion du
chargement du module binfmt_aout pour les ex�cutable ZMAGIC
(a.out) est :
alias binfmt-267 binfmt_aoutvu que le nombre magique pour les fichiers ZMAGIC est 267 (voir
/etc/magic
). Si vous regardez /etc/magic
,
vous verrez le nombre 0413, ceci parce que ce fichier utilise des
nombres octaux alors que kerneld
utilise des d�cimaux ( 413
en octal correspond � 267 en d�cimal ). Il y a en r�alit� trois
variantes des ex�cutables a.out peu diff�rentes (NMAGIC,
QMAGIC et ZMAGIC). Pour un support total du format a.out, vous
devez avoir :
alias binfmt-264 binfmt_aout # pure executable (NMAGIC) alias binfmt-267 binfmt_aout # demand-paged executable (ZMAGIC) alias binfmt-204 binfmt_aout # demand-paged executable (QMAGIC)
Les formats binaires a.out, Jave et iBCS sont reconnus
automatiquement par kerneld
sans la moindre configuration.
Les disciplines de lignes sont demand�es avec
tyy-ldisc-x o� x est g�n�ralement 1 (pour
SLIP) ou 3 (pour PPP). Ces deux sont reconnus automatiquement
par kerneld
.
Concernant PPP, si vous voulez que kerneld
charge le
module de compression de donn�es pour PPP bsd_comp
, vous
devez ajouter les deux lignes suivantes au fichier
/etc/conf.modules
:
alias tty-ldisc-3 bsd_comp alias ppp0 bsd_comp
Certains protocoles r�seau peuvent �tre aussi charg�s sous
la forme de modules. Le noyau demande � kerneld
une
famille de protocole (par exemple IPX) avec une requ�te pour
net-pf-X o� X est un nombre indiquant la
famille voulue. Par exemple, netpf-3 correspond �
AX.25, net-pf-4 � IPX et net-pf-5 � AppleTalk.
(Ces nombres sont d�termin�s par les macros AF_AX25
,
AF_IPX
etc., que l'on trouve dans le fichier source
include/linux/socket.h
. Donc, pour charger
automatiquement le module IPX, vous devrez ajouter une entr�e
dans /etc/conf.modules
:
alias net-pf-4 ipx
Consultez �galement la section traitant des probl�mes courants pour �viter des messages d'avertissment lors de l'amor�age relatifs � des familles de protocoles ind�finies.
Les requ�tes soumises � kerneld
pour les syst�mes de
fichiers sont simplement constitu�es par le type du syst�me de
fichiers. Un usage courant est de charger le module
isofs pour les syst�mes de fichiers des CD-ROM,
c'est-�-dire les syst�mes de fichiers de type iso9660 :
alias iso9660 isofs
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.
Si vous avez tout essay� et que vous ne comprenez pas ce que
le noyau demande � kerneld
, il y a une solution pour
voir les requ�tes que re�oit kerneld
et par cons�quent
comprendre ce qu'il faut mettre dans /etc/conf.modules
.
Pour cela, il faut utiliser l'utilitaire kdstat
.
Ce petit programme est livr� avec le paquetage
modules
, mais il n'est ni compil�, ni install� par
d�faut. Pour le compiler :
cd /usr/src/modules-2.0.0/kerneld make kdstat
Ensuite, pour que kerneld
affiche les informations
sur ce qu'il est en train de faire, il faut lancer :
kdstat debuget
kerneld
commencera � envoyer des messages � la
console sur son activit�. Si vous essayez de lancer la commande
que vous voulez utiliser, vous verrez les requ�tes adress�es �
kerneld
. Elles peuvent �tre copi�es dans le fichier
/etc/conf.modules
et mises en alias du module demand�
pour r�aliser la t�che.
Pour arr�ter le debuggage, lancez :
/sbin/kdstat nodebug
Je savais bien que vous me demanderiez comment configurer le module d'�conomiseur d'�cran...
Le r�pertoire kerneld/GOODIES
dans le paquetage
modules
a un certain nombre de patches noyau pour
la gestion de l'�conomiseur d'�cran ainsi que le beep de la
console par kerneld
. Ils ne font pas partie du noyau
officiel. Vous devrez donc installer les patches noyau et le
recompiler.
Pour installer un patch, utilisez la commande ``patch'' :
cd /usr/src/linux patch -s -p1 </usr/src/modules-2.0.0/kerneld/GOODIES/blanker_patchEnsuite recompilez et installez le nouveau noyau.
Quand il sera temps de lancer l'�conomiseur d'�cran,
kerneld
ex�cutera la commande
/sbin/screenblanker
(il peut s'agir d'un script shell qui
lance votre �conomiseur d'�cran favorixt.
Quand le noyau veut l'arr�ter, il envoie un signal
SIGQUIT
au processus ex�cutant
/sbin/screenblanker
. Votre script shell ou �conomiseur
d'�cran doit le capter et se terminer. Pensez � restaurer
l'�cran dans le mode texte initial !
ifconfig
? Le code du noyau a �t� modifi� pour permettre le chargement
des familles de protocoles r�seau (comme IPX, AX25 et AppelTalk)
comme modules vers la version 1.3.80. Cela a eu pour effet
d'ajouter une nouvelle requ�te pour kerneld
,
net-pf-X, o� X est un nombre identifiant le
protocole (voir le fichier
/usr/src/linux/include/linux/socket.h
pour la
signification de ces nombres).
Malheureusement, ifconfig
envoie ces messages, donc
un bon nombre de personnes recoivent ces messages lors le
syst�me se lance et qu'il ex�cute ifconfig
pour
initialiser le p�riph�rique loopback
. Ces messages sont
sans danger et vous pouvez les retirer en ajoutant les lignes
suivantes :
alias net-pf-3 off # oubliez AX.25 alias net-pf-4 off # oubliez IPX aliad net-pf-5 off # oubliez AppleTalkau fichier
/etc/conf.modules
. Biens�r, si vous utilisez
IPX comme module, n'ajoutez pas la ligne qui retire IPX.
kerneld
, mon syst�me ralentit
quand j'active ma connexion PPP Il y a bon nombre de messages � ce sujet. Il semble qu'il y ait
une malheureuse interaction entre kerneld
et le script
tkPPP
qui est utilis� sur certains syst�mes pour
configurer et surveiller la connexion PPP. Le script ex�cute
apparemment des boucles quand il lance ifconfig
.
Celui-ci d�clenche kerneld
pour rechercher les modules
net-pf-X (voir ci-dessous), ce qui provoque une
surcharge du syst�me et l'envoi possible de messages ``Cannot
locate module for net-pf-X''
. Il n'y a pas d'autres
solutions que de ne pas utiliser tkPPP
ou de changer sa
fa�on de surveiller la connexion.
kerneld
ne charge pas mon gestionnaire SCSI
Ajoutez une entr�e pour la carte SCSI au fichier
/etc/conf.modules
. Regardez la description de l'entr�e
scsi_hostadapter
plus haut.
modprobe
se plaint que gcc2_compiled
n'est pas d�fini Ceci est une erreur dans module-utilities
qui ne se
voit qu'avec binutils 2.6.0.9
ou sup�rieur et elle est
aussi document�e dans les notes de mises � jour du paquetage
binutils
. Lisez-le donc ou mettez � jour le paquetage
des modules par un qui corrige ce probl�me, par exemple le
modules-2.0.0
.
Les options de configuration d'un modules sont stock�es dans
le module lui-m�me quand il est charg�. Donc, quand
kerneld
d�charge un module, la configuration que vous
aviez faite est perdue et la prochaine fois que le module sera
charg�, il h�ritera de la configuration par d�faut.
Vous pouvez indiquer � kerneld
de configurer un
module en ex�cutant un programme apr�s son chargement
automatique. Voir la section sur l'entr�e post-install
.
kerneld
peut-il les charger ? Vous ne pouvez pas. Aucune des versions de dosemu
(officielles ou de d�veloppement) ne g�rent le chargement des
modules � travers kerneld
. Cependant, if vous avez un
noyau 2.0.26 ou sup�rieur, vous n'avez pas besoin de modules
dosemu particuliers. Installez juste dosemu 0.66.1.
Quand le noyau envoit une requ�te � kerneld
, il
s'attend � recevoir un acquittement dans un d�lai d'une seconde. Si
kerneld
n'envoie pas cet acquittement, ce message est
diffus�. La requ�te est retransmise et peut �ventuellement r�ussir
Cela arrive couramment sur des syst�mes lourdement charg�s.
kerneld
�tant un processus en mode utilisateur, il
est ordonnanc� comme tout processus du syst�me. Sous de
fortes charges, il peut ne pas s'ex�cuter pour envoyer
l'acquittement avant l'expiration du d�lai.
Si cela se produit quand la charge est faible, essayez de
red�marrer kerneld
. Tuez le processus
kerneld
et red�marrez-le avec la commande
/usr/sbin/kerneld
. Si le probl�me persiste, vous
devrez envoyer un message d'erreur �
linux-kernel@vger.rutgers.edu mais, s'il vous
pla�t soyez s�r que votre version du noyau et de
kerneld
soient � jour avant d'envoyer un message sur ce
probl�me.
mount
n'attend pas que kerneld
charge
le module du syst�me de fichier Il existe un certain nombre de messages sur le fait que la
commande mount(8)
n'attende pas que kerneld
ait charg� le module du syst�me de fichiers. lsmod
montre que kerneld
a charg� le module et si vous
r�p�tez la commande mount
imm�diatement, le montage
sera r�ussi. Cela semble �tre une erreur dans le paquetage
modules
version 1.3.69f qui affecte des utilisateurs de
Debian (elle peut �tre corrig�e en installant la derni�re version
de ce paquetage).
kerneld
n'arrive pas � charger le module
ncpfs Vous devez compiler les utilitaires ncpfs
avec
l'option -DHAVE_KERNELD
. Voir le fichier
Makefile
de ncpfs
.
kerneld
n'arrive pas � charger le module
smbfs Vous utilisez une vieille version des utilitaires
smbmount
. Prenez la derni�re version (0.10 ou
sup�rieure) �
ftp://tsx-11.mit.edu/pub/linux/filesystems/smbfs/.
kerneld
n'arrive pas � charger le module du syst�me de fichier racine. Vous ne pouvez pas tout mettre sous forme de modules
: le noyau doit avoir assez de gestionnaires pour monter votre
syst�me de fichiers racine et ex�cuter les programmes
n�cessaires au d�marrage de kerneld
. Donc vous ne
pouvez pas mettre sous forme de modules :
init
,
kerneld
et d'autres prgrammes.En fait ce n'est pas vrai. Les derni�res version 1.3.x et
toutes les 2.x du noyau, supportent l'utilisation d'un disque ram
qui est charg� par lilo
ou loadlin
et
il est possible de charger des modules de ce ``disque'' tr�s t�t
dans le processus de d�marrage. La marche � suivre est d�crite
dans le fichier Documentation/initrd.txt
dans
l'arborescence des sources du noyau.
kerneld
ne se lance pas lors de l'amor�age de la
machine : il veut libgdbm Les nouvelles versions de kerneld
ont besoin de la
librairie GNU dbm, libgdbm.so pour fonctionner. La
plupart des installations ont ce fichier dans /usr/lib
mais vous avez probablement lanc� kerneld
avant que le
syst�me de fichiers de /usr
ne soit mont�. Un des
symptomes de ceci est que kerneld
ne marche pas lors du
d�marrage du syst�me et de l'ex�cution des script rc, mais
fonctionne parfaitement si vous le lancez � la main apr�s. La
solution est soit de d�placer le lancement de kerneld
apr�s que /usr
ne soit mont�, soit de mettre la librairie
gdbm dans le syst�me de fichiers racine (par exemple
dans /lib
).
L'installation de la Slackware (et peut-�tre d'autres) cr�e
un fichier /etc/rc.d/rc.modules
par d�faut qui fait un
modprobe
explicite sur une grande vari�t� de modules.
Quels modules exactement sont ``modprob�s'' ?, cela d�pend de la
configuration initiale du noyau. Vous avez probablement
reconfigur� votre noyau pour enlever un ou plusieurs modules qui
est modprob� dans rc.modules
, d'o� les messages
d'erreur. Mettez � jour votre fichier rc.modules
en
commentant tout module que vous n'utilisez plus, ou enlevez
enti�rement ce fichier et laissez kerneld
charger les
modules quand on en a besoin.
Vous avez probablement reconfigur� et recompil� votre noyau
et exclu des modules. Vous avez d'anciens modules que vous
n'utilisez pas dans le r�pertoire /lib/modules
.
La solution la plus simple est d'effacer le r�pertoire
/lib/modules/x.y.z
et de retaper make
modules_install
depuis le r�pertoire des sources du noyau.
Notez que ce probl�me arrive seulement quand vous reconfigurez le
noyau sans changer de version. Si vous voyez cette erreur quand
vous passer � une nouvelle version du noyau, vous avez un autre
probl�me.
Linux 2.1 est un noyau de d�veloppement. Pour cette raison, il se peut que certaines choses ne fonctionnent pas de temps en temps. La fa�on dont les modules sont manipul�s a chang� de fa�on significative. Richard Henderson a la charge du d�veloppement du noyau des modules.
En bref, si vous voulez utiliser les modules avec un noyau 2.1, vous devez :
Documentation/Changes
et voir
quels paquetages doivent �tre mis � jour sur votre syst�me ;modutils
,
disponible sur
ftp://ftp.redhat.com/pub/alphabits/ ou sur le site
mirroir
ftp://tsx-11.mit.edu/pub/linux/packages/alphabits/Je recommande le noyau 2.1.29, si vous voulez utiliser les modules avec un noyau 2.1.
kerneld
peut � l'origine g�rer l'�tablissement de
connexions r�seau � travers le r�seau t�l�phonique � la demande
: essayer d'envoyer des paquets � un r�seau sans �tre connect�,
peut entra�ner kerneld
� lancer le script
/sbin/request_route
pour initialiser une connexion PPP
ou SLIP.
Il s'est av�r� que c'�tait une mauvaise id�e. Alan Cox, bien connu pour ses travaux sur le r�seau dans Linux a �crit sur la liste de diffusion linux-kernel que :
``Le truc request-route est obsol�te, cass� et non requis... Il est aussi enlev� des versions 2.1.x.''
A la place d'utiliser le script request-route
et
kerneld
, je vous encourage vivement � installer le
paquetage diald
d'Eric Schenk, disponible � l'url
http://www.dna.lth.se/~erics/diald.html
Ce document est copyright� (c) Henrik Storner, 1996, 1997.
Sauf contre-ordre, les documents HowTo pour Linux sont copyright�s pas leurs auteurs respectifs. Ces documents peuvent �tre reprodruits et distribu�s dans leur ensemble ou en partie, sur n'importe quel type de support physique ou �lectronique, du moment que cette notice l�gale se trouve sur toutes les copies. Les redistributions commerciales sont autoris�es et encourag�es. Toutefois, l'auteur aimerait bien �tre avis� de toute distribution de ce genre.
Toute traduction, travail d�riv� ou compl�mentaire incluant tout ou partie de document HowTo Linux doit �tre couvert par ce copyriht. De cette mani�re, vous ne pouvez cr�er un document qui s'inspire de ce document et imposer des restrictions suppl�mentaires � sa diffusion. Des exceptions � ces conditions peuvent �tre donn�es sous certaines conditions. Contactez le coordonnateur des HowTo Linux � l'adresse donn�e un peu plus bas.
En r�sum�, nous souhaitons promouvoir la diffusion de ces informations � travers un maximum de moyens de communication. Toutefois, nous souhaitions conserver un copyright sur les documents HowTo et nous souhaitons �tre avertis de leur redistribution.
Si vous avez des questions, vous pouvez contacter Greg Hankins, le coordonnateur des HowTo Linux par courrier �lectronique � gregh@sunsite.unc.edu