PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kernel Compiliert - wie sage ich es grub?



Dicky Arts
23.03.03, 17:53
Ich habe kürzlich mal versucht, unter SuSE 8.1 einen stark abgespeckten Kernel zu compilieren. Aber was genau mach ich mit der bzImage-Datei jetzt? Soweit ich das als Linux-Anfanänger richtig überblicke, habe ich als Bootmanager nicht LILO sondern grub.
Hat jemand von Euch jemand eine möglichst verständliche Anleitung, wie ich genau den Kernel dort einbauen muß? Aus "man grub" bzw. "info grub" bin ich nicht übermäßig schlau geworden.
Ich habe die Hoffnung, daß ein Kernel jeden beliebigen Namen haben darf und hatte mal testweise die Zeile mit der aktuellen Konfiguration aus der Datei /boot/grub/menu.lst kopiert und nur den Namen des Kernels geändert, aber anstatt zu booten blinkten nur die Lampen auf der Tastatur im 4/4-Takt...

Wäre toll, wenn mir jemand helfen könnte!

Gruß

Thomas

Dicky Arts
23.03.03, 18:10
Nachtrag, falls es von Wichtigkeit ist:
Beim Booten meines eigenen Kernels blinken CAPS-Lock und Scroll-Lock, während Num-Lock dunkel bleibt.

Ich gebe ja zu, daß ich allerhand definitiv nicht benötigte Treiber aus der Kernel rausbefördert habe. Es ist nicht ausschließen, daß ich hier etwas zu viel ausgemistet habe, allerdings habe ich die Einstellungen mehrfach geprüft und glaube nicht, daß es daran liegt.

Gruß

Thomas

|sXe|
23.03.03, 18:18
Hi

Ich habe auch letzte Woche bzw jetzt am Wochenende das erste mal nen
eigenen Kernel kompiliert und in grub eingebunden, deswegen kann ich dir
zumindest sagen wie du ihn da einbinden must :]

Also einfach das bzImage mit cp bzImage /boot/linuz-* (* = Kernelversion)
kopieren. Dann noch die Datei System.map (aus dem /usr/src/linux-* Verzeichns)
mit cp System.map /boot/System.map-* (* = Kernelversion) kopieren.
Danach mit (ex: mkinitrd /boot/initrd-2.2.5-15.img 2.2.5-15) eine art tmp
Verzeichnis für den Kernel erzeugen und das alles in die /boot/grub/grub.conf
eintragen. Das kannste am einfachsten mit vim oder vi machen.
Dazu kannste dir die Syntax des schon vorhandenen Kernels in der grub.conf
abschauen. Einfach mit deinen Daten eintragen und fertig.

Tip: Erstell dir ne bootdisk :]

cya

|sXe|

Dicky Arts
23.03.03, 19:23
Ne Bootdisk? Nun mach doch die Sache nicht unnötig kompliziert! Erstens will ich die Kiste nicht von der Diskette sondern von der Platte starten und zweitens habe ich da erst recht keine Idee, wie ich so eine Diskette anlegen muß.

Aber ehrlich gesagt wirfst Du bei mir mehr Fragen auf, als Du beantwortest.
Ich habe in meiner Blauäugigkeit einfach nur die Datei /usr/src/linux-2.4.19.SuSE/arch/i386/boot/bzImage hergenommen und nach /boot/ kopiert. Ich habe das Image in dicky umbenannt, um Konflikte mit anderen Kernels zu vermeiden. Darf man das womöglich nicht?

> /boot/linuz-*

Soll das ein Verzeichnis oder ein Dateiname sein?

Die Datei System.map habe ich gefunden, aber bisher noch nichts damit gemacht. Im Verzeichnis /boot/ befindet sich bereits einer Datei namens System.map-2.4.19-4GB, allerdings gibt es vom Dateinamen her keinen korrespondierenden Kernel.

> Danach mit (ex: mkinitrd /boot/initrd-2.2.5-15.img 2.2.5-15)

Hab Mitleid mit einem Linux-Newbie! Die Klammern muß ich nicht mit eingeben, oder? Und ex: ist dann der eigentliche Befehl?

Gruß

Thomas

RapidMax
23.03.03, 19:34
Wenn die Num und Caps-lock-Taste blicken hast du eine Kernel-Panic. Vermutlich hast du dann was vergessen einzubauen, oder ein Treiber funktioniert nicht.

Die initrd (Init-Ramdisk) brauchst du für Module die nicht in den Kernel einkompiliert werden, aber vor dem Einbinden des root-Dateisystems zur Verfügung stehen sollen.

Gruss, Andy

|sXe|
23.03.03, 20:17
Hi ..

Also mit cp bzImage /boot/vmlinuz-2.4.20 kopierst du den erstellten
Kernel (das bzImage) in das Verzeichnis /boot und benennst es
gleich in vmlinuz-2.4.20 um, damit du die Kernel auseinander halten
kannst. (2.4.20 ist nur ein Beispiel. Ich weis ja nicht welche Kernelversion
du kopiliert hast.)

Bei cp System.map /boot/System.map-2.4.20 ist es genauso.. du kopierst
die Datei System.map nach /boot und benennst sie gleichzeitig nach
System.map-2.4.20 um.

Zuletzt noch mkinitrd /boot/initrd-2.4.20.img 2.4.20.
mkinitrd ist der Befehl .. damit erzeugst du eine datei die initrd-2.4.20.img heist.
(Solltest der Befehl mkinitrd nicht gehen tippe mal "su -" ein.)

Ich hoffe ich habe es jetzt ein wenig besser erklärt.

Bis dann

|sXe|

Dicky Arts
23.03.03, 21:09
> und benennst es gleich in vmlinuz-2.4.20 um

OK, es ist also genau wie unter DOS - ich war mir halt nur nicht ganz sicher, ob mir mal wieder irgendein Verzeichnis fehlen würde... Da ich die Datei ja bereits kopiert hatte, habe ich sie jetzt in vmlinuz-2.4.19 umbenannt.

Die Datei System.map-2.4.19 habe ich wie von Dir beschrieben auch nach /boot/ befördert.

> Solltest der Befehl mkinitrd nicht gehen

Ich habe zwar mal su - eingegeben, aber ich erhalte trotzdem folgende Meldung:
/sbin/mkinitrd: line1: /boot/initrd-2.4.19.img/etc/fstab: No such file or directory
no '/' mountpoint specified in /boot/initrd-2.4.9.19.img/etc/fstab

Muß ich noch irgendein Verzeichnis oder irgendeine Datei anlegen?

Vielen Dank für die Geduld, die Ihr mit mir habt!

Gruß

Thomas

|sXe|
25.03.03, 18:07
Hallo

Hast du denn nu "mkinitrd /boot/initrd-2.4.20.img 2.4.20" gemacht?
(Mit deinen Kerneldaten?)

Wann kommt die Message? Beim booten oder wenn du mkinitrd
eingegeben hast?

su - meldet dich als root an. (kommt ne passwort abfrage.) der -
bewirkt das die Systemvariablen bzw. der path neu eingelesen wird.

Wenn da smit mkinitrd geklappt hat dann muste auch ne datei in deinem
/boot Verzeichnis haben die "initrd-2.4.20.img" heist.

bye

|sXe|