3. Comment réellement configurer le noyau ?

Contenu de cette section

3.1 Récupérer les sources

Vous pouvez récupérer les sources via ftp depuis ftp.funet.fi dans le répertoire /pub/Linux/PEOPLE/Linus, sur un miroir de ce site, ou d'autres sites. (NdT: en France, ftp.ibp.fr dans /pub/linux/kernel/sources). Le noyau est typiquement appelé linux-x.y.z.tar.gz, où x.y.z est le numéro de la version. Les nouvelles versions (plus performantes ?) ainsi que les patches se trouvent dans des repertoires tels que "v1.1" et "v1.2". Le plus grand chiffre est la dernière version, et peut être généralement considérée comme étant une version de tests, ce qui signifie que si jamais vous vous sentez mal à l'aise avec des version alpha ou béta, vous devriez vous cantonner au mise à jours officielles.

Il est fortement suggéré d'utiliser un site miroir au lieu de ftp.funet.fi ! En voici une courte liste :

USA :            tsx-11.mit.edu:/pub/linux/sources/system
USA :            sunsite.unc.edu:/pub/Linux/kernel
UK :             sunsite.doc.ic.ac.uk:/pub/unix/Linux/sunsite.unc-mirror/kernel
Autriche :       ftp.univie.ac.at:/systems/linux/sunsite/kernel
Allemagne :      ftp.Germany.EU.net:/pub/os/Linux/Local.EUnet/Kernel/Linus
Allemagne :      sunsite.informatik.rwth-aachen.de:/pub/Linux/PEOPLE/Linus
France :         ftp.ibp.fr:/pub/linux/kernel/sources
Australie:       sunsite.anu.edu.au:/pub/linux/kernel

En général, les miroirs du site sunsite.unc.edu sont des endroits très recommandés. Le fichier /pub/Linux/MIRRORS contient la liste de tous les miroirs connus. Si vous n'avez pas d'accès ftp, une liste de systèmes BBS possédant Linux est postée périodiquement dans comp.os.linux.announce. Essayez de mettre la main dessus !

Si vous cherchez des informations générales sur Linux et ses distributions, consultez le site http://www.linux.org.

(NdT : pour la France, voir la liste postée dans le forum de discussion fr.comp.os.linux.annonces)

3.2 Installer les sources

Passez en su (super utilisateur) ou bien logez-vous en tant que "root", et allez dans le répertoire /usr/src. Si vous avez déjà installé les sources du noyau, il y aura toujours un répertoire appelé "linux", contenant l'ensemble des sources du noyau. Si vous avez de la place disque et que vous voulez jouer la carte sécurité, il est préférable de conserver ce répertoire intact. Un système assez pratique consiste à renommer votre répertoire en fonction du numéro de la version. La commande "uname -r" vous indiquera le numéro de la version du noyau actuellement en fonction.

Par exemple, si "uname -r" donne "1.0.9," vous pourrez déplacer votre répertoire (avec mv) "linux" en "linux-1.0.9". Si vous êtes du genre téméraire, détruisez le répertoire. Dans n'importe quel cas, soyez sûr qu'il n'y ait aucun répertoire "linux" dans /usr/src avant de décompresser et d'installer les sources.

Dans /usr/src, installez les sources en faisant "tar zxpvf linux-x.y.z.tar.gz" (si vous avez uniquement un fichier .tar, sans de .gz à la fin,"tar xvf linux.x.y.z.tar" marchera sans problème.). Vous verrez la liste des fichiers se dérouler sous vos yeux. Lorsque c'est terminé, il y aura un nouveau répertoire "linux". Allez dans Linux et jetez un coup d'oeil au fichier README. Il y a une section "INSTALLING the kernel". Suivez les intructions lorsque nécessaire - prenez garde à ce que les liens soient en place et que les fichiers .o soient détruits, etc.

3.3 Configurer le noyau

Note : il s'agit d'une répétition, clarification du paragraphe correspondant dans le fichier README de Linus.

La commande "make config" lance un script qui va vous poser un certain nombre de questions. Il a besoin de bash, donc vérifiez que vous possédez bien /bin/bash, /bin/sh, ou $BASH.

Il existe un certain nombre d'autres possibilités autres que make config et il est possible que vous les trouviez plus simple à utiliser. Pour ceux qui utilisent X, vous pouvez essayer make xconfig si vous avez au préalable installé Tk (click-o-rama - Nat). make menuconfig est destiné à ceux qui ont installé (n)curses et qui préfèrent utiliser un menu en mode texte. Ces interfaces ont un avantage : si vous vous trompez lors de la configuration, vous pouvez facilement corriger l'erreur sans avoir à tout relancer.

Vous êtes alors prêt à répondre aux questions, la plupart du temps par "y" ou par "n". Certaines options non critiques ou évidentes ne seront pas décrites ici. Consultez le paragraphe "Autres options de configuration" pour une courte descriptions des options non détaillées ici.

Dans la version 2.0, une option "?" est présente : elle permet d'obtenir une aide pour l'option désirée. Les commentaires sont sûrement les informations les plus à jour sur le gestionnaire.

(NdT : les titres suivants correspondent aux questions qui vous sont posées. Une traduction française se trouve entre parenthèses.)

Kernel math emulation (Emulation du coprocesseur Arithmétique)

Si vous ne possédez pas de coprocesseur arithmétique (autrement dit, vous ne disposez que d'un 386 ou d'un 486SX), répondez "y". Si au contraire, vous en avez un et que vous répondez "y", ce n'est pas grave : le coprocesseur sera utilisé et l'émulation ignorée. La seule conséquence est une taille supérieure du noyau. On m'a dit que l'émulations du coprocesseur est lente, bien que cela n'ait rien à voir avec ce paragraphe, c'est un point qu'il faut tenir en compte surtout si vous trouvez que le système X Window est lent.

Normal (MFM/RLL) disk and IDE disk/cdrom support (Gestion Standard des disques durs)

Vous devez à peu près toujours répondre oui à cette question. Cela signifie que le noyau pourra gérer les disques standards des PC comme IDE, que bon nombre de gens possèdent. Ceci n'inclut pas les disques SCSI : ils sont sélectionnables plus tard dans la configuration.

Une question porte sur les gestionnaires de périphériques "old disk-only" et "new IDE". Vous devez choisir l'un des deux. La principale différence est que le vieux gestionnaire de périphérique ne supporte qu'au plus deux disques sur une seule interface. Le nouveau gestionnaire gère une deuxième interface IDE et les disques CD-ROM IDE/ATAPI , et il est plus gros de 4 Ko que l'ancien. Cela signifie qu'il est possible qu'il puisse avoir quelques bogues, mais il peut améliorer les performances de votre disque, notamment si vous possédez du matériel récent (comme de l'EIDE).

Networking support (Gestion du Réseau)

En principe, vous ne devriez répondre "y" que si votre machine se trouve sur un réseau tel qu'Internet ou si vous voulez utiliser SLIP, PPP, term, etc. pour communiquer avec un accès Internet externe. Toutefois, bon nombre de paquetages (tels que le système X Window) a besoin de ce support réseau même si votre machine n'y est pas relié ; dans ce cas, répondez "y". Plus tard, on vous demandera si vous voulez avoir le support TCP/IP. De même, répondez "y", à moins que vous ne soyez sûr de ce que vous faites.

Limit memory to low 16MB (Vous avez moins de 16 Mo)

Il y a quelques contrôleurs DMA bogués pour 386 qui, au delà de 16Mo de mémoire, ne peuvent rien adresser correctement. Dans ce cas assez rare, répondez "y".

System V IPC

L'une des meilleures définition des IPC (Communication inter-processus) se trouve dans l'index du livre de Perl. Cela n'est pas surprenant : certains déveoppeurs Perl l'utilisent pour permettre aux processus de communiquer entre eux, comme d'autres paquetages(comme par exemple DOOM), donc ce n'est pas vraiment une bonne idée de répondre "n" à cette question à moins que vous ne sachiez exactement ce que vous faites.

Processor type (386, 486, Pentium, PPro)

Dans les anciens noyaux, il s'agissait de l'option Use -m486 flag for 486-specific optimizations.

Cette option permettait d'optimiser certaines optimisations pour un type de processeur, le noyau fonctionnant normalement avec les autres processeurs. Le noyau généré avait toutefois une taille légèrement supérieure. Dans les nouveaux noyaux, cette différence de taille n'est plus d'actualité donc vous pouvez indiquer le processeur que vous allez utiliser avec le nouveau noyau. Un noyau "386" fonctionnera avec toutes les machines.

SCSI support (Gestion SCSI)

Si vous avez un périphérique SCSI, répondez "y". On vous demandera alors de plus amples renseignements sur la gestion des CD-ROM, des disques, et de quel type de contrôleur SCSI vous possédez. Consultez SCSI-HOWTO pour plus de détails.

Network device support (Gestion de périphériques réseau)

Si vous avez une carte réseau, ou si vous voulez utiliser SLIP, PPP, ou un port parallèle, répondez "y" . Le script de configuration vous demandera alors quel type de carte vous possédez et quels protocoles vous voulez inclure.

Filesystems (Systèmes de gestion de fichiers)

On vous demandera si vous désirez gérer un certain nombre de gestionnaires de fichiers. Il y a :

Standard (minix) - Les distributions ne créent pas de gestionnaires de fichiers de type minix, et bon nombre de personnes ne s'en servent pas, mais cela peut être une bonne idée de le configurer. Quelques programmes de "sauvetage de disques" l'utilisent, et encore aujourd'hui, un bon nombre de disquettes risquent avoir ce systeme de fichiers, puisque que ce système est optimal pour les disquettes.

Extended fs - C'était la première version du gestionnaire de fichiers étendu, qui n'est plus utilisée.

Second extended - Très largement utilisé dans les nouvelles distributions. Vous avez sûrement ce système sur votre machine. (NdT : et puis c'est un Français qui l'a fait alors... !)

xiafs filesystem - A une époque, il était assez utilisé mais maintenant, je ne connais personne qui l'utilise.

msdos - Si vous voulez utiliser les partitions de votre disque MS-DOS, ou monter des disquettes au format MS-DOS, répondez "y".

umsdos - C'est une extension du gestionnaire de fichiers MS-DOS, avec des caractéristiques semblables à celles d'Unix, telles la longueur des noms. Ce n'est pas très utile pour des gens (comme moi) qui n'utilisent pas MS-DOS.

/proc - Un des systèmes de fichiers les plus puissants (idée effrontément chipée aux Laboratoires Bell, je pense). Ca n'a rien à voir avec vos partitions disques, mais c'est une interface de gestionnaire de fichiers avec le noyau et les processus. Un grand nombre d'outils de visualisation de processus (comme "ps" l'utilisent. Si vous l'avez installé, essayez "cat /proc/meminfo" ou "cat /proc/devices". Quelques shells (comme rc) utilisent /proc/self/fd (connu comme /dev/fd sur d'autres systèmes) pour les entrées/sorties. Vous devriez répondre "y" à ceci : de nombreux programmes standard Linux en ont besoin.

NFS - Si vous êtes en réseau et que vous voulez partager des fichiers, répondez "y".

ISO9660 - Format rencontré sur de nombreux CD-ROM. Si vous possédez un CD-ROM et que vous comptez vous en servir sous Linux, répondez "y".

OS/2 HPFS - A l'heure ou j'écris ce document, c'est un gestionnaire de fichiers en lecture seule pour OS/2 HPFS.

System V et Coherent - pour les partitions de type System V et les systèmes Coherent (il y a d'autres variantes pour Unix PC).

Mais je ne sais pas quels sont les gestionnaires de fichiers dont j'ai besoin !

Bon, tapez "mount", cela va vous afficher un truc comme ça :

        blah# mount
        /dev/hda1 on / type ext2 (defaults)
        /dev/hda3 on /usr type ext2 (defaults)
        none on /proc type proc (defaults)
        /dev/fd0 on /mnt type msdos (defaults)

Observez chacune des lignes. Le mot à coté de "type" est le nom du gestionnaire de fichier. Dans cet exemple, mes partitions / et /usr sont du type ext2fs, j'utilise /proc, et il y a un lecteur de disquettes monté en utilisant le gestionnaire de fichier MS-DOS (beuurrrk !).

Essayez "cat /proc/filesystems" si vous avez /proc. Cela vous donnera la liste des gestionnaire de fichiers que votre noyau gère.

La configuration de certains systèmes de fichiers rarement utilisés et qui ne sont pas absolument nécessaire peuvent augmenter la taille du noyau. Voir la section sur les modules chargeables pour résoudre ce problème, ainsi que la section sur les gros noyau.

Character devices (Périphériques caractères)

Vous trouverez ici les périphériques pour gérer vos imprimantes, souris bus, souris PS/2 (beaucoup de portables utilisent une souris constructeur de type PS/2), quelques gestionnaires de cassettes, et d'autres périphériques de type "caractère". Répondez "y" quand vous le jugez bon.

Note : "Selection" est un programme qui vous permet d'utiliser la souris à l'extérieur de X-Windows pour effectuer des opérations de copier-coller entre les consoles virtuelles. C'est assez utile si vous avez une souris série, car cela s'interface bien avec X-Windows, mais vous devrez faire quelques trucs pour que cela fonctionne avec les autres. Le support Selection a été une option de configuration pendant longtemps mais c'est désormais un standard.

Note 2 : "Selection" est désormais considéré comme obsolète. "gpm" est le nom du nouveau programme. Il peut faire plus de chose, comme gérer plus de souris, etc.

Sound card (Carte sons)

Si aimez entendre biff aboyer, répondez "y", et plus tard, un autre programme de configuration va se compiler puis vous demander ce que vous désirez installer. (Un mot sur la configuration des cartes sons : lorsqu'il vous demande si vous voulez installer la version entière du gestionnaire, vous pouvez répondre `n' et donc économiser de la mémoire en insérant uniquement les caractéristiques dont vous avez besoin.). Il est grandement recommandé de consulter le Sound-Howto pour plus de détail consernant la gestion des cartes sons.

Autres options de configuration

Toutes les options de configuration ne sont pas détaillées dans ce document car elles changent trop souvent ou bien sont réellement évidentes (par exemple, le support de la carte 3Com 3C509 permet la compilation du gestionnaire.). Il existe une liste assez complète de ces options (plus une manière de les insérer dans le script Configure) mise à jour par Axel Boldt (axel@uni-paderborn.de) sur l'URL suivante :

     http://math-www.uni-paderborn.de/~axel/config_help.html
ou bien via ftp anonyme :

     ftp://sunsite.unc.edu/pub/Linux/kernel/config/krnl_cnfg_hlp.x.yz.tgz
x.yz est le numéro de la version.

Pour les noyaux plus récentts (2.0.x et supérieurs), ce fichier a été intégré dans les sources.

Kernel hacking

Extrait du README de Linus :

La configuration "kernel hacking" provoque généralement un noyau plus gros ou plus lent (ou les deux), et peut même rendre le noyau moins stable en configurant quelques routines pour essayer de chercher les défauts du code, pour trouver les problèmes du noyau (kmalloc()). Donc, vous devrez répondre "n" à cette question si vous créez un noyau pour un système sûr.

3.4 Garçon, la suite ! (Le Makefile)

Après avoir fait make config, un message vous indique que le noyau est configuré, et qu'il faut "regarder le Makefile général pour des configurations supplémentaires" , etc.

Donc, jetez un coup d'oeil au Makefile. Vous ne changerez probablement rien, mais ça ne peut pas vous faire de mal ! Vous pouvez également changer ici les options en rapport avec la commande "rdev", une fois que le noyau est prêt.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre