
  Mini-howto Modules
  rhw@bigfoot.com
  date ?

  Vendredi  14  janvier 1998.  traduit par Frederic Gacquer gacquer@neu-
  ronnexion.fr

  1.  But de ce document

  Les documents existants sur linux et les modules n'ont pas reussi a me
  fournir  une  explication  satisfaisante  comme  par  exmple  la facon
  d'installer  linux  avec  succes  avec  les  modules   configures   et
  operationnels.  La procedure expliquee dans ce document a ete utilisee
  avec succes plusieurs fois, aussi bien sur mon propre systeme que  sur
  Internet  pour  donner  des  indications a quelqu'un essayant de faire
  fontionner un element qui requiert un  driver  fourni  seulement  sous
  forme de module.

  Mon  prope  systeme  a  ete installe a partir d'une distribution linux
  Redhat 4.1, et ce fut lors de cette installation  que  j'ai  developpe
  cette  procedure.  Je  l'ai installee depuis avec succes sur plusieurs
  systemes avec la distribution slackware, et sur un  systeme  avec  une
  distribution   Debian.   La   procedure   qui   permet  de  configurer
  correctement les modules sous linux pour ces trois  distributions  est
  dans ce document.

  2.  AVERTISSEMENT

  J'ai recemment utilise la meme procedure avec la RedHat 4.2, mais avec
  des resultats contradictoires sur des systemes apparement  identiques.
  Je n'ai PAS encore determine quel est le probleme, et ne peut donc PAS
  garantir aujourd'hui que cela va ou non fonctionner sur votre systeme.

  3.  Prerequis

  Avant  d'appliquer  les  etapes  de ce document, le lecteur DOIT avoir
  installe linux pour que l'on puisse se connecter en tant que root, car
  la  majorite des etapes impliquees ne peuvent etre entreprises que par
  le dit utilisateur.

  Le noyau existant peut etre compile soit  pour  utiliser  les  modules
  soit  pour  ne  pas  les  utiliser. Il peut meme afficher des messages
  d'erreurs pendant  le  demarrage  du  systeme  signalent  les  modules
  configures  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 supposee se trouver a la
  racine  /usr/src/linux  qui est suppose etre le repertoire courant, au
  travers de ce document, de n'importe quelle commande qui en est issue.

  4.  Accelerer la compilation

  Si votre machine a 16 mega ou plus de RAM, on peut accelerer utilement
  les choses  en permettant de compiler plusieurs modules en  parallele.
  Cela  augmentera  la charge cpu de la machine pendant la recompilation
  du  noyau  mais  reduira  le  temps  pendant  lequel  la   compilation
  s'effectuera.

  Avant d'utiliser cette methode, vous devez verifier la quantite de RAM
  presente dans votre machine, car si vous l'avez estimee  trop  grande,
  la  compilation  va en fait etre moins rapide.  L'experience a montree
  que la valeur optimum depend de la quantite de RAM dans votre  systeme
  selon  la formule suivante, au moins pour les systemes qui ont jusqu'a
  32 Mo de RAM, meme si elle est applicable aux systemes avec  une  plus
  grande quantite de RAM:

       N= [RAM en Mo] / 8 + 1

  Pour  ceux  qui  n'aime  pas les maths, les valeurs pour les quantites
  courante de RAM sont :

  La valeur a utiliser avec

  o  16 Mo 3

  o  24 Mo 4

  o  32 Mo 5

  o  40 Mo 6

  o  48 Mo 7

  o  56 Mo 8

  o  64 Mo 9

  o  80 Mo 11

  o  96 Mo 13

  o  112 Mo 15

  o  128 Mo 17

  Quand  vous  avez  choisi  la  valeur  correcte,  editer  le   fichier
  /usr/src/linux/Makefile et trouver la ligne :

       MAKE=make

  La remplacer par:

       MAKE=make -j N

  ou N est le nombre calcule precedemment.

  5.  Recompiler le noyau avec les modules

  Le  noyau  peut  etre  reconfigure pour utiliser les modules pour tout
  sauf le systeme de fichier monte root (dans la plupart des cas,  c'est
  le systeme de fichier ext2).

  Cependant,  il  y  a certains elements qui semble difficle a installer
  proprement en tant que modules, aussi je propose de compiler  dans  le
  noyau:

  o  Les pilotes des cartes ethernet

  o  Les pilotes des CDROMs SCSI.

  D'autre  part,  il  y  a  certaines  combinaisons  de  pilotes  qui ne
  fonctionne QUE comme module, particulierement la combinaison  d'un  ou
  plusieurs des groupes suivants :

  o  L'imprimante parallele

  o  Un  pilote  de port parallele, comme le lecteur Zip de IOMEGA ou le
     lecteur Jazz, ou le CDROM de chez BackPack, et

  o  Le demon PLIP

  Vous aurez a decider de ce qui sera compile dans le  noyau,  ou  comme
  module,  en  prenant  en compte les points cites ci-dessus.  Les vrais
  choix seront fait durant la compilation,  au  moment  de  la  sequence
  d'instructions suivante :

          cd /usr/src/linux
          make menuconfig
          make dep clean modules modules_install zImage

  Apres cela, les dependances de modules doivent etre referencees. C'est
  accompli par les commandes suivantes:

          depmod -a

  Maintenant le nouveau noyau a besoin d'etre insere  dans  la  sequence
  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
  utilise.

  Je  recommande  que le nouveau noyau ne soit pas insere comme etant le
  noyau linux par defaut car s'il plante, il sera extremement  difficile
  de  recuperer le setup linux sans refaire une complete reinstallation,
  ce qui n'est pas recommande.  Pour  cette  raison,  j'ai  les  entrees
  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  entree indique qu'il y a une OPTION de boot (ignoree si l'image
  en question n'existe pas) qui charge le  fichier  /boot/newlinux  s'il
  est  selectionne,  et permet de selectionner le mode video dans lequel
  il sera execute.

  Supposant l'existence de l'entree  ci-dessus  dans  /etc/lilo.conf  le
  noyau   modifie  est  sauvegarde  au  bon  endroit  a  la  fin  de  la
  compilation, et il peut etre installe via les commandes suivantes:

          lilo

  Ayant fait cela, le lecteur a besoin de suivre  les  etapes  suivantes
  qui dependent de la distribution choisie :

  o  Configurer Debian ou la Redhat pour les modules

  o  Configurer la Slackware pour les modules

  o  Configurer les autres distributions pour les modules

  5.1.  Configurer Debian ou la Redhat pour les modules

  Avant  la  prise en compte des operations decrites ici, celles listees
  dans "Recompiler le noyau" pour les modules sont supposees  realisees.

  La  distribution  Debian  et  la  Redhat  ont  des  procedures de boot
  identiques, et ont aussi des procedures identiques pour configurer les
  modules inclus.

  1.  vous  etant  connecte root, utiliser votre editeur de texte favori
  pour creer un  nouveau  fichier  appele  /etc/rc.d/init.d/modules.init
  avec le contenu suivant :

          # Initialisation des modules
          #
          # Demarrer demon d'auto-chargement des modules
          /sbin/kerneld

          # Monter toutes les partitions courantes auto-montables non montees
          /sbin/mount -a

  2.  Ayant  cree  le  fichier  ci-dessus, executer les etapes suivantes
  alors que vous etes connecte root:

          cd /etc/rc.d
          chmod 755 init.d/*
          cd rc3.d
          ln -s ../init.d/modules.init 05modules.init

  Le systeme peut etre relance, les modules sont alors implementes.

  5.2.  Configurer la Slackware pour les modules

  Avant la prise en compte des operations decrites ici,  celles  listees
  dans  "Recompiler le noyau" pour les modules sont supposees realisees.

  1- Le fichier /etc/rc.d/rc.M doit etre editer comme suit :

  o  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 apres, inserer le paragraphe suivant, avec  les  traditionnelles
  lignes blanches au dessus et en dessous:

          # Charger le chargeur automatique de module noyau
          /sbin/kerneld

  o  A peut pres 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  ete  fait,  sauver  le  fichier.   Aucun
  changement supplementaire n'est requis pour la Slackware.

  5.3.  Configurer les autres distributions pour les modules

  Avant la prise en compte des operations decrites ici,  celles  listees
  dans  "Recompiler le noyau" pour les modules sont supposees realisees.

  La procedure  precise  pour  les  autres  distributions  n'a  pas  ete
  determinee,  mais  il  s'agit  probablement d'une de celle citees plus
  haut. Pour determiner laquelle,  afficher  le  contenu  du  repertoire
  /etc/rc.d, comme suit:

          cd /etc/rc.d
          ls -l *.d rc.*

  A  partir  du  resultat,  vous  pouvez  choisir  une des trois options
  suivantes:

  o  Si cette  liste  inclu  un  repertoire  nomme  init.d  et  quelques
     repertoires  dont  les  noms  correspondent  a  rc?.d  (ou le point
     d'interrogation remplace un caractere unique), et  n'inclu  PAS  un
     fichier  nomme  rc.M,  cette distribution peut etre configuree pour
     les modules en suivant la procedure pour les  distributions  Debian
     et redhat.

  o  Si  cette liste n'inclu pas un repertoires appele init.d mais inclu
     un fichier appele rc.M alors la distribution peut  etre  configuree
     pour  les  modules  en  suivant  la  procedure pour la distribution
     slackware.

  o  Si a cette liste ne correspond aucun  des  criteres  ci-dessus,  la
     distribution  a  un  script de boot qui n'est pas presente dans cet
     Howto. Dans ce cas, vous etes invites a contacter  l'auteur  de  ce
     document pour conseils.

  6.  Copyright et Loi

  Ce document est couvert par les termes de la Licence Generale Publique
  GNU (GPL), dont tous les termes et limitations s'appliquent.

  L'auteur peut etre contacte par email a rhw@bigfoot.com

