Autor Thema: Qemu  (Gelesen 8397 mal)

KtmnjjpfjsFvzG

  • Beiträge: 111
    • Profil anzeigen
Gespeichert
« am: 22. January 2013, 13:16 »
Hi, ich bräuchte Hilfe bei der Bedienung von Qemu.

Ich hab mir die Version 1.3.0 für Windows geladen und jetzt hab ich folgenden Ordner:



Welches davon brauche ich? Und wie nutze ich das dann?  :?

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 22. January 2013, 15:12 »
/usr/bin/qemu-system-x86_64 -cdrom ~/git/el_toro_repo/bootable.iso -d int -no-kvm -d int
so starte ich das zumindest auf Linux in meinem build und run skript, ohne das img/iso als param weiß qemu ja gar nicht was es starten soll und im standard Qemu gibt es kein grafisches Auswahlmenu zum starten wie bei VirtualBox(ich habe auf Ubuntu ne zeitlang AQemu genutzt das)

PS: Wir Hardcore Kernel Hacker verwenden Windoof eh nur zum zocken ;-)
« Letzte Änderung: 22. January 2013, 15:14 von Martin Erhardt »

KtmnjjpfjsFvzG

  • Beiträge: 111
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 22. January 2013, 15:26 »
OK, dann brauch ich also eine .iso, aber was muss da alles drauf?

Ich hab nur die (fertig compilerte) kernel-Datei und den Quellcode...

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 22. January 2013, 15:59 »
Ja, gibt's auch Tools : http://wiki.osdev.org/Bootable_El-Torito_CD_with_GRUB_Legacy, http://wiki.osdev.org/Disk_Images, http://wiki.osdev.org/Windows_Tools

Ich habe leider bloß die englischen Artikel gefunden auf die schnelle.

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 22. January 2013, 16:04 »
Fürs erste könnte auch ein:
qemu-system-FOO.exe -kernel DEINKERNEL
reichen.
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

KtmnjjpfjsFvzG

  • Beiträge: 111
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 22. January 2013, 16:14 »
@Martin Erhardt: Ich weiß ehrlich gesagt nicht so ganz was ich da machen soll, wenn ich einfach nur die Kernel-Datei auf ein image tu, klappt das doch sicher nicht, oder?
@MNemo: Wenn ich das mache, passiert das:
Z:\Users\C\Desktop\OS\Qemu-windows-1.3.0>qemu-system-x86_64w -kernel ../OS/kernel

Z:\Users\C\Desktop\OS\Qemu-windows-1.3.0>
Also einfach garnichts... :(

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 22. January 2013, 16:15 »
@Martin Erhardt: Ich weiß ehrlich gesagt nicht so ganz was ich da machen soll, wenn ich einfach nur die Kernel-Datei auf ein image tu, klappt das doch sicher nicht, oder?
doch also es gibt ja den Multiboot standard nach dem der Multiboot Header in den ersten 8KB sein muss, gefolgt vom kernel.
.section .text
 
// Init ist eine Funktion aus init.c
.extern init
 
#define MB_MAGIC 0x1badb002
#define MB_FLAGS 0x0
#define MB_CHECKSUM -(MB_MAGIC + MB_FLAGS)
 
// Der Multiboot-Header
.align 4
.int    MB_MAGIC
.int    MB_FLAGS
.int    MB_CHECKSUM
 
// _start muss global sein, damit der Linker es findet und als Einsprungspunkt
// benutzen kann (alle Labels, die nicht global sind, sind nur in dieser Datei
// sichtbar)
.global _start
_start:
    // Stack initialisieren
    mov $kernel_stack, %esp
 
    // C-Code aufrufen
    call init
 
    // Falls wir jemals aus init zurueckkommen sollten, sperren wir die Interrupts und
    // halten einfach den Prozessor an. (man braucht ihn ja nicht unnötig heißlaufen lassen.)
_stop:
    cli
    hlt
 
    // Sollte es doch weitergehen, probieren wir erneut die CPU schlafen zu lassen
    jmp _stop
 
// 8 kB Stack fuer den Kernel. Das Label steht hinter dem freien Speicher,
// weil der Stack nach unten waechst
.section .bss
.space 8192
kernel_stack:
Wenn Start.S so ungefähr aussieht dann geht dass
« Letzte Änderung: 22. January 2013, 16:19 von Martin Erhardt »

KtmnjjpfjsFvzG

  • Beiträge: 111
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 22. January 2013, 16:35 »
Hmm nagut ich habs mal gemacht, jetzt hab ich eine kernel.iso, aber wenn ich das mache:
qemu-system-x86_64w -cdrom ../kernel.iso -d int -no-kvm -d intpassiert garnichts, und wenn ich sowas eingebe: qemu-system-x86_64w blabla test lalalalalapassiert ebenfalls überhaupt nichts, also auch keine Fehlermeldung, garnichts. Auch einfach so die qemu-system-x86_64w.exe zu starten bewirkt ->nichts<-... :(

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 22. January 2013, 16:42 »
@Martin Erhardt: Ich weiß ehrlich gesagt nicht so ganz was ich da machen soll, wenn ich einfach nur die Kernel-Datei auf ein image tu, klappt das doch sicher nicht, oder?
doch also es gibt ja den Multiboot standard nach dem der Multiboot Header in den ersten 8KB sein muss, gefolgt vom kernel.
[…]
Wenn Start.S so ungefähr aussieht dann geht dass
Nein. Gans so einfach ist das nicht. Das muss schon ein bootbares Image mit einem bootloader sein, der den kernel dann auch lädt. Was aber mit El-Torito und Grub (zumindest auf Linux) relativ einfach geht.

qemu-system-x86_64w blabla test lalalalalapassiert ebenfalls überhaupt nichts, also auch keine Fehlermeldung, garnichts. Auch einfach so die qemu-system-x86_64w.exe zu starten bewirkt ->nichts<-... :(
das sollte nicht passieren. Ich habe aber leider keine Ahnung was da schief geht.
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 22. January 2013, 16:56 »
Kriegst du zufällig eine stdout.txt und/oder stderr.txt erzeugt? SDL unter Windows hat diese komische Angewohnheit, die Ausgabe dorthin umzuleiten statt seine Ausgaben auf die Konsole zu schreiben. Da könnte also eine Fehlermeldung drinstehen.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

KtmnjjpfjsFvzG

  • Beiträge: 111
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 22. January 2013, 17:01 »
Ja:qemu: PC system firmware (pflash) must be a multiple of 0x1000 Hm.... :?

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 22. January 2013, 17:11 »
Das heißt vermutlich, dass er das BIOS nicht findet. Schau dir mal die linux-0.2.bat an, wenn die dabei war, sollten da die richtigen Optionen drin stehen. Ansonsten wäre meine Vermutung, dass ein -L Bios helfen könnte.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

KtmnjjpfjsFvzG

  • Beiträge: 111
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 22. January 2013, 17:17 »
Geil :D, Danke, geht! :) Einen Schritt weiter!

Er öffnet QEMU, es aber dann steht da CDBOOT: Couldn't find NTLDR, was wohl irgendetwas damit zu tun hat, dass meine .iso nicht korrekt ist.

Ich habe also GRUB 2.0 runtergeladen, da drin ist aber nciths mit El-Torito...

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 22. January 2013, 17:20 »
[quote von Wiki]
Unter Windows gibt es noch keine Möglichkeit, ein CD-Image von GRUB2 zu erstellen.[/quote]
Also versuchs mal mit GRUB 1

KtmnjjpfjsFvzG

  • Beiträge: 111
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 22. January 2013, 17:33 »
Alles klar, jetzt hab ich GRUB 1.99, aber immer noch kein el torito in sicht  :?

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #15 am: 22. January 2013, 17:34 »
Warum nimmst du nicht jetzt wieder -kernel? Oder ein Floppyimage, das ist in der Regel einfach als CDs (wobei ich mir da unter Windows auch nicht ganz sicher bin)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

KtmnjjpfjsFvzG

  • Beiträge: 111
    • Profil anzeigen
Gespeichert
« Antwort #16 am: 22. January 2013, 17:37 »
Stimmt!
Ich hab -kernel genommen, und siehe da: Wie es sein soll, oben links steht Hello World!
Danke euch!!!!

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« Antwort #17 am: 22. January 2013, 17:43 »
Ja schön aber früher oder später brauchst du trotzdem die .iso wenn du dein OS auf echter HW laufen lassen willst.
hast du mkisofs und stage2_eltorito, sodass du die .iso so erstellen kannst?
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o cdrom.iso cdrom_files/

KtmnjjpfjsFvzG

  • Beiträge: 111
    • Profil anzeigen
Gespeichert
« Antwort #18 am: 22. January 2013, 18:19 »
Weder noch :(

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« Antwort #19 am: 22. January 2013, 18:33 »
Ja wie erstellst du dann deine .iso

 

Einloggen