Lowlevel
Lowlevel => Softwareentwicklung => Thema gestartet von: 74h7k3fg am 03. August 2013, 21:33
-
hi, ich bin neu hier.
ich benutze (noch) windows 8, GCC und notepad.
ich hab mir mal die tutorials hier durchgelesen, leicht verändert abgeschrieben, crosstools (der hier empfohlene crosscompiler) runtergeladen,
das ganze mal mit i586-elf-gcc -c e:\init.c -o e:\init.o kompiliert (das gleiche für start.S),
gelinkt mit i586-elf-ld e:\init.o e:\start.o -o e:\kernel,
und bekomme jetzt eine (835 byte) datei: e:\kernel
frage: was kann/soll ich jetzt mit der datei machen?
wie starte ich qemu oder bochs damit?
wenn ich das dann booten will, muss ich das dann irgendwie auf cd oder floppy brennen? kann ich das auch mit USB stick machen?
-
Auf eine CD brennen musst du es nur, wenn du es auf einem realen PC starten willst.
-
In qemu kannst du den Kernel (sofern er Multiboot-kompatibel ist) so starten: qemu -kernel dateiname. Das ist für den Anfang die beste Methode, weil damit das Testen ziemlich schnell geht.
Wir haben eine Reihe von Anleitungen, wie du dein System auf verschiedene Medien bekommst und mit GRUB2 booten kannst: http://www.lowlevel.eu/wiki/Grand_Unified_Bootloader
-
Mal ne frage zu qemu -kernel dateiname:
Kann man qemu irgendwie dazu auffordern nur einmal zu booten und nicht nach einem Tripple-Fault wieder von vorne anzufangen??? Denn bei kleinen Kerneln kann es schon mal schnell vorkommen das man nur noch einen flackernden Bildschirm vor sich sieht, ohne daraus etwas ablesen zu können (ist mir heute passiert, da wurde doch glatt der Stack zu groß und schwupps hat qemu mir ne "Invalid Opcode" Exeption um die Ohren gehauen, und dass nicht nur einmal sondern locker 10 pro Sekunde :x ).
-
Ok habe gerade versucht, qemu mit qemu -kernel e:\kernel zu starten, da passiert nichts, gar nichts, es geht nicht mal ein fenster auf. Was soll das?
-
Kann man qemu irgendwie dazu auffordern nur einmal zu booten und nicht nach einem Tripple-Fault wieder von vorne anzufangen???
-no-reboot oder -no-shutdown oder beides zusammen. Weiß grad nicht mehr genau, aber es geht. ;)
-
Ok habe gerade versucht, qemu mit qemu -kernel e:\kernel zu starten, da passiert nichts, gar nichts, es geht nicht mal ein fenster auf. Was soll das?
qemu gibt standardmäßig unter Windows nichts auf der Konsole aus. Führe einmal in der Eingabeaufforderung, aus der du qemu startest, SET SDL_STDIO_REDIRECT=0 aus, dann sollte beim Starten von qemu eine Fehlermeldung erscheinen.
-
Danke für die antworten!
Kanns wegen problemen mit windoofs gerade nicht testen...
Nur noch eine frage: Wie bekommt man grub auf den stick/in den bootsektor, um den kernel auf einem echten computer auszuführen?
-
Kannst ja mal dieses Tutorial ausprobieren: http://www.lowlevel.eu/wiki/GRUB_Installation_auf_einem_USB-Stick
-
Hi,
lege am besten einfach einen ordner names grub an, darin dann boot und pack da dann die stages und dein menu.lst rein.
(menu.lst ist optional)
viele grüße,
Mineorbit
-
Das funktioniert ungefähr so gut wie folgendes Rezept: Kartoffeln schälen und in den Topf legen ;)
-
Fehlt ja nur noch Wasser, Salz und Energie :-D.
So einen Fehler hatte ich auch vor kurzem, vllt. war es sogar der selbe. Qemu weigerte sich einfach ein Fenster zu öffnen bzw. startete gar nicht wirklich. Das lustige an der Sache war das Grub auf meinem Rechner anstandslos den Kernel gebootet hat. In der stderr.txt stand was von einem Fehler beim laden der Datei vom ROM, vllt. hilft es ja weiter. Hab den Fehler nicht weg bekommen, habe ein anderes Projekt kopiert und geändert, das hat ohne Probleme funktioniert :?.
-
Fehlt ja nur noch Wasser, Salz und Energie :-D.
Wobei ich Energie noch mehr auf Thermische Energie spezialisieren würde ;) (wenn deine kartoffeln potentielle energie besitzen bringt dir das nicht wirklich was)
</sinnlospost>
-
Danke für das tutorial, ich hab das wohl irgendwie übersehen...