Kernel findet keine Platten

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
klaeuser
Beiträge: 4
Registriert: 30.08.2009 13:13:55

Kernel findet keine Platten

Beitrag von klaeuser » 30.08.2009 15:41:43

ich versuch's jetzt schon ne ganze Weile - aber irgendwie krieg ich keinen neuen Kernel zu Laufen.
Der neue Kernel panic-t immer und meckert, dass er kein root device finden könnte.
Beim 2.6.30er Kernel sieht das dann so aus:

coldn't find valid ram disk imgame starting at 0
VFS: Cannot open root device "801" or unknown-block (8,1)
Please append a correct "root=" boot option. Here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)

Filesystem-Unterstützung ist direkt reinkompiliert, für mich sieht das eher nach einem fehlenden Treiber aus ... aber wofür ???
Ich hab die Config von meinem altern Kernel (2.6.24) genommen und damit (nach make menuconfig) den 2.6.30er kompiliert ... Ergebnis siehe oben. Mir fehlt absolut der Plan, wo ich jetzt noch suchen könnte.
Warum funktioniert der alte Kernel (den hat der Lenny-Installer installiert), der neue aber nicht ???

Achsoja, ich baue den Kernel mit:

make-kpkg --initrd kernel_image

Am Bootloader (lilo) liegt's nicht, der alte Kernel lässt sich damit auch starten.
Filesystem (xfs) ist - wie gesagt - auch schon drin ... wie um alles in der Welt krieg ich denn raus, was da für'n Treiber fehlt?
Ich hab ein Gigabyte GA-MA78GM-S2H mit SATA-Platten dran.

lspci -h (im laufenden 2.6.24er Kernel) zeigt:

00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge
Subsystem: Advanced Micro Devices [AMD] RS780 Host Bridge
Flags: bus master, 66MHz, medium devsel, latency 32
Memory at <ignored> (64-bit, non-prefetchable)

00:01.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (int gfx)
Flags: bus master, 66MHz, medium devsel, latency 99
Bus: primary=00, secondary=01, subordinate=01, sec-latency=68
I/O behind bridge: 0000e000-0000efff
Memory behind bridge: fde00000-fdffffff
Prefetchable memory behind bridge: 00000000d0000000-00000000dfffffff
Capabilities: [44] HyperTransport: MSI Mapping Enable+ Fixed+
Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (int gfx)
Kernel modules: shpchp

00:0a.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 5)
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: fdd00000-fddfffff
Prefetchable memory behind bridge: 00000000fda00000-00000000fdafffff
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Root Port (Slot+), MSI 00
Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable+
Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] Device 9600
Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
Capabilities: [100] Vendor Specific Information <?>
Capabilities: [110] Virtual Channel <?>
Kernel driver in use: pcieport-driver
Kernel modules: shpchp

00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode] (prog-if 01)
Subsystem: Giga-byte Technology Device b002
Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 1277
I/O ports at ff00
I/O ports at fe00
I/O ports at fd00
I/O ports at fc00
I/O ports at fb00
Memory at fe02f000 (32-bit, non-prefetchable)
Capabilities: [60] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/2 Enable+
Capabilities: [70] SATA HBA <?>
Kernel driver in use: ahci
Kernel modules: ahci

Ich finde aber weder eine RS780 Host Bridge, noch einen SB700/SB800 SATA Controller in der config ...
Trotzdem hat's der Lenny-Installer ja problemlos hingekriegt ... so arg exotisch scheint das Zeugs nicht zu sein...

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: Kernel findet keine Platten

Beitrag von Spasswolf » 30.08.2009 15:58:05

Willkommen im Forum!
00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode] (prog-if 01)
Subsystem: Giga-byte Technology Device b002
Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 1277
I/O ports at ff00
I/O ports at fe00
I/O ports at fd00
I/O ports at fc00
I/O ports at fb00
Memory at fe02f000 (32-bit, non-prefetchable)
Capabilities: [60] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/2 Enable+
Capabilities: [70] SATA HBA <?>
Kernel driver in use: ahci
Kernel modules: ahci

Hast du schon ahci (Device Drivers ->Serial ATA (prod) and Parallel ATA (experimental) drivers -> AHCI SATA support) ausprobiert?

klaeuser
Beiträge: 4
Registriert: 30.08.2009 13:13:55

Re: Kernel findet keine Platten

Beitrag von klaeuser » 30.08.2009 17:22:39

Ja, ist schon drin:

CONFIG_SATA_AHCI=m

Was mir an der Stelle aber komisch vorkommt ... ich kann das nicht auf:
CONFIG_SATA_AHCI=y
stellen - zumindest nicht mit menuconfig - der Wert springt immer wider auf 'M' zurück.
Das kann doch eigentlich gar nicht funktionieren, oder?

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: Kernel findet keine Platten

Beitrag von Spasswolf » 30.08.2009 21:10:52

Wenn du ahci fest (<*>) einbinden willst, musst du auch "Serial ATA (prod) and Parallel ATA (experimental) drivers" fest einbinden (CONFIG_ATA=Y), außerdem brauchst du dann noch fest eingebunden "Scsi Disk Support" (CONFIG_BLK_DEV_SD=Y).
Oder du baust eine ensprechende initrd, ich bin nicht sicher, ob der --initrd switch von make-kpkg noch funktioniert.

klaeuser
Beiträge: 4
Registriert: 30.08.2009 13:13:55

Re: Kernel findet keine Platten

Beitrag von klaeuser » 30.08.2009 21:28:00

das mit der initrd würde ich gerne mal ausprobieren.
Aber wie geht das?
Ich war schon froh, mit make-kpkg überhaupt ein tool gefunden zu haben, das sowas kann.
All die Anleitungen, die ich bisher ausprobiert habe, funktionieren irgendwie nicht.
So scheitert z.B. ein

aptitude install initrd-tools

Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Lese Status-Informationen ein... Fertig
Lese erweiterte Statusinformationen
Initialisiere Paketstatus... Fertig
Lese Task-Beschreibungen... Fertig
Keine Kandidatsversion für »initrd-tools« gefunden
Keine Kandidatsversion für »initrd-tools« gefunden

Gibt's irgendwo ne Anleitung wie man das macht? Ich habe ein 64bit-Lenny - da scheint manches anders zu sein ...

Benutzeravatar
schorsch_76
Beiträge: 2612
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Kernel findet keine Platten

Beitrag von schorsch_76 » 31.08.2009 07:40:02

Hi kläuser,

ich mach das immer so:

Hab da ein kleines script das das immer für mich macht. Nur ein/zwei Punkte anpassen (Datum). Vorher natürlich make oldconfig gemacht.

Code: Alles auswählen

export CONCURRENCY_LEVEL=4
make-kpkg --initrd --rootcmd=fakeroot --revision=20090812 kernel_image kernel_headers kernel_source
Zum Kernelbauen unter Debian hab ich hier nen Link für dich: http://kernel-handbook.alioth.debian.or ... tasks.html


Gruß

schorsch

klaeuser
Beiträge: 4
Registriert: 30.08.2009 13:13:55

Re: Kernel findet keine Platten

Beitrag von klaeuser » 08.09.2009 12:23:34

...ja, was soll ich sagen?
Geht nicht!
Die Fehlermeldungen variieren zwar ein Bisschen, das Ergebnis ist aber immer dasselbe.
Ich hab' jetzt nen neuen Kernel (nach der Anleitung von schorsch_76) gebaut:

export CONCURRENCY_LEVEL=4
make-kpkg --initrd --rootcmd=fakeroot --revision=20090901 kernel_image kernel_headers kernel_source

Anschließend Kernel installiert:
dpkg -i linux-image-2.6.30_20090901_amd64.deb

Sieht alles prima aus, auch ne neue initrd ist da, aber beim Booten:

ata2: softreset failed (device not ready)
ata1: softreset failed (device not ready)
ata6: softreset failed (device not ready)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block (8,6)

Ich versteh' das nicht!

Antworten