Emulator frei Haus: QEMU

asg

push it, don´t hype
Wem vmware zu teuer ist, bochs zu langsam, der sollte es evtl. einmal QEMU ansehen.
Wer nun eine grafische Konfiguration ala vmware erwartet wird enttäuscht werden. Auch ist QEMU etwas langsamer als vmware, was aber dank des nicht vorhandenen Preises kein Problem darstellen sollte.
So lässt sich beispielsweise unter FreeBSD schnell mal in DragonFlyBSD oder auch NetBSD und OpenBSD reinschnuppern. Windows2000 lässt sich installieren, bei anderen Systemen sollte es auch keine Probleme geben (sind aber nicht von mir getestet).

Installation
#portinstall qemu
oder
#cd /usr/ports/emulators/qemu
#make install clean

Vorgehensweise

(1) Download des gewünschten Images (ISO) (bei mir NetBSD 2.0-RC4). Sollte das Image gepackt sein so dieses entpacken.

(2) Anlegen einer "raw disk" auf dem Hostsystem:
Code:
dd of=/home/netbsd2.img bs=1024 seek=2048000 count=0
Den Pfad bitte entsprechend anpassen. "seek=2048000" gibt an das die zu verwendende "raw disk" 2GB gross sein soll. Hierhin wird später NetBSD installiert (NetBSD erkennt dann durch qemu eine Festplatte mit der Grösse von 2GB).

(3) Installation von NetBSD
Code:
qemu -hda /home/netbsd.img -cdrom /home/netbsd.iso -boot d

Hierbei wird das Image (/home/netbsd.img) als Festplatte (-hda) angegeben und NetBSD (/home/netbsd.iso) von der "CD" (-cdrom) installiert.

Die nachfolgende Installation erfolgt genauso wie auf einem normalen Rechner und kann auf den Seiten der jeweiligen Projekte nachgelesen werden.

(4) Netzwerkfähigkeit herstellen
Hierzu muss ein kleines "Script" (netbsd-inet-script) auf dem Hostsystem angelegt werden:
Code:
#!/bin/sh
/sbin/ifconfig \xl0 inet 10.4.1.98 netmask 255.255.255.255 alias
"xl0" muss entsprechend der NIC im eigenen System angepasst werden. Auch muss kein "alias" vergeben werden wenn man eine NIC im System nutzt an die noch keine IP vergeben wurde.

(5) NetBSD mit Netzwerk starten
qemu -pci -n netbsd-inet-script -hda /home/netbsd.img

Nun wird das Script aufgerufen (auf dem Hostsystem kann man nun mit "ifconfig -a" die angelegte IP sehen die im Script angegeben ist) und das image (/home/netbsd.img) gestartet.
Das System sollte nun im qemu hochfahren.
Danach muss man nur noch die NIC in der NetBSD-qemu Emulation konfigurieren.

Links
http://fabrice.bellard.free.fr/qemu/
 
Hat das jemand im Einsatz?

Mich interessiert vor allem wieviel langsamer Win2k im Emulator läuft im Vergleich zu ohne.

Am Wochenende will ich meine Rechner eh umbauen, da kann ich das dann gleich in die Planung mit einbeziehen.
Ein Parallelbetrieb Win2k und BSD wäre so möglich, ach wie schön...
 
Jakamara schrieb:
Hat das jemand im Einsatz?

Mich interessiert vor allem wieviel langsamer Win2k im Emulator läuft im Vergleich zu ohne.

Am Wochenende will ich meine Rechner eh umbauen, da kann ich das dann gleich in die Planung mit einbeziehen.
Ein Parallelbetrieb Win2k und BSD wäre so möglich, ach wie schön...

Hm, ich weiss nicht, wie sich das bei den neuen Versionen geaender hat, aber mit der alten lief Win2k sehr buggy und sehr langsam, leider. Allein fuer die Installation hab ich ca 3,5 Stunden gebraucht.

mfg
 
windows würde ich da nicht drauf laufen lassen, win 98 brauchte 6 installationsversuche weil es immer irgendwann abschmierte, win 2k lief sofort, wenn auch seeehr langsam
 
also ic hhab erfolgreich winme und winxp installiert

beides läuft gut, performance ist so lala...

win9x besser wie xp und xp nur mit 256mb virtuellen speicher ;)
 
ouTi schrieb:
also ic hhab erfolgreich winme und winxp installiert

beides läuft gut, performance ist so lala...

win9x besser wie xp und xp nur mit 256mb virtuellen speicher ;)

Wie ist so der Vergleich direkt betrieben und über den Emulator?
1/2 , 1/3 , ...?

Auf was für einer Maschine läuft das?
 
also details zu meiner maschine:

FreeBSD 5.3-STABLE auf nem Dual-AthlonMP 2400+, 512mb ram

also 1/3 der speed kann man gut sagen, wenn teilweise noch weniger.
aber was erwartet man wenn die kompletten cpu-instructions emuliert werden?

solche emulatoren sind natürlich nicht mit vmware vegleichbar, da hier die cpu-instructions direkt an die host cpu durchgeleitet werden.

aber ich bin echt zufrieden damit endlich mal nen emulator zum laufen zu bringen. und dann nich open-source. respekt!

vmware3 läuft bei nicht...
- auf der workstation wegen smp
- auf dem laptop, das pentium-m zu neu für vmware3

von daher ist die auswahl ziemlich gering.

diesen emulator kann man wenn schon sowieso nur mit bochs verlgeichen. wobei qemu deutlich schneller sein drüfte (allerdings nicht getestet!)
 
@ouTi:
Wie hast du denn WinME ans laufen bekommen?
Wenn ich versuche Win95 von originaler CD zu installieren sagt er mir
Code:
CDROM boot failure code : 0004
Boot from CD-Rom failed
FATAL: Could not read the boot disk

Von originaler Win2k CD booten funktioniert, aber das kann ich leider nicht installieren, da es nur ein Update ist, und der beim Installieren die Win95 CD "sehen" will. Erst habe ich das CD-Rom nicht aufbekommen, dann habe ich "Eject" gefunden, womit ich die CD auch rausbekomme, aber dann liest der trotzdem nicht die neueingelegte Win95 CD.

Hat jemand ne Idee dazu?
 
ouTi schrieb:
also details zu meiner maschine:

FreeBSD 5.3-STABLE auf nem Dual-AthlonMP 2400+, 512mb ram

also 1/3 der speed kann man gut sagen, wenn teilweise noch weniger.
aber was erwartet man wenn die kompletten cpu-instructions emuliert werden?

Dann fällt die Option für mich leider flach, da ich nur einen single Athlon 2000 habe.
Spielen wollte ich damit nicht, aber in einigen CAD/CAE Anwendungen einarbeiten, die es nur für Windows gibt.

Es sei denn es gibt einen edlen Spender...

So muss ich dann eine Partition BSD, eine Win2k und eine mit ext2fs anlegen, damit ich das Datengrab nur einmal vorhalten muss. Ärgerlich, aber was solls...
 
Ich hab eben auch mal mit dem qemu rumgebastelt. Derzeit hab ich ein altes 98 als Gast zu laufen. Der Hack mit dem tun device ist dabei bei mir nicht notwendig, zumal man dadurch quemu als root starten muss :(

Ich verwende statt dessen die option -user-net [1]. Das hat den Vorteil das man als User den qemu starten kann und hat lediglich (zumindest bis jetzt aufgefallen) den Nachteil das Pings nach draussen nicht funktionieren. Sonstige Netzwerkverbinddungen sollten laufen.

Quellen:
[1] http://fabrice.bellard.free.fr/qemu/qemu-doc.html#SEC21
 
Hallo,

mit strg+alt+2 kommst Du zum monitor, dort gibt Du "sendkey ctrl-alt-f2" ein und wechselst mit strg+alt+1 zurück zum Guest.

So long
PhysChemist
 
asg schrieb:
(4) Netzwerkfähigkeit herstellen
Hierzu muss ein kleines "Script" (netbsd-inet-script) auf dem Hostsystem angelegt werden:
Code:
#!/bin/sh
/sbin/ifconfig \xl0 inet 10.4.1.98 netmask 255.255.255.255 alias
"xl0" muss entsprechend der NIC im eigenen System angepasst werden. Auch muss kein "alias" vergeben werden wenn man eine NIC im System nutzt an die noch keine IP vergeben wurde.

(5) NetBSD mit Netzwerk starten
Nun wird das Script aufgerufen (auf dem Hostsystem kann man nun mit "ifconfig -a" die angelegte IP sehen die im Script angegeben ist) und das image (/home/netbsd.img) gestartet.
Das System sollte nun im qemu hochfahren.
Danach muss man nur noch die NIC in der NetBSD-qemu Emulation konfigurieren.

Vielen Dank für das HowTo!

Ich blicke leider bei der Netzwerkeinrichtung nicht ganz durch.

Folgende Situation:
Ein 192.168er Netz, das Default-Gateway ist 192.168.0.1, Subnetzmaske 255.255.255.128.
Das Hostsystem ist im Netz unter 192.168.0.2 erreichbar, das Gastsystem soll die 192.168.0.3 bekommen.

Das Hostsystem ist folgendermaßen konfiguriert:
IP 192.168.0.2
Subnetz 255.255.255.128
Gateway 192.168.0.1

Das Gastsystem:
IP 192.168.0.3
Subnetz 255.255.255.128
Gateway 192.168.0.1

Jetzt kommt das net-script ins Spiel welches von qemu aufgerufen wird:
#!/bin/sh
/sbin/ifconfig \xl0 inet 10.4.1.98 netmask 255.255.255.255 alias

Der Alias wird korrekt auf dem Hostsystem angelegt (mit ifconfig überprüft).
Nur welche IP trage ich hier für den Alias ein?

Versucht habe ich es mit der IP des Gastsystems (192.168.0.3) und mit der aus dem HowTo (10.4.1.98), in beiden Fällen bekomme ich vom Gastsystem heraus keine Verbindung ins Netz.

Was mich auch verwirrt:
Die Anleitung von qemu beschreibt die Verwendung eines tun/tap-Interface (wird bei Verwendung des Standard qemu-ifup-Skript angelegt) welches hier gar nicht benutzt wird.
Diese Lösung, über einen alias, wird dort gar nicht erwähnt.

Gruß,
Jochen
 
Juhu, ich habs!

Um wie in meinem Fall eine direkte Verbindung des Gastsystems ins gleiche Netz wie das Hostsystems zu bekommen geht man folgendermaßen vor:

Man lässt diese Sache mit dem Alias und verwendet das tun/tap Interface welches von qemu beim Start eingerichtet wird. Damit dieses Interface im gleichen Netz wie das Interface des Hostsystems hängt, richtet man Bridging ein, sprich Kernel mit "options BRIDGE" kompilieren und danach in /etc/sysctl.conf "net.link.ether.bridge.enable=1" und "net.link.ether.bridge.config=xl0,tap0" eintragen - schon sind die Netze des Host und des Gast zu einem verbunden. Details siehe FreeBSD-Handbuch, Kapitel Networking, Thema Bridging

Gruß,
Jochen
 
Habe mir QEMU auch mal angeguckt und bin begeistert. Als Host verwende ich XP. Hat jemand 'ne Ahnung, wie ich ein gemeinsames Netz zwischen Host und Client (OpenBSD) hinbekomme? Ich hatte mal einen Hinweis gefunden, daß es mit dem tap-Interface von OpenVPN klappen soll - habe das aber leider nicht zum Laufen bekommen... Es gibt ein fertiges Binary für Windows mit tap-Unterstützung, das HowTo ist aber leider auf einer japanischen Site...
 
@uwerler

du schreibst, du betreibst XP unter qemu?! Wie schnell ist das denn? Kann man damit gescheit arbeiten, ich wollte nämlich gerne itunes darunter nutzen.

mfg

carb
 
@carbuncle:

Nein, er schreibt er benutzt qemu unter XP. Da drin läuft dann OpenBSD.

Gruß,
K
 
... habe gestern spasshalber meine uralten WingCommander3-CDs rausgekramt und unter einem emulierten Win98 laufen lassen - dat geht ja, wenn auch bei den Videos etwas ruckelig. Immerhin meldet mir der eingebaute Benchmark eine CPU "Pentium-Class"...
Klar, wirklich spielbar isses nicht, aber allein die Tatsache, dass auch alte DOS-Spiele mit 32-Bit-Extender unter einem emulierten Win98 laufen, finde ich klasse.
Wermutstropfen: BeOS habe ich bislang noch nicht unter qemu zum Laufen gebracht...
 
BeOS habe ich probiert. Es starte, läuft dann auch recht rund. Leider hackelt die Maus unerträglich. Für Wingcommander probiere mal ein wirkliches DOS als Grundlage oder höchstens ein Win95a. Das läuft dann deutlich runder.

Aber hat es vielleicht jemand geschaft Bleifuss (Screamer) von 1995 im Qemu zum Laufen zu bringen? Bei mir startet es nicht, der ganze Emlator hängt sich auf, ich muss ihn killen.
 
Zurück
Oben