PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kernel 2.4.2 --no initrd


Schurl
18.04.01, 08:26
Hallo!

Hab mich nun auch übers Kernelkompilieren drübergetraut und da haut leider was nicht hin.

Hab von dem (empfehlenswerten) Magazin LinuxComputing den Kernel 2.4.2 entpackt und dann die Standardprozedur abgewickelt:

make xconfig
make dep
make clean
make bzImage
make modules
make modules_install

sys.map und bzimage ins boot kopiert.

Und als ich über yast den neuen lilo schreiben wollte kamm folgende Meldung:
'Kernel does not support inertial RAMDisk'

Und der lilo wurde daraufhin nicht geschrieben!

Kann sein, daß ich was wichtiges bei xconfig vergessen habe?

Auf hilfe hoffend...Schurl

thommy
18.04.01, 10:08
...vergessen... Ja und Nein!

Dein alter Kernel hat offensichtlich eine RamDisk verwendet. Deshalb existiert in der lilo.conf eine entsprechende Zeile. Da diese bei Dir (glaube ich zumindest) als globale Option gesetzt ist (also vor dem ersten Image steht), gilt sie für jeden Linux-Kernel. Lilo stellt nun fest, dass Dein neuer Kernel die Fähigkeit nicht besitzt...

Behebung:
1. Möglichkeit: Du verschiebst die initrd-Zeile in der /etc/lilo.conf, sodass sie im Abschnitt des "alten" Kernels selbst steht

2. Möglichkeit. Du übersetzt den neuen Kernel inklusive "RAM disk support" und "Initial ram disk on console" (oder so ähnlich)

Thomas

Schurl
18.04.01, 14:08
Hi!

Frage: Für was is RamDisk überhaupt gut?
Was macht das?

Jedenfalls hab ich den lilo mittels yast geschrieben und hab dan händisch die intrd vom neuen kernel einfach weggelassen. Dann kam der kernelpanic!

Hab noch kein gefühl dafür weil ich nicht weiß was das intrd eigentlich macht.

Aber danke für die Tips, ich werds latürnich probieren!

Schurl

Schurl
18.04.01, 14:11
Noch ne persönliche Frage:

Bist du zufällig der Thomas Kniep, der Redakteur von LinuxComputing?

Wäre ja echt ein Zufall!

mfg Schurl

thommy
18.04.01, 14:29
Nö, der bin ich nicht (und Rumpelstilzchen heiße ich auch nicht ;))

Aber hier (http://www.linuxfibel.de) lüftet sich das eine Geheimnis und ...hier (http://www.linuxfibel.de/booten.htm#ramdisk) ramscht es in der Disk ;)

Thomas

Schurl
18.04.01, 14:42
Noch ne persönliche Frage:

Bist du zufällig der Thomas Kniep, der Redakteur von LinuxComputing?

Wäre ja echt ein Zufall!

mfg Schurl

Schurl
18.04.01, 14:44
hoppla...ich stottere

peter58
22.04.01, 22:57
Frage:
Was fürein file-system habt ihr eurem System gegönnt?
Reiser, ext2 ??

Danke

Schurl
24.04.01, 13:05
ext2!

schurl

peter58
25.04.01, 14:44
Lieber Schurl,
ich weiß nicht, ob du es geschafft hast, den kernel zu kompilieren.
Ich habe ihn jetzt dank deiner erfrischenden Ermutigung (gut, die Cds kan ich nicht mehr einbinden, und FEhlermeldungen bei resier fs habe ich auch, soweit funktioniert aber alles, auch mit RAM-Disk)
Solltest du noch Fragen offen haben, hast du also etwas bei mir gut!
Tscüß

sprudel123
25.04.01, 22:09
Hallo,
die initrd ist ein virtuelles Dateisystem, was geladen wird, bevor das root dateisystem
geladen wird. Hierdurch kann man den kernel
schlanker machen weil man fast die gesamte Hardwareunterstützung per modul inititialisieren kann . Zum Beispiel:
Seit der Suse 6.4 ist es nicht mehr erfoderlich die unetrscheidlichen SCSI Kernel
auszuwählen, weil der passende Treiber über die initrd geladen wird. Bei der Installation
wird die initrd geschrieben, abhängig von den
erforderl. modulen (scsi z.b , netzwerk, usw.)
Deinem Kernel fehlte die initrd; du kannst sie neu erstellen, ist im SuSe handbich ab 6.4 beschrieben.

So, ..lang lebe tux

Schurl
26.04.01, 09:16
Grüß Euch!

Diese Seite da hat schon eine beträchtliche Informationsdichte!

Mittlerweile hab ich mich durch diese Thema initrd etwas durchgearbeitet und im Suse Handbuch steht eigentlich so ziemlich alles drinn was man wissen muss. mit mk_initrd kann man unter suse das initrd angeblich erzeugen! Habs aber noch nicht ausprobiert!

bei denn heutigen RAMs ist eine initrd doch irgenwie nicht mehr notwendig...oder?

So, nun ne andere Frage zum Kernel!

Im /etc steht ja im modules.conf die zu ladenden module drinnen. Da steht aber nur eine! was is aber wenn ich 2 verschiedene kernels hab die unterschiedliche Anzahl von Modulen benötigen. Mein Bauch sagt mir, daß da was nicht ganz stimmen kann! Der Standardkernel von debian hat nämlich weniger module, als der den ich gebastelt hab, und der wirft latürnich einen Haufen 'Can't locate modul xyz' aus. Oder umgekehrt, irgendwie halt so.

Also, wieso hat jeder Kernel eine eigene /lib/modules/<version> aber alle die gleiche modules.conf.

und wieder ruft die vorlesung...

bis nachher...

sprudel123
26.04.01, 15:36
wieso ist die initrd nicht notwendig.
Es ist doch toll gelöst. Wie willst du ein
"multikompatibles" installationsprogramm erstellen ohne initrd? alle scsi treiber in den kernel? was ist mit usb, was mit sound=?
das ist ja kaum machbar.Wenn alles fest im vorwege im kernel wäre. was du da mit dem speicher sagst , stimmt doch nur für den protected mode.
Aber ein PC startet immer noch im realMOde,
also hat er nur 640 k speicher....
Mehr ist da nicht, auch wenn du 1 GB ram hast.
Zur modules conf: das ist ja nur ne ascii datei, die module startet. Darum ja auch nur eine. Die /lib/modules entgegen enthält die module, die du beim kompilieren für den Kernel gestrikt hast, also zwei.

Wenn du nun mit unterscheidlichem kerneln arbeitetes , ist eine initrd. für jeden einzelnen kernel DIE LÖSUNG..

lang lebe tux

Schurl
26.04.01, 17:12
Hi!

O.k. ich glaub dir das mal so. Nur, ein Freund von mir hat von dem noch nie was gehört, und seine lilo.conf hat keine initrd-Zeile! Für meinen DebianKernel 2.2.18er gibts auch keine initrd und die initrd-Zeile hab ich für den debianeintrag aus dem Suse-Lilo händisch entfernen müssen damit er startbar war (suse-lilo hat sich aufgeregt-kein initrd...).

Naja, jetzt bin ich wieder verwirr ;-o*'

Macht nix...

MfG Schurl

sprudel123
26.04.01, 19:07
der suse kernel kommt in der eide installation ja auch ohne eine initrd aus.
bei scsi indes kannst du nicht alle module fest in den kernel bauen, also musst du entweder einen kernel mit dem scsi controller basteln, oder das modul laden...nur das geht ja von der platte nicht, weil die der kernel nicht lesen kann. (bis suse 6.3 gabs viele kernel die man auswählen musste, (für scsi, für eide gabs 2) ab 6.4 ist die initrd zuständig ( wenn der standard kernel eide nicht funzt)
die fehlermeldung bei lilo in der erstinstallation mit yast 1 rührt daher, das
eine initrd gesucht wird, aber nicht da ist, wenn ein Eide system installiert wurde.

Bei scsi tritt der fehler nicht auf,...weil
eine initrd erstellt wird..und geladen werden (muss)

tataa....

Schurl
27.04.01, 07:28
Alles klar!

Ich hab nämlich kein scsi. Nu ein 0815 system.

Prinzipiell: Bisher ist mir immer gesagt worden, ich solle bei der Kernelkonfiguration die RAMdisk mit einbeziehen. Bis jetzt hab ich diesen teil nicht gefunden (der Augenarzt ruft).

Jedenfalls hat suse ein eigenes tool dafür: mk_initrd.

Gibts sowas auch für debian?

tschuss, Schurl

peter58
30.04.01, 20:06
an Schurl
Was habe ich die verschiedenen Einträge in xconfig gesucht und nicht gefunden!!
Aber mit freundlicher Hilfe einiger Leute hier: RAM-Disk ist unter Block-Devices ganz unten.
Hoffe - jetzt klappt alles
cu

Schurl
02.05.01, 12:26
Dankeschön peta!

Kann man linux- und forumsüchtigwerden?
Gibts einen club der anonymen linuxer? ;)

Bis dann...schurl

peter58
02.05.01, 14:21
Ja, gibts, aber sie möchten angeblich anonym bleiben...
Naja, meine verbleibenden Probleme:
usb-Support ist seit NEukompilation weg. die eth0 und CD-Laufwerke [trotz SCSI-Emulation, Eintragung in die entsprechenden Gruppen (cdrom und cdwriter) wie in /dev gesehen]
Ideen? oder besseres Wissen?!
und wie kriegt man diese blöden Smilies li in den Text.....