vmlinuz et initrd introuvables après la construction du noyau?


9

Après avoir configuré et construit le noyau à l'aide de make, pourquoi n'ai-je pas vmlinuz-<version>-default.imget initrd-<version>.img, mais je n'ai obtenu qu'un énorme vmlinuxbinaire (~ 150 Mo)?


4
Tu as oublié de courir make bzImage? Avez-vous également créé un noyau monolithique? Utilisez-vous un système d'exploitation de type Debian? Si c'est le cas, et que vous n'effectuez pas de compilation croisée, il existe des moyens plus simples de créer un noyau.
Alexios

Je l'ai compilé dans OpenSUSE (cependant, j'ai téléchargé la dernière source depuis kernel.org). Après make menuconfig, j'ai tapé makeet je l'ai laissé faire.
Amumu

1
Vous devez make bzImagegénérer le noyau bzImage. Dites make helpvoir quelques brèves instructions. Consultez le Linux Kernel Howto pour obtenir des instructions détaillées. Si vous avez répondu à chaque make menuconfigquestion par Y (plutôt que M le cas échéant), vous avez essayé d'inclure chaque pilote dans le noyau proprement dit. C'est une très, très mauvaise idée et le noyau ne démarre pas car il est trop volumineux. L' initrdimage est générée par d'autres outils.
Alexios

Je viens de vérifier à nouveau la configuration. Il semble que je n'ai pas activé le support du module noyau chargeable. Je pensais que c'était par défaut. Je vais essayer de compiler à nouveau et je vous aviserai quand c'est fait.
Amumu

Beaucoup de commentaires ci-dessus me semblent être de bonnes réponses.
James Youngman

Réponses:


9

Les images compressées sont sous arch/xxx/boot/, où xxxest l'arc. Par exemple, pour x86et amd64, j'ai une image compressée sur /usr/src/linux/arch/x86/boot/bzImage, avec /usr/src/linux/vmlinux.

Si vous n'avez toujours pas l'image, vérifiez si elle bzip2est installée et fonctionne (mais je suppose que si c'était le problème, vous obtiendrez un message d'erreur descriptif, tel que "bzip2 not found").

De plus, la configuration du noyau vous permet de choisir la méthode de compression, de sorte que le nom de fichier réel et l'algorithme de compression peuvent différer si vous modifiez ce paramètre du noyau.

Comme d'autres l'ont déjà mentionné, les initrds ne sont pas générés par le processus de compilation linux, mais par d'autres outils. Notez que sauf si, pour une raison quelconque, vous avez besoin de fichiers externes (par exemple, vous avez besoin de modules ou d'udev pour identifier ou monter /), vous n'avez pas besoin d'un initrd pour démarrer.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.