Index: qemu-doc.texi =================================================================== RCS file: /sources/qemu/qemu/qemu-doc.texi,v retrieving revision 1.85 diff -u -b -B -u -r1.85 qemu-doc.texi --- qemu-doc.texi 23 Apr 2006 21:57:03 -0000 1.85 +++ qemu-doc.texi 30 Apr 2006 20:38:33 -0000 @@ -1,16 +1,46 @@ \input texinfo @c -*- texinfo -*- +@c %**start of header +@setfilename qemu-doc.info +@settitle QEMU CPU Emulator User Documentation +@exampleindent 0 +@paragraphindent 0 +@c %**end of header @iftex -@settitle QEMU CPU Emulator User Documentation @titlepage @sp 7 -@center @titlefont{QEMU CPU Emulator User Documentation} +@center @titlefont{QEMU CPU Emulator} +@sp 1 +@center @titlefont{User Documentation} @sp 3 @end titlepage @end iftex +@ifnottex +@node Top +@top + +@menu +* Introduction:: +* Installation:: +* QEMU PC System emulator:: +* QEMU System emulator for non PC targets:: +* QEMU Linux User space emulator:: +* compilation:: Compilation from the sources +* Index:: +@end menu +@end ifnottex + +@contents + +@node Introduction @chapter Introduction +@menu +* intro_features:: Features +@end menu + +@node intro_features @section Features QEMU is a FAST! processor emulator using dynamic translation to @@ -52,27 +82,53 @@ For user emulation, x86, PowerPC, ARM, MIPS, and Sparc32/64 CPUs are supported. +@node Installation @chapter Installation If you want to compile QEMU yourself, see @ref{compilation}. +@menu +* install_linux:: Linux +* install_windows:: Windows +* install_mac:: Macintosh +@end menu + +@node install_linux @section Linux If a precompiled package is available for your distribution - you just have to install it. Otherwise, see @ref{compilation}. +@node install_windows @section Windows Download the experimental binary installer at -@url{http://www.free.oszoo.org/download.html}. +@url{http://www.free.oszoo.org/@/download.html}. +@node install_mac @section Mac OS X Download the experimental binary installer at -@url{http://www.free.oszoo.org/download.html}. +@url{http://www.free.oszoo.org/@/download.html}. +@node QEMU PC System emulator @chapter QEMU PC System emulator +@menu +* pcsys_introduction:: Introduction +* pcsys_quickstart:: Quick Start +* sec_invocation:: Invocation +* pcsys_keys:: Keys +* pcsys_monitor:: QEMU Monitor +* disk_images:: Disk Images +* pcsys_network:: Network emulation +* direct_linux_boot:: Direct Linux Boot +* pcsys_usb:: USB emulation +* gdb_usage:: GDB usage +* pcsys_os_specific:: Target OS specific information +@end menu + +@node pcsys_introduction @section Introduction @c man begin DESCRIPTION @@ -118,6 +174,7 @@ @c man end +@node pcsys_quickstart @section Quick Start Download and uncompress the linux image (@file{linux.img}) and type: @@ -147,14 +204,14 @@ @item -fda file @item -fdb file -Use @var{file} as floppy disk 0/1 image (@xref{disk_images}). You can +Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can use the host floppy by using @file{/dev/fd0} as filename. @item -hda file @item -hdb file @item -hdc file @item -hdd file -Use @var{file} as hard disk 0, 1, 2 or 3 image (@xref{disk_images}). +Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}). @item -cdrom file Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and and @@ -168,7 +225,7 @@ @item -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 @key{C-a s} (@xref{disk_images}). +the write back by pressing @key{C-a s} (@pxref{disk_images}). @item -m megs Set virtual RAM size to @var{megs} megabytes. Default is 128 MB. @@ -297,9 +354,12 @@ Example: @example # launch a first QEMU instance -qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,listen=:1234 -# connect the VLAN 0 of this instance to the VLAN 0 of the first instance -qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net socket,connect=127.0.0.1:1234 +qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \ + -net socket,listen=:1234 +# connect the VLAN 0 of this instance to the VLAN 0 +# of the first instance +qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \ + -net socket,connect=127.0.0.1:1234 @end example @item -net socket[,vlan=n][,fd=h][,mcast=maddr:port] @@ -321,17 +381,22 @@ Example: @example # launch one QEMU instance -qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,mcast=230.0.0.1:1234 +qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \ + -net socket,mcast=230.0.0.1:1234 # launch another QEMU instance on same "bus" -qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net socket,mcast=230.0.0.1:1234 +qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \ + -net socket,mcast=230.0.0.1:1234 # launch yet another QEMU instance on same "bus" -qemu linux.img -net nic,macaddr=52:54:00:12:34:58 -net socket,mcast=230.0.0.1:1234 +qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \ + -net socket,mcast=230.0.0.1:1234 @end example Example (User Mode Linux compat.): @example -# launch QEMU instance (note mcast address selected is UML's default) -qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,mcast=239.192.168.1:1102 +# launch QEMU instance (note mcast address selected +# is UML's default) +qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \ + -net socket,mcast=239.192.168.1:1102 # launch UML /path/to/linux ubd0=/path/to/root_fs eth0=mcast @end example @@ -464,7 +529,7 @@ non graphical mode. @item -s -Wait gdb connection to port 1234 (@xref{gdb_usage}). +Wait gdb connection to port 1234 (@pxref{gdb_usage}). @item -p port Change gdb connection port. @item -S @@ -487,6 +552,7 @@ @c man end +@node pcsys_keys @section Keys @c man begin OPTIONS @@ -535,9 +601,6 @@ @ignore -@setfilename qemu -@settitle QEMU System Emulator - @c man begin SEEALSO The HTML documentation of QEMU for more precise information and Linux user mode emulator invocation. @@ -549,8 +612,7 @@ @end ignore -@end ignore - +@node pcsys_monitor @section QEMU Monitor The QEMU monitor is used to give complex commands to the QEMU @@ -676,7 +738,7 @@ @item Dump 80 16 bit values at the start of the video memory. -@example +@smallexample (qemu) xp/80hx 0xb8000 0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42 0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41 @@ -688,7 +750,7 @@ 0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 -@end example +@end smallexample @end itemize @item p or print/fmt expr @@ -739,6 +801,14 @@ growable disk images (their size increase as non empty sectors are written), compressed and encrypted disk images. +@menu +* disk_images_quickstart:: Quick start for disk image creation +* disk_images_snapshot_mode:: Snapshot mode +* qemu_img_invocation:: qemu-img Invocation +* disk_images_fat_images:: Virtual FAT disk images +@end menu + +@node disk_images_quickstart @subsection Quick start for disk image creation You can create a disk image with the command: @@ -749,8 +819,9 @@ size in kilobytes. You can add an @code{M} suffix to give the size in megabytes and a @code{G} suffix for gigabytes. -@xref{qemu_img_invocation} for more information. +See @ref{qemu_img_invocation} for more information. +@node disk_images_snapshot_mode @subsection Snapshot mode If you use the option @option{-snapshot}, all disk images are @@ -764,6 +835,7 @@ @include qemu-img.texi +@node disk_images_fat_images @subsection Virtual FAT disk images QEMU can automatically create a virtual FAT disk image from a @@ -798,6 +870,7 @@ @item write to the FAT directory on the host system while accessing it with the guest system. @end itemize +@node pcsys_network @section Network emulation QEMU can simulate several networks cards (NE2000 boards on the PC @@ -901,10 +974,10 @@ @item Launch @code{qemu.sh}. You should have the following output: -@example +@smallexample > ./qemu.sh Connected to host network interface: tun0 -Linux version 2.4.21 (bellard@@voyager.localdomain) (gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) #5 Tue Nov 11 18:18:53 CET 2003 +Linux version 2.4.21 (bellard@@voyager.localdomain) (gcc version 3.2.2 20030222 @/(Red Hat @/Linux 3.2.2-5)) #5 Tue Nov 11 18:18:53 CET 2003 BIOS-provided physical RAM map: BIOS-e801: 0000000000000000 - 000000000009f000 (usable) BIOS-e801: 0000000000100000 - 0000000002000000 (usable) @@ -913,7 +986,7 @@ zone(0): 4096 pages. zone(1): 4096 pages. zone(2): 0 pages. -Kernel command line: root=/dev/hda sb=0x220,5,1,5 ide2=noprobe ide3=noprobe ide4=noprobe ide5=noprobe console=ttyS0 +Kernel command line: root=/dev/hda sb=0x220,5,1,5 ide2=noprobe ide3=noprobe ide4=noprobe @/ide5=noprobe console=ttyS0 ide_setup: ide2=noprobe ide_setup: ide3=noprobe ide_setup: ide4=noprobe @@ -922,7 +995,7 @@ Detected 2399.621 MHz processor. Console: colour EGA 80x25 Calibrating delay loop... 4744.80 BogoMIPS -Memory: 28872k/32768k available (1210k kernel code, 3508k reserved, 266k data, 64k init, 0k highmem) +Memory: 28872k/32768k available (1210k kernel code, 3508k reserved, 266k data, 64k init, @/0k highmem) Dentry cache hash table entries: 4096 (order: 3, 32768 bytes) Inode cache hash table entries: 2048 (order: 2, 16384 bytes) Mount cache hash table entries: 512 (order: 0, 4096 bytes) @@ -964,14 +1037,14 @@ VFS: Mounted root (ext2 filesystem). Freeing unused kernel memory: 64k freed -Linux version 2.4.21 (bellard@@voyager.localdomain) (gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) #5 Tue Nov 11 18:18:53 CET 2003 +Linux version 2.4.21 (bellard@@voyager.localdomain) (gcc version 3.2.2 20030222 @/(Red Hat @/Linux 3.2.2-5)) #5 Tue Nov 11 18:18:53 CET 2003 QEMU Linux test distribution (based on Redhat 9) Type 'exit' to halt the system sh-2.05b# -@end example +@end smallexample @item Then you can play with the kernel inside the virtual serial console. You @@ -1021,6 +1094,7 @@ @end enumerate +@node pcsys_usb @section USB emulation QEMU emulates a PCI UHCI USB controller and a 8 port USB hub connected @@ -1104,7 +1178,8 @@ In order to use gdb, launch qemu with the '-s' option. It will wait for a gdb connection: @example -> qemu -s -kernel arch/i386/boot/bzImage -hda root-2.4.20.img -append "root=/dev/hda" +> qemu -s -kernel arch/i386/boot/bzImage -hda root-2.4.20.img \ + -append "root=/dev/hda" Connected to host network interface: tun0 Waiting gdb connection on port 1234 @end example @@ -1136,6 +1211,7 @@ @code{x/10i $cs*16+*eip} to dump the code at the PC position. @end enumerate +@node pcsys_os_specific @section Target OS specific information @subsection Linux @@ -1222,12 +1298,22 @@ from @url{http://www.vmware.com/software/dosidle210.zip} to solve this problem. +@node QEMU System emulator for non PC targets @chapter QEMU System emulator for non PC targets QEMU is a generic emulator and it emulates many non PC machines. Most of the options are similar to the PC emulator. The differences are mentionned in the following sections. +@menu +* QEMU PowerPC System emulator:: +* Sparc32 System emulator invocation:: +* Sparc64 System emulator invocation:: +* MIPS System emulator invocation:: +* ARM System emulator invocation:: +@end menu + +@node QEMU PowerPC System emulator @section QEMU PowerPC System emulator Use the executable @file{qemu-system-ppc} to simulate a complete PREP @@ -1292,6 +1378,7 @@ More information is available at @url{http://perso.magic.fr/l_indien/qemu-ppc/}. +@node Sparc32 System emulator invocation @section Sparc32 System emulator invocation Use the executable @file{qemu-system-sparc} to simulate a JavaStation @@ -1320,7 +1407,7 @@ The number of peripherals is fixed in the architecture. QEMU uses the Proll, a PROM replacement available at -@url{http://people.redhat.com/zaitcev/linux/}. The required +@url{http://people.redhat.com/@/zaitcev/linux/}. The required QEMU-specific patches are included with the sources. A sample Linux 2.6 series kernel and ram disk image are available on @@ -1341,6 +1428,7 @@ @c man end +@node Sparc64 System emulator invocation @section Sparc64 System emulator invocation Use the executable @file{qemu-system-sparc64} to simulate a Sun4u machine. @@ -1359,6 +1447,7 @@ PC-compatible serial ports @end itemize +@node MIPS System emulator invocation @section MIPS System emulator invocation Use the executable @file{qemu-system-mips} to simulate a MIPS machine. @@ -1376,6 +1465,7 @@ More information is available in the QEMU mailing-list archive. +@node ARM System emulator invocation @section ARM System emulator invocation Use the executable @file{qemu-system-arm} to simulate a ARM @@ -1394,8 +1484,16 @@ A Linux 2.6 test image is available on the QEMU web site. More information is available in the QEMU mailing-list archive. +@node QEMU Linux User space emulator @chapter QEMU Linux User space emulator +@menu +* Quick Start:: +* Wine launch:: +* Command line options:: +@end menu + +@node Quick Start @section Quick Start In order to launch a Linux process, QEMU needs the process executable @@ -1439,11 +1537,13 @@ @item The x86 version of QEMU is also included. You can try weird things such as: @example -qemu-i386 /usr/local/qemu-i386/bin/qemu-i386 /usr/local/qemu-i386/bin/ls-i386 +qemu-i386 /usr/local/qemu-i386/bin/qemu-i386 \ + /usr/local/qemu-i386/bin/ls-i386 @end example @end itemize +@node Wine launch @section Wine launch @itemize @@ -1460,17 +1560,19 @@ (@file{qemu-XXX-i386-wine.tar.gz} on the QEMU web page). @item Configure Wine on your account. Look at the provided script -@file{/usr/local/qemu-i386/bin/wine-conf.sh}. Your previous +@file{/usr/local/qemu-i386/@/bin/wine-conf.sh}. Your previous @code{$@{HOME@}/.wine} directory is saved to @code{$@{HOME@}/.wine.org}. @item Then you can try the example @file{putty.exe}: @example -qemu-i386 /usr/local/qemu-i386/wine/bin/wine /usr/local/qemu-i386/wine/c/Program\ Files/putty.exe +qemu-i386 /usr/local/qemu-i386/wine/bin/wine \ + /usr/local/qemu-i386/wine/c/Program\ Files/putty.exe @end example @end itemize +@node Command line options @section Command line options @example @@ -1498,6 +1600,14 @@ @node compilation @chapter Compilation from the sources +@menu +* Linux/Unix:: +* Windows:: +* Cross compilation for Windows with Linux:: +* Mac OS X:: +@end menu + +@node Linux/Unix @section Linux/Unix @subsection Compilation @@ -1555,6 +1665,7 @@ variables. You must use gcc 3.x on PowerPC. @end example +@node Windows @section Windows @itemize @@ -1564,7 +1675,7 @@ @item Download the MinGW development library of SDL 1.2.x -(@file{SDL-devel-1.2.x-mingw32.tar.gz}) from +(@file{SDL-devel-1.2.x-@/mingw32.tar.gz}) from @url{http://www.libsdl.org}. Unpack it in a temporary place, and unpack the archive @file{i386-mingw32msvc.tar.gz} in the MinGW tool directory. Edit the @file{sdl-config} script so that it gives the @@ -1584,6 +1695,7 @@ @end itemize +@node Cross compilation for Windows with Linux @section Cross compilation for Windows with Linux @itemize @@ -1615,9 +1727,15 @@ Note: Currently, Wine does not seem able to launch QEMU for Win32. +@node Mac OS X @section Mac OS X The Mac OS X patches are not fully merged in QEMU, so you should look at the QEMU mailing list archive to have all the necessary information. +@node Index +@chapter Index +@printindex cp + +@bye