Bon, faire un tuto ? je suis déjà en lutte perpetuelle contre l’entropie, et la vue d’un tas de vaisselle sans fin qui se reconstitue tout les jours est pour moi une des pires épreuves que la vie soummet à mon moral. Alors écrire un pipo qui est obsolète au moment ou je l’écrit…
Par contre clarifier un peu…
Pourquoi les 3 tutos sont ils différents ? parceque le noyau change régulièrement, et que chacun est un cas particulier dans la compil du noyau.
rappatriement:
^^^^^^^^^^
Pour ce qui est de recommencer, pas besoin de réinstaller le paquetage source.
Vous pouvez, si plus rien ne marche, supprimer le répertoire /usr/src/kernel-sourceXXXX (pas le lien /usr/src/linux, celui la il reste, ni le fichier tar des sources).
Mais la plupart du temps, on peut recommencer le make-kpkg.
La compil à proprement parler:
^^^^^^^^^
Elle se fait dans /usr/src/linux. Sur le papier, le lien symbolique /usr/src/linux vers l’arborescence du noyau n’est pas obligatoire. Mais comme c’est un standard de nombreuses distribs linux, beaucoup de scripts mal écrits considèrent qu’il existe, et vont chercher par défaut les choses à cet endroit la. C’est donc mieux de le mettre (et de penser à le mettre à jour quand on change de noyau).
C’est dans ce répertoire (/usr/src/linux) que tout se passe…
- config:
La compil commence par une configuration. Cette configuration est stockée dans .config . Elle à le même format que le fichier /boot/config-XXXX.
L’outil de configuration de base communs à tous les linux:
make <???>config
si c’est config, le .config est fabriqué en ligne de commande, l’utilisateur devant répondre “oui/non/module” au plusieurs centaines de question de configuration.=> à proscrire, donc.
oldconfig: similaire à config, mais ne pose que des questions sur ce qui n’est pas déja configuré dans .config (à peine quelques dizaines de nouvelles options à chaque nouvelle version de noyau).
menuconfig: nécessite un paquetage curses ou ncurses d’installé, on édite le .config avec une interface console, mais avec des menus.
il existe d’autres interfaces de configurations, comme xconfig pour une interface X (mais beurk) et gconfig (sous gnome, mais jamais réussi à le faire marcher).
La bonne stratègie, c’est donc plutot de recopier comme .config un /boot/config-XXX qu’on sait marcher et qui correspond à ce qu’on veut (celui de la distrib, ou bien celui d’un noyau qu’on a compilé avant, ou au pire celui d’une knoppix qui est en général trés compatible), ensuite de le complèter (si ce n’etait pas pour le même noyau) avec oldconfig, et finalement, d’aller le modifier finement avec menuconfig (préciser l’architecture, compiler des modules spéciaux.
Sur un linux quelconque, c’est avant cette phase de config qu’il faut appliquer les patchs si on en a.
le make-kpkg:
^^^^^^^^^
dans un linux quelconque, la deuxieme phase consiste à fabriquer les dépendances avec ‘make deps’, compiler le noyau, de fabriquer les modules avec ‘make modules’, d’installer les modules avec ‘make modules_install’, on fabrique un eventuel initrd 'mkinitrd ’ ensuite on installe le noyau et l’initrd là ou il faut (à la racine, ou dans /boot, suivant le linux)…
il faut aussi caser un ‘make clean’ avant ou aprés la compil, je crois…
pfff
Heureusement, sous debian, il y a make-kpkg. make-kpkg simplifie tout ca : il compile ce qu’on lui demande, et fabrique, dans /usr/src, toute une série de fichiers .deb que l’on peut ensuite installer la ou l’on veut. Ce sont ces .deb que l’on installe quand on télécharge une image noyau, les headers, ou un paquetage source noyau.
make-kpkg, prend comme arguments des cibles (la liste: make-kpkg --targets) dont deux principalement:
kernel-image, qui fabrique le paquet image, les headers, et réempaquete les sources avec la config et les patchs appliqués.
modukes_image, qui fabrique les modules complémentaires, comme le paquet nvidia, ou madwifi, qui sont des modules exterieurs rajoutés au noyau.
une autre cible notable, c’est la cible ‘debian’. Elle prépare les sources non debian, en y appliquant les patchs debian ( si par exemple on a rappatrié les sources depuis kernel.org, sans installer le paquetage debian ). this is how you debianize pristine kernel sources.
la commande prend aussi de options: --initrd, quasi obligatoire, qui integre un initrd au paquet kernel-image, et toute une série d’options de version de noyau. Celle la plus souple à mon avis, c’est --append-to-version (et non pas --append_to_version) que je préfère à -rev, mais c’est un choix.
Vous êtes maintenant normalement à même de comprendre le contenu de ‘man make-kpkg’
L’installation:
^^^^^^
la, une fois que la compil s’est bien passée (sisi, c’est possible), on revient dans /usr/src . On y trouve maintenant toute une série de fichiers .deb: kernel-image…, headers, sources, etc . Il ne reste plus qu’à les installer avec dpkg -i
C tout.
vala. J’esperes que c’est mieux pour vous…
++