Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: micha am 21. December 2011, 15:05

Titel: Textausgabe funktioniert nicht im Emulator! (ob es am echten PC funktioniert?)
Beitrag von: micha am 21. December 2011, 15:05
Ich habe mir OSDev für einsteiger durchgelesen.
Doch leider funktioniert die Textausgabe bei mir nicht.
Ich hab mein ISO-file mit VirtualBox gestartet und dann kommen nur irgendwelche komische Zeichen, die gerade im Videospeicher drinstehen. :evil:

Also wird warscheinlich die Adresse 0xb8000 nicht richtig angesteuert.
Ich bilde mir ein, dass ich mit den Pointern alles richig gemacht habe.

Was mach ich falsch??? :?

LG: Micha
Titel: Re: Textausgabe funktioniert nicht im Emulator! (ob es am echten PC funktioniert?)
Beitrag von: kevin am 21. December 2011, 16:11
Tut mir leid, so schusselig wie ich bin habe ich meine Kristallkugel mal wieder verlegt.

Du müsstest mir also für dieses eine Mal ausnahmsweise sagen, was du überhaupt machst, wie du das Image erstellst und vielleicht den Code posten.
Titel: Re: Textausgabe funktioniert nicht im Emulator! (ob es am echten PC funktioniert?)
Beitrag von: micha am 22. December 2011, 14:59
Also,
ich erstelle mein ISO-image mit:
mkisofs -R -b boot/grub/stage2 -no-emul-boot -boot-load-size 4 -boot-info-table -o cdrom.iso ./img/

ich habe schon probiert -no-emul-boot raus zu nehmen, funktionier trotzdem nicht.

den Code hab ich von OSDev-4 Hello World übernommen, bis auf die dekleration von video:
   char *video;
   video = 0x8b000;

und dann alles genauso wie im Beispiel.
Titel: Re: Textausgabe funktioniert nicht im Emulator! (ob es am echten PC funktioniert?)
Beitrag von: Svenska am 22. December 2011, 15:31
Also aus dem Gedächtnis vermute ich, dass 0x8B000 mitten im RAM liegt, der Textmodus-VRAM jedoch ab 0xB8000...

Übrigens sollte nach dem Start vom ISO ein GRUB erscheinen, aus dem du dann deinen Kernel startest. Im Internet finde ich dann noch die Information, dass du nicht "stage2" für die ISO verwenden solltest, sondern "stage2_eltorito". Hab ich aber nicht nachgeprüft.

Wenn dein Kernel nicht ausgeführt wird, ist dessen Code auch egal.
Titel: Re: Textausgabe funktioniert nicht im Emulator! (ob es am echten PC funktioniert?)
Beitrag von: micha am 22. December 2011, 16:02
Naja,
auf der seite von Grub in lowlevel stand ja, dass man dieses stage2_eltorito aus dem eigen System kopieren soll.
Nur gibts das bei mir nicht. Also habe ich stage2 genommen.
Titel: Re: Textausgabe funktioniert nicht im Emulator! (ob es am echten PC funktioniert?)
Beitrag von: Svenska am 22. December 2011, 16:15
auf der seite von Grub in lowlevel stand ja, dass man dieses stage2_eltorito aus dem eigen System kopieren soll.
Nur gibts das bei mir nicht. Also habe ich stage2 genommen.
Bist du dir sicher, dass es damit geht oder hast du einfach nur rumprobiert?

Die stage2_eltorito ist dafür ausgelegt, von einer bootfähigen CD-ROM gestartet zu werden, die normale stage2 nicht. Suche also nach dieser Datei; wenn sie auf deinem System nicht vorhanden ist, musst du eventuell ein Paket nachinstallieren oder die Datei aus den Sourcen erzeugen. Mit Grub2 hat das übrigens nichts zu tun. Wenn dein Hostsystem Grub2 benutzt und Grub1 nicht installiert ist, kannst du diese Datei nicht finden.

Einfach grub-legacy nachinstallieren ist eher kontraproduktiv, weil dir unter Umständen die Bootumgebung zerschossen wird. Also aufpassen!

Gruß,
Svenska
Titel: Re: Textausgabe funktioniert nicht im Emulator! (ob es am echten PC funktioniert?)
Beitrag von: micha am 22. December 2011, 20:07
Hallo,
ich hab noch einmal nach stage2_eltorito gesucht.
....und habe es gefunden. Es lag in /usr/lib/grub/i386-pc/stage2_eltorito  :-D

Jetzt funktioniert es!!!!!

Danke für den Hinweis.

Micha