Difference between revisions of "Qemu"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
(Notes were all Linux-specific, so moved them to "qemu on linux" article)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Techniques]]
+
[[Computing]]: [[Emulators]]: [[Qemu]]
[[Techniques]]: Software: Emulators: [[Qemu]]
 
[http://qemu.org/ QEMU] is an open source processor emulator. It
 
emulates a variety of different [http://qemu.org/status.html CPUs and
 
systems], and achieves good speed by using dynamic translation.
 
==Some Quick Notes==
 
*Creating the disk image: qemu-img create win98hd.img 2G qemu -hda
 
win98hd.img -cdrom win98.iso -boot d
 
For linux host systems, there is a loadable kernel module (called
 
kqemu) that will allow qemu to run at near native speeds. At the time
 
of this writing, there aren't distributed packages available with the
 
module built, so you'll need to download the source from the website
 
and compile it locally.
 
First download the
 
[http://fabrice.bellard.free.fr/qemu/qemu-0.7.0.tar.gz qemu source] and
 
[[untar]] it. Then download the
 
[http://fabrice.bellard.free.fr/qemu/kqemu-0.6.2-1.tar.gz kqemu source]
 
and [[untar]] it within the qemu source directory. Then run ./configure
 
&& make && sudo make install. You might also want to
 
install the vgabios package from your package manager.
 
If you're wanting to run Win98 under qemu, this option is moot because
 
kqemu and Win98 don't get along.
 
==Documentation==
 
NAME qemu - QEMU System Emulator SYNOPSIS usage: qemu [options]
 
[disk_image] DESCRIPTION The QEMU System emulator simulates a complete
 
PC. In order to meet specific user needs, two versions of QEMU are
 
available: 1.
 
"qemu-fast" uses the host Memory Management Unit (MMU) to simulate the
 
x86 MMU. It is fast but has limitations because the whole 4 GB address
 
space cannot be used and some memory mapped peripherials cannot be
 
emulated accurately yet. Therefore, a specific guest Linux kernel can
 
be used Moreover there is no separation between the host and target
 
address spaces, so it offers no security (the target OS can modify the
 
"qemu-fast" code by writing at the right addresses). 2.
 
"qemu" uses a software MMU. It is about two times slower but giv es a
 
more accurate emulation and a complete separation between the host and
 
target address spaces. QEMU emulates the following PC peripherials: -
 
i440FX host PCI bridge and PIIX3 PCI to ISA bridge - Cirrus CLGD 5446
 
PCI VGA card or dummy VGA card with Bochs VESA extensions (hardware
 
level, including all non standard modes). -
 
PS/2 mouse and keyboard - 2 PCI IDE interfaces with hard disk and
 
CD-ROM support - Floppy disk -
 
NE2000 PCI network adapters - Serial ports - Soundblaster 16 card QEMU
 
uses the PC BIOS from the Bochs project and the Plex86/Bochs LGPL VGA
 
BIOS. OPTIONS
 
disk_image is a raw hard disk image for IDE hard disk 0. General
 
options: -fda file
 
-fdb file Use file as floppy disk 0/1 image You can use the host floppy
 
by using /dev/fd0 as filename. -hda file
 
-hdb file
 
-hdc file
 
-hdd file Use file as hard disk 0, 1, 2 or 3 image -cdrom file Use file
 
as CD-ROM image (you cannot use -hdc and and -cdrom at the same time).
 
You can use the host CD-ROM by using /dev/cdrom as filename. -boot
 
[a|c|d] Boot on floppy (a), hard disk (c) or CD-ROM (d). Hard disk boot
 
is the default. -snapshot Write to temporary files instead of disk
 
image files. In this case, the raw disk image you use is not written
 
back. You can however force the write back by pressing C-a s -m megs
 
Set virtual RAM size to megs megabytes. Default is 128 MB. -nographic
 
Normally, QEMU uses SDL to display the VGA output. With this option,
 
you can totally disable graphical output so that QEMU is a simple
 
command line application. The emulated serial port is redirected on the
 
console. Therefore, you can still use QEMU to debug a Linux kernel with
 
a serial console. -enable-audio The SB16 emulation is disabled by
 
default as it may give problems with Windows. You can enable it
 
manually with this option. -localtime Set the real time clock to local
 
time (the default is to UTC time). This option is needed to have
 
correct date in MS-DOS or Windows. -full-screen Start in full screen.
 
Network options: -n script Set TUN/TAP network init script
 
[default=/etc/qemu-ifup]. This script is launched
 
to configure the host network interface (usually tun0) corresponding to
 
the virtual NE2000 card. -macaddr addr Set the mac address of the first
 
interface (the format is aa:bb:cc:dd:ee:ff in hexa). The mac address is
 
incremented for each new network interface. -tun-fd fd Assumes fd talks
 
to a tap/tun host network interface and use it. Read
 
<http://bellard.org/qemu/tetrinet.html> to have an example of its
 
use. -user-net Use the user mode network stack. This is the default if
 
no tun/tap network init script is found. -tftp prefix When using the
 
user mode network stack, activate a built-in TFTP server. All filenames
 
beginning with prefix can be downloaded from the host to the guest
 
using a TFTP client. The TFTP client on the guest must be configured in
 
binary mode (use the command "bin" of the Unix TFTP client). The host
 
IP address on the guest is as usual 10.0.2.2. -smb dir When using the
 
user mode network stack, activate a built-in SMB server so that Windows
 
OSes can access to the host files in dir transparently. In the guest
 
Windows OS, the line: 10.0.2.4 smbserver must be added in the file
 
C:\WINDOWS\LMHOSTS (for windows 9x/Me) or
 
C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS (Windows NT/2000). Then dir can
 
be accessed in \\smbserver\qemu. Note that a SAMBA server must be
 
installed on the host OS in /usr/sbin/smbd. QEMU was tested succesfully
 
with smbd version 2.2.7a from the Red Hat 9. -redir
 
[tcp|udp]:host-port:[guest-host]:guest-port When using the user mode
 
network stack, redirect incoming TCP or UDP connections to the host
 
port host-port to the guest guest-host on guest port guest-port. If
 
guest-host is not specified, its value is 10.0.2.15 (default address
 
given by the built-in DHCP server). For example, to redirect host X11
 
connection from screen 1 to guest screen 0, use the following: # on the
 
host qemu -redir tcp:6001::6000 [...] # this host xterm should open in
 
the guest X11 server xterm -display :1 To redirect telnet connections
 
from host port 5555 to telnet port on the guest, use the following: #
 
on the host qemu -redir tcp:5555::23 [...] telnet localhost 5555 Then
 
when you use on the host "telnet localhost 5555", you connect to the
 
guest telnet server. -dummy-net Use the dummy network stack: no packet
 
will be received by the network cards. Linux boot specific. When using
 
this options, you can use a given Linux kernel without installing it in
 
the disk image. It can be useful for easier testing of various kernels.
 
-kernel bzImage Use bzImage as kernel image. -append cmdline Use
 
cmdline as kernel command line -initrd file Use file as initial ram
 
disk. Debug/Expert options: -serial dev Redirect the virtual serial
 
port to host device dev. Available devices are: "vc" Virtual console
 
"pty" [Linux only] Pseudo TTY (a new PTY is automatically allocated)
 
"null" void device "stdio" [Unix only] standard input/output The
 
default device is "vc" in graphical mode and "stdio" in non graphical
 
mode. This option can be used several times to simulate up to 4 serials
 
ports. -monitor dev Redirect the monitor to host device dev (same
 
devices as the serial port). The default device is "vc" in graphical
 
mode and "stdio" in non graphical mode. -s Wait gdb connection to port
 
1234 -p port Change gdb connection port. -S Do not start CPU at startup
 
(you must type 'c' in the monitor). -d Output log in /tmp/qemu.log -isa
 
Simulate an ISA-only system (default is PCI system). -std-vga Simulate
 
a standard VGA card with Bochs VBE extensions (default is Cirrus Logic
 
GD5446 PCI VGA) -loadvm file Start right away with a saved state
 
("loadvm" in monitor) During the graphical emulation, you can use the
 
following keys: Ctrl-Alt-f Toggle full screen Ctrl-Alt-n Switch to
 
virtual console 'n'. Standard console mappings are: 1 Target system
 
display 2 Monitor 3 Serial port Ctrl-Alt Toggle mouse and keyboard
 
grab. In the virtual consoles, you can use Ctrl-Up, Ctrl-Down, Ctrl-PageUp and Ctrl-PageDown to move in the back log.
 
  
During emulation, if you are using the -nographic option, use Ctrl-a h to get terminal commands:
+
[[Qemu]] is an open source processor emulator. It emulates a variety of different [http://qemu.org/status.html CPUs and systems], and achieves good speed by using dynamic translation.
Ctrl-a h
+
==Reference==
Print this help
+
* [http://qemu.org/ official homepage]
Ctrl-a x
+
* {{wikipedia|QEMU}}
Exit emulatior
 
Ctrl-a s
 
Save disk data back to file (if -snapshot)
 
Ctrl-a b
 
Send break (magic sysrq in Linux)
 
Ctrl-a c
 
Switch between console and monitor
 
Ctrl-a Ctrl-a
 
Send Ctrl-a
 
  
 
+
==Articles==
The following options are specific to the PowerPC emulation:  
+
*[[Qemu on Linux]]: setting up and using Qemu under Linux
-prep
+
*[[Win98 in Qemu]]: installing and running [[Windows 98]] inside Qemu
Simulate a PREP system (default is PowerMAC)
 
-g WxH[xDEPTH]
 
Set the initial VGA graphic mode. The default is 800x600x15.
 
SEE ALSO
 
The HTML documentation of QEMU for more precise information and Linux user mode emulator invocation.
 
AUTHOR
 
Fabrice Bellard
 
{{editing}}
 

Latest revision as of 17:11, 18 February 2006

Computing: Emulators: Qemu

Qemu is an open source processor emulator. It emulates a variety of different CPUs and systems, and achieves good speed by using dynamic translation.

Reference

Articles