/boot/config-2.6.26-1-686 erzeugt keinen benutzbaren Kernel

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
mikrokosmos
Beiträge: 225
Registriert: 26.07.2006 19:38:24

/boot/config-2.6.26-1-686 erzeugt keinen benutzbaren Kernel

Beitrag von mikrokosmos » 31.10.2008 16:51:17

Hallo,

heute hatte ich mehr aus Langeweile heraus den Debiankernel nachbauen wollen. Verwendet habe ich dabei den Code aus Debianlinux-source-2.6.26, Debiankernel-package und die /boot/config-2.6.26-1-686 als .config. Ergebnis: Ein Kernel-Panic beim Starten, was mich sehr verwundert hatte. Die Ursache des Panics ist übrigens, dass sämtliche Dateisysteme nur als Modul kompiliert werden, obwohl der Dateisystemtreiber von / (und /boot vermutlich auch) fest eingebunden werden müsste.

Mit dem vorkompilierten Kernel ist das Starten ja kein Problem, mit dem Selbstgebauten klappt es nunmal nicht. Ich war stets der Ansicht, dass der Inhalt von /boot/config-2.6.26-1-686 gleich dem Inhalt der .config wäre, mit welcher der 2.6.26-1-686-Kernel kompiliert wurde. Entweder habe ich nun ein Verständnisproblem, und die Inhalte stimmen tatsächlich überein, oder sie tun es nunmal nicht. Wenn ersteres der Fall sein sollte: Was habe ich übersehen? Wenn zweiteres der Fall sein sollte: Was steht in /boot/config-2.6.26-1-686 dann eigentlich drin und wo ist die richtige .config zu finden?


Mit freundlichen Grüßen,

mikrokosmos

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: /boot/config-2.6.26-1-686 erzeugt keinen benutzbaren Kernel

Beitrag von Danielx » 31.10.2008 17:09:53

mikrokosmos hat geschrieben:Die Ursache des Panics ist übrigens, dass sämtliche Dateisysteme nur als Modul kompiliert werden, obwohl der Dateisystemtreiber von / (und /boot vermutlich auch) fest eingebunden werden müsste.
Also ich verwende hier gerade auf dem Rechner EXT3 und das ist hier ein Modul und nicht fest im Kernel.
mikrokosmos hat geschrieben:Ich war stets der Ansicht, dass der Inhalt von /boot/config-2.6.26-1-686 gleich dem Inhalt der .config wäre, mit welcher der 2.6.26-1-686-Kernel kompiliert wurde.
Ja, genau so sollte es sein.

Gruß,
Daniel

Benutzeravatar
CREEQ
Beiträge: 64
Registriert: 30.07.2002 19:04:58
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Berlin
Kontaktdaten:

Re: /boot/config-2.6.26-1-686 erzeugt keinen benutzbaren Kernel

Beitrag von CREEQ » 31.10.2008 17:11:22

Hallo mikrokosmos,
mikrokosmos hat geschrieben:Ich war stets der Ansicht, dass der Inhalt von /boot/config-2.6.26-1-686 gleich dem Inhalt der .config wäre, mit welcher der 2.6.26-1-686-Kernel kompiliert wurde. Entweder habe ich nun ein Verständnisproblem, und die Inhalte stimmen tatsächlich überein, oder sie tun es nunmal nicht. Wenn ersteres der Fall sein sollte: Was habe ich übersehen? Wenn zweiteres der Fall sein sollte: Was steht in /boot/config-2.6.26-1-686 dann eigentlich drin und wo ist die richtige .config zu finden?
Du kannst die config Deines Kernels in /boot/ ablegen (ich habs nie gemacht und ich denke es soll nur dafür dienen, später zu wissen, wie compiliert wurde).

Mit welchem Fehler erscheint Dein Kernel Panic? Cannot find root fs?

Hast Du nach der Compilierung die Datei /usr/src/linux/arch/i386/boot/bzImage nach /boot/vmlinuz-2.6.26-1-686 kopiert und Deinen Bootloader angepasst?

Gruß.
http://f00l.de
Visit us: #linux-support @ EFNet

Benutzeravatar
mikrokosmos
Beiträge: 225
Registriert: 26.07.2006 19:38:24

Re: /boot/config-2.6.26-1-686 erzeugt keinen benutzbaren Kernel

Beitrag von mikrokosmos » 31.10.2008 17:24:45

Also, die Kernelpanic lautete wie folgt:

Code: Alles auswählen

Kernel Panic - not syncing: VFS: unable to mount root fs on unknown-block(0,0)
Und ich meine mich zu erinnern, dass ich damals, als ich kurzzeitig mal mit Gentoo gespielt hatte, diese Meldung erhielt, weil ich den Dateisystemtreiber halt nur als Modul eingebunden hatte. Aber das ist schon einige Zeit her und irren kann ich mich außerdem. ;-)

Um nochmal die Sache mit dem Kompiliervorgang zu klären: Ich hatte den Quellcode aus dem Debianpaket ausgepackt, bin in das entsprechende Verzeichnis gewechselt, habe die /boot/config-2.6.26-1-686 als .config dort hineinkopiert, dann mit make menuconfig den Versionsnamen noch etwas drangehängt, damit ich den Kernel wiederfinde und dann per

Code: Alles auswählen

fakeroot make-kpkg --initrd --revision=eigener1 kernel_image
und

Code: Alles auswählen

dpkg -i linux-image-2.6.26eigener1_eigener1_i386.deb
den Kernel installiert. Dpkg hat mir dabei das Anpassen der menu.lst von Grub und das umherkopieren vom bzImage erspart.

Was mir grade auffällt ist, dass in /boot gar keine entsprechende initrd-Datei liegt, was natürlich Ursache des Problems sein könnte. Fragt sich nur, wieso die nicht mit im Debianpaket landet.

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: /boot/config-2.6.26-1-686 erzeugt keinen benutzbaren Kernel

Beitrag von cirrussc » 31.10.2008 17:31:54

mikrokosmos hat geschrieben:Was mir grade auffällt ist, dass in /boot gar keine entsprechende initrd-Datei liegt, was natürlich Ursache des Problems sein könnte. Fragt sich nur, wieso die nicht mit im Debianpaket landet.
Und genau das ist die Ursach!
Die FS-Treiber des Debiankernels sind auch alle als Modul gebaut, deshalb braucht dieser zwingend eine initrd.

Warum keine gebaut wurde ist seltsam.
Schau mal in der /etc/kernel-img.conf nach, ob dort do_initrd = yes steht.

@CREEQ Das macht doch alles make-kpkg bzw. dpkg beim installieren.
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Benutzeravatar
mikrokosmos
Beiträge: 225
Registriert: 26.07.2006 19:38:24

Re: /boot/config-2.6.26-1-686 erzeugt keinen benutzbaren Kernel

Beitrag von mikrokosmos » 31.10.2008 17:38:35

cirrussc hat geschrieben:Und genau das ist die Ursach!
Jepp, ich habs auch grade nochmal überprüft: Ein

Code: Alles auswählen

update-initramfs 2.6.26eigener1
update-grub
hat geholfen.
cirrussc hat geschrieben:Warum keine gebaut wurde ist seltsam.
Schau mal in der /etc/kernel-img.conf nach, ob dort do_initrd = yes steht.
Dort tatsächlich do_initrd = yes und ich musste trotzdem den Bau der initrd per Hand anwerfen. Aber das wundert mich nicht weiter, da der Eintrag laut der entsprechenden Manpage nur verhindert, dass bei der Kernelinstallation eine Warnung angezeigt wird, dass der Bootloader entsprechend konfiguriert werden sollte. Mit dem Erstellen der initrd hat das soweit ich das sehe nichts zu tun.

Antworten