Le HOWTO du noyau Linux (Kernel HOWTO)
par Brian Ward,
[email protected]
Version 1.0, 5 juin 1999
(5 juillet 1999. Adaptation fran�aise par Eric Dumas
[email protected]
jusqu'� la version 0.80, Christophe Deleuze
[email protected]
� partir de la version 1.0). Il s'agit d'un guide d�taill� sur la
configuration du noyau, sa compilation et ses mises � jour pour les
plates-formes x86.
______________________________________________________________________
Table des mati�res
1. Introduction
1.1 Lisez ceci en premier (enfin bon, c'est un conseil) !
1.2 Un mot sur le style
2. Quelques questions... avec leurs r�ponses
2.1 Mais quel est le r�le du noyau ?
2.2 Pourquoi voudrais-je mettre � jour mon noyau ?
2.3 Quel genre de mat�riel supportent les nouveaux noyaux ?
2.4 Quelle version de gcc ou de libc utiliser ?
2.5 Que sont les modules chargeables (loadable modules) ?
2.6 De combien d'espace disque ai-je besoin ?
2.7 Combien de temps �a prend ?
3. Comment configurer le noyau ?
3.1 R�cup�rer les sources
3.2 Installer les sources
3.3 Configurer le noyau
3.3.1 Kernel math emulation (Precessor type and features)
3.3.2 Enhanced (MFM/RLL) disk and IDE disk/cdrom support (Block Devices)
3.3.3 Networking support (General Setup)
3.3.4 System V IPC (General Setup)
3.3.5 Processor family (Processor type and features)
3.3.6 SCSI support
3.3.7 Network device support
3.3.8 Filesystems
3.3.8.1 Mais je ne sais pas de quels syst�mes de fichiers j'ai besoin !
3.3.9 Character devices
3.3.10 Sound
3.3.11 Autres options de configuration
3.3.12 Kernel hacking
3.4 Gar�on, la suite ! (Le Makefile)
4. Compiler le noyau
4.1 Nettoyer et chercher les d�pendances
4.2 La compilation
4.3 Les autres options du
4.4 Installer le noyau
5. Mettre � jour le noyau
5.1 Appliquer un patch
5.2 Si quelque chose ne fonctionne pas
5.3 Comment se d�barasser des fichiers .orig ?
5.4 Autres patches
6. Paquetages suppl�mentaires
6.1 kbd
6.2 util-linux
6.3 hdparm
6.4 gpm
7. Quelques pi�ges
7.1 make clean
7.2 Noyaux �normes ou lents
7.3 Le port parall�le ne fonctionne pas/mon imprimante ne fonctionne pas
7.4 Le noyau ne compile pas
7.5 La nouvelle version du noyau ne boote plus !
7.6 Vous avez oubli� de lancer LILO, ou le syst�me ne boote plus du tout
7.7 Il me dit
7.8 Je n'arrive pas � faire marcher mon CD-ROM IDE/ATAPI
7.9 Le noyau me dit des insanit�s � propos de requ�tes obsol�tes !
7.10 Le Firewall ne fonctionne pas dans la version 1.2.0
7.11 Ce n'est pas une image noyau compress�e !
7.12 Probl�mes avec la console apr�s mise � jour � la version 1.3.x
7.13 Le noyau ne semble pas pouvoir compiler apr�s une mise � jour
7.14 Augmenter les limites
8. Note concernant la mise � jour pour les noyaux 2.0.x, 2.2.x
9. Modules
9.1 Installer les utilitaires pour g�rer les modules
9.2 Modules distribu�s avec le noyau
10. Trucs et astuces
10.1 Rediriger la sortie standard des commandes make ou patch
10.2 Installations diverses du noyau
10.3 Mises � jour des noyaux
11. D'autres HOWTO qui peuvent �tre utiles
12. Divers
12.1 Auteur
12.2 Reste � faire
12.3 Contributions
12.4 Copyright, traduction, licence et autres
______________________________________________________________________
11.. IInnttrroodduuccttiioonn
Faut-il que vous lisiez ce document ? Oui, si vous avez les sympt�mes
suivants :
� "Arg ! Cette archive TrucBidule-46.5.6 n�cessite la version du
noyau 2.8.193 et je n'ai que la version 1.0.9 ! "
� Il y a un pilote de p�riph�rique dont vous avez besoin dans l'un
des nouveaux noyaux.
� Vous n'avez aucune id�e de la mani�re dont il faut s'y prendre pour
recompiler le noyau.
� "Est-ce que ce truc dans le fichier _R_E_A_D_M_E d�crit toute la marche �
suivre ?"
� Vous avez essay�, �a ne marche pas !
� Vous devez donner un conseil � une personne qui a certains
probl�mes.
11..11.. LLiisseezz cceeccii eenn pprreemmiieerr ((eennffiinn bboonn,, cc''eesstt uunn ccoonnsseeiill)) !!
Certains exemples pr�sent�s dans ce document pr�supposent que vous
poss�dez les programmes GNU tar, find et xargs. Ils sont assez
standards, et ne devraient pas vous poser trop de probl�mes. On
suppose �galement que vous connaissez la structure de votre disque
(partitions). Si vous ne le savez pas, il est imp�ratif que vous
gardiez une copie sur papier du r�sultat de l'ex�cution de la commande
mount (ou bien une copie du fichier /etc/fstab, si vous savez le
lire). Cette information est importante, et ne change pas � moins que
vous ne repartitionniez votre disque, en ajoutiez un nouveau,
r�installiez votre syst�me, ou quelque chose de similaire.
La derni�re version stable du noyau au moment o� j'�cris ces mots est
la 2.2.9, ce qui signifie que les r�f�rences et les exemples donn�s
correspondent � cette version. M�me si j'ai essay� de faire en sorte
que ce document soit aussi ind�pendant que possible des versions, le
noyau est en perp�tuel d�veloppement, donc si vous r�cup�rez une
nouvelle version, il risque d'y avoir quelques diff�rences. Cela ne
devrait pas poser trop de probl�mes 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�veloppement. Les version stables ont des
num�ros de version pairs : 1.2.x, 2.0.x sont des versions stables...
tout comme la 2.2.x. Ces noyaux sont consid�r�s comme �tant les plus
stables et sans erreurs. Les noyaux de d�veloppement (1.3.x, 2.1.x,
etc) sont des noyaux de test, pour les d�veloppeurs, les testeurs...
mais ces noyaux peuvent �tre tr�s bogu�s. Vous �tes pr�venus.
11..22.. UUnn mmoott ssuurr llee ssttyyllee
Un texte qui ressemble � celui-ci est soit un message qui appara�t sur
votre �cran, soit un fichier, soit quelque chose qui peut �tre
directement saisi, comme une commande ou des options pour une commande
(si vous poss�dez une version texte de ce document, il n'y a pas de
diff�rence).
22.. QQuueellqquueess qquueessttiioonnss...... aavveecc lleeuurrss rr��ppoonnsseess
22..11.. MMaaiiss qquueell eesstt llee rr��llee dduu nnooyyaauu ??
Le noyau Unix joue le r�le d'interm�diaire entre vos programmes et
votre mat�riel. Premi�rement, il g�re la m�moire pour tous les
programmes en cours d'ex�cution (processus), et s'assure qu'ils
occupent tous une part �quitable (ou non) du temps processeur. En
plus, il fournit une interface (simple � utiliser) aux programmes pour
communiquer avec votre mat�riel (appels syst�me).
Bien s�r c'est un petit peu plus compliqu� que �a, mais ces fonctions
de bases sont les plus importantes � conna�tre.
22..22.. PPoouurrqquuooii vvoouuddrraaiiss--jjee mmeettttrree �� jjoouurr mmoonn nnooyyaauu ??
Les nouveaux noyaux offrent plus de facilit� pour communiquer avec
plus de mat�riels (c'est-�-dire qu'ils g�rent plus de
p�riph�riques...), ils peuvent avoir une meilleure gestion des
processus, tourner plus rapidement que les anciennes versions, �tre
plus stables et ils corrigent les erreurs stupides des versions
pr�c�dentes. Beaucoup de gens mettent � jour leurs noyaux car ils
veulent avoir les nouveaux pilotes de p�riph�riques et les corrections
d'erreurs.
22..33.. QQuueell ggeennrree ddee mmaatt��rriieell ssuuppppoorrtteenntt lleess nnoouuvveeaauuxx nnooyyaauuxx ??
Jetez un coup d'oeil sur le Hardware-HOWTO. Vous pouvez aussi regarder
le fichier "config.in" dans les sources de LLiinnuuxx, ou juste essayer
"make config", ce qui vous permet de voir tous les mat�riels support�s
par le noyau standard, mais pas tout ce que LLiinnuuxx supporte. En effet,
beaucoup de p�riph�riques assez utiles (tels les p�riph�riques PCMCIA,
et quelques lecteurs de cartouches) sont des modules chargeables
maintenus et distribu�s s�par�ment.
22..44.. QQuueellllee vveerrssiioonn ddee ggcccc oouu ddee lliibbcc uuttiilliisseerr ??
Linus recommande une version de gcc dans le fichier README fourni avec
le code source. Si vous ne poss�dez pas cette version, la
documentation dans la version recommand�e de gcc devrait vous indiquer
si vous avez besoin de mettre � jour votre libc. Ce n'est pas une
op�ration compliqu�e, mais il est important de suivre les
instructions.
22..55.. QQuuee ssoonntt lleess mmoodduulleess cchhaarrggeeaabblleess ((llooaaddaabbllee mmoodduulleess)) ??
Ce sont des parties du noyau (pilotes de p�riph�riques g�n�ralement)
qui ne sont pas compil�es dans celui-ci. On peut les compiler
s�par�ment, les ins�rer et les retirer du noyau � n'importe quel
moment. En raison de cette souplesse, c'est devenu la m�thode pr�f�r�e
pour coder certaines fonctionnalit�s du noyau. Bon nombre de pilotes
de p�riph�riques tels que PCMCIA et les gestionnaires de cartouches
QIC-80/40 sont des modules chargeables.
22..66.. DDee ccoommbbiieenn dd''eessppaaccee ddiissqquuee aaii--jjee bbeessooiinn ??
Cela d�pend de la configuration de votre syst�me. Tout d'abord, le
code source compress� de LLiinnuuxx fait presque 16 Mo pour la version
2.2.9. Vous voulez g�n�ralement le garder dans un coin apr�s l'avoir
d�compress�. D�compress� et compil� avec une configuration moyenne, il
occupe 67 Mo de plus.
22..77.. CCoommbbiieenn ddee tteemmppss ��aa pprreenndd ??
Sur les machines r�centes la compilation demande beaucoup beaucoup
moins de temps que sur les anciennes. Un AMD K6-2/300 avec un disque
rapide peut compiler un noyau 2.2.x en � peu pr�s quatre minutes. Avec
de vieux Pentium, 486 ou 386 soyez pr�ts � patienter, �ventuellement
des heures, jours...
Si cela vous pose probl�me et que vous avez acc�s � une machine
rapide, vous pouvez compiler sur celle-ci (fournissez les bons
param�tres, assurez-vous que vos utilitaires sont � jour, etc.) et
transf�rer l'image du noyau sur la machine lente.
33.. CCoommmmeenntt ccoonnffiigguurreerr llee nnooyyaauu ??
33..11.. RR��ccuupp��rreerr lleess ssoouurrcceess
Vous pouvez r�cup�rer les sources via ftp depuis ftp.kernel.org dans
le r�pertoire /pub/linux/kernel/vx.y, o� x.y est la version (par ex.
2.2). Comme expliqu� plus haut les versions se terminant par un
chiffre impair sont les versions de d�veloppement et peuvent �tre
instables. Le fichier est typiquement linux-x.y.z.tar.gz, o� x.y.z est
le num�ro de version. Une version avec suffixe en .bz2 (compress� avec
bzip2) est aussi g�n�ralement disponible (la compression bzip2 est
plus performante donc le transfert sera plus rapide).
Il vaut mieux utiliser ftp.xx.kernel.org o� xx est votre code de pays,
par exemple ftp.fr.kernel.org pour la France, ftp.be.kernel.org pour
la Belgique.
33..22.. IInnssttaalllleerr lleess ssoouurrcceess
Faites un su (super utilisateur) ou bien loggez-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 d�j� 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 tous les 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 xpvf 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 lliinnuuxx et
jetez un coup d'oeil au fichier README. Il y a une section
"INSTALLING the kernel". Suivez les instructions lorsque n�cessaire -
prenez garde � ce que les liens soient en place et que les fichiers .o
soient d�truits, etc.
Si votre fichier est en .bz2, il vous faudra utiliser le programme
bzip2 (voir <
http://www.muraroa.demon.co.uk/>). Faites:
bz2cat linux-x.y.z.tar.bz2 | tar xvf -
33..33.. CCoonnffiigguurreerr llee nnooyyaauu
Note : il s'agit d'une r�p�tition, 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 v�rifiez que vous
poss�dez bien /bin/bash, /bin/sh, ou $BASH.
Il existe un certain nombre de possibilit�s autres que make config et
il est possible que vous les trouviez plus simples � utiliser. Pour
ceux qui utilisent X, vous pouvez essayer make xconfig si vous avez au
pr�alable install� Tk (_c_l_i_c_k_-_o_-_r_a_m_a - 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 devoir tout relancer.
Avec make menuconfig et make xconfig les options de configuration
appara�tront hi�rarchis�es.
Vous �tes alors pr�t � r�pondre aux questions, la plupart du temps par
"y" ou par "n". Les pilotes de p�riph�riques acceptent aussi
g�n�ralement "m", pour "module". Le pilote sera compil� non pas
directement dans le noyau mais en tant que module chargeable. Une
interpr�tation plus amusante est que le "m" est pour "maybe"
(peut-�tre). Certaines options non critiques ou �videntes ne seront
pas d�crites ici. Consultez le paragraphe "Autres options de
configuration" pour une courte descriptions de quelques options non
d�taill�es ici. Avec make menuconfig vous pouvez utiliser la barre
d'espace.
� partir des versions 2.0.x, une option "?" est pr�sente : elle permet
d'obtenir une aide pour l'option d�sir�e qui correspond s�rement aux
informations les plus � jour. Voici une liste d�crivant bri�vement les
options les plus importantes avec leur place dans la hi�rarchie (NdT :
et la traduction de l'intitul�).
33..33..11.. KKeerrnneell mmaatthh eemmuullaattiioonn ((PPrreecceessssoorr ttyyppee aanndd ffeeaattuurreess))
_(_�_m_u_l_a_t_i_o_n _d_u _c_o_p_r_o_c_e_s_s_e_u_r _A_r_i_t_h_m_�_t_i_q_u_e_) 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 vous en avez un et que vous
r�pondez "y", ce n'est pas grave : le coprocesseur sera utilis� et
l'�mulation ignor�e. Pour toute machine pas trop vieille, la r�ponse
sera non.
33..33..22.. EEnnhhaanncceedd ((MMFFMM//RRLLLL)) ddiisskk aanndd IIDDEE ddiisskk//ccddrroomm ssuuppppoorrtt ((BBlloocckk
DDeevviicceess))
_(_G_e_s_t_i_o_n _a_m_�_l_i_o_r_�_e _d_e_s _d_i_s_q_u_e_s _d_u_r_s_) 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. Il est suppos�
"am�lior�" ce qui signifie qu'� part avoir un nombre diff�rent de
bogues il peut am�liorer les performances de votre disque, notamment
si vous poss�dez du mat�riel r�cent (comme de l'EIDE).
33..33..33.. NNeettwwoorrkkiinngg ssuuppppoorrtt ((GGeenneerraall SSeettuupp))
_(_G_e_s_t_i_o_n _d_u _R_�_s_e_a_u_) 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) ont besoin de ce support r�seau m�me si votre
machine n'y est pas reli�e ; 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.
33..33..44.. SSyysstteemm VV IIPPCC ((GGeenneerraall SSeettuupp))
L'une des meilleures d�finition des IPC (communication inter-
processus) se trouve dans le glossaire du livre de Perl. Ces
m�canismes sont utilis�s par certains d�veloppeurs Perl et quelques
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.
33..33..55.. PPrroocceessssoorr ffaammiillyy ((PPrroocceessssoorr ttyyppee aanndd ffeeaattuurreess))
_(_F_a_m_i_l_l_e _d_e _p_r_o_c_e_s_s_e_u_r_) Dans les anciens noyaux, il s'agissait de
l'option Use -m486 flag for 486-specific optimizations.
Cette option s�lectionnait 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.
33..33..66.. SSCCSSII ssuuppppoorrtt
_(_G_e_s_t_i_o_n _S_C_S_I_) Si vous avez au moins 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 quel type de contr�leur SCSI vous
poss�dez. Consultez le SCSI-HOWTO pour plus de d�tails.
33..33..77.. NNeettwwoorrkk ddeevviiccee ssuuppppoorrtt
_(_G_e_s_t_i_o_n _d_e _p_�_r_i_p_h_�_r_i_q_u_e_s _r_�_s_e_a_u_) Si vous avez une carte r�seau, ou si
vous voulez utiliser SLIP, PPP, ou un adaptateur sur 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.
33..33..88.. FFiilleessyysstteemmss
_(_S_y_s_t_�_m_e_s _d_e _f_i_c_h_i_e_r_s_) On vous demandera quels types de syst�mes de
fichiers vous souhaitez g�rer :
Standard (minix) - Les distributions r�centes ne cr�ent pas de
syst�mes de fichiers de type minix, et bon nombre de personnes ne s'en
servent pas, mais cela peut �tre malgr� tout 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 d'avoir ce
syst�me de fichiers, car il est assez pratique pour les disquettes.
Second extended - C'est le syst�me de fichiers standard de Linux. Vous
en aurez tr�s certainement besoin, donc "y". (NdT : et puis c'est un
Fran�ais 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�pondez "y".
Des syst�mes de fichiers originaires d'autres syst�mes d'exploitation
sont �galement disponibles.
/proc - Un des syst�mes de fichiers les plus puissants (id�e
effront�ment chip�e aux Laboratoires Bell, je pense). �a n'a rien �
voir avec vos partitions disques, mais c'est une interface sous forme
de syst�me 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 Linux
standards en ont besoin.
NFS - Si vous �tes en r�seau et que vous voulez utiliser des volumes
pr�sents sur d'autres machines, r�pondez "y".
ISO9660 - Format rencontr� sur la plupart des CD-ROM. Si vous poss�dez
un CD-ROM et que vous comptez vous en servir sous Linux, r�pondez "y".
33..33..88..11.. MMaaiiss jjee nnee ssaaiiss ppaass ddee qquueellss ssyysstt��mmeess ddee ffiicchhiieerrss jj''aaii
bbeessooiinn !!
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 � c�t� de "type" est le type du
syst�me de fichiers. Dans cet exemple, mes partitions / et /usr sont
du type ext2fs, j'utilise /proc, et il y a une disquette mont�e avec
le syst�me de fichiers MS-DOS (beuurrrk !).
Essayez "cat /proc/filesystems" si vous avez /proc. Cela vous donnera
la liste des syst�mes de fichiers que votre noyau g�re.
Le support de syst�mes de fichiers rarement utilis�s et qui ne sont
pas absolument n�cessaires peut augmenter la taille du noyau. Voir la
section sur les modules chargeables pour r�soudre ce probl�me, ainsi
que la section sur les pi�ges.
33..33..99.. CChhaarraacctteerr ddeevviicceess
_(_P_�_r_i_p_h_�_r_i_q_u_e_s _c_a_r_a_c_t_�_r_e_) Vous trouverez ici les pilotes pour g�rer
votre imprimante parall�le, souris bus, souris PS/2 (beaucoup de
portables utilisent une souris constructeur de type PS/2), quelques
lecteurs de bande et d'autres p�riph�riques de type "caract�re".
R�pondez en cons�quence.
Note : "gpm" est un programme qui vous permet d'utiliser la souris �
l'ext�rieur de X Window 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 coexiste bien avec X Window, mais vous devrez
faire quelques trucs pour que cela fonctionne avec les autres.
33..33..1100.. SSoouunndd
_(_S_o_n_) Si vous tenez � entendre biff aboyer, r�pondez "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�re du pilote, vous pouvez r�pondre `n' et donc
�conomiser de la m�moire en ins�rant uniquement les caract�ristiques
dont vous avez besoin.
Si vous vous int�ressez de pr�s au support des cartes son, jetez un
oeil sur les pilotes libres � <
http://www.linux.org.uk/OSS/> et au
Open Sound System (commercial) � <
http://www.opensound.com/>.
33..33..1111.. AAuuttrreess ooppttiioonnss ddee ccoonnffiigguurraattiioonn
Toutes les options de configuration ne sont pas d�taill�es dans ce
document car elles changent trop souvent ou bien sont vraiment
�videntes (par exemple, le support de la carte 3Com 3C509 permet la
compilation du pilote de cette carte). L'aide en ligne fournit 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
(
[email protected]). La liste est dans le fichier
Documentation/Configure.help des sources du noyau depuis la version
2.0.
33..33..1122.. KKeerrnneell hhaacckkiinngg
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.
33..44.. GGaarr��oonn,, llaa ssuuiittee !! ((LLee MMaakkeeffiillee))
Quand la configuration est termin�e, 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 pourrez �galement
changer les options avec la commande "rdev" quand le noyau sera pr�t.
Si vous ne comprenez rien � ce fichier, passez � la suite.
44.. CCoommppiilleerr llee nnooyyaauu
44..11.. NNeettttooyyeerr eett cchheerrcchheerr lleess dd��ppeennddaanncceess
Lorsque le script de configuration va se terminer, il vous demandera
de faire un "make dep" et (peut-�tre) "make clean". "make dep" assure
que toutes les d�pendances, comme les fichiers d'en-t�tes (include)
sont en place, et ne prend pas trop de temps � moins que vous n'ayez
une machine tr�s lente. Pour les anciennes versions, lorsque c'est
termin� faites un "make clean". Cela d�truit tous les fichiers objets
et d'autres fichiers que les anciennes versions laissent trainer.
_N_'_o_u_b_l_i_e_z _p_a_s cette �tape avant de recompiler un noyau.
44..22.. LLaa ccoommppiillaattiioonn
Apr�s avoir cherch� les d�pendances et nettoy� l'arborescence, vous
pouvez lancer la compilation par "make bzImage" ou "make bzdisk"
(c'est cette partie qui prend du temps). "make bzImage" va compiler
le noyau, et cr�er le fichier "bzImage" dans le r�pertoire
arch/i386/boot qui correspond au nouveau noyau compress�. "make
bzdisk" fait la m�me chose, mais copie le noyau sur une disquette que
vous aurez ins�r�e dans le lecteur "A:".
"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 �galement une m�thode pratique si vous avez
d�truit accidentellement votre noyau (ou quelque chose de ce genre).
Vous pouvez �galement vous en servir pour installer de nouveaux
syst�mes, en copiant directement le contenu d'un disque sur un autre
("tout �a ? ouah !").
Tous les noyaux assez r�cents sont compress�s, comme l'indique le "bz"
au d�but des noms. Un noyau compress� est automatiquement d�compact�
lors de l'ex�cution.
Pour les noyaux plus anciens, bzImage n'existait pas et on utilisait
zImage. Cette possibilit� est toujours disponible mais vue la taille
des noyaux r�cents il est � peu pr�s obligatoire d'utiliser bzImage
car l'ancienne m�thode ne peut g�rer que des noyaux de taille limit�e.
44..33.. LLeess aauuttrreess ooppttiioonnss dduu""mmaakkee""
"make mrproper" est un "make clean" plus puissant. Cela est parfois
n�cessaire, vous devriez le faire � chaque patch. Il efface �galement
votre fichier de configuration donc il faudra �ventuellement en faire
une copie avant (.config).
"make oldconfig" essaiera de configurer le noyau � partir d'un vieux
fichier de configation, il choisira toutes les options de "make
config" pour vous. Si c'est la premi�re fois que vous compilez un
noyau ou si vous n'avez pas un ancien fichier de configuration
n'utilisez pas ceci, vous devrez sans doute changer la configuration
par d�faut.
Regardez la section sur les modules � propos du "make modules".
44..44.. IInnssttaalllleerr llee nnooyyaauu
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,
lancera LILO, et laissera votre machine pr�te � rebooter, mais
SEULEMENT si lilo est configur� de la mani�re suivante : le noyau
s'appelle /vmlinuz, lilo se trouve dans /sbin, et votre fichier de
configuration pour LILO (/etc/lilo.conf) correspond � ces donn�es.
Sinon, vous devrez utiliser LILO directement. C'est un produit assez
facile � installer, mais dont le fichier de configuration peut �tre
d�routant. Regardez le fichier de configuration (/etc/lilo/config pour
les versions les plus anciennes, /etc/lilo.conf pour les r�centes), et
regardez son contenu. Le fichier de configuration doit ressembler �
ceci :
image = /vmlinux
label = Linux
root = /dev/hda1
...
La ligne "image =" sert � indiquer le nom du noyau utilis�. Beaucoup
de gens utilisent /vmlinuz. "label" servira � indiquer � LILO sur
quel noyau ou sur quel syst�me d'exploitation vous allez booter (nom
logique), et "root" est la partition racine de ce syst�me
d'expoitation. Faites une sauvegarde de votre vieux noyau (quel que
soit son nom), et copiez le nouveau noyau (bzImage) � sa place : "cp
bzImage /vmlinuz" si vous utilisez "/vmlinuz", puis relancez lilo. Sur
les syst�mes r�cents, 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�sirez en savoir plus sur la configuration de LILO, ou si
vous voulez avoir LILO, r�cup�rez la derni�re version sur votre site
FTP favori et suivez les instructions.
Pour booter sur l'un de vos anciens noyaux situ�s sur votre disque dur
(une autre m�thode de secours quand le noyau plante), copiez les
lignes suivantes "image = xxx" � la fin du fichier de configuration
LILO, et changez "image = xxx" par "image = yyy", o� "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 "delay=x", o� x est le temps en dixi�me de secondes qui
indique � LILO le temps qu'il doit attendre avant d'amorcer la
machine. Vous pouvez l'interrompre (avec la touche shift par
exemple), et taper le label de l'image du noyau de sauvegarde (au cas
o� un probl�me se produit).
55.. MMeettttrree �� jjoouurr llee nnooyyaauu
55..11.. AApppplliiqquueerr uunn ppaattcchh
Les nouvelles versions du noyau sont distribu�es sous la forme de
patches. Par exemple, si vous poss�dez la version 1.1.45, et que vous
remarquez qu'il existe un "patch46.gz", cela signifie que vous pouvez
passer � la version 1.1.46 en appliquant ce patch. Vous devriez faire
avant une 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�e).
Poursuivons avec cet exemple et supposons que vous ayez mis le fichier
"patch46.gz" dans /usr/src. Allez dans /usr/src et faites un "zcat
patch46.gz | patch -p0" (ou "patch -p0 < patch46" si le patch n'est
pas compress�). Vous verrez alors une liste de messages vous
indiquant les essais de modifications. Cela marche ou pas (en principe
oui !). G�n�ralement, cela va trop vite pour lire, et on ne sait pas
trop si �a a march�. Vous pouvez utiliser l'option -s de patch qui lui
indique qu'il ne doit afficher que les erreurs (vous n'avez pas grand
chose � faire des "h�h�, mon ordinateur est en train de faire quelque
chose...!"). Pour v�rifier que tout s'est pass� sans encombre, allez
dans /usr/src/linux et cherchez les fichiers ayant pour extension
.rej. Quelques versions de patch (vieilles versions) utilisent # pour
les fichiers rejet�s. Vous pouvez utiliser "find" pour les trouver :
find . -name '*.rej' -print
vous en donnera la liste avec le chemin pour y acc�der.
Si tout a march�, faites un "make clean", "config," et "dep" comme
d�crit dans les sections 3 et 4.
La commande patch poss�de quelques options. Comme indiqu� ci-dessus,
patch -s supprime tous les messages sauf les erreurs. Si vous stockez
les sources de votre noyau dans un autre r�pertoire que
/usr/src/linux, un patch -p1 dans ce r�pertoire fera les choses
proprement. Les autres options sont bien document�es dans les pages de
manuel.
55..22.. SSii qquueellqquuee cchhoossee nnee ffoonnccttiioonnnnee ppaass
(Note : cette section traite plut�t des noyaux assez anciens)
Le probl�me le plus fr�quent qui se pr�sentait �tait lorsqu'un patch
modifiait le fichier "config.in" et que vous aviez chang� les options
pour mieux coller � votre machine. En principe, �a ne devrait plus
trop se produire, mais avec les anciennes versions... Pour r�soudre ce
probl�me, jetez un coup d'oeil au fichier config.in.rej et regardez
son contenu. Le changement sera indiqu� par "+" et "-" au d�but d'une
ligne. Regardez ces lignes et retenez si elles sont marqu�es "y" ou
"n". Maintenant, �ditez config.in, et changez les "y" en "n" et les
"n" en "y" lorsque cela est n�cessaire. Faites un
patch -p0 < config.in.rej
et si cela fonctionne ("no fails"), alors vous pouvez continuer avec
la configuration et la compilation. Le fichier config.in.rej restera,
mais vous pouvez le d�truire.
Si vous avez d'autres probl�mes, vous avez peut-�tre install� un patch
d�fectueux. Si la commande patch indique "previously applied patch
detected: Assume -R?", vous �tes probablement en train d'appliquer un
patch d�j� appliqu�. Si vous r�pondez "y", cela risque de d�truire
votre source et il vous faudra r�cup�rer un source complet (vous
auriez peut-�tre d� commencer par l�).
Pour revenir en arri�re (d�patcher), faites un "patch -R" sur le patch
original.
La meilleure chose � faire lorsqu'un patch d�truit tout est de
repartir d'un noyau initial tout neuf ! (par exemple, � partir du
fichier linux-x.y.z.tar.gz).
55..33.. CCoommmmeenntt ssee dd��bbaarraasssseerr ddeess ffiicchhiieerrss ..oorriigg ??
Apr�s avoir appliqu� quelques patches, les fichiers .orig vont
commencer � s'empiler. Par exemple, j'en �tais � la version 1.1.51 et
la derni�re fois que j'avais fait le m�nage, c'�tait avec la version
1.1.48 (je crois...). D�truire les fichiers .orig a permis de
r�cup�rer plus d'un demi M�ga octets.
find . -name '*.orig' -exec rm -f {} ';'
fera cela pour vous. Quelques versions de patch qui utilisent # pour
les rejets utilisent un tilde � la place de .orig.
Il y a d'autres mani�res (meilleures ?) pour se d�barrasser des
fichiers .orig en utilisant le programme GNU xargs :
find . -name '*.orig' | xargs rm
ou la m�thode s�re mais un peu plus verbeuse :
find . -name '*.orig' -print0 | xargs --null rm --
55..44.. AAuuttrreess ppaattcchheess
Il y a d'autres patches (je les appellerai "non-standards") que ceux
distribu�s par Linus. Si vous les appliquez, les patches Linus
risquent de ne plus marcher correctement et vous serez oblig� soit de
les enlever, soit d'adapter les patches. C'est g�n�ralement un travail
assez p�nible pour les novices, aussi revenir aux anciennes sources
avant d'appliquer les patches de LLiinnuuxx semble �tre une bonne solution.
Apr�s, vous pouvez regarder si les patches non standards fonctionnent.
S'ils ne fonctionnent pas, vous pouvez revenir � l'ancienne version,
ou essayer de modifier le patch pour le faire fonctionner, ou encore
attendre qu'un nouveau patch arrive.
Vous entendrez probablement parler de ces patches non standards.
J'utilisais le patch "noblink" car j'ai horreur des curseurs qui
clignotent (ce patch est (ou bien �tait) mis � jour fr�quemment pour
les nouveaux noyaux). Les pilotes de p�riph�riques �tant de plus
d�velopp�s sous la forme de modules chargeables, le nombre de patches
"non standards" d�cro�t.
66.. PPaaqquueettaaggeess ssuuppppll��mmeennttaaiirreess
Votre noyau Linux a bon nombre de caract�ristiques qui ne sont pas
expliqu�es dans le noyau lui-m�me ; elles sont typiquement utilis�es
par des paquetages externes. Une liste des plus utiles est donn�e
ici.
66..11.. kkbbdd
La console de Linux poss�de de nombreuses caract�ristiques. Elle peut
changer les polices de caract�res, remapper le clavier, permuter les
modes vid�os (dans les noyaux les plus r�cents), etc. Le package kbd
poss�de des programmes qui permettent � l'utilisateur de faire tout
cela, plus une tonne de fontes et de types de claviers. (NdT : fr.map
pour le clavier fran�ais). Il est disponible sur les m�mes sites qui
proposent les sources du noyau.
66..22.. uuttiill--lliinnuuxx
Rik Faith (
[email protected]) a rassembl� une grande quantit� d'outils
Linux dans le paquetage util-linux. Ils est d�sormais maintenu par
Andries Brouwer (
[email protected]). 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_'_i_n_s_t_a_l_l_e_z _p_a_s _s_a_n_s _r_�_f_l_�_c_h_i_r, vous n'avez
pas besoin de tout installer dans la distribution, et cela pourrait
vous causer de graves ennuis.
66..33.. hhddppaarrmm
Comme beaucoup de paquetages, c'�tait au d�part un patch pour le noyau
et un ensemble de programmes. Le patch a �t� int�gr� dans le noyau
standard et les programmes pour optimiser et jouer avec vos disques
sont distribu�s s�par�ment.
66..44.. ggppmm
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�rations avec un grand nombre de types
de souris.
77.. QQuueellqquueess ppii��ggeess
77..11.. mmaakkee cclleeaann
Si votre noyau a un comportement surnaturel (�a m'est arriv� !), il y
a des chances pour que vous ayez oubli� de faire un "make clean". Les
sympt�mes peuvent �tre un plantage de votre syst�me, des probl�mes
d'entr�es-sorties �tranges, une chute des performances, des reboot
al�atoires... V�rifiez que vous avez �galement fait un make dep.
77..22.. NNooyyaauuxx ��nnoorrmmeess oouu lleennttss
Si votre noyau consomme beaucoup de m�moire, ou s'il est r�ellement
gros, ou bien s'il faut une �ternit� pour le compiler m�me lorsque
vous utilisez votre nouveau 986DX6/440, c'est que vous avez configur�
un tas de choses (pilotes de p�riph�riques, syst�mes 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�moire. Le
sympt�me le plus visible est l'augmentation sensible du fonctionnement
du swap. Si votre disque fait beaucoup de bruit, et qu'il ne s'agit
pas d'un de ces vieux disques Fujitsu Eagles qui font le bruit d'un
avion lors de son atterrissage lorsque vous l'�teignez, jetez un coup
d'oeil � votre configuration.
Vous pouvez calculer la taille m�moire que le noyau utilise en prenant
la m�moire totale de votre machine et en soustrayant la valeur de la
m�moire totale ("total mem") dans /proc/meminfo ou bien avec la
commande "free".
77..33.. ppaass LLee ppoorrtt ppaarraallll��llee nnee ffoonnccttiioonnnnee ppaass//mmoonn iimmpprriimmaannttee nnee ffoonncc��
ttiioonnnnee
Les options de configuration pour les PC sont : premi�rement, dans la
cat�gorie "General Setup" s�lectionnez "Parallel port support" et "PC-
style hardware". Puis dans "Character devices", s�lectionnez "Parallel
printer support".
Il y a ensuite le probl�me des noms de p�riph�rique des imprimantes
qui ont chang� dans Linux 2.2. Si vous aviez une imprimante lp1 avec
votre noyau pr�c�dent, elle s'appelle probablement lp0 maintenant.
Utilisez "dmesg" ou cherchez dans les logs dans /var/log pour le
v�rifier.
77..44.. LLee nnooyyaauu nnee ccoommppiillee ppaass
Si cela ne compile pas, alors un patch a probablement �chou�, ou bien
vous poss�dez des sources corrompus. Votre version de gcc peut
�galement ne pas �tre correcte, ou bien endommag�e (par exemple les
fichiers d'include peuvent �tre faux). Soyez s�r que les liens que
Linus d�crit dans le fichier README sont corrects. En g�n�ral, si un
noyau standard ne compile pas, c'est qu'un truc ne tourne pas rond
dans le syst�me, et il est plus que probable que certains outils
doivent �tre reinstall�s.
Dans des cas relativement rares, gcc peut �chouer en raison de
probl�mes de mat�riel. Le message d'erreur ressemble � un truc assez
myst�rieux "xxx exited with signal 15". Je n'en n'aurais probablement
pas parl� si cela ne m'�tait arriv� une fois. J'avais un cache
m�moire d�fectueux et le compilateur fonctionnait de mani�re plut�t
al�atoire. Essayez dans un premier temps de reinstaller gcc si vous
avez des probl�mes. Si votre noyau compile tr�s bien avec les caches
externes vid�s ou une m�moire r�duite, alors vous pourrez commencer �
soup�onner votre mat�riel.
Certaines personnes ont tendance � ne pas aimer que je mette en doute
leur mat�riel. Je n'invente rien. Il existe une FAQ d�di�e � ce sujet
: <
http://www.bitwizard.nl/sig11/> (NdT : traduite en fran�ais �
<
http://www.linux-france.org/article/sig11-fr/sig11-fr.html>).
77..55.. LLaa nnoouuvveellllee vveerrssiioonn dduu nnooyyaauu nnee bboooottee pplluuss !!
Soit LILO ne fonctionne pas, soit il n'est pas configur� correctement.
Une fois, un probl�me dans le fichier de configuration m'a pos� pas
mal de soucis : j'avais mis "boot = /dev/hda1" � la place de "boot =
/dev/hda" (ce genre d'erreurs n'est pas facile � trouver, mais une
fois que vous avez un fichier de configuration qui fonctionne, il n'y
a pas de raison d'y toucher).
77..66.. ttoouutt VVoouuss aavveezz oouubbllii�� ddee llaanncceerr LLIILLOO,, oouu llee ssyysstt��mmee nnee bboooottee
pplluuss dduu
Argh ! La meilleure chose � faire est de booter � partir d'une
disquette et de pr�parer une nouvelle disquette de boot ("make zdisk"
fait cela tr�s bien). Vous avez besoin de savoir o� votre partition
racine (/) se trouve et quel est son type (ext2fs, minix, etc). Dans
l'exemple ci-dessous, vous aurez �galement besoin de conna�tre la
partition des sources du noyau (/usr/src/linux), et o� elle est
mont�e.
Dans cet exemple,la racine / est /dev/hda1, la partition qui supporte
/usr/src/linux est /dev/hda3, normalement mont�e sur /usr. Toutes les
deux ont un syst�me de fichiers de type ext2fs. L'image du noyau se
trouve dans /usr/src/linux/arch/i386/boot/ et elle s'appelle bzImage.
L'id�e est que s'il existe un noyau bzImage qui fonctionne il est
possible de l'utiliser pour la nouvelle disquette. Une autre
possibilit� qui peut �tre meilleure ou pas est pr�sent�e apr�s cet
exemple (cela d�pend de la fa�on dont vous avez plant� votre syst�me).
Commencez par booter � partir d'une disquette d'installation
(boot/root) ou d'une disquette de secours et montez la partition o� se
trouve le noyau en �tat de marche :
mkdir /mnt
mount -t ext2 /dev/hda3 /mnt
Si mkdir vous annonce que le r�pertoire existe, ignorez le message.
Maintenant, allez dans le r�pertoire o� se trouve le noyau en �tat de
marche. Notez que
/mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot
Ins�rez une disquette format�e dans le lecteur "A:" (v�rifiez qu'il ne
s'agit pas de la disquette boot ou root !), faites une copie de
l'image sur le disque et configurez votre partition racine :
cd /mnt/src/linux/arch/i386/boot
dd if=bzImage of=/dev/fd0
rdev /dev/fd0 /dev/hda1
Allez � la racine /, et d�montez la partition /usr :
cd /
umount /mnt
Maintenant, vous devriez �tre capable de rebooter votre syst�me
normalement � partir de cette disquette. N'oubliez pas de lancer lilo
(ou ce que vous aviez oubli�) avant de rebooter !
Comme mentionn� ci-dessus, il y a une autre mani�re tr�s pratique.
S'il se trouve que vous avez un noyau op�rationnel dans / (/vmlinuz
par exemple), on peut s'en servir. Supposons que vous remplissiez les
conditions ci-dessus, et que votre noyau s'appelle /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 note
expliquant comment aller dans /mnt/src/linux peut �tre oubli�e.
Utiliser LILO avec de gros disques (avec un nombre de cyclindres
sup�rieur � 1024) peut poser des probl�mes. Consultez le mini-Howto
LILO ou la documentation.
77..77.. IIll mmee ddiitt""wwaarrnniinngg:: bbddfflluusshh nnoott rruunnnniinngg""
Cela peut �tre un probl�me assez grave. Avec les noyaux ayant une
version sup�rieure � 1.0 (aux alentours du 20 avril 1994), le
programme "update" qui vide p�riodiquement les tampons disque a �t�
remplac� par "bdflush". R�cup�rez les sources de "bdflush" (vous
pouvez les r�cup�rer l� o� vous avez trouv� votre noyau), et compilez-
le (il vaut mieux fonctionner avec un ancien noyau pendant la
compilation et pendant l'installation). Il s'installera tout seul
comme "update" et le nouveau noyau devrait ensuite fonctionner
correctement.
77..88.. JJee nn''aarrrriivvee ppaass �� ffaaiirree mmaarrcchheerr mmoonn CCDD--RROOMM IIDDEE//AATTAAPPII
Aussi �trange que cela puisse para�tre, beaucoup de gens n'arrivent
pas � faire fonctionner leurs disques ATAPI, tout simplement parce
qu'il y a un bon nombre de probl�mes potentiels.
Si votre CD-ROM est le seul disque d'une interface IDE particuli�re il
doit �tre configur� en "ma�tre (master)" ou "seul (single)". C'est
l'erreur la plus fr�quemment rencontr�e.
Creative Labs (par exemple) a mis des interfaces IDE sur ses cartes
sons. Toutefois, cela pose un probl�me pour les gens qui ont d�j�
deux interfaces IDE sur leur carte m�re (IRQ15 g�n�ralement). Une
pratique commune est de faire de l'interface soundblaster un troisi�me
port IDE (IRQ11 je pense).
Cela pose un probl�me avec Linux car les versions 1.2.x ne supportent
pas une troisi�me interface IDE (cela est g�r� avec les versions 1.3.x
mais ce sont des versions de d�veloppement, et la troisi�me interface
n'est pas d�tect�e automatiquement). Pour r�soudre ce probl�me, vous
avez plusieurs possibilit�s.
Si avez d�j� un deuxi�me port IDE, il y a des chances pour que vous ne
l'utilisiez pas ou qu'il n'ait pas deux p�riph�riques connect�s.
D�sactivez l'interface ATAPI de la carte son (vous �conomisez un IRQ)
et connectez le disque sur votre seconde interface.
Si vous n'avez pas une seconde interface, mettez interface IDE (pas la
partie son) de la carte son sur l'IRQ 15. Cela devrait fonctionner.
77..99.. LLee nnooyyaauu mmee ddiitt ddeess iinnssaanniitt��ss �� pprrooppooss ddee rreeqquu��tteess oobbssooll��tteess !!
R�cup�rez des versions r�centes du progamme route et de tous les
autres programmes manipulant les routes : /usr/include/linux/route.h
(qui est en fait un fichier dans /usr/src/linux) a chang�.
77..1100.. LLee FFiirreewwaallll nnee ffoonnccttiioonnnnee ppaass ddaannss llaa vveerrssiioonn 11..22..00
Passez � la version 1.2.1.
77..1111.. CCee nn''eesstt ppaass uunnee iimmaaggee nnooyyaauu ccoommpprreessss��ee !!
N'utilisez pas le fichier vmlinux cr�� dans /usr/src/linux comme image
de boot mais [..]/arch/i386/boot/bzImage.
77..1122.. PPrroobbll��mmeess aavveecc llaa ccoonnssoollee aapprr��ss mmiissee �� jjoouurr �� llaa vveerrssiioonn 11..33..xx
Changez le mot dumb en linux dans l'entr�e console du fichier
/etc/termcap. Il faudra peut-�tre aussi ajouter une entr�e terminfo.
77..1133.. LLee nnooyyaauu nnee sseemmbbllee ppaass ppoouuvvooiirr ccoommppiilleerr aapprr��ss uunnee mmiissee �� jjoouurr
Le source du noyau contient un certain nombre de fichiers d'en-t�tes
(les fichiers se terminant par .h) qui se trouvent dans le r�pertoire
/usr/include. Ils sont r�f�renc�s ainsi (o� xyzzy.h doit �tre dans
/usr/include/linux) :
#include <linux/xyzzy.h>
Normalement, il y a un lien appel� linux dans /usr/include sur le
r�pertoire include/linux de la racine des sources du noyau
(/usr/src/linux/include/linux dans un syst�me standard). Si ce lien
n'existe pas, ou bien pointe au mauvais endroit, bon nombre de pro�
grammes ne compileront pas. Si vous d�cidez que les sources du noyau
prennent trop de place sur votre disque et que vous les d�truisez,
cela sera un probl�me. Un autre probl�me qui peut arriver, c'est avec
les permissions d'acc�s aux fichiers. Si votre root a un umask qui
n'autorise pas les autres utilisateurs � voir ses fichiers par d�faut,
et que vous d�sarchiviez les sources du noyau sans l'option p (con�
serve le mode), les utilisateurs ne pourront pas utiliser le compila�
teur C. Vous pouvez alors utiliser la commande chmod pour r�soudre le
probl�me mais il est probablement plus facile de r�installer les
fichiers include. Vous pouvez proc�der de la m�me mani�re que lors de
l'installation des sources au d�but, 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�er le lien /usr/src/linux s'il
n'existe pas.
77..1144.. AAuuggmmeenntteerr lleess lliimmiitteess
Ces quelques _e_x_e_m_p_l_e_s de commandes peuvent �tre assez utiles � ceux
qui se demandent comment augmenter certaines limites logicielles
impos�es par le noyau :
echo 4096 > /proc/sys/kernel/file-max
echo 12288 > /proc/sys/kernel/inode-max
echo 300 400 500 > /proc/sys/vm/freepages
88.. NNoottee ccoonncceerrnnaanntt llaa mmiissee �� jjoouurr ppoouurr lleess nnooyyaauuxx 22..00..xx,, 22..22..xx
Les noyaux 2.0.x et 2.2.x ont introduit pas mal de modifications dans
l'installation du noyau. Le fichier Documentation/Changes situ� dans
l'arborescence des sources 2.0.x contient des informations que vous
devez conna�tre lorsque vous effectuez la mise � jour de votre
syst�me. Il est fort probable que vous deviez mettre � jour plusieurs
paquetages tels que gcc, libc et SysVInit ainsi que quelques fichiers
syst�mes. Mais ne paniquez pas !
99.. MMoodduulleess
Les modules chargeables du noyau peuvent faire �conomiser de la
m�moire et faciliter la configuration. L'utilisation des modules s'est
accrue jusqu'� inclure les syst�mes de fichiers, les pilotes de cartes
ethernet, de lecteurs de cartouches, d'imprimantes, etc.
99..11.. IInnssttaalllleerr lleess uuttiilliittaaiirreess ppoouurr gg��rreerr lleess mmoodduulleess
Ces utilitaires sont disponibles sur n'importe quel site o� vous avez
r�cup�r� les sources du noyau : modutils-x.y.z.tar.gz; choisissez la
derni�re version x.y.z qui est �gale ou inf�rieure � votre version du
noyau. Installez-le avec `tar zxvf modutils-x.y.z.tar.gz', cd dans le
r�pertoire cr�� (modutils-x.y.z), regardez le fichier README, et
suivez les instructions d'installation (qui sont en g�n�ral tr�s
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�pertoire pour les d�tails.
insmod ins�re un module dans le noyau en cours d'ex�cution. Les
modules ont g�n�ralement une extension .o. Le pilote exemple est
appel� drv_hello.o, donc, pour l'ins�rer, insmod 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
`drv_hello' est le nom du module, il utilise une page m�moire (4ko),
et aucun autre module du noyau ne d�pend actuellement de lui. Pour le
retirer, lancez `rmmod drv_hello'. Notez que rmmod prend comme argu�
ment _l_e _n_o_m _d_u _m_o_d_u_l_e_, (celui donn� par lsmod) pas un nom de fichier.
Les autres programmes de gestion des modules sont document�s (pages de
manuel).
99..22.. MMoodduulleess ddiissttrriibbuu��ss aavveecc llee nnooyyaauu
Avec la version 2.0.30, presque tout est disponible sous forme de
modules chargeables. Pour les utiliser, soyez s�r que vous ne les
ins�rez pas dans la configuration du noyau. Pour cela, ne r�pondez pas
y pendant le `make config'.
Compilez un nouveau noyau et bootez avec. Puis, cd dans /usr/src/linux
� nouveau, et faites un `make modules'. Cela va compiler tous les
modules que vous n'avez pas sp�cifi�s dans le noyau et installer les
liens dans /usr/src/linux/modules. Vous pouvez alors les utiliser
depuis ce r�pertoire ou faire `make modules_install' qui les
installera dans /lib/modules/x.y.z, ou x.y.z est le num�ro de version
du noyau.
Cela peut �tre particuli�rement utile pour les syst�mes de fichiers.
Vous n'utilisez peut-�tre pas fr�quemment les syst�mes 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 msdos lorsque j'aurai termin�, Cette fa�on de proc�der �conomise
pr�s de 50 ko de RAM dans l'utilisation du noyau. Remarque sur le
syst�me de fichiers minix : il est tr�s fortement conseill� de
_t_o_u_j_o_u_r_s le configurer directement dans le noyau pour l'utilisation en
disques de secours.
1100.. TTrruuccss eett aassttuucceess
1100..11.. RReeddiirriiggeerr llaa ssoorrttiiee ssttaannddaarrdd ddeess ccoommmmaannddeess mmaakkee oouu ppaattcchh
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).
1100..22.. IInnssttaallllaattiioonnss ddiivveerrsseess dduu nnooyyaauu
En plus des disquettes, d'autres m�thodes existent pour tester un
nouveau noyau sans d�truire les pr�c�dents. � la diff�rence d'autres
syst�mes Unix, LILO est capable de booter sur un noyau situ� n'importe
o� sur le disque (si vous avez un gros disque (500 Mo ou plus) lisez
la documentation de LILO car cela risque de poser quelques probl�mes).
Donc, ajoutez cela :
image = /usr/src/linux/arch/i386/boot/bzImage
label = nouveau_noyau
� la fin de votre fichier de configuration LILO, vous pouvez alors
choisir de booter sur le nouveau noyau sans avoir � d�truire l'ancien
/vmlinuz (apr�s avoir lanc� lilo, bien s�r). La mani�re la plus
simple d'indiquer � LILO qu'il doit booter sur un nouveau noyau est de
presser la touche shift au boot (lorsqu'il vous indique LILO) ce qui
vous donne un prompt. � ce moment, tapez `nouveau_noyau' pour qu'il
boote sur le nouveau noyau.
Si vous d�sirez conserver plusieurs sources du noyau (cela peut
prendre _b_e_a_u_c_o_u_p de place ; faites attention), la mani�re la plus
simple est de le nommer : /usr/src/linux-x.y.z, ou x.y.z est la
version du noyau. Vous pouvez alors choisir le source � utiliser en
faisant un lien symbolique ; par exemple, `ln -sf linux-1.2.2
/usr/src/linux' indiquera la version 1.2.2 comme version courante.
Avant de cr�er ce type de lien symbolique, soyez certain que le
dernier argument de ln n'est pas un r�pertoire existant. Le r�sultat
ne serait pas celui que vous esp�riez.
1100..33.. MMiisseess �� jjoouurr ddeess nnooyyaauuxx
Russell Nelson (
[email protected]) fait des r�sum�s des changements
dans les nouvelles versions du noyau. Ils sont courts et vous devriez
les regarder avant de r�aliser la mise � jour. Ils sont disponibles
par ftp anonyme � ftp.emlist.com dans pub/kchanges ou via WEB
<
http://www.crynwr.com/kchanges>.
1111.. DD''aauuttrreess HHOOWWTTOO qquuii ppeeuuvveenntt ��ttrree uuttiilleess
� Sound-HOWTO : cartes sons et utilitaires
� SCSI-HOWTO : tout sur les contr�leurs et p�riph�riques SCSI
� NET-2-HOWTO : r�seaux
� PPP-HOWTO : r�seau avec PPP
� PCMCIA-HOWTO : � propos des pilotes pour votre portable
� ELF-HOWTO : ELF : qu'est-ce que c'est, installation, etc
� Hardware-HOWTO : survol du mat�riel support�
� Module mini-HOWTO : plus de d�tails sur les modules du noyau
� Kerneld mini-HOWTO : d�di� � kerneld
� BogoMips mini-HOWTO : pour information
1122.. DDiivveerrss
1122..11.. AAuutteeuurr
L'auteur du Kernel-HOWTO Linux est Brian Ward (
[email protected]).
S'il vous pla�t, envoyez-moi des commentaires, corrections, rajouts.
Les corrections sont en particulier tr�s importantes.
Vous pouvez jeter un coup d'oeil � ma page web ici
<
http://www.math.psu.edu/bri/> ou l� <
http://blah.math.tu-
graz.ac.at/~bri/>.
Bien que j'essaye d'�tre attentif � mon courrier, rappelez-vous que
j'en ai _b_e_a_u_c_o_u_p tous les jours, donc �a peut prendre un petit peu de
temps pour vous r�pondre. Si le mail est une question, essayez d'�tre
le plus clair et d�taill� possible. Si vous m'�crivez � propos de
mat�riel qui ne fonctionne pas (ou quelques chose du genre), j'ai
besoin de savoir quelle est votre configuration mat�rielle. Si vous
reportez une erreur, ne vous limitez pas � "J'ai essay� ceci et �a n'a
pas march�", j'ai besoin de savoir quelle �tait l'erreur, et quelles
versions du noyau, de gcc et de la libc vous utilisez. Me donner le
nom de la distribution n'est pas suffisant. Ne craignez pas de poser
des questions simples, si vous ne demandez pas vous n'aurez pas de
r�ponse ! Merci � tous ceux qui m'ont envoy� des commentaires.
Si votre question ne concerne pas le noyau ou est �crite dans un
langage que je ne comprends pas, il se peut que je ne r�ponde pas.
Si vous m'�crivez et que vous n'obtenez aucune r�ponse dans un temps
raisonable (trois semaines ou plus), il y a des chances que j'ai
accidentellement d�truit votre message (d�sol�). R��ssayez.
J'ai beaucoup de mail sur des probl�mes et questions de mat�riel. Ce
n'est pas un probl�me mais merci de noter que que je ne suis pas
familier avec tout le mat�riel du monde. J'utilise des processeurs
AMD, des controlleurs SCSI Adaptec et Symbios et des disques SCSI IBM.
La version 0.1 de ce document a �t� �crite le 3 octobre 1994. Il est
disponible aux formats SGML, PostScript, TeX, roff et texte.
1122..22.. RReessttee �� ffaaiirree
Le paragraphe "Trucs et astuces" est un peu court. J'esp�re l'�toffer
avec les suggestions venant d'autres personnes. De m�me pour "Autres
paquetages". Des informations suppl�mentaires pour le
d�bogage/sauvetage lors de crash seraient les bienvenues.
1122..33.. CCoonnttrriibbuuttiioonnss
Une petite partie du README de Linus (cf. option kernel hacking ) est
incluse. (Merci, Linus !)
�
[email protected] (Ulrich Callmeier) : patch -s et xargs.
�
[email protected] (Daniel Quinlan) : corrections et compl�ments
dans un bon nombre de paragraphes.
�
[email protected] (Nat Makar�vitch) : mrproper, tar -p, et
plein d'autres choses
�
[email protected] (Axel Boldt) : a rassembl� les descriptions des
options de configuration du noyau et m'a fourni la liste
�
[email protected] (Steve Lembark) : suggestion pour le
boot multiple.
�
[email protected] (Keith Briggs) : quelques corrections
et suggestions
�
[email protected] (Ryan McGuire): ajouts au niveau
des options de compilation
�
[email protected] (Eric Dumas) : traduction fran�aise
�
[email protected] (Yasutada Shimazaki): traduction
japonaise
�
[email protected] (Juan Jose Amor Iglesias): traduction
espagnole
�
[email protected] (Martin Wahlen) : traduction su�doise
�
[email protected] (Zoltan Vamosi) : traduction hongroise
�
[email protected] (Bartosz Maruszewski) : traduction polonaise
�
[email protected] (Michael J Donahue) : typos, gagnant de la
"comp�tition du pain en tranches"
�
[email protected] (Richard Stallman) : notice de
distribution/concept de documentation libre
�
[email protected] (David Kastrup) : NFS
�
[email protected] (Eric Raymond) : quelques trucs et astuces
Tous ceux qui m'ont envoy� des mails avec des questions et des
probl�mes ont �galement �t� d'une aide pr�cieuse.
1122..44.. CCooppyyrriigghhtt,, ttrraadduuccttiioonn,, lliicceennccee eett aauuttrreess
Copyright � Brian Ward, 1994-1999.
Version fran�aise Copyright � Eric Dumas, 1995-1997
[email protected]
� 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 this one. Translations fall under the category of
``modified versions.''
_(_V_o_u_s _a_v_e_z _l_e _d_r_o_i_t _d_e _f_a_i_r_e _e_t _d_e _d_i_s_t_r_i_b_u_e_r _d_e_s _c_o_p_i_e_s _d_e _c_e
_d_o_c_u_m_e_n_t _� _c_o_n_d_i_t_i_o_n _q_u_e _l_'_a_v_i_s _d_e _c_o_p_y_r_i_g_h_t _e_t _c_e_t _a_v_i_s _d_e _p_e_r_m_i_s_s_i_o_n
_s_o_i_e_n_t _p_r_�_s_e_r_v_�_s _s_u_r _t_o_u_t_e_s _l_e_s _c_o_p_i_e_s_. _V_o_u_s _p_o_u_v_e_z _c_o_p_i_e_r _e_t
_d_i_s_t_r_i_b_u_e_r _d_e_s _v_e_r_s_i_o_n_s _m_o_d_i_f_i_�_e_s _s_o_u_s _l_e_s _m_�_m_e_s _c_o_n_d_i_t_i_o_n_s _p_o_u_r_v_u _q_u_e
_l_e _t_r_a_v_a_i_l _d_�_r_i_v_� _s_o_i_t _d_i_s_t_r_i_b_u_� _s_o_u_s _u_n _a_v_i_s _d_e _p_e_r_m_i_s_s_i_o_n _i_d_e_n_t_i_q_u_e
_� _c_e_l_u_i_-_c_i_. _L_e_s _t_r_a_d_u_c_t_i_o_n_s _s_o_n_t _d_e_s _"_v_e_r_s_i_o_n_s _m_o_d_i_f_i_�_e_s_"_)_.
Garantie : aucune.
Cette version fran�aise peut �tre trouv�e sur ftp.lip6.fr dans le
r�pertoire /pub/linux/french/HOWTO.
La distribution commerciale est autoris�e et encourag�e ; toutefois il
est fortement recommand� de contacter l'auteur avant la
redistribution, dans l'int�r�t de la mise � jour des donn�es (vous
pourriez aussi m'envoyer un exemplaire de ce que vous faites). Idem
pour les versions traduites, contactez le traducteur. Il est conseill�
aux traducteurs de contacter l'auteur avant de commencer la
traduction. La version imprim�e est bien plus belle. Recyclez.