Du haut...
make
compile et lie l'image du noyau. Il s'agit d'un seul fichier nommé vmlinuz
.
make modules
compile des fichiers individuels pour chaque question à laquelle vous avez répondu M
pendant la configuration du noyau. Le code objet est lié à votre noyau fraîchement construit. (Pour les réponses aux questions Y
, celles-ci font déjà partie vmlinuz
et pour les réponses aux questions, N
elles sont ignorées).
make install
installe votre noyau intégré dans /vmlinuz
.
make modules_install
installe vos modules du noyau dans /lib/modules
ou /lib/modules/<version>
.
Quant à l'ajouter à la liste des noyaux disponibles, cela est pris en charge par le chargeur de démarrage. C'est différent pour chaque chargeur de démarrage, mais grub
c'est le plus courant sur x86 et amd64 donc je vais le décrire. C'est en fait assez simple. Grub regarde dedans /
, /boot
et /lib/modules
pour tout ce qui ressemble à ça pourrait être un noyau fonctionnel et l'ajoute. Et oui, c'est une description trop simplifiée.
Ce "truc horrible" supplémentaire dans la documentation Ubuntu est un truc supplémentaire pour créer un deb
paquet. Lorsque vous le faites pour plus que vous, il est préférable de le conditionner. Vous basculerez dans le temps.
La construction du noyau et des modules est conservée séparément, car pour les personnes qui en ont besoin (c'est-à-dire les développeurs du noyau), elles n'apportent souvent des modifications qu'à un module. Ils peuvent appliquer leurs modifications, reconstruire et installer uniquement les modules. Cela fait gagner beaucoup de temps quand il faut le faire 20 fois par jour. Il ne sera jamais mis à jour pour avoir une seule make everything
commande. Au lieu de cela, exécutez make && make modules && make install && make modules_install
comme la documentation le dit . Le processus de construction favorise les développeurs du noyau, pas vous. Et c'est comme ça que ça devrait être.
En réalité, il n'y a presque aucune raison pour quiconque, sauf les développeurs de noyau ou les conditionneurs de distribution, de compiler un noyau. Dans presque toutes les circonstances, la fonctionnalité de noyau que vous souhaitez a déjà été conçue pour vous et est disponible dans l'un des noyaux pré-emballés. Il y a des exceptions, mais elles sont extrêmement rares de nos jours.
Non pas que je vous décourage de créer votre propre noyau, je vous encourage en fait à le faire. Je pense que la construction de votre noyau à partir de zéro est une pratique inestimable pour apprendre comment tout cela fonctionne là-bas. En partie, parce que peut-être un jour vous serez l'exception qui doit le faire. Mais cela vous apprend également beaucoup sur le noyau et le processus de démarrage en général. Vous serez une meilleure personne pour l'avoir fait.