rhw@bigfoot.com
gacquer@neuronnexion.fr
Les documents existants sur linux et les modules n'ont pas r�ussi � me fournir une explication satisfaisante comme par exmple la fa�on d'installer linux avec succ�s avec les modules configur�s et op�rationnels. La proc�dure expliqu�e dans ce document a �t� utilis�e avec succ�s plusieurs fois, aussi bien sur mon propre syst�me que sur Internet pour donner des indications � quelqu'un essayant de faire fontionner un �l�ment qui requiert un driver fourni seulement sous forme de module.
Mon prope syst�me a �t� install� � partir d'une distribution linux Redhat 4.1, et ce fut lors de cette installation que j'ai d�velopp� cette proc�dure. Je l'ai install�e depuis avec succ�s sur plusieurs syst�mes avec la distribution slackware, et sur un syst�me avec une distribution Debian. La proc�dure qui permet de configurer correctement les modules sous linux pour ces trois distributions est dans ce document.
J'ai r�cemment utilis� la m�me proc�dure avec la RedHat 4.2, mais avec des r�sultats contradictoires sur des syst�mes apparement identiques. Je n'ai PAS encore d�termin� quel est le probl�me, et ne peut donc PAS garantir aujourd'hui que cela va ou non fonctionner sur votre syst�me.
Avant d'appliquer les �tapes de ce document, le lecteur DOIT avoir install� linux pour que l'on puisse se connecter en tant que root, car la majorit� des �tapes impliqu�es ne peuvent �tre entreprises que par le dit utilisateur.
Le noyau existant peut �tre compil� soit pour utiliser les modules soit pour ne pas les utiliser. Il peut m�me afficher des messages d'erreurs pendant le d�marrage du syst�me signalent les modules configur�s qui ne sont pas disponible pour l'instant, pourvu que la condition ci-dessus soit remplie.
L'emplacement du source du noyau en cours est suppos�e se
trouver � la racine /usr/src/linux
qui est suppos�
�tre le r�pertoire courant, au travers de ce document, de
n'importe quelle commande qui en est issue.
Si votre machine a 16 m�ga ou plus de RAM, on peut acc�l�rer utilement les choses en permettant de compiler plusieurs modules en parall�le. Cela augmentera la charge cpu de la machine pendant la recompilation du noyau mais r�duira le temps pendant lequel la compilation s'effectuera.
Avant d'utiliser cette m�thode, vous devez v�rifier la quantit� de RAM pr�sente dans votre machine, car si vous l'avez estim�e trop grande, la compilation va en fait �tre moins rapide. L'exp�rience a montr�e que la valeur optimum d�pend de la quantit� de RAM dans votre syst�me selon la formule suivante, au moins pour les syst�mes qui ont jusqu'� 32 Mo de RAM, m�me si elle est applicable aux syst�mes avec une plus grande quantit� de RAM:
N= [RAM en Mo] / 8 + 1
Pour ceux qui n'aime pas les maths, les valeurs pour les quantit�s courante de RAM sont :
La valeur � utiliser avec
Quand vous avez choisi la valeur correcte, �diter le fichier
/usr/src/linux/Makefile
et trouver la ligne :
MAKE=make
La remplacer par:
MAKE=make -j N
o� N est le nombre calcul� pr�c�demment.
Le noyau peut �tre reconfigur� pour utiliser les modules pour tout sauf le syst�me de fichier mont� root (dans la plupart des cas, c'est le syst�me de fichier ext2).
Cependant, il y a certains �l�ments qui semble difficle � installer proprement en tant que modules, aussi je propose de compiler dans le noyau:
D'autre part, il y a certaines combinaisons de pilotes qui ne fonctionne QUE comme module, particuli�rement la combinaison d'un ou plusieurs des groupes suivants :
Vous aurez � d�cider de ce qui sera compil� dans le noyau, ou comme module, en prenant en compte les points cit�s ci-dessus. Les vrais choix seront fait durant la compilation, au moment de la s�quence d'instructions suivante :
cd /usr/src/linux
make menuconfig
make dep clean modules modules_install zImage
Apr�s cela, les d�pendances de modules doivent �tre r�f�renc�es. C'est accompli par les commandes suivantes:
depmod -a
Maintenant le nouveau noyau a besoin d'�tre ins�r� dans la s�quence d'initialisation du boot. Je vais supposer que le lecteur utilise LILO dans ce but, puisque c'est le seul gestionnaire de boot que j'ai utilis�.
Je recommande que le nouveau noyau ne soit pas ins�r� comme �tant le
noyau linux par d�faut car s'il plante, il sera
extr�mement difficile de r�cup�rer le setup linux sans refaire une
compl�te r�installation, ce qui n'est pas recommand�. Pour cette raison,
j'ai les entr�es suivantes dans mon fichier /etc/lilo.conf
:
image=/usr/src/linux/arch/i386/boot/zImage
label=new
alias=n
read-only
vga=ask
optional
Cette entr�e indique qu'il y a une OPTION de boot
(ignor�e si l'image en question n'existe pas) qui charge le fichier
/boot/newlinux
s'il est s�lectionn�, et permet de s�lectionner le mode
vid�o dans lequel il sera ex�cut�.
Supposant l'existence de l'entr�e ci-dessus dans /etc/lilo.conf
le noyau
modifi� est sauvegard� au bon endroit � la fin de la compilation, et il
peut �tre install� via les commandes suivantes:
lilo
Ayant fait cela, le lecteur a besoin de suivre les �tapes suivantes qui d�pendent de la distribution choisie :
Avant la prise en compte des op�rations d�crites ici, celles list�es dans "Recompiler le noyau" pour les modules sont suppos�es r�alis�es.
La distribution Debian et la Redhat ont des proc�dures de boot identiques, et ont aussi des proc�dures identiques pour configurer les modules inclus.
1. vous �tant connect� root, utiliser votre �diteur de texte favori pour
cr�er un nouveau fichier appel� /etc/rc.d/init.d/modules.init
avec le
contenu suivant :
# Initialisation des modules
#
# D�marrer d�mon d'auto-chargement des modules
/sbin/kerneld
# Monter toutes les partitions courantes auto-montables non mont�es
/sbin/mount -a
2. Ayant cr�� le fichier ci-dessus, ex�cuter les �tapes suivantes alors que vous �tes connect� root:
cd /etc/rc.d
chmod 755 init.d/*
cd rc3.d
ln -s ../init.d/modules.init 05modules.init
Le syst�me peut �tre relanc�, les modules sont alors impl�ment�s.
Avant la prise en compte des op�rations d�crites ici, celles list�es dans "Recompiler le noyau" pour les modules sont suppos�es r�alis�es.
1- Le fichier /etc/rc.d/rc.M
doit �tre �diter comme suit :
# Screen blanks after 15 minutes idle time.
/bin/setterm -blank 15
Juste apr�s, ins�rer le paragraphe suivant, avec les traditionnelles lignes blanches au dessus et en dessous:
# Charger le chargeur automatique de module noyau
/sbin/kerneld
# if there is no /etc/HOSTNAME, fall back on this default:
Immediately prior to this, insert the following paragraph, again
with the usual blank lines either side of it:
# Mount remaining unmounted auto-mount drives.
/sbin/mount -a
Quand ces changements ont �t� fait, sauver le fichier. Aucun changement suppl�mentaire n'est requis pour la Slackware.
Avant la prise en compte des op�rations d�crites ici, celles list�es dans "Recompiler le noyau" pour les modules sont suppos�es r�alis�es.
La proc�dure pr�cise pour les autres distributions n'a pas �t�
d�termin�e, mais il s'agit probablement d'une de celle cit�es plus haut. Pour
d�terminer laquelle, afficher le contenu du r�pertoire /etc/rc.d
,
comme suit:
cd /etc/rc.d
ls -l *.d rc.*
A partir du r�sultat, vous pouvez choisir une des trois options suivantes:
init.d
et quelques
r�pertoires dont les noms correspondent � rc?.d
(o� le point
d'interrogation remplace un caract�re unique), et n'inclu
PAS un fichier nomm� rc.M
, cette distribution peut �tre
configur�e pour les modules en suivant la proc�dure
pour les distributions Debian et redhat.
init.d
mais
inclu un fichier appel� rc.M
alors la distribution peut �tre
configur�e pour les modules en suivant la proc�dure
pour la distribution slackware.
Ce document est couvert par les termes de la Licence G�n�rale Publique GNU (GPL), dont tous les termes et limitations s'appliquent.
L'auteur peut �tre contact� par email �
rhw@bigfoot.com