Mini-howto Modules rhw@bigfoot.com date ? _________________________________________________________________ _Vendredi 14 janvier 1998. traduit par Fr�d�ric Gacquer gacquer@neuronnexion.fr_ _________________________________________________________________ 1. But de ce document 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. 2. AVERTISSEMENT 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. 3. Pr�requis 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. 4. Acc�l�rer la compilation 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 * 16 Mo 3 * 24 Mo 4 * 32 Mo 5 * 40 Mo 6 * 48 Mo 7 * 56 Mo 8 * 64 Mo 9 * 80 Mo 11 * 96 Mo 13 * 112 Mo 15 * 128 Mo 17 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. 5. Recompiler le noyau avec les modules 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: * Les pilotes des cartes ethernet * Les pilotes des CDROMs SCSI. 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 : * L'imprimante parall�le * Un pilote de port parall�le, comme le lecteur Zip de IOMEGA ou le lecteur Jazz, ou le CDROM de chez BackPack, et * Le d�mon PLIP 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 : * Configurer Debian ou la Redhat pour les modules * Configurer la Slackware pour les modules * Configurer les autres distributions pour les modules 5.1 Configurer Debian ou la Redhat pour les modules 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. 5.2 Configurer la Slackware pour les modules 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 : * Aux alentours de la ligne 18, il y a une section du style : # 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 * A peut pr�s 12 lignes plus loin il y a ce qui suit : # 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. 5.3 Configurer les autres distributions pour les modules 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: * Si cette liste inclu un r�pertoire nomm� 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. * Si cette liste n'inclu pas un r�pertoires appel� 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. * Si � cette liste ne correspond aucun des crit�res ci-dessus, la distribution � un script de boot qui n'est pas pr�sent� dans cet Howto. Dans ce cas, vous �tes invit�s � contacter l'auteur de ce document pour conseils. 6. Copyright et Loi 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