Problem mit Kernelparameter mem=64M

Hast Du Probleme mit Hardware, die durch die anderen Foren nicht abgedeckt werden? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
Jens Oeser
Beiträge: 96
Registriert: 17.07.2002 17:04:22
Lizenz eigener Beiträge: GNU Free Documentation License

Problem mit Kernelparameter mem=64M

Beitrag von Jens Oeser » 06.09.2002 11:16:56

Hi,

habe hier auf meinem Rechner (Woody mit Kernel 2.4.18-586tsc) ein Problem mit dem Kernelparameter mem=64M. Ich möchte auf dem Rechner den slram-patch nutzen um den nicht gecachten RAM als schnellen swap-Bereich einzubinden. Dazu muß als erstes dem Kernel der Parameter mem=64M übergeben werden. Leider hängt sich damit der Rechner beim booten mit der Fehlermeldung:
request _module[block-major-3]: Root fs not mounted
VFS: Cannot open root device "hda3" or 03:03
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 03:03
auf. Die Fehlermeldung hilft mir leider nicht weiter, da ich dem Kernel schon eine richtige "root=/dev/hda3 ro" Option mit auf den Weg gebe. Ich habe bereits lilo, grub sowie einen selbstgebackenen Kernel ausprobiert, leider ohne Erfolg :( -- werde heute noch mal einen 2.2.20 ausprobieren.

Hat jemand vielleicht einen Tip was ich probieren könnte. Im dmesg kann ich leider keine anderen Probleme finden, die dieses hervorrufen könnten.

Vielen Dank.

Jens.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 06.09.2002 14:57:40

Schau 'mal in Deine /etc/lilo.conf, ob da evtl. eine Option steht, die hda3 als Parameter hat statt /dev/hda3.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Jens Oeser
Beiträge: 96
Registriert: 17.07.2002 17:04:22
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von Jens Oeser » 06.09.2002 15:52:45

Hi,
pdreker hat geschrieben:Schau 'mal in Deine /etc/lilo.conf, ob da evtl. eine Option steht, die hda3 als Parameter hat statt /dev/hda3.

Patrick
Ich verwende zur Zeit grub, in dessen Konfigurationsdatei steht auch "root=/dev/hda3 ro" drin. Wenn der Kernel bootet zeigt er die übergebenen Parameter korrekt an. Also an der Übergabe kann es meiner Meinung nach nicht liegen. Ich habe vorhin mit dem Orginal 2.2.20 Kernel ohne Probleme gebootet (mit mem=64M). Der ebenfalls mitgelieferte 2.4.16-586tsc hat ebenso mit mem=64M seine Probleme. Ist das ein generelles Problem der 2.4er Reihe? In der Dokumentation zum Kernel ist allerdings der Paramter noch mit angegeben. :?

Trotzdem vielen Dank.

Jens.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 06.09.2002 16:03:34

Das ist definitiv kein generelles Problem der 2.4 Kernel. Ich habe hier gerade testweise 'mal einen 2.4 Kernel mit mem=16M gebootet (Oh mein Gott, ich habe dann auch noch versucht mich in KDE einzuloggen... ;-) ), und das ist kein Problem.

Allerdings gibt es gerade im Speichermanagement deutliche Unterschiede zwischen 2.4 und 2.2, so dass es durchaus sein kann, dass unter bestimmten Bedingungen Probleme gibt.

ACHTUNG! Spekulation
Da Dein Chipsatz nur 64M Cacheable RAM unterstützt könnte es sein, dass der Kernel irgendwelche Datenstrukturen entsprechend ausrichtet. Versuch einfach testhalber 'mal mem=63M, ob sich dann irgendwas ändert.

Unable to mount root ist allerdings eigentlich eine Fehlermeldung, die nicht auf Speicherprobleme hinweist.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 06.09.2002 16:08:35

Ha!
request _module[block-major-3]: Root fs not mounted
VFS: Cannot open root device "hda3" or 03:03
Das bedeutet, dass der kernel versucht ein Modul zu laden, um Zugriff auf irgendein /dev/hdX zu bekommen um es als root zu mounten (block-major-3), es aber nicht kann, weil das root noch nicht gemountet ist. Das würde eigentlich bedeuten, dass kein IDE Treiber bzw. Festplatten Treiber geladen wurde. Treiber, die benötigt werden um das root FS zu mounten dürfen (normalerweise) keine Module sein, da der Kernel diese dann nicht laden kann...

Funktioniert der 2.4 Kernel, denn OHNE die mem Option? Oder panicked der dann auch?

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Jens Oeser
Beiträge: 96
Registriert: 17.07.2002 17:04:22
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von Jens Oeser » 06.09.2002 20:43:21

pdreker hat geschrieben: Das bedeutet, dass der kernel versucht ein Modul zu laden, um Zugriff auf irgendein /dev/hdX zu bekommen um es als root zu mounten (block-major-3), es aber nicht kann, weil das root noch nicht gemountet ist. Das würde eigentlich bedeuten, dass kein IDE Treiber bzw. Festplatten Treiber geladen wurde. Treiber, die benötigt werden um das root FS zu mounten dürfen (normalerweise) keine Module sein, da der Kernel diese dann nicht laden kann...

Funktioniert der 2.4 Kernel, denn OHNE die mem Option? Oder panicked der dann auch?
Der 2.4er Kernel bootet ohne die mem-Option ohne irgendwelchen Probleme. Ich habe versucht den RAM auf 63M und auch auf 16M zu beschränken, beides führt zu genau der gleichen Fehlermeldung.

Der IDE-Treiber für den ALI153x Chipsatz ist in den Kernel fest einkompiliert. Ich werde aber dort nochmal näher suchen, vielleicht ist ja eine der eingebauten Karten der Grund oder im Bios geht irgendwas schief. :cry:

Schau mer mal.
Danke.

jochen
Beiträge: 84
Registriert: 27.08.2002 16:36:33
Wohnort: Bietigheim-Bissingen

Beitrag von jochen » 06.09.2002 20:54:16

Verwendest der Kernel eine initrd ("Initial Ramdisk", bei den Debian-Kernels unter /boot/initrd.img-<kernelversion>)? Die musst du dann auch bei der Konfiguration deines Bootmanagers angeben. Falls ja, befinden sich dort einige Module, die u.U. wichtig sind, um deine /-Partition zu mounten!

Jens Oeser
Beiträge: 96
Registriert: 17.07.2002 17:04:22
Lizenz eigener Beiträge: GNU Free Documentation License

Problem gelöst

Beitrag von Jens Oeser » 09.09.2002 12:54:47

Hi,

ich habe das Problem mit dem Kernelparameter mem=64M lösen können. Nach ein wenig herumspielen mit grub und Suche im Internet bin ich auf den grub-Parameter uppermem gestoßen. In der Konfigurationsdatei zu grub muss ebenfalls der RAM auf die 64 MB beschränkt werden, sonst wird das initrd-image in den falschen Speicherbereich geschoben, auf den dann der Kernel nicht mehr zugreifen kann. Es müssen folgende Einträge in die Datei menu.lst geschrieben werden (bei einer Beschränkung auf 64MB):
  • uppermem 64512
    kernel /boot/vmlinuz mem=exactmatch mem=63M@1M
Der Parameter uppermem übergibt grub die Speichergröße oberhalb von 1 MB --> also 63 MB. Die Angabe mem=exactmatch bewirkt, dass genau die Speichergröße übernommen wird. Der Kernel hat sonst immer ein paar mehr kb genommen, so dass es wieder Problem mit dem Laden von initrd.img gab.

Vielen Dank an alle.
Jens.

Antworten