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
.
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
".
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.
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).
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).
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/bootIns�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.
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.
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.
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�.
Passez � la version 1.2.1.
N'utilisez pas le fichier vmlinux
cr�� dans /usr/src/linux
comme image de boot mais [..]/arch/i386/boot/bzImage
.
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
.
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
programmes 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
(conserve le
mode), les utilisateurs ne pourront pas utiliser le compilateur 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/includeNotez que "
make config
" va recr�er le lien
/usr/src/linux
s'il n'existe pas.Ces quelques exemples 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
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:25