[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

make-kpkg et méthode classique



Bonjour et bonne année.

Je suis utilisateur d'une Woody 3.0 (noyau 2.4.18) et d'une Mandrake 9.0
(noyau 2.4.19) sur la même machine. Pour permettre à cette dernière de
s'éteindre correctement, j'ai été amené récemment à recompiler le noyau afin
d'y inclure le support ACPI. J'ai d'abord effectué la manip sur le système
Debian à l'aide du kernel-package, tout s'est bien déroulé en ce sens que la
machine a  redémarré sans problème avec, cerise sur le gâteau, un PC qui
s'éteint tout seul. Enhardi, j'ai recompilé le noyau de la Mandrake, mais
avec la méthode classique :
- make xconfig
- make dep
- make clean
- make bzImage
- make modules
- make modules_install
Même résultat. Ca marche aussi.

Puis j'ai voulu mettre à jour la disquette de boot Debian à jour avec
mkboot, et là patatras, l'image du noyau est trop grosse (1440 k environ).
Par comparaison, celle Mandrake ne fait que 900 k. Je me dis donc que j'ai
oublié quelque chose. Je reprends.

1 ère étape
Je lis donc le man make-kpkg et je reprends la compilation avec :
- make xconfig (avec toutes les options pour l'ACPI en modules),
- make-kpkg clean
- make-kpkg --bzimage --revision=acpi kernel_image (option --bzimage comme
indiqué dans le man),
- dpkg -i kernel-image*.deb
Pendant l'installation, on me propose de refaire une disquette de boot, puis
on me dit que l'image du noyau est peut-être un peu grosse (pratiquement
1400 k), mais tout s'exécute normalement. Le système redémarre normalement.
Par contre lorsque je veux rebooter sur la disquette, j'ai le message
"invalid compressed format".

2 eme étape (j'y tiens à ma disquette de boot) :
Je compare les 2 .config (celui de la Debian et celui de la Mandrake) avec
xconfig, panneau par panneau, mais il y a des options marquées [Y]
supplémentaires dans le cas de la Mandrake (donc a priori noyau plus gros).
Je reprends la compilation mais avec la méthode classique car j'ai un doute
sur l'option --bzimage de make-kpkg.
- make dep
- make clean
- make bzImage 
mais ça plante au bout de 2 minutes.

3 eme étape. Pas le choix, je reviens immédiatement (du coup, je n'ai pensé
à noté les messages d'erreur) à la méthode Debian (make-kpkg), et ça marche
(A noter que je n'ai rien fait de plus par rapport à l'étape précédente, je
suis reparti du même .config). Mais image du noyau trop grosse.

4eme étape
je vire toutes les options non indispensables (i.e. [N]), et j'obtiens une
image de noyau suffisamment petite pour obtenir une disquette de boot à
l'aide de mkboot (en revanche celle créée lors de l'installation du paquet
kernel-image*.deb ne boote pas et donne le message "invalid compressed
format").

J'ai donc résolu mon problème (j'ai un PC qui s'éteint et une disquette qui
boote, une demi-douzaine de compilations quand même), je ne m'adresse donc
pas à vous pour que vous me portiez assistance mais pour avoir
retrospectivement des éclaircissements sur le fonctionnement de make-kpkg et
de la compilation en général, entre autres :

- comment "contrôle"-t-on la taille de l'image du noyau (en dehors de
supprimer ou passer en module certaines options), i.e, quelles options dans
make-kpkg  ?
- que fait make-kpkg en plus de la compilation classique (qui n'a pas marché
alors que juste derrière un make-kpkg a parfaitement rempli son rôle, cf.
étape 3)?
- comment expliquer la différence de taille de noyau (entre la Mandrake et
la Debian) ?
- pourquoi la disquette de boot crée à l'installation du kernel-image*.deb
ne fonctionne pas ("invalid compressed format")?

Pardon pour ne pas avoir noté soigneusement les messages d'erreur, pardon
d'être aussi long pour exposer mon problème.

Pascal DORMEAU






Reply to: