|
|
Line 4: |
Line 4: |
| emulates a variety of different [http://qemu.org/status.html CPUs and | | emulates a variety of different [http://qemu.org/status.html CPUs and |
| systems], and achieves good speed by using dynamic translation. | | systems], and achieves good speed by using dynamic translation. |
| + | ==Articles== |
| + | *[[Qemu on Linux]]: setting up and using Qemu under Linux |
| ==Some Quick Notes== | | ==Some Quick Notes== |
| *Creating the disk image: qemu-img create win98hd.img 2G qemu -hda | | *Creating the disk image: qemu-img create win98hd.img 2G qemu -hda |
Line 21: |
Line 23: |
| If you're wanting to run [[Windows 98]] under qemu, this option is moot | | If you're wanting to run [[Windows 98]] under qemu, this option is moot |
| because kqemu and Win98 don't get along. | | 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: #"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). #"qemu" uses a
| |
− | software MMU. It is about two times slower but gives 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 these 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) ====PowerPC
| |
− | Options====
| |
− | The following options are specific to the PowerPC emulation:
| |
− | *'''-prep'''
| |
− | :Simulate a PREP system (default is PowerMAC) *'''-g'''
| |
− | ''W'''''x'''''H''['''x'''''DEPTH'']
| |
− | :Set the initial VGA graphic mode. The default is 800x600x15.
| |
− | ===Keys===
| |
− | 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: **'''Ctrl-a h'''
| |
− | **:Print this help **'''Ctrl-a x'''
| |
− | **: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 ===SEE ALSO===
| |
− | The HTML documentation of QEMU for more precise information and Linux
| |
− | user mode emulator invocation. ===AUTHOR===
| |
− | Fabrice Bellard
| |
− | ==Edit Log==
| |
− | *'''2005-06-25''': Added contents of manpage
| |