Revision 5fafdf24 qemu-doc.texi
b/qemu-doc.texi | ||
---|---|---|
50 | 50 |
|
51 | 51 |
@itemize @minus |
52 | 52 |
|
53 |
@item
|
|
53 |
@item |
|
54 | 54 |
Full system emulation. In this mode, QEMU emulates a full system (for |
55 | 55 |
example a PC), including one or several processors and various |
56 | 56 |
peripherals. It can be used to launch different Operating Systems |
57 | 57 |
without rebooting the PC or to debug system code. |
58 | 58 |
|
59 |
@item
|
|
59 |
@item |
|
60 | 60 |
User mode emulation. In this mode, QEMU can launch |
61 | 61 |
processes compiled for one CPU on another CPU. It can be used to |
62 | 62 |
launch the Wine Windows API emulator (@url{http://www.winehq.org}) or |
... | ... | |
65 | 65 |
@end itemize |
66 | 66 |
|
67 | 67 |
QEMU can run without an host kernel driver and yet gives acceptable |
68 |
performance.
|
|
68 |
performance. |
|
69 | 69 |
|
70 | 70 |
For system emulation, the following hardware targets are supported: |
71 | 71 |
@itemize |
... | ... | |
143 | 143 |
following peripherals: |
144 | 144 |
|
145 | 145 |
@itemize @minus |
146 |
@item
|
|
146 |
@item |
|
147 | 147 |
i440FX host PCI bridge and PIIX3 PCI to ISA bridge |
148 | 148 |
@item |
149 | 149 |
Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA |
150 | 150 |
extensions (hardware level, including all non standard modes). |
151 | 151 |
@item |
152 | 152 |
PS/2 mouse and keyboard |
153 |
@item
|
|
153 |
@item |
|
154 | 154 |
2 PCI IDE interfaces with hard disk and CD-ROM support |
155 | 155 |
@item |
156 | 156 |
Floppy disk |
157 |
@item
|
|
157 |
@item |
|
158 | 158 |
PCI/ISA PCI network adapters |
159 | 159 |
@item |
160 | 160 |
Serial ports |
... | ... | |
476 | 476 |
@item -net socket[,vlan=n][,fd=h][,mcast=maddr:port] |
477 | 477 |
|
478 | 478 |
Create a VLAN @var{n} shared with another QEMU virtual |
479 |
machines using a UDP multicast socket, effectively making a bus for
|
|
479 |
machines using a UDP multicast socket, effectively making a bus for |
|
480 | 480 |
every QEMU with same multicast address @var{maddr} and @var{port}. |
481 | 481 |
NOTES: |
482 | 482 |
@enumerate |
483 |
@item
|
|
484 |
Several QEMU can be running on different hosts and share same bus (assuming
|
|
483 |
@item |
|
484 |
Several QEMU can be running on different hosts and share same bus (assuming |
|
485 | 485 |
correct multicast setup for these hosts). |
486 | 486 |
@item |
487 | 487 |
mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see |
... | ... | |
591 | 591 |
|
592 | 592 |
@table @option |
593 | 593 |
|
594 |
@item -kernel bzImage
|
|
594 |
@item -kernel bzImage |
|
595 | 595 |
Use @var{bzImage} as kernel image. |
596 | 596 |
|
597 |
@item -append cmdline
|
|
597 |
@item -append cmdline |
|
598 | 598 |
Use @var{cmdline} as kernel command line |
599 | 599 |
|
600 | 600 |
@item -initrd file |
... | ... | |
751 | 751 |
@end table |
752 | 752 |
|
753 | 753 |
@item -s |
754 |
Wait gdb connection to port 1234 (@pxref{gdb_usage}).
|
|
754 |
Wait gdb connection to port 1234 (@pxref{gdb_usage}). |
|
755 | 755 |
@item -p port |
756 | 756 |
Change gdb connection port. @var{port} can be either a decimal number |
757 | 757 |
to specify a TCP port, or a host device (same devices as the serial port). |
758 | 758 |
@item -S |
759 | 759 |
Do not start CPU at startup (you must type 'c' in the monitor). |
760 |
@item -d
|
|
760 |
@item -d |
|
761 | 761 |
Output log in /tmp/qemu.log |
762 | 762 |
@item -hdachs c,h,s,[,t] |
763 | 763 |
Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <= |
... | ... | |
832 | 832 |
@table @key |
833 | 833 |
@item Ctrl-a h |
834 | 834 |
Print this help |
835 |
@item Ctrl-a x
|
|
835 |
@item Ctrl-a x |
|
836 | 836 |
Exit emulator |
837 |
@item Ctrl-a s
|
|
837 |
@item Ctrl-a s |
|
838 | 838 |
Save disk data back to file (if -snapshot) |
839 | 839 |
@item Ctrl-a t |
840 | 840 |
toggle console timestamps |
... | ... | |
872 | 872 |
Remove or insert removable media images |
873 | 873 |
(such as CD-ROM or floppies) |
874 | 874 |
|
875 |
@item
|
|
875 |
@item |
|
876 | 876 |
Freeze/unfreeze the Virtual Machine (VM) and save or restore its state |
877 | 877 |
from a disk file. |
878 | 878 |
|
... | ... | |
889 | 889 |
@item help or ? [cmd] |
890 | 890 |
Show the help for all commands or just for command @var{cmd}. |
891 | 891 |
|
892 |
@item commit
|
|
892 |
@item commit |
|
893 | 893 |
Commit changes to the disk images (if -snapshot is used) |
894 | 894 |
|
895 |
@item info subcommand
|
|
895 |
@item info subcommand |
|
896 | 896 |
show various information about the system state |
897 | 897 |
|
898 | 898 |
@table @option |
... | ... | |
1026 | 1026 |
data. Its syntax is: @option{/@{count@}@{format@}@{size@}} |
1027 | 1027 |
|
1028 | 1028 |
@table @var |
1029 |
@item count
|
|
1029 |
@item count |
|
1030 | 1030 |
is the number of items to be dumped. |
1031 | 1031 |
|
1032 | 1032 |
@item format |
... | ... | |
1040 | 1040 |
|
1041 | 1041 |
@end table |
1042 | 1042 |
|
1043 |
Examples:
|
|
1043 |
Examples: |
|
1044 | 1044 |
@itemize |
1045 | 1045 |
@item |
1046 | 1046 |
Dump 10 instructions at the current instruction pointer: |
1047 |
@example
|
|
1047 |
@example |
|
1048 | 1048 |
(qemu) x/10i $eip |
1049 | 1049 |
0x90107063: ret |
1050 | 1050 |
0x90107064: sti |
... | ... | |
1060 | 1060 |
|
1061 | 1061 |
@item |
1062 | 1062 |
Dump 80 16 bit values at the start of the video memory. |
1063 |
@smallexample
|
|
1063 |
@smallexample |
|
1064 | 1064 |
(qemu) xp/80hx 0xb8000 |
1065 | 1065 |
0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42 |
1066 | 1066 |
0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41 |
... | ... | |
1197 | 1197 |
|
1198 | 1198 |
VM snapshots currently have the following known limitations: |
1199 | 1199 |
@itemize |
1200 |
@item
|
|
1200 |
@item |
|
1201 | 1201 |
They cannot cope with removable devices if they are removed or |
1202 | 1202 |
inserted after a snapshot is done. |
1203 |
@item
|
|
1203 |
@item |
|
1204 | 1204 |
A few device drivers still have incomplete snapshot support so their |
1205 | 1205 |
state is not saved or restored properly (in particular USB). |
1206 | 1206 |
@end itemize |
... | ... | |
1266 | 1266 |
|
1267 | 1267 |
@subsubsection Mac OS X |
1268 | 1268 |
|
1269 |
@file{/dev/cdrom} is an alias to the first CDROM.
|
|
1269 |
@file{/dev/cdrom} is an alias to the first CDROM. |
|
1270 | 1270 |
|
1271 | 1271 |
Currently there is no specific code to handle removable media, so it |
1272 | 1272 |
is better to use the @code{change} or @code{eject} monitor commands to |
... | ... | |
1278 | 1278 |
QEMU can automatically create a virtual FAT disk image from a |
1279 | 1279 |
directory tree. In order to use it, just type: |
1280 | 1280 |
|
1281 |
@example
|
|
1281 |
@example |
|
1282 | 1282 |
qemu linux.img -hdb fat:/my_directory |
1283 | 1283 |
@end example |
1284 | 1284 |
|
... | ... | |
1288 | 1288 |
|
1289 | 1289 |
Floppies can be emulated with the @code{:floppy:} option: |
1290 | 1290 |
|
1291 |
@example
|
|
1291 |
@example |
|
1292 | 1292 |
qemu linux.img -fda fat:floppy:/my_directory |
1293 | 1293 |
@end example |
1294 | 1294 |
|
1295 | 1295 |
A read/write support is available for testing (beta stage) with the |
1296 | 1296 |
@code{:rw:} option: |
1297 | 1297 |
|
1298 |
@example
|
|
1298 |
@example |
|
1299 | 1299 |
qemu linux.img -fda fat:floppy:rw:/my_directory |
1300 | 1300 |
@end example |
1301 | 1301 |
|
... | ... | |
1363 | 1363 |
| (10.0.2.2) |
1364 | 1364 |
| |
1365 | 1365 |
----> DNS server (10.0.2.3) |
1366 |
|
|
|
1366 |
| |
|
1367 | 1367 |
----> SMB server (10.0.2.4) |
1368 | 1368 |
@end example |
1369 | 1369 |
|
... | ... | |
1473 | 1473 |
Cameras) are not supported yet. |
1474 | 1474 |
|
1475 | 1475 |
@enumerate |
1476 |
@item If you use an early Linux 2.4 kernel, verify that no Linux driver
|
|
1476 |
@item If you use an early Linux 2.4 kernel, verify that no Linux driver |
|
1477 | 1477 |
is actually using the USB device. A simple way to do that is simply to |
1478 | 1478 |
disable the corresponding kernel module by renaming it from @file{mydriver.o} |
1479 | 1479 |
to @file{mydriver.o.disabled}. |
... | ... | |
1490 | 1490 |
@end example |
1491 | 1491 |
|
1492 | 1492 |
@item Launch QEMU and do in the monitor: |
1493 |
@example
|
|
1493 |
@example |
|
1494 | 1494 |
info usbhost |
1495 | 1495 |
Device 1.2, speed 480 Mb/s |
1496 | 1496 |
Class 00: USB device 1234:5678, USB DISK |
... | ... | |
1499 | 1499 |
hubs, it won't work). |
1500 | 1500 |
|
1501 | 1501 |
@item Add the device in QEMU by using: |
1502 |
@example
|
|
1502 |
@example |
|
1503 | 1503 |
usb_add host:1234:5678 |
1504 | 1504 |
@end example |
1505 | 1505 |
|
... | ... | |
1826 | 1826 |
Add/Troubleshoot a device => Add a new device & Next => No, select the |
1827 | 1827 |
hardware from a list & Next => NT Apm/Legacy Support & Next => Next |
1828 | 1828 |
(again) a few times. Now the driver is installed and Windows 2000 now |
1829 |
correctly instructs QEMU to shutdown at the appropriate moment.
|
|
1829 |
correctly instructs QEMU to shutdown at the appropriate moment. |
|
1830 | 1830 |
|
1831 | 1831 |
@subsubsection Share a directory between Unix and Windows |
1832 | 1832 |
|
... | ... | |
1881 | 1881 |
QEMU emulates the following PowerMac peripherals: |
1882 | 1882 |
|
1883 | 1883 |
@itemize @minus |
1884 |
@item
|
|
1885 |
UniNorth PCI Bridge
|
|
1884 |
@item |
|
1885 |
UniNorth PCI Bridge |
|
1886 | 1886 |
@item |
1887 | 1887 |
PCI VGA compatible card with VESA Bochs Extensions |
1888 |
@item
|
|
1888 |
@item |
|
1889 | 1889 |
2 PMAC IDE interfaces with hard disk and CD-ROM support |
1890 |
@item
|
|
1890 |
@item |
|
1891 | 1891 |
NE2000 PCI adapters |
1892 | 1892 |
@item |
1893 | 1893 |
Non Volatile RAM |
... | ... | |
1898 | 1898 |
QEMU emulates the following PREP peripherals: |
1899 | 1899 |
|
1900 | 1900 |
@itemize @minus |
1901 |
@item
|
|
1901 |
@item |
|
1902 | 1902 |
PCI Bridge |
1903 | 1903 |
@item |
1904 | 1904 |
PCI VGA compatible card with VESA Bochs Extensions |
1905 |
@item
|
|
1905 |
@item |
|
1906 | 1906 |
2 IDE interfaces with hard disk and CD-ROM support |
1907 | 1907 |
@item |
1908 | 1908 |
Floppy disk |
1909 |
@item
|
|
1909 |
@item |
|
1910 | 1910 |
NE2000 network adapters |
1911 | 1911 |
@item |
1912 | 1912 |
Serial port |
... | ... | |
1925 | 1925 |
|
1926 | 1926 |
@table @option |
1927 | 1927 |
|
1928 |
@item -g WxH[xDEPTH]
|
|
1928 |
@item -g WxH[xDEPTH] |
|
1929 | 1929 |
|
1930 | 1930 |
Set the initial VGA graphic mode. The default is 800x600x15. |
1931 | 1931 |
|
1932 | 1932 |
@end table |
1933 | 1933 |
|
1934 |
@c man end
|
|
1934 |
@c man end |
|
1935 | 1935 |
|
1936 | 1936 |
|
1937 | 1937 |
More information is available at |
... | ... | |
1950 | 1950 |
IOMMU |
1951 | 1951 |
@item |
1952 | 1952 |
TCX Frame buffer |
1953 |
@item
|
|
1953 |
@item |
|
1954 | 1954 |
Lance (Am7990) Ethernet |
1955 | 1955 |
@item |
1956 | 1956 |
Non Volatile RAM M48T08 |
... | ... | |
2002 | 2002 |
|
2003 | 2003 |
@end table |
2004 | 2004 |
|
2005 |
@c man end
|
|
2005 |
@c man end |
|
2006 | 2006 |
|
2007 | 2007 |
@node Sparc64 System emulator |
2008 | 2008 |
@section Sparc64 System emulator |
... | ... | |
2014 | 2014 |
|
2015 | 2015 |
@itemize @minus |
2016 | 2016 |
@item |
2017 |
UltraSparc IIi APB PCI Bridge
|
|
2017 |
UltraSparc IIi APB PCI Bridge |
|
2018 | 2018 |
@item |
2019 | 2019 |
PCI VGA compatible card with VESA Bochs Extensions |
2020 | 2020 |
@item |
... | ... | |
2043 | 2043 |
emulated: |
2044 | 2044 |
|
2045 | 2045 |
@itemize @minus |
2046 |
@item
|
|
2046 |
@item |
|
2047 | 2047 |
MIPS 24Kf CPU |
2048 | 2048 |
@item |
2049 | 2049 |
PC style serial port |
... | ... | |
2095 | 2095 |
ARM926E, ARM1026E or ARM946E CPU |
2096 | 2096 |
@item |
2097 | 2097 |
Two PL011 UARTs |
2098 |
@item
|
|
2098 |
@item |
|
2099 | 2099 |
SMC 91c111 Ethernet adapter |
2100 | 2100 |
@item |
2101 | 2101 |
PL110 LCD controller |
... | ... | |
2114 | 2114 |
PL190 Vectored Interrupt Controller |
2115 | 2115 |
@item |
2116 | 2116 |
Four PL011 UARTs |
2117 |
@item
|
|
2117 |
@item |
|
2118 | 2118 |
SMC 91c111 Ethernet adapter |
2119 | 2119 |
@item |
2120 | 2120 |
PL110 LCD controller |
... | ... | |
2143 | 2143 |
ARM AMBA Generic/Distributed Interrupt Controller |
2144 | 2144 |
@item |
2145 | 2145 |
Four PL011 UARTs |
2146 |
@item
|
|
2146 |
@item |
|
2147 | 2147 |
SMC 91c111 Ethernet adapter |
2148 | 2148 |
@item |
2149 | 2149 |
PL110 LCD controller |
... | ... | |
2201 | 2201 |
The M5208EVB emulation includes the following devices: |
2202 | 2202 |
|
2203 | 2203 |
@itemize @minus |
2204 |
@item
|
|
2204 |
@item |
|
2205 | 2205 |
MCF5208 ColdFire V2 Microprocessor (ISA A+ with EMAC). |
2206 | 2206 |
@item |
2207 | 2207 |
Three Two on-chip UARTs. |
... | ... | |
2212 | 2212 |
The AN5206 emulation includes the following devices: |
2213 | 2213 |
|
2214 | 2214 |
@itemize @minus |
2215 |
@item
|
|
2215 |
@item |
|
2216 | 2216 |
MCF5206 ColdFire V2 Microprocessor. |
2217 | 2217 |
@item |
2218 | 2218 |
Two on-chip UARTs. |
2219 | 2219 |
@end itemize |
2220 | 2220 |
|
2221 |
@node QEMU User space emulator
|
|
2222 |
@chapter QEMU User space emulator
|
|
2221 |
@node QEMU User space emulator |
|
2222 |
@chapter QEMU User space emulator |
|
2223 | 2223 |
|
2224 | 2224 |
@menu |
2225 | 2225 |
* Supported Operating Systems :: |
... | ... | |
2253 | 2253 |
@subsection Quick Start |
2254 | 2254 |
|
2255 | 2255 |
In order to launch a Linux process, QEMU needs the process executable |
2256 |
itself and all the target (x86) dynamic libraries used by it.
|
|
2256 |
itself and all the target (x86) dynamic libraries used by it. |
|
2257 | 2257 |
|
2258 | 2258 |
@itemize |
2259 | 2259 |
|
2260 | 2260 |
@item On x86, you can just try to launch any process by using the native |
2261 | 2261 |
libraries: |
2262 | 2262 |
|
2263 |
@example
|
|
2263 |
@example |
|
2264 | 2264 |
qemu-i386 -L / /bin/ls |
2265 | 2265 |
@end example |
2266 | 2266 |
|
... | ... | |
2270 | 2270 |
@item Since QEMU is also a linux process, you can launch qemu with |
2271 | 2271 |
qemu (NOTE: you can only do that if you compiled QEMU from the sources): |
2272 | 2272 |
|
2273 |
@example
|
|
2273 |
@example |
|
2274 | 2274 |
qemu-i386 -L / qemu-i386 -L / /bin/ls |
2275 | 2275 |
@end example |
2276 | 2276 |
|
... | ... | |
2279 | 2279 |
@code{LD_LIBRARY_PATH} is not set: |
2280 | 2280 |
|
2281 | 2281 |
@example |
2282 |
unset LD_LIBRARY_PATH
|
|
2282 |
unset LD_LIBRARY_PATH |
|
2283 | 2283 |
@end example |
2284 | 2284 |
|
2285 | 2285 |
Then you can launch the precompiled @file{ls} x86 executable: |
... | ... | |
2314 | 2314 |
@end example |
2315 | 2315 |
|
2316 | 2316 |
@item Download the binary x86 Wine install |
2317 |
(@file{qemu-XXX-i386-wine.tar.gz} on the QEMU web page).
|
|
2317 |
(@file{qemu-XXX-i386-wine.tar.gz} on the QEMU web page). |
|
2318 | 2318 |
|
2319 | 2319 |
@item Configure Wine on your account. Look at the provided script |
2320 | 2320 |
@file{/usr/local/qemu-i386/@/bin/wine-conf.sh}. Your previous |
... | ... | |
2339 | 2339 |
@table @option |
2340 | 2340 |
@item -h |
2341 | 2341 |
Print the help |
2342 |
@item -L path
|
|
2342 |
@item -L path |
|
2343 | 2343 |
Set the x86 elf interpreter prefix (default=/usr/local/qemu-i386) |
2344 | 2344 |
@item -s size |
2345 | 2345 |
Set the x86 stack size in bytes (default=524288) |
... | ... | |
2405 | 2405 |
@item On x86, you can just try to launch any process by using the native |
2406 | 2406 |
libraries: |
2407 | 2407 |
|
2408 |
@example
|
|
2408 |
@example |
|
2409 | 2409 |
qemu-i386 /bin/ls |
2410 | 2410 |
@end example |
2411 | 2411 |
|
2412 | 2412 |
or to run the ppc version of the executable: |
2413 | 2413 |
|
2414 |
@example
|
|
2414 |
@example |
|
2415 | 2415 |
qemu-ppc /bin/ls |
2416 | 2416 |
@end example |
2417 | 2417 |
|
2418 | 2418 |
@item On ppc, you'll have to tell qemu where your x86 libraries (and dynamic linker) |
2419 | 2419 |
are installed: |
2420 | 2420 |
|
2421 |
@example
|
|
2421 |
@example |
|
2422 | 2422 |
qemu-i386 -L /opt/x86_root/ /bin/ls |
2423 | 2423 |
@end example |
2424 | 2424 |
|
... | ... | |
2437 | 2437 |
@table @option |
2438 | 2438 |
@item -h |
2439 | 2439 |
Print the help |
2440 |
@item -L path
|
|
2440 |
@item -L path |
|
2441 | 2441 |
Set the library root path (default=/) |
2442 | 2442 |
@item -s size |
2443 | 2443 |
Set the stack size in bytes (default=524288) |
... | ... | |
2504 | 2504 |
@url{http://www.mingw.org/}. You can find detailed installation |
2505 | 2505 |
instructions in the download section and the FAQ. |
2506 | 2506 |
|
2507 |
@item Download
|
|
2507 |
@item Download |
|
2508 | 2508 |
the MinGW development library of SDL 1.2.x |
2509 | 2509 |
(@file{SDL-devel-1.2.x-@/mingw32.tar.gz}) from |
2510 | 2510 |
@url{http://www.libsdl.org}. Unpack it in a temporary place, and |
... | ... | |
2513 | 2513 |
correct SDL directory when invoked. |
2514 | 2514 |
|
2515 | 2515 |
@item Extract the current version of QEMU. |
2516 |
|
|
2516 |
|
|
2517 | 2517 |
@item Start the MSYS shell (file @file{msys.bat}). |
2518 | 2518 |
|
2519 |
@item Change to the QEMU directory. Launch @file{./configure} and
|
|
2519 |
@item Change to the QEMU directory. Launch @file{./configure} and |
|
2520 | 2520 |
@file{make}. If you have problems using SDL, verify that |
2521 | 2521 |
@file{sdl-config} can be launched from the MSYS command line. |
2522 | 2522 |
|
2523 |
@item You can install QEMU in @file{Program Files/Qemu} by typing
|
|
2523 |
@item You can install QEMU in @file{Program Files/Qemu} by typing |
|
2524 | 2524 |
@file{make install}. Don't forget to copy @file{SDL.dll} in |
2525 | 2525 |
@file{Program Files/Qemu}. |
2526 | 2526 |
|
... | ... | |
2534 | 2534 |
Install the MinGW cross compilation tools available at |
2535 | 2535 |
@url{http://www.mingw.org/}. |
2536 | 2536 |
|
2537 |
@item
|
|
2537 |
@item |
|
2538 | 2538 |
Install the Win32 version of SDL (@url{http://www.libsdl.org}) by |
2539 | 2539 |
unpacking @file{i386-mingw32msvc.tar.gz}. Set up the PATH environment |
2540 | 2540 |
variable so that @file{i386-mingw32msvc-sdl-config} can be launched by |
2541 | 2541 |
the QEMU configuration script. |
2542 | 2542 |
|
2543 |
@item
|
|
2543 |
@item |
|
2544 | 2544 |
Configure QEMU for Windows cross compilation: |
2545 | 2545 |
@example |
2546 | 2546 |
./configure --enable-mingw32 |
... | ... | |
2549 | 2549 |
chosen for the MinGW tools with --cross-prefix. You can also use |
2550 | 2550 |
--prefix to set the Win32 install path. |
2551 | 2551 |
|
2552 |
@item You can install QEMU in the installation directory by typing
|
|
2552 |
@item You can install QEMU in the installation directory by typing |
|
2553 | 2553 |
@file{make install}. Don't forget to copy @file{SDL.dll} in the |
2554 |
installation directory.
|
|
2554 |
installation directory. |
|
2555 | 2555 |
|
2556 | 2556 |
@end itemize |
2557 | 2557 |
|
Also available in: Unified diff