web-dev-qa-db-fra.com

Construire son propre noyau sur Ubuntu

J'essaie de construire mon propre noyau, car je veux écrire un programme de noyau que je dois compiler dans le noyau. Alors qu'est-ce que j'ai fait? Téléchargez depuis kernel.org, extrayez, faites le make menuconfig et configurez tout selon vos besoins, faites un make, faites un make modules_install, faites une make install et enfin faites une mise à jour-grub. Résultat: il ne démarre pas du tout ....

Maintenant, j'ai jeté un coup d'œil ici et il décrit une manière différente de compiler un noyau. Serait-ce la raison pour laquelle mon chemin n'a pas fonctionné? Ou quelqu'un d'autre a-t-il une idée pourquoi mon noyau ne fonctionne pas?

Excellente réponse, ty. Oli. Mais je l'ai essayé à l'ancienne, et après une heure de compilation, j'ai reçu ce message:

install -p    -o root -g root  -m  644 ./debian/templates.master /usr/src/linux-2.6.37.3/debian/linux-image-2.6.37.3meinsmeins/DEBIAN/templates
dpkg-gencontrol -DArchitecture=i386 -isp         \
        -plinux-image-2.6.37.3meinsmeins -P/usr/src/linux-2.6.37.3/debian/linux-image-2.6.37.3meinsmeins/
dpkg-gencontrol: error: package linux-image-2.6.37.3meinsmeins not in control info
make[2]: *** [debian/stamp/binary/linux-image-2.6.37.3meinsmeins] Error 255
make[2]: Leaving directory `/usr/src/linux-2.6.37.3'
make[1]: *** [debian/stamp/binary/pre-linux-image-2.6.37.3meinsmeins] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.37.3'
make: *** [kernel-image] Error 2
3
user12408

Quelques conseils basés sur ce que vous avez dit:

  • Utilisation make-kpkg! Vous ne voulez vraiment pas jouer avec make install pour un noyau. Les noyaux sont des choses assez énormes que vous voulez dans des packages où vous pouvez rapidement vous débarrasser de "s'il vous plaît!" avec un rapide "apt-get remove".

  • La "façon ancienne" décrite dans le document Kernel/Compile est la meilleure façon de savoir comment compiler des noyaux sur Ubuntu avec des sources aléatoires (non spécifiques à Ubuntu) comme Kernel.org.

  • Ignorez le make localmodconfig étape. Cela peut être utile mais plus souvent qu'autrement, il semble juste casser des choses (pour moi).

  • Je ne vous suggérerais pas de configurer le noyau entier par vous-même. Récupérez la dernière copie de la configuration Ubuntu et basez-vous dessus. Cela vous donnera un bon défaut sain que vous pouvez élaguer. Lorsque vous générez la version suivante, tirez simplement la configuration vers l'avant et effectuez une make oldconfig pour voir s'il y a de nouvelles options (courantes lorsque l'on passe d'une version majeure à l'autre).

  • Si vous construisez 2.6.38 sur Maverick, je vous suggère de retirer la configuration de Natty. Vous devrez télécharger le package depuis packages.ubuntu.com et extraire le fichier de configuration de son dossier de démarrage. J'ai déjà demandé s'il y avait un moyen plus simple de le faire, mais il ne semble pas y en avoir.

En bref: il suffit de suivre à la lettre la "vieille méthode". Une fois que vous vous êtes construit quelques packages et que vous savez ce que vous faites, jouez avec la formule.

7
Oli

Compiler le noyau dans ubuntu est vraiment facile. J'ai utilisé la méthode de construction alternative il y a quelques semaines et cela a parfaitement fonctionné. Je pense que vous devriez essayer cette méthode car elle fait automatiquement plusieurs choses pour vous, ce qui signifie moins de choses qui peuvent être foirées.

Cependant, la méthode que vous décrivez devrait également fonctionner en général, il est donc probable que vous ayez suivi un guide obsolète ou fait quelque chose de mal.

0
apoorv020