[GELOEST] Kernelpanik nach entschlacktem Kernel

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
sh0r
Beiträge: 45
Registriert: 02.07.2005 20:16:07

[GELOEST] Kernelpanik nach entschlacktem Kernel

Beitrag von sh0r » 04.07.2005 13:53:49

Hallo!

Ich habe nach der im Wiki ( http://www.debianforum.de/wiki/Bootsplash ) beschriebenen Anleitung einen Kernel mit bootsplash gebastelt und habe bei der Gelegenheit gleich mal nicht benötigte Sachen aus dem Debian-2.6er-Standardkernel entfernt.
Wenn ich nun (nachdem ich vorher die menu.lst bearbeitet habe) reboote kriegt mein kernel panik:

Hier noch meine menu.lst zur Sicherheit:

Code: Alles auswählen

title		Debian GNU/Linux, kernel 2.6.8-2-386, purified & bootsplash
root		(hd0,1)
kernel		/boot/debian-2.6.8-purified-bootsplash root=/dev/hda2 ro vga=794 splash=verbose
initrd		/boot/initrd.splash
savedefault
boot

title		Debian GNU/Linux, kernel 2.6.8-2-386 
root		(hd0,1)
kernel		/boot/vmlinuz-2.6.8-2-386 root=/dev/hda2 ro vga=794 
initrd		/boot/initrd.img-2.6.8-2-386
savedefault
boot

title		Debian GNU/Linux, kernel 2.6.8-2-386 (recovery mode)
root		(hd0,1)
kernel		/boot/vmlinuz-2.6.8-2-386 root=/dev/hda2 ro single
initrd		/boot/initrd.img-2.6.8-2-386
savedefault
boot

title		Debian GNU/Linux, kernel 2.4.27-2-386 
root		(hd0,1)
kernel		/boot/vmlinuz-2.4.27-2-386 root=/dev/hda2 ro 
initrd		/boot/initrd.img-2.4.27-2-386
savedefault
boot

title		Debian GNU/Linux, kernel 2.4.27-2-386 (recovery mode)
root		(hd0,1)
kernel		/boot/vmlinuz-2.4.27-2-386 root=/dev/hda2 ro single
initrd		/boot/initrd.img-2.4.27-2-386
savedefault
boot
Die Fehlermeldung lautet:

Code: Alles auswählen

RAMDISK: Couldn't find valid RAM disk image starting at 0
Cannot open root device "hda2" or unknown block (0,0)
Das bootsplash-theme funktioniert jedenfalls, ich sehe einen schicken Pinguin im Hintergrund :) Nach Forum-lesen und googlen dachte ich zuerst es würde an der menu.lst liegen, allerdings ist die einstellung für root genauso wie bei den anderen Einträgen, welche funktionieren. Dann habe ich probeweise mal von splash die initrd.splash neu erstellen lassen, was leider nicht funktioniert hat. Den IDE Treiber habe ich auch einkompiliert ( Device Drivers > ATA/ATAPI/MFM/RLL support > Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support sowie Include IDE/ATA-2 DISK support), cramfs ist ebenfalls drin.
Muss ich mir vielleicht selbst eine initrd erstellen? Wie funktioniert das, wenn ich in der initrd nur die Module meines entschlackten Kernels haben will? Per google hab ich schon den Befehl mkinitrd gefunden, allerdings weiss ich eben nicht zu welchem Kernel dieser eine initrd erstellt.

Dankeschön,
sh0r
Zuletzt geändert von sh0r am 09.07.2005 21:19:35, insgesamt 2-mal geändert.

Benutzeravatar
HELLinG3R
Beiträge: 1328
Registriert: 15.04.2004 07:54:33

Beitrag von HELLinG3R » 04.07.2005 14:44:56

hast du vielleicht versehentlich deinen chipsatztreiber entfernt?

sh0r
Beiträge: 45
Registriert: 02.07.2005 20:16:07

Beitrag von sh0r » 04.07.2005 15:08:10

hallo!

Ich hab den VIA KT400A.
Folgendes wird als Modul kompiliert:
Device Drivers > ATA/ATAPI/MFM/RLL support > VIA82CXXX

müsste passen, oder?

gruß,
sh0r

Benutzeravatar
HELLinG3R
Beiträge: 1328
Registriert: 15.04.2004 07:54:33

Beitrag von HELLinG3R » 04.07.2005 15:13:57

hm, keine ahnung, schau mal unter lspci.
allerdings kompiliere ich solche sachen immer fest ein, da ich sie sowiso nicht entladen werde.
also ist ein modul eigentlich nicht gerechtfertigt, imho.
Sachen die man immer braucht -> fest rein

sh0r
Beiträge: 45
Registriert: 02.07.2005 20:16:07

Beitrag von sh0r » 04.07.2005 15:24:15

lspci gibt das aus:

Code: Alles auswählen

0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge (rev 80)
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge
0000:00:0c.0 Multimedia audio controller: Creative Labs SB Audigy (rev 03)
0000:00:0c.1 Input device controller: Creative Labs SB Audigy MIDI/Game port (rev 03)
0000:00:0c.2 FireWire (IEEE 1394): Creative Labs SB Audigy FireWire Port
0000:00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80)
0000:00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [K8T800 South]
0000:00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R350 [Radeon 9800 Pro]
0000:01:00.1 Display controller: ATI Technologies Inc Radeon R350 [Radeon 9800 Pro] (Secondary)
imho müsste das also passen?
wie siehts mit mkinitrd aus? muss ich mir vielleicht selbst zuerst ne initrd erstellen und die dann von splash patchen lassen?

sh0r
Beiträge: 45
Registriert: 02.07.2005 20:16:07

Beitrag von sh0r » 04.07.2005 23:32:31

ich habe jetzt nochmal den kernel neu kompiliert (hab den aus den 2.6er sourcen gebaut) und danach mit

Code: Alles auswählen

mkinitrd -o /boot/initrd.img-2.6.8 2.6.8
eine initrd erstellt. Wenn ich diese nun boote beschwert er sich dass die Datei /lib/modules/2.6.8-2-386/modules.dep nicht da ist und sie deswegen nicht gelade werden kann.

Dies kann ich auch bestätigen ich habe kein 2.6.8-2-386 Verzeichnis in /lib/modules.
Ich verstehe auch nicht wieso die Module da gesucht werden, da ich ja als zweites Argument bei mkinitrd 2.6.8 angegeben habe, was als Verzeichnis in /lib/modules besteht.

Was hab ich falsch gemacht?

sh0r
Beiträge: 45
Registriert: 02.07.2005 20:16:07

Beitrag von sh0r » 06.07.2005 13:39:27

weiss keiner mehr Rat? :cry:
Habe inzwischen schon zig verschiedene Möglichkeiten ausprobiert hab auch mal per depmod die modules.dep neu erstellt, aber die Module werden immer noch im falschen Verzeichnis gesucht.
Auch umbenennen des Verzeichnisses in /lib/modules/2.6.8-2-386 hat nichts gebracht.

Deswegen hab ich es nun mit Kernelbacken nach Debian-Art probiert:
Erst habe ich per Synaptic die Kernel Sourcen für 2.6.8 neu gezogen, dann noch den kernel-patch-bootsplash.

Der Befehl

Code: Alles auswählen

make-kpkg --added-patches bootsplash --revision=stuff.1.0 binary
hat allerdings nicht funktioniert, weshalb ich bootsplash über das .diff mit dem Befehl patch eingespielt habe.

Dann habe ich den Kernel über make menuconfig konfiguriert (übrigens die gleiche .conf wie in meinem entschlacktem Kernel) und wie im Tutorial beschrieben nach Debian Art über make-kpkg gebaut und per dpkg -i installiert.

Der Kernel funktioniert jetzt auch endlich - nur bootspash meckert:

Code: Alles auswählen

bootsplash 3.1.4-2004/02/19-spock-0.1: looking for picture....<6>bootsplash: error while decompressing picture: depth mismatch (15)
Habe es schon per dpkg-reconfigure bootsplash probiert - mit dem gleichen Ergebnis.

So langsam bin ich mit meinem Newbie-Latein am Ende... :oops:

apulix
Beiträge: 132
Registriert: 19.09.2004 19:37:24
Kontaktdaten:

SATA, IDE-Treiber?

Beitrag von apulix » 07.07.2005 22:25:51

Hallo, könnte mir vorstellen, dass du irgendetw. entfernt hast, das gebraucht wird, um die (root-)Partition mounten zu können. Falls du SATA hast, so musst du glaub' ich mit SCSI-Einstellungen aufpassen.

Wie ist es denn, wenn du einen Kernel kompilierst, ohne vorher die Einstellung zu verändern? Ich habe den 2.6.12.2 laufen, ich kompilier' initrd am liebsten gleich mit, dann muss ich nur noch die *.deb-Datei installieren und fertig:

Code: Alles auswählen

make-kpkg --append-to-version=-pc-home --revision=custom.1.0 --inird kernel_image

Benutzeravatar
gOtNoPhEaR
Beiträge: 863
Registriert: 17.04.2004 15:49:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Gau-Algesheim
Kontaktdaten:

Beitrag von gOtNoPhEaR » 08.07.2005 09:44:02

Versuch einfach mal alle wichtigen Sachen (Treiber für FS, Chipsatzteriber, ControllerTreiber...) für den Systemstart fest in den Kernel ein zu kompilieren.
Greetz, gOtNoPhEaR

OS: Debian/testing amd64

sh0r
Beiträge: 45
Registriert: 02.07.2005 20:16:07

Beitrag von sh0r » 09.07.2005 18:01:21

wie gesagt, wenn ich den kernel nach Debian-Art mit der .config baue, die ich beim händischen kompilieren des Kernels verwendet habe funktioniert alles, bis auf bootsplash.
(muss aber zugeben dass ich vergessen hatte den Keyboard Support zu aktivieren :D )
Ich denke nach wie vor dass es irgendein Problem mit der initrd gab.

Bootsplash wird imho gar nicht gestartet da auf den Befehl "splash -s -u 0 /etc/bootsplash/usw"
nur die Fehlermeldung erscheint, dass /proc/splash nicht existiert.
Wenn ich mir die Ausgabe von dmesg ansehe steht da leider auch nichts drin.

Welche .diff brauche ich denn um die über Synaptic geladenen 2.6.8er Sourcen zu patchen?
bootsplash-3.1.4-sp3-2.6.8-10-debian.diff?
oder bootsplash-3.1.6-2.6.8.diff?
oder der Kernel Patch den man mit Synaptic laden kann?

Bin langsam völlig irritiert 8O mache nun schon seit Tagen an diesem Problem rum und habe soviele Tutorials, Forenbeitrage, Manpages usw gelesen, dass ich langsam überhaupt nicht mehr durchblicke.

Glaub ich sollte mein ganzes System neu installieren... :(

EDIT:

Was lange währt... :P
ES FUNKTIONIERT! *freu*
Ich denke wohl ich hab den falschen Patch installiert. Der Richtige ist der bootsplash-3.1.6-2.6.8.diff!
Ein weiteres Problem war, dass die initrd irgendwie zu groß war. Das hat aber nach manuellem Neu-Anlegen der initrd mittels "mkinitrd -o /boot/initrd.img-2.6.8 2.6.8" funktioniert (zuvor habe ich noch die Zeile MODULES=all in der /etc/mkinitrd.conf auf MODULES=dep korrigiert, denke das habe ich allerdings selbst mal geändert...)
Danach noch ein dpkd-reconfigure bootsplash und es lief!

Antworten