Autor Thema: Anfängerprobleme mit GRUB 2 + Kernel  (Gelesen 3151 mal)

pho

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« am: 02. March 2014, 02:53 »
Hallo zusammen,
Erst einmal sei erwähnt, dass ich ein blutiger Anfänger in der OS-Entwicklung bin. Ich bin durch Zufall auf das "OS-Dev für Einsteiger" gestoßen und da alles sehr verständlich erklärt ist, wollte ich das ganze doch mal ausprobieren.
Dazu bin ich erst einmal exakt nach http://www.lowlevel.eu/wiki/Teil_4_-_Hello_World vorgegangen.
(Meine Files: https://www.dropbox.com/sh/m3mb55i5muqsmce/n1eVggxP0E/helloworld_OS)

Mit qemu-system-i386 -kernel kernel hat dann auch alles wunderbar geklappt.

Dann wollte ich das ganze allerdings auch mit GRUB2 ausprobieren:
Heraus kam dabei diese Fehlermeldung:
 

Muss ich da vllt. was am Multiboot-Header ändern?

Ich wäre für Hilfe dankbar...

PS: Hier auch meine GRUB-Config: https://www.dropbox.com/sh/fdtwfubllsoeksu/yFHY0NboRM/lowlevel/helloWorld_OS

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 02. March 2014, 03:12 »
Seit wann ist dein Kernel denn ein Linux? :-)

Dein Kernel ist ein Multiboot-Kernel, den musst du auch als solchen in deiner GRUB-Konfiguration eintragen. (Beachte, dass GRUB2 auch Multiboot 2 unterstützt. Das ist auch falsch.)

pho

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 02. March 2014, 03:52 »
Danke, mit folgendem grub.cfg gehts jetzt:
menuentry "Hello World" {
multiboot /hwos
boot
}

Ich dachte linux wäre einfach ein Äquivalent des alten kernel Commands. - Naja falsch gedacht.

Ja mit Multiboot 2 hab ich auch was gelesen. Soweit ich das richtig verstanden habe soll man beides "parallel" implementieren.
Kannst du mir da ein Dokument/Tutorial empfehlen wie man dabei vorgehen soll?

Grüße.

BTW: Hab ich bei meinem init.c den richtigen Ansatz beim löschen des Bildschirms? (Zeile 6-12) -- https://www.dropbox.com/sh/m3mb55i5muqsmce/Z-nSXFEynr/helloworld_OS/init.c
« Letzte Änderung: 02. March 2014, 03:54 von pho »

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 02. March 2014, 05:50 »
Mir ist außer Grub2 kein Multiboot2-fähiger Bootloader bekannt, und der kann auch normales Multiboot. Ich sehe bisher nicht wirklich einen Grund für Multiboot2. Du kannst aber beide Header in deinen Kernel integrieren und beim Start nachschauen, welche Zahl der Bootloader ins Register geschrieben hat, um die beiden zu unterscheiden. Die Initialisierung brauchst du dann zweimal.

Kleine Codeschnipsel kannst du in deine Forenbeiträge direkt einfügen (Code-Tags).
Der Code zum Leeren des Bildschirms passt so.

pho

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 02. March 2014, 13:55 »
Ok nochmal vielen Dank.

Ich werd mir das mit Multiboot 2 nochmal bei Gelegenheit näher anschauen.

Grüße pho

 

Einloggen