このページは大阪弁化フィルタによって翻訳生成されたんですわ。

翻訳前ページへ


Certains exemples pr駸ent駸 dans ce document pr駸upposent que vous poss馘ez les programmes GNU tar, find et xargs. Ils sont assez standards, et ne devraient pas vous poser trop de probl鑪es. On suppose 馮alement que vous connaissez la structure de votre disque (partitions). Si vous ne le savez pas, il est imp駻atif que vous gardiez une copie sur papier du r駸ultat de l'ex馗ution de la commande mount (ou bien une copie du fichier /etc/fstab, si vous savez le lire). risque d'y avoir quelques diff駻ences. Cela ne devrait pas poser trop de probl鑪es mais risque de semer un peu la confusion.

Il existe deux versions des sources du noyau : une version dite "stable" et une version de d騅eloppement. Les version stables ont des num駻os de version pairs : 1.2.x, 2.0.x sont des versions stables... tout comme la 2.2.x. Ces noyaux sont consid駻駸 comme 騁ant les plus stables et sans erreurs. Les noyaux de d騅eloppement (1.3.x, 2.1.x, etc) sont des sur votre 馗ran, soit un fichier, soit quelque chose qui peut 黎re directement saisi, comme une commande ou des options pour une commande (si vous poss馘ez une version texte de ce document, il n'y a pas de diff駻ence).

2. Quelques questions... avec leurs r駱onses

2.1 Mais quel est le r?e du noyau ?

Le noyau Unix joue le r?e d'interm馘iaire entre vos programmes et votre mat駻iel. Premi鑽ement, il g鑽e la m駑oire pour tous les programmes

Jetez un coup d'oeil sur le Hardware-HOWTO. Vous pouvez aussi regarder le fichier "config.in" dans les sources de Linux, ou juste essayer "make config", ce qui vous permet de voir tous les mat駻iels support駸 par le noyau standard, mais pas tout ce que Linux supporte. En effet, beaucoup de p駻iph駻iques assez utiles (tels les p駻iph駻iques PCMCIA, et quelques lecteurs de cartouches) sont des modules chargeables maintenus et distribu駸 s駱ar駑ent.

2.4 Quelle version de gcc ou de libc utiliser ?

Linus recommande une version de gcc dans le fichier README fourni avec le code source. Si vous ne poss馘ez pas cette version, la documentation dans la version recommand馥 de gcc devrait vous indiquer si souplesse, c'est devenu la m騁hode pr馭駻馥 pour coder certaines fonctionnalit駸 du noyau. Bon nombre de pilotes de p駻iph駻iques tels que PCMCIA et les gestionnaires de cartouches QIC-80/40 sont des modules chargeables.

2.6 De combien d'espace disque ai-je besoin ?

code de pays, par exemple ftp.fr.kernel.org pour la France, ftp.be.kernel.org pour la Belgique.

3.2 Installer les sources

Faites un su (super utilisateur) ou bien loggez-vous en tant que la version du noyau actuellement en fonction.

Par exemple, si "uname -r" donne "1.0.9," vous pourrez d駱lacer votre r駱ertoire (avec mv) "linux" en "linux-1.0.9". Si vous 黎es du genre t駑駻aire, d騁ruisez le r駱ertoire. Dans tous les cas, soyez s? qu'il n'y ait aucun r駱ertoire "linux" dans /usr/src avant de d馗ompresser et d'installer les sources.

Dans /usr/src, installez les sources en faisant "tar zxpvf http://www.muraroa.demon.co.uk/). Faites:

     bz2cat linux-x.y.z.tar.bz2 | tar xvf -

3.3 Configurer le noyau

Note : il s'agit d'une r駱騁ition, clarification de la section correspondante 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 si vous vous trompez lors de la configuration, vous pouvez facilement corriger l'erreur sans devoir tout relancer.

Avec make menuconfig et make xconfig les options de configuration appara?ront hi駻archis馥s.

paragraphe "Autres options de configuration" pour une courte descriptions de quelques options non d騁aill馥s ici. Avec make menuconfig vous pouvez utiliser la barre d'espace.

タ partir des versions 2.0.x, une option "?" est pr駸ente : elle

Kernel math emulation (Precessor type and features)

(ノmulation du coprocesseur Arithm騁ique) Si vous ne poss馘ez pas de coprocesseur arithm騁ique (autrement dit, vous ne disposez que d'un 386 ou d'un 486SX), r駱ondez "y". Si vous en avez un et que vous sont s駘ectionnables plus tard dans la configuration.

Une question porte sur les gestionnaires de p駻iph駻iques "old disk-only" et "new IDE". Vous devez choisir l'un des deux. La principale diff駻ence est que le vieux gestionnaire de p駻iph駻ique ne "y" que si votre machine se trouve sur un r駸eau tel qu'Internet ou si vous voulez utiliser SLIP, PPP, term, etc. pour communiquer avec un acc鑚 Internet externe. Toutefois, bon nombre de

System V IPC (General Setup)

L'une des meilleures d馭inition des IPC (communication inter-processus) se trouve dans le glossaire du livre de Perl. Ces m馗anismes sont utilis駸 par

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

Cette option s駘ectionnait certaines optimisations pour un type de processeur, le "386" fonctionnera avec toutes les machines.

SCSI support

(Gestion SCSI) Si vous avez au moins un p駻iph駻ique SCSI, r駱ondez "y". On vous demandera alors de plus amples renseignements sur la gestion des CD-ROM, des disques, et quel type de contr?eur SCSI vous poss馘ez. Consultez le SCSI-HOWTO pour plus de d騁ails.

Network device support

(Gestion de p駻iph駻iques r駸eau) Si vous avez une carte r駸eau, ou si vous voulez utiliser SLIP, PPP, ou un adaptateur sur port parall鑞e, r駱ondez "y". Le script de configuration vous demandera alors quel type de carte vous poss馘ez et quels protocoles vous voulez inclure.

Filesystems

(Syst鑪es de fichiers) On vous demandera quels types de syst鑪es de fichiers vous souhaitez g駻er :

Standard (minix) - Les distributions r馗entes ne cr馥nt pas de syst鑪es de fichiers de type minix, et bon nombre de personnes ne s'en servent pas, mais

Second extended - C'est le syst鑪e de fichiers standard de Linux. Vous en aurez tr鑚 certainement besoin, donc "y". (NdT : et puis c'est un Fran軋is qui l'a fait alors... !)

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

Des syst鑪es de fichiers originaires d'autres syst鑪es d'exploitation sont 馮alement disponibles.

/proc - Un des syst鑪es de fichiers les plus puissants (id馥 effront駑ent

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

        blah# mount
        /dev/hda1 on / type ext2 (defaults)
        /dev/hda3 on /usr type ext2 (defaults)
        none on /proc type proc (defaults)
/usr sont du type ext2fs, j'utilise /proc, et il y a une
disquette mont馥 avec le syst鑪e de fichiers MS-DOS (beuurrrk !).

Essayez "cat /proc/filesystems" si vous avez /proc. Cela vous donnera la liste des syst鑪es de fichiers que votre noyau g鑽e.

Le support de syst鑪es de fichiers rarement utilis駸 et qui ne sont pas absolument n馗essaires peut augmenter la taille du noyau. Voir la section sur les modules chargeables pour r駸oudre ce probl鑪e, ainsi que la section sur les pi鑒es.

Character devices

(P駻iph駻iques caract鑽e) Vous trouverez ici les pilotes pour g駻er votre imprimante parall鑞e, souris bus, souris PS/2 (beaucoup de portables utilisent une souris constructeur de type PS/2), quelques lecteurs de bande "y", puis donnez au programme de configuration tout ce qu'il veut savoir sur votre carte son. タ propos : lorsqu'il vous demande si vous voulez installer la version enti鑽e du pilote, vous pouvez r駱ondre

Toutes les options de configuration ne sont pas d騁aill馥s dans ce document car elles changent trop souvent ou bien sont vraiment 騅identes (par exemple, le support de la carte 3Com 3C509 permet la compilation du Documentation/Configure.help des sources du noyau depuis la version 2.0.

Kernel hacking

Extrait du README de Linus :

La configuration "kernel hacking" provoque g駭駻alement un noyau plus gros ou plus lent (ou les deux), et peut m麥e rendre le noyau

4. Compiler le noyau

4.1 Nettoyer et chercher les d駱endances

Lorsque le script de configuration va se terminer, il vous demandera de faire un "make dep" et (peut-黎re) "make

"bzdisk" est assez commode pour tester de nouveaux noyaux ; s'il ne fonctionne pas, enlevez juste la disquette et relancez la machine avec votre ancien noyau. C'est 馮alement une m騁hode pratique si vous avez d騁ruit accidentellement votre noyau (ou quelque chose de ce genre). Vous pouvez 馮alement vous en servir pour installer de nouveaux syst鑪es, en copiant directement le contenu d'un disque sur un autre ("tout 軋 ? ouah !").

4.4 Installer le noyau

Une fois que vous avez un nouveau noyau qui semble fonctionner comme vous le voulez, il est grand temps de l'installer. La plupart des gens utilisent LILO (LInux LOader). "make zlilo" installera votre noyau, place : "cp bzImage /vmlinuz" si vous utilisez "/vmlinuz", puis relancez lilo. Sur les syst鑪es r馗ents, vous pouvez simplement lancer "lilo", mais sur de plus anciens, vous devez faire un /etc/lilo/install ou /etc/lilo/lilo -C /etc/lilo/config.

Si vous d駸irez en savoir plus sur la configuration de LILO, ou si vous voulez avoir LILO, r馗up駻ez la derni鑽e version sur votre site FTP favori et suivez les instructions.

"yyy" est le chemin complet du noyau de secours. Puis changez "label = zzz" en "label = linux-sauvegarde" et relancez lilo. Si elle n'y est pas, vous devrez rajouter une ligne dans le fichier de configuration indiquant sauvegarde de votre arborescence des sources du noyau ("make clean" puis "cd /usr/src; tar zcf old-tree.tar.gz linux" va produire une archive compress馥).

Poursuivons avec cet exemple et supposons que vous ayez mis le fichier .rej. Quelques versions de patch (vieilles versions) utilisent # pour les fichiers rejet駸. Vous pouvez utiliser "find" pour les trouver :

        find .  -name '*.rej' -print
ci-dessus, patch -s supprime tous les messages sauf les erreurs. Si vous stockez les sources de votre noyau dans un autre r駱ertoire que /usr/src/linux, un patch -p1 dans ce r駱ertoire fera les choses proprement. Les autres options sont bien document馥s dans les pages de manuel.

5.2 Si quelque chose ne fonctionne pas

(Note : cette section traite plut? des noyaux assez anciens)

Le probl鑪e le plus fr駲uent qui se pr駸entait 騁ait lorsqu'un patch 馘itez config.in, et changez les "y" en "n" et les "n" en "y" lorsque cela est n馗essaire. Faites un

        patch -p0 < config.in.rej

Il y a d'autres mani鑽es (meilleures ?) pour se d饕arrasser des fichiers .orig en utilisant le programme GNU xargs :

        find .  -name '*.orig' | xargs rm
ou la m騁hode s?e mais un peu plus verbeuse :
        find . -name '*.orig' -print0 | xargs --null rm --

5.4 Autres patches

Il y a d'autres patches (je les appellerai "non-standards") que ceux distribu駸 par Linus. Si vous les appliquez, les patches Linus risquent de de modules chargeables, le nombre de patches "non standards" d馗ro?.

6. Paquetages suppl駑entaires

Votre noyau Linux a bon nombre de caract駻istiques qui ne sont pas expliqu馥s dans le noyau lui-m麥e ; elles sont typiquement utilis馥s par des paquetages externes. Une liste des plus utiles est donn馥 ici.

6.1 kbd

La console de Linux poss鐡e de nombreuses caract駻istiques. Elle peut d'outils Linux dans le paquetage util-linux. Ils est d駸ormais maintenu par Andries Brouwer (util-linux@math.uio.no). Disponible via ftp anonyme sur sunsite.unc.edu dans /pub/Linux/system/misc, il contient des programmes tels que setterm, rdev, et ctrlaltdel, qui concernent le noyau. Comme le dit Rik, n'installez pas sans r馭l馗hir, vous n'avez pas besoin de tout installer dans la distribution, et cela pourrait vous causer de graves ennuis.

6.3 hdparm

6.4 gpm

gpm est un gestionnaire de souris. Ce programme vous permet d'effectuer du couper-coller en mode texte entre les consoles virtuelles ainsi que d'autres op駻ations avec un grand nombre de types de souris.

sympt?es peuvent 黎re un plantage de votre syst鑪e, des probl鑪es d'entr馥s-sorties 騁ranges, une chute des performances, des reboot al饌toires... V駻ifiez que vous avez 馮alement fait un make dep.

7.2 Noyaux 駭ormes ou lents

(pilotes de p駻iph駻iques, syst鑪es de fichiers) dont vous n'avez pas besoin. Si vous ne les utilisez pas, ne les configurez pas car cela prend beaucoup de place en m駑oire. Le sympt?e le plus visible est l'augmentation sensible du fonctionnement du swap. Si votre disque fait

Vous pouvez calculer la taille m駑oire que le noyau utilise en prenant la m駑oire totale de votre machine et en soustrayant la valeur de la m駑oire totale ("total mem") dans /proc/meminfo ou bien avec la commande "free".

7.3 Le port parall鑞e ne fonctionne pas/mon imprimante ne fonctionne pas

Les options de configuration pour les PC sont : premi鑽ement, dans la cat馮orie "General Setup" s駘ectionnez "Parallel port support" et "PC-style hardware". Puis dans "Character devices", poss馘ez des sources corrompus. Votre version de gcc peut 馮alement ne pas 黎re correcte, ou bien endommag馥 (par exemple les fichiers d'include peuvent 黎re faux). Soyez s? que les liens que Linus d馗rit dans le fichier README sont corrects. En g駭駻al, si un noyau standard ne compile pas, c'est qu'un truc ne tourne pas rond dans le syst鑪e, et il est plus que probable que certains outils doivent 黎re reinstall駸.

Dans des cas relativement rares, gcc peut 馗houer en raison de probl鑪es de http://www.linux-france.org/article/sig11-fr/sig11-fr.html).

7.5 La nouvelle version du noyau ne boote plus !

racine (/) se trouve et quel est son type (ext2fs, minix, etc). Dans l'exemple ci-dessous, vous aurez 馮alement besoin de conna?re la partition des sources du noyau (/usr/src/linux), et où elle est mont馥.

Dans cet exemple,la racine / est /dev/hda1, la partition qui supporte /usr/src/linux est /dev/hda3, normalement mont馥 sur /usr. Toutes les deux ont un syst鑪e de fichiers de type ext2fs. L'image du noyau se trouve dans d'une disquette de secours et montez la partition où se trouve le noyau en 騁at de marche :

        mkdir /mnt
        mount -t ext2 /dev/hda3 /mnt

Si mkdir vous annonce que le r駱ertoire existe, ignorez le message. /vmlinuz, faites comme ci-dessus en changeant /dev/hda3 en /dev/hda1 (la partition /), /mnt/src/linux en /mnt, et if=bzImage en if=vmlinuz. La petite lien n'existe pas, ou bien pointe au mauvais endroit, bon nombre de programmes ne compileront pas. Si vous d馗idez que les sources du noyau prennent trop de place sur votre disque et que vous les d騁ruisez, cela sera d駸archiviez les sources du noyau sans l'option p (conserve le mode), les utilisateurs ne pourront pas utiliser le compilateur C. Vous pouvez alors utiliser la commande chmod pour r駸oudre le probl鑪e mais il est probablement plus facile de r駟nstaller les fichiers include. Vous pouvez proc馘er de la m麥e mani鑽e que lors de l'installation des sources au d饕ut, en ajoutant un argument pour n'extraire que les includes :

    blah# tar zxvpf linux.x.y.z.tar.gz linux/include
Notez que "make config" va recr馥r le lien (modutils-x.y.z), regardez le fichier README, et suivez les instructions d'installation (qui sont en g駭駻al tr鑚 simples, du genre, faites make install). Vous devriez avoir maintenant les programmes insmod, rmmod, ksyms, lsmod, genksyms, modprobe, et depmod dans /sbin. Vous pouvez les tester avec le pilote exemple "hw" dans insmod ; regardez le fichier INSTALL dans ce sous-r駱ertoire pour les d騁ails.

drv_hello.o
'. Pour voir les modules que le noyau utilise actuellement, lancer lsmod. Il devrait alors afficher :
blah# lsmod
Module:        #pages:  Used by:
drv_hello          1
pas un nom de fichier. Les autres programmes de gestion des modules sont document駸 (pages de manuel).

9.2 Modules distribu駸 avec le noyau

Avec la version 2.0.30, presque tout est disponible sous forme de modules chargeables. Pour les utiliser, soyez s? que vous ne les ins駻ez pas dans la configuration du noyau. Pour cela, ne r駱ondez pas y pendant le `make config'.

Compilez un nouveau noyau et bootez avec. Puis, cd dans pouvez alors les utiliser depuis ce r駱ertoire ou faire `make modules_install' qui les installera dans /lib/modules/x.y.z, ou x.y.z est le num駻o de version du noyau.

Cela peut 黎re particuli鑽ement utile pour les syst鑪es de fichiers. Vous n'utilisez peut-黎re pas fr駲uemment les syst鑪es de fichiers minix ou msdos. Par exemple, si je rencontre une disquette msdos (beuh), je devrai faire un insmod /usr/src/linux/modules/msdos.o, puis rmmod secours.

10. Trucs et astuces

10.1 Rediriger la sortie standard des commandes make ou patch

Si vous voulez voir ce que font les commandes "make" ou "patch", vous pouvez rediriger les messages. Regardez d'abord quel shell vous utilisez. "grep root /etc/passwd" et cherchez quelque chose comme "/bin/csh".

Si vous utilisez sh ou bash,

        (commande) 2>&1 | tee  (Fichier de sortie)
placera une copie de la sortie dans le fichier (Fichier de sortie).

Pour csh ou tcsh, la syntaxe est :

(commande) |& tee (Fichier de sortie).

Pour rc (note : vous n'utilisez probablement pas rc) c'est :

        (commande) > [2=1]| tee (Fichier de sortie).

10.2 Installations diverses du noyau

En plus des disquettes, d'autres m騁hodes existent pour tester un nouveau qui vous donne un prompt. タ ce moment, tapez `nouveau_noyau' pour qu'il boote sur le nouveau noyau.

Si vous d駸irez conserver plusieurs sources du noyau (cela peut prendre beaucoup de place ; faites attention), la mani鑽e la plus simple /usr/src/linux' indiquera la version 1.2.2 comme version courante. Avant de cr馥r ce type de lien symbolique, soyez certain que le dernier argument de ln n'est pas un r駱ertoire existant. Le r駸ultat ne serait pas celui que vous esp駻iez.

  • BogoMips mini-HOWTO : pour information
  • 12. Divers

    12.1 Auteur

    L'auteur du Kernel-HOWTO Linux est Brian Ward (bri@cs.uchicago.edu). S'il vous pla?, envoyez-moi des

    J'ai beaucoup de mail sur des probl鑪es et questions de mat駻iel. Ce n'est pas un probl鑪e mais merci de noter que que je ne suis pas familier avec tout le mat駻iel du monde. J'utilise des processeurs AMD, des controlleurs SCSI Adaptec et Symbios et des disques SCSI IBM.

    avec les suggestions venant d'autres personnes. De m麥e pour "Autres paquetages". Des informations suppl駑entaires pour le d饕ogage/sauvetage lors de crash seraient les bienvenues.

    12.3 Contributions

    Une petite partie du README de Linus (cf. option kernel hacking ) est incluse. (Merci, Linus !)

    • uc@brian.lunetix.de (Ulrich Callmeier) : patch -s et xargs.
    • quinlan@yggdrasil.com (Daniel Quinlan) : corrections et des options de configuration du noyau et m'a fourni la liste
    • lembark@wrkhors.psyber.com (Steve Lembark) : suggestion pour le boot multiple.
    • kbriggs@earwax.pd.uwa.edu.au (Keith Briggs) : quelques corrections et suggestions
    • rmcguire@freenet.columbus.oh.us (Ryan McGuire): ajouts au niveau des options de compilation
    • Eric.Dumas@freenix.fr (Eric Dumas) : traduction fran軋ise
    • simazaki@ab11.yamanashi.ac.jp (Yasutada Shimazaki): traduction japonaise
    • jjamor@lml.ls.fi.upm.es (Juan Jose Amor Iglesias): traduction espagnole
    • mva@sbbs.se (Martin Wahlen) : traduction su馘oise
    • jzp1218@stud.u-szeged.hu (Zoltan Vamosi) : traduction hongroise
    • bart@mat.uni.torun.pl (Bartosz Maruszewski) : traduction polonaise
    • donahue@tiber.nist.gov (Michael J Donahue) : typos, gagnant de la "comp騁ition du pain en tranches"
    • rms@gnu.ai.mit.edu (Richard Stallman) : notice de distribution/concept de documentation libre
    • dak@Pool.Informatik.RWTH-Aachen.DE (David Kastrup) : NFS
    • esr@snark.thyrsus.com (Eric Raymond) : quelques trucs et astuces

    Version fran軋ise Copyright © Eric Dumas, 1995-1997 dumas@freenix.fr
    © Christophe Deleuze, 1999

    Permission is granted to make and distribute copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

    Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the derived work is distributed under the terms of a permission notice identical to l'auteur avant de commencer la traduction. La version imprim馥 est bien plus belle. Recyclez.