提交 1fbe229b 编写于 作者: M Mark McLoughlin

Add qemu help string parsing tests

Signed-off-by: NMark McLoughlin <markmc@redhat.com>
上级 04cbe687
Thu Jun 11 15:18:44 GMT 2009 Mark McLoughlin <markmc@redhat.com>
* src/qemu_conf.[ch]: make qemuParseHelpStr() available
to tests
* tests/qemuhelptest.c, tests/qemuhelpdata/*: add tests
for 'qemu -help' parsing.
Thu Jun 11 15:17:12 GMT 2009 Mark McLoughlin <markmc@redhat.com>
* src/qemu_conf.c: detect newer qemu-kvm versions
......
......@@ -489,11 +489,11 @@ static unsigned int qemudComputeCmdFlags(const char *help,
#define SKIP_BLANKS(p) do { while ((*(p) == ' ') || (*(p) == '\t')) (p)++; } while (0)
static int qemudParseHelpStr(const char *help,
unsigned int *flags,
unsigned int *version,
unsigned int *is_kvm,
unsigned int *kvm_version)
int qemudParseHelpStr(const char *help,
unsigned int *flags,
unsigned int *version,
unsigned int *is_kvm,
unsigned int *kvm_version)
{
unsigned major, minor, micro;
const char *p = help;
......
......@@ -125,6 +125,12 @@ int qemudExtractVersionInfo (const char *qemu,
unsigned int *version,
unsigned int *flags);
int qemudParseHelpStr (const char *str,
unsigned int *flags,
unsigned int *version,
unsigned int *is_kvm,
unsigned int *kvm_version);
int qemudBuildCommandLine (virConnectPtr conn,
struct qemud_driver *driver,
virDomainDefPtr def,
......
......@@ -61,7 +61,7 @@ noinst_PROGRAMS += xml2sexprtest sexpr2xmltest \
reconnect xmconfigtest xencapstest
endif
if WITH_QEMU
noinst_PROGRAMS += qemuxml2argvtest qemuxml2xmltest qemuargv2xmltest
noinst_PROGRAMS += qemuxml2argvtest qemuxml2xmltest qemuargv2xmltest qemuhelptest
endif
if WITH_SECDRIVER_SELINUX
......@@ -119,7 +119,7 @@ endif
endif
if WITH_QEMU
TESTS += qemuxml2argvtest qemuxml2xmltest qemuargv2xmltest
TESTS += qemuxml2argvtest qemuxml2xmltest qemuargv2xmltest qemuhelptest
endif
if WITH_SECDRIVER_SELINUX
......@@ -199,8 +199,11 @@ qemuargv2xmltest_SOURCES = \
qemuargv2xmltest.c testutilsqemu.c testutilsqemu.h \
testutils.c testutils.h
qemuargv2xmltest_LDADD = ../src/libvirt_driver_qemu.la $(LDADDS)
qemuhelptest_SOURCES = qemuhelptest.c testutils.c testutils.h
qemuhelptest_LDADD = ../src/libvirt_driver_qemu.la $(LDADDS)
else
EXTRA_DIST += qemuxml2argvtest.c qemuxml2xmltest.c qemuargv2xmltest.c testutilsqemu.c testutilsqemu.h
EXTRA_DIST += qemuxml2argvtest.c qemuxml2xmltest.c qemuargv2xmltest.c qemuhelptest.c testutilsqemu.c testutilsqemu.h
endif
nodedevxml2xmltest_SOURCES = \
......
QEMU PC emulator version 0.9.1 (kvm-74), Copyright (c) 2003-2008 Fabrice Bellard
usage: qemu [options] [disk_image]
'disk_image' is a raw hard image image for IDE hard disk 0
Standard options:
-M machine select emulated machine (-M ? for list)
-cpu cpu select CPU (-cpu ? for list)
-fda/-fdb file use 'file' as floppy disk 0/1 image
-hda/-hdb file use 'file' as IDE hard disk 0/1 image
-hdc/-hdd file use 'file' as IDE hard disk 2/3 image
-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)
-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]
[,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]
[,cache=on|off][,format=f][,boot=on|off]
use 'file' as a drive image
-mtdblock file use 'file' as on-board Flash memory image
-sd file use 'file' as SecureDigital card image
-pflash file use 'file' as a parallel flash image
-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)
-snapshot write to temporary files instead of disk image files
-no-frame open SDL window without a frame and window decorations
-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)
-no-quit disable SDL window close capability
-no-fd-bootchk disable boot signature checking for floppy disks
-m megs set virtual RAM size to megs MB [default=128]
-smp n set the number of CPUs to 'n' [default=1]
-nographic disable graphical output and redirect serial I/Os to console
-portrait rotate graphical output 90 deg left (only PXA LCD)
-k language use keyboard layout (for example "fr" for French)
-audio-help print list of audio drivers and their options
-soundhw c1,... enable audio support
and only specified sound cards (comma separated list)
use -soundhw ? to get the list of supported cards
use -soundhw all to enable all of them
-localtime set the real time clock to local time [default=utc]
-full-screen start in full screen
-win2k-hack use it when installing Windows 2000 to avoid a disk full bug
-usb enable the USB driver (will be the default soon)
-usbdevice name add the host or guest USB device 'name'
-name string set the name of the guest
Network options:
-net nic[,vlan=n][,macaddr=addr][,model=type]
create a new Network Interface Card and connect it to VLAN 'n'
-net user[,vlan=n][,hostname=host]
connect the user mode network stack to VLAN 'n' and send
hostname 'host' to DHCP clients
-net tap[,vlan=n][,fd=h][,ifname=name][,script=file][,downscript=dfile]
connect the host TAP network interface to VLAN 'n' and use the
network scripts 'file' (default=/etc/qemu-ifup)
and 'dfile' (default=/etc/qemu-ifdown);
use '[down]script=no' to disable script execution;
use 'fd=h' to connect to an already opened TAP interface
-net socket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]
connect the vlan 'n' to another VLAN using a socket connection
-net socket[,vlan=n][,fd=h][,mcast=maddr:port]
connect the vlan 'n' to multicast maddr and port
-net none use it alone to have zero network devices; if no -net option
is provided, the default is '-net nic -net user'
-tftp dir allow tftp access to files in dir [-net user]
-bootp file advertise file in BOOTP replies
-smb dir allow SMB access to files in 'dir' [-net user]
-redir [tcp|udp]:host-port:[guest-host]:guest-port
redirect TCP or UDP connections from host to guest [-net user]
Linux boot specific:
-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:
-monitor dev redirect the monitor to char device 'dev'
-serial dev redirect the serial port to char device 'dev'
-parallel dev redirect the parallel port to char device 'dev'
-pidfile file Write PID to 'file'
-S freeze CPU at startup (use 'c' to start execution)
-s wait gdb connection to port
-p port set gdb connection port [default=1234]
-d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items)
-hdachs c,h,s[,t] force hard disk 0 physical geometry and the optional BIOS
translation (t=none or lba) (usually qemu can guess them)
-L path set the directory for the BIOS, VGA BIOS and keymaps
-no-kvm disable KVM hardware virtualization
-no-kvm-irqchip disable KVM kernel mode PIC/IOAPIC/LAPIC
-no-kvm-pit disable KVM kernel mode PIT
-std-vga simulate a standard VGA card with VESA Bochs Extensions
(default is CL-GD5446 PCI VGA)
-no-acpi disable ACPI
-no-reboot exit instead of rebooting
-no-shutdown stop before shutdown
-loadvm [tag|id] start right away with a saved state (loadvm in monitor)
-vnc display start a VNC server on display
-daemonize daemonize QEMU after initializing
-tdf inject timer interrupts that got lost
-kvm-shadow-memory megs set the amount of shadow pages to be allocated
-mem-path set the path to hugetlbfs/tmpfs mounted directory, also enables allocation of guest memory with huge pages
-option-rom rom load a file, rom, into the option ROM space
-clock force the use of the given methods for timer alarm.
To see what timers are available use -clock ?
-startdate select initial date of the clock
-icount [N|auto]
Enable virtual instruction counter with 2^N clock ticks per instruction
During emulation, the following keys are useful:
ctrl-alt-f toggle full screen
ctrl-alt-n switch to virtual console 'n'
ctrl-alt toggle mouse and keyboard grab
When using -nographic, press 'ctrl-a h' to get some help.
QEMU PC emulator version 0.10.50 (qemu-kvm-devel-86), Copyright (c) 2003-2008 Fabrice Bellard
usage: qemu [options] [disk_image]
'disk_image' is a raw hard image image for IDE hard disk 0
Standard options:
-h or -help display this help and exit
-version display version information and exit
-M machine select emulated machine (-M ? for list)
-cpu cpu select CPU (-cpu ? for list)
-smp n set the number of CPUs to 'n' [default=1]
-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]
-fda/-fdb file use 'file' as floppy disk 0/1 image
-hda/-hdb file use 'file' as IDE hard disk 0/1 image
-hdc/-hdd file use 'file' as IDE hard disk 2/3 image
-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)
-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]
[,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]
[,cache=writethrough|writeback|none][,format=f][,serial=s]
[,boot=on|off]
use 'file' as a drive image
-mtdblock file use 'file' as on-board Flash memory image
-sd file use 'file' as SecureDigital card image
-pflash file use 'file' as a parallel flash image
-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)
-snapshot write to temporary files instead of disk image files
-m megs set virtual RAM size to megs MB [default=128]
-k language use keyboard layout (for example 'fr' for French)
-audio-help print list of audio drivers and their options
-soundhw c1,... enable audio support
and only specified sound cards (comma separated list)
use -soundhw ? to get the list of supported cards
use -soundhw all to enable all of them
-usb enable the USB driver (will be the default soon)
-usbdevice name add the host or guest USB device 'name'
-name string set the name of the guest
-uuid %08x-%04x-%04x-%04x-%012x
specify machine UUID
Display options:
-nographic disable graphical output and redirect serial I/Os to console
-no-frame open SDL window without a frame and window decorations
-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)
-no-quit disable SDL window close capability
-sdl enable SDL
-portrait rotate graphical output 90 deg left (only PXA LCD)
-vga [std|cirrus|vmware|xenfb|none]
select video card type
-full-screen start in full screen
-vnc display start a VNC server on display
i386 target only:
-win2k-hack use it when installing Windows 2000 to avoid a disk full bug
-rtc-td-hack use it to fix time drift in Windows ACPI HAL
-no-fd-bootchk disable boot signature checking for floppy disks
-no-acpi disable ACPI
-no-hpet disable HPET
-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,data=file1[:file2]...]
ACPI table description
-smbios file=binary
Load SMBIOS entry from binary file
-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d]
Specify SMBIOS type 0 fields
-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]
[,uuid=uuid][,sku=str][,family=str]
Specify SMBIOS type 1 fields
Network options:
-net nic[,vlan=n][,macaddr=addr][,model=type][,name=str]
create a new Network Interface Card and connect it to VLAN 'n'
-net user[,vlan=n][,name=str][,hostname=host]
connect the user mode network stack to VLAN 'n' and send
hostname 'host' to DHCP clients
-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]
connect the host TAP network interface to VLAN 'n' and use the
network scripts 'file' (default=/etc/qemu-ifup)
and 'dfile' (default=/etc/qemu-ifdown);
use '[down]script=no' to disable script execution;
use 'fd=h' to connect to an already opened TAP interface
-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]
connect the vlan 'n' to another VLAN using a socket connection
-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]
connect the vlan 'n' to multicast maddr and port
-net dump[,vlan=n][,file=f][,len=n]
dump traffic on vlan 'n' to file 'f' (max n bytes per packet)
-net none use it alone to have zero network devices; if no -net option
is provided, the default is '-net nic -net user'
-tftp dir allow tftp access to files in dir [-net user]
-bootp file advertise file in BOOTP replies
-smb dir allow SMB access to files in 'dir' [-net user]
-redir [tcp|udp]:host-port:[guest-host]:guest-port
redirect TCP or UDP connections from host to guest [-net user]
-bt hci,null dumb bluetooth HCI - doesn't respond to commands
-bt hci,host[:id]
use host's HCI with the given name
-bt hci[,vlan=n]
emulate a standard HCI in virtual scatternet 'n'
-bt vhci[,vlan=n]
add host computer to virtual scatternet 'n' using VHCI
-bt device:dev[,vlan=n]
emulate a bluetooth device 'dev' in scatternet 'n'
Linux boot specific:
-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 serial port to char device 'dev'
-parallel dev redirect the parallel port to char device 'dev'
-monitor dev redirect the monitor to char device 'dev'
-pidfile file write PID to 'file'
-singlestep always run in singlestep mode
-S freeze CPU at startup (use 'c' to start execution)
-gdb dev wait for gdb connection on 'dev'
-s shorthand for -gdb tcp::1234
-d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items)
-hdachs c,h,s[,t]
force hard disk 0 physical geometry and the optional BIOS
translation (t=none or lba) (usually qemu can guess them)
-L path set the directory for the BIOS, VGA BIOS and keymaps
-bios file set the filename for the BIOS
-no-reboot exit instead of rebooting
-no-shutdown stop before shutdown
-loadvm [tag|id]
start right away with a saved state (loadvm in monitor)
-daemonize daemonize QEMU after initializing
-option-rom rom load a file, rom, into the option ROM space
-clock force the use of the given methods for timer alarm.
To see what timers are available use -clock ?
-localtime set the real time clock to local time [default=utc]
-startdate select initial date of the clock
-icount [N|auto]
enable virtual instruction counter with 2^N clock ticks per
instruction
-watchdog i6300esb|ib700
enable virtual hardware watchdog [default=none]
-watchdog-action reset|shutdown|poweroff|pause|debug|none
action when watchdog fires [default=reset]
-echr chr set terminal escape character instead of ctrl-a
-virtioconsole c
set virtio console
-show-cursor show cursor
-tb-size n set TB size
-incoming p prepare for incoming migration, listen on port p
-chroot dir Chroot to dir just before starting the VM.
-runas user Change to user id user just before starting the VM.
-no-kvm disable KVM hardware virtualization
-no-kvm-irqchip disable KVM kernel mode PIC/IOAPIC/LAPIC
-no-kvm-pit disable KVM kernel mode PIT
-no-kvm-pit-reinjection disable KVM kernel mode PIT interrupt reinjection
-pcidevice host=bus:dev.func[,dma=none][,name=string]
expose a PCI device to the guest OS.
dma=none: don't perform any dma translations (default is to use an iommu)
'string' is used in log output.
-enable-nesting enable support for running a VM inside the VM (AMD only)
-nvram FILE provide ia64 nvram contents
-tdf enable guest time drift compensation
-kvm-shadow-memory MEGABYTES
allocate MEGABYTES for kvm mmu shadowing
-mempath FILE provide backing storage for guest RAM
-mem-prealloc preallocate guest memory (use with -mempath)
During emulation, the following keys are useful:
ctrl-alt-f toggle full screen
ctrl-alt-n switch to virtual console 'n'
ctrl-alt toggle mouse and keyboard grab
When using -nographic, press 'ctrl-a h' to get some help.
QEMU PC emulator version 0.10.5, Copyright (c) 2003-2008 Fabrice Bellard
usage: qemu [options] [disk_image]
'disk_image' is a raw hard image image for IDE hard disk 0
Standard options:
-h or -help display this help and exit
-M machine select emulated machine (-M ? for list)
-cpu cpu select CPU (-cpu ? for list)
-smp n set the number of CPUs to 'n' [default=1]
-fda/-fdb file use 'file' as floppy disk 0/1 image
-hda/-hdb file use 'file' as IDE hard disk 0/1 image
-hdc/-hdd file use 'file' as IDE hard disk 2/3 image
-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)
-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]
[,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]
[,cache=writethrough|writeback|none][,format=f][,serial=s]
use 'file' as a drive image
-mtdblock file use 'file' as on-board Flash memory image
-sd file use 'file' as SecureDigital card image
-pflash file use 'file' as a parallel flash image
-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)
-snapshot write to temporary files instead of disk image files
-m megs set virtual RAM size to megs MB [default=128]
-k language use keyboard layout (for example "fr" for French)
-audio-help print list of audio drivers and their options
-soundhw c1,... enable audio support
and only specified sound cards (comma separated list)
use -soundhw ? to get the list of supported cards
use -soundhw all to enable all of them
-usb enable the USB driver (will be the default soon)
-usbdevice name add the host or guest USB device 'name'
-name string set the name of the guest
-uuid %08x-%04x-%04x-%04x-%012x
specify machine UUID
Display options:
-nographic disable graphical output and redirect serial I/Os to console
-curses use a curses/ncurses interface instead of SDL
-no-frame open SDL window without a frame and window decorations
-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)
-no-quit disable SDL window close capability
-sdl enable SDL
-portrait rotate graphical output 90 deg left (only PXA LCD)
-vga [std|cirrus|vmware|none]
select video card type
-full-screen start in full screen
-vnc display start a VNC server on display
Network options:
-net nic[,vlan=n][,macaddr=addr][,model=type][,name=str]
create a new Network Interface Card and connect it to VLAN 'n'
-net user[,vlan=n][,name=str][,hostname=host]
connect the user mode network stack to VLAN 'n' and send
hostname 'host' to DHCP clients
-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]
connect the host TAP network interface to VLAN 'n' and use the
network scripts 'file' (default=/etc/qemu-ifup)
and 'dfile' (default=/etc/qemu-ifdown);
use '[down]script=no' to disable script execution;
use 'fd=h' to connect to an already opened TAP interface
-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]
connect the vlan 'n' to another VLAN using a socket connection
-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]
connect the vlan 'n' to multicast maddr and port
-net none use it alone to have zero network devices; if no -net option
is provided, the default is '-net nic -net user'
-tftp dir allow tftp access to files in dir [-net user]
-bootp file advertise file in BOOTP replies
-smb dir allow SMB access to files in 'dir' [-net user]
-redir [tcp|udp]:host-port:[guest-host]:guest-port
redirect TCP or UDP connections from host to guest [-net user]
-bt hci,null dumb bluetooth HCI - doesn't respond to commands
-bt hci,host[:id]
use host's HCI with the given name
-bt hci[,vlan=n]
emulate a standard HCI in virtual scatternet 'n'
-bt vhci[,vlan=n]
add host computer to virtual scatternet 'n' using VHCI
-bt device:dev[,vlan=n]
emulate a bluetooth device 'dev' in scatternet 'n'
i386 target only:
-win2k-hack use it when installing Windows 2000 to avoid a disk full bug
-rtc-td-hack use it to fix time drift in Windows ACPI HAL
-no-fd-bootchk disable boot signature checking for floppy disks
-no-acpi disable ACPI
-no-hpet disable HPET
-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,data=file1[:file2]...]
ACPI table description
Linux boot specific:
-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 serial port to char device 'dev'
-parallel dev redirect the parallel port to char device 'dev'
-monitor dev redirect the monitor to char device 'dev'
-pidfile file write PID to 'file'
-S freeze CPU at startup (use 'c' to start execution)
-s wait gdb connection to port
-p port set gdb connection port [default=1234]
-d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items)
-hdachs c,h,s[,t]
force hard disk 0 physical geometry and the optional BIOS
translation (t=none or lba) (usually qemu can guess them)
-L path set the directory for the BIOS, VGA BIOS and keymaps
-bios file set the filename for the BIOS
-kernel-kqemu enable KQEMU full virtualization (default is user mode only)
-no-kqemu disable KQEMU kernel module usage
-enable-kvm enable KVM full virtualization support
-no-reboot exit instead of rebooting
-no-shutdown stop before shutdown
-loadvm [tag|id]
start right away with a saved state (loadvm in monitor)
-daemonize daemonize QEMU after initializing
-option-rom rom load a file, rom, into the option ROM space
-clock force the use of the given methods for timer alarm.
To see what timers are available use -clock ?
-localtime set the real time clock to local time [default=utc]
-startdate select initial date of the clock
-icount [N|auto]
enable virtual instruction counter with 2^N clock ticks per instruction
-echr chr set terminal escape character instead of ctrl-a
-virtioconsole c
set virtio console
-show-cursor show cursor
-tb-size n set TB size
-incoming p prepare for incoming migration, listen on port p
-chroot dir Chroot to dir just before starting the VM.
-runas user Change to user id user just before starting the VM.
During emulation, the following keys are useful:
ctrl-alt-f toggle full screen
ctrl-alt-n switch to virtual console 'n'
ctrl-alt toggle mouse and keyboard grab
When using -nographic, press 'ctrl-a h' to get some help.
QEMU PC emulator version 0.9.1, Copyright (c) 2003-2008 Fabrice Bellard
usage: qemu [options] [disk_image]
'disk_image' is a raw hard image image for IDE hard disk 0
Standard options:
-M machine select emulated machine (-M ? for list)
-cpu cpu select CPU (-cpu ? for list)
-fda/-fdb file use 'file' as floppy disk 0/1 image
-hda/-hdb file use 'file' as IDE hard disk 0/1 image
-hdc/-hdd file use 'file' as IDE hard disk 2/3 image
-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)
-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][index=i]
[,cyls=c,heads=h,secs=s[,trans=t]][snapshot=on|off] [,cache=on|off]
use 'file' as a drive image
-mtdblock file use 'file' as on-board Flash memory image
-sd file use 'file' as SecureDigital card image
-pflash file use 'file' as a parallel flash image
-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)
-snapshot write to temporary files instead of disk image files
-no-frame open SDL window without a frame and window decorations
-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)
-no-quit disable SDL window close capability
-no-fd-bootchk disable boot signature checking for floppy disks
-m megs set virtual RAM size to megs MB [default=128]
-smp n set the number of CPUs to 'n' [default=1]
-nographic disable graphical output and redirect serial I/Os to console
-portrait rotate graphical output 90 deg left (only PXA LCD)
-k language use keyboard layout (for example "fr" for French)
-audio-help print list of audio drivers and their options
-soundhw c1,... enable audio support
and only specified sound cards (comma separated list)
use -soundhw ? to get the list of supported cards
use -soundhw all to enable all of them
-localtime set the real time clock to local time [default=utc]
-full-screen start in full screen
-win2k-hack use it when installing Windows 2000 to avoid a disk full bug
-usb enable the USB driver (will be the default soon)
-usbdevice name add the host or guest USB device 'name'
-name string set the name of the guest
Network options:
-net nic[,vlan=n][,macaddr=addr][,model=type]
create a new Network Interface Card and connect it to VLAN 'n'
-net user[,vlan=n][,hostname=host]
connect the user mode network stack to VLAN 'n' and send
hostname 'host' to DHCP clients
-net tap[,vlan=n][,fd=h][,ifname=name][,script=file][,downscript=dfile]
connect the host TAP network interface to VLAN 'n' and use the
network scripts 'file' (default=/etc/qemu-ifup)
and 'dfile' (default=/etc/qemu-ifdown);
use '[down]script=no' to disable script execution;
use 'fd=h' to connect to an already opened TAP interface
-net socket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]
connect the vlan 'n' to another VLAN using a socket connection
-net socket[,vlan=n][,fd=h][,mcast=maddr:port]
connect the vlan 'n' to multicast maddr and port
-net none use it alone to have zero network devices; if no -net option
is provided, the default is '-net nic -net user'
-tftp dir allow tftp access to files in dir [-net user]
-bootp file advertise file in BOOTP replies
-smb dir allow SMB access to files in 'dir' [-net user]
-redir [tcp|udp]:host-port:[guest-host]:guest-port
redirect TCP or UDP connections from host to guest [-net user]
Linux boot specific:
-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:
-monitor dev redirect the monitor to char device 'dev'
-serial dev redirect the serial port to char device 'dev'
-parallel dev redirect the parallel port to char device 'dev'
-pidfile file Write PID to 'file'
-S freeze CPU at startup (use 'c' to start execution)
-s wait gdb connection to port
-p port set gdb connection port [default=1234]
-d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items)
-hdachs c,h,s[,t] force hard disk 0 physical geometry and the optional BIOS
translation (t=none or lba) (usually qemu can guess them)
-L path set the directory for the BIOS, VGA BIOS and keymaps
-kernel-kqemu enable KQEMU full virtualization (default is user mode only)
-no-kqemu disable KQEMU kernel module usage
-std-vga simulate a standard VGA card with VESA Bochs Extensions
(default is CL-GD5446 PCI VGA)
-no-acpi disable ACPI
-no-reboot exit instead of rebooting
-loadvm file start right away with a saved state (loadvm in monitor)
-vnc display start a VNC server on display
-daemonize daemonize QEMU after initializing
-option-rom rom load a file, rom, into the option ROM space
-clock force the use of the given methods for timer alarm.
To see what timers are available use -clock help
During emulation, the following keys are useful:
ctrl-alt-f toggle full screen
ctrl-alt-n switch to virtual console 'n'
ctrl-alt toggle mouse and keyboard grab
When using -nographic, press 'ctrl-a h' to get some help.
QEMU PC emulator version 0.10.5 (qemu-kvm-0.10.5), Copyright (c) 2003-2008 Fabrice Bellard
usage: qemu [options] [disk_image]
'disk_image' is a raw hard image image for IDE hard disk 0
Standard options:
-h or -help display this help and exit
-M machine select emulated machine (-M ? for list)
-cpu cpu select CPU (-cpu ? for list)
-smp n set the number of CPUs to 'n' [default=1]
-fda/-fdb file use 'file' as floppy disk 0/1 image
-hda/-hdb file use 'file' as IDE hard disk 0/1 image
-hdc/-hdd file use 'file' as IDE hard disk 2/3 image
-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)
-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]
[,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]
[,cache=writethrough|writeback|none][,format=f][,serial=s]
[,boot=on|off]
use 'file' as a drive image
-mtdblock file use 'file' as on-board Flash memory image
-sd file use 'file' as SecureDigital card image
-pflash file use 'file' as a parallel flash image
-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)
-snapshot write to temporary files instead of disk image files
-m megs set virtual RAM size to megs MB [default=128]
-k language use keyboard layout (for example "fr" for French)
-audio-help print list of audio drivers and their options
-soundhw c1,... enable audio support
and only specified sound cards (comma separated list)
use -soundhw ? to get the list of supported cards
use -soundhw all to enable all of them
-usb enable the USB driver (will be the default soon)
-usbdevice name add the host or guest USB device 'name'
-name string set the name of the guest
-uuid %08x-%04x-%04x-%04x-%012x
specify machine UUID
Display options:
-nographic disable graphical output and redirect serial I/Os to console
-no-frame open SDL window without a frame and window decorations
-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)
-no-quit disable SDL window close capability
-sdl enable SDL
-portrait rotate graphical output 90 deg left (only PXA LCD)
-vga [std|cirrus|vmware|none]
select video card type
-full-screen start in full screen
-vnc display start a VNC server on display
-name string set the name of the guest
-uuid %08x-%04x-%04x-%04x-%012x specify machine UUID
Network options:
-net nic[,vlan=n][,macaddr=addr][,model=type][,name=str]
create a new Network Interface Card and connect it to VLAN 'n'
-net user[,vlan=n][,name=str][,hostname=host]
connect the user mode network stack to VLAN 'n' and send
hostname 'host' to DHCP clients
-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]
connect the host TAP network interface to VLAN 'n' and use the
network scripts 'file' (default=/etc/qemu-ifup)
and 'dfile' (default=/etc/qemu-ifdown);
use '[down]script=no' to disable script execution;
use 'fd=h' to connect to an already opened TAP interface
-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]
connect the vlan 'n' to another VLAN using a socket connection
-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]
connect the vlan 'n' to multicast maddr and port
-net none use it alone to have zero network devices; if no -net option
is provided, the default is '-net nic -net user'
-tftp dir allow tftp access to files in dir [-net user]
-bootp file advertise file in BOOTP replies
-smb dir allow SMB access to files in 'dir' [-net user]
-redir [tcp|udp]:host-port:[guest-host]:guest-port
redirect TCP or UDP connections from host to guest [-net user]
-bt hci,null dumb bluetooth HCI - doesn't respond to commands
-bt hci,host[:id]
use host's HCI with the given name
-bt hci[,vlan=n]
emulate a standard HCI in virtual scatternet 'n'
-bt vhci[,vlan=n]
add host computer to virtual scatternet 'n' using VHCI
-bt device:dev[,vlan=n]
emulate a bluetooth device 'dev' in scatternet 'n'
i386 target only:
-win2k-hack use it when installing Windows 2000 to avoid a disk full bug
-rtc-td-hack use it to fix time drift in Windows ACPI HAL
-no-fd-bootchk disable boot signature checking for floppy disks
-no-acpi disable ACPI
-no-hpet disable HPET
-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,data=file1[:file2]...]
ACPI table description
Linux boot specific:
-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 serial port to char device 'dev'
-parallel dev redirect the parallel port to char device 'dev'
-monitor dev redirect the monitor to char device 'dev'
-pidfile file write PID to 'file'
-S freeze CPU at startup (use 'c' to start execution)
-s wait gdb connection to port
-p port set gdb connection port [default=1234]
-d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items)
-hdachs c,h,s[,t]
force hard disk 0 physical geometry and the optional BIOS
translation (t=none or lba) (usually qemu can guess them)
-L path set the directory for the BIOS, VGA BIOS and keymaps
-bios file set the filename for the BIOS
-no-kvm disable KVM hardware virtualization
-no-kvm-irqchip disable KVM kernel mode PIC/IOAPIC/LAPIC
-no-kvm-pit disable KVM kernel mode PIT
-no-kvm-pit-reinjection disable KVM kernel mode PIT interrupt reinjection
-enable-nesting enable support for running a VM inside the VM (AMD only)
-pcidevice host=bus:dev.func[,dma=none][,name=string]
expose a PCI device to the guest OS.
dma=none: don't perform any dma translations (default is to use an iommu)
'string' is used in log output.
-no-reboot exit instead of rebooting
-no-shutdown stop before shutdown
-loadvm [tag|id]
start right away with a saved state (loadvm in monitor)
-daemonize daemonize QEMU after initializing
-tdf inject timer interrupts that got lost
-kvm-shadow-memory megs set the amount of shadow pages to be allocated
-mem-path set the path to hugetlbfs/tmpfs mounted directory, also
enables allocation of guest memory with huge pages
-mem-prealloc toggles preallocation of -mem-path backed physical memory
at startup. Default is enabled.
-option-rom rom load a file, rom, into the option ROM space
-clock force the use of the given methods for timer alarm.
To see what timers are available use -clock ?
-localtime set the real time clock to local time [default=utc]
-startdate select initial date of the clock
-icount [N|auto]
enable virtual instruction counter with 2^N clock ticks per instruction
-echr chr set terminal escape character instead of ctrl-a
-virtioconsole c
set virtio console
-show-cursor show cursor
-tb-size n set TB size
-incoming p prepare for incoming migration, listen on port p
-chroot dir Chroot to dir just before starting the VM.
-runas user Change to user id user just before starting the VM.
During emulation, the following keys are useful:
ctrl-alt-f toggle full screen
ctrl-alt-n switch to virtual console 'n'
ctrl-alt toggle mouse and keyboard grab
When using -nographic, press 'ctrl-a h' to get some help.
#include <config.h>
#ifdef WITH_QEMU
#include <stdio.h>
#include <stdlib.h>
#include "testutils.h"
#include "qemu_conf.h"
#define MAX_HELP_OUTPUT_SIZE 1024*64
struct testInfo {
const char *name;
unsigned flags;
unsigned version;
unsigned is_kvm;
unsigned kvm_version;
};
static char *progname;
static char *abs_srcdir;
static int testHelpStrParsing(const void *data)
{
const struct testInfo *info = data;
char path[PATH_MAX];
char helpStr[MAX_HELP_OUTPUT_SIZE];
char *help = &(helpStr[0]);
unsigned flags, version, is_kvm, kvm_version;
snprintf(path, PATH_MAX, "%s/qemuhelpdata/%s", abs_srcdir, info->name);
if (virtTestLoadFile(path, &help, MAX_HELP_OUTPUT_SIZE) < 0)
return -1;
if (qemudParseHelpStr(help, &flags, &version, &is_kvm, &kvm_version) == -1)
return -1;
if (flags != info->flags) {
fprintf(stderr, "Computed flags do not match: got 0x%x, expected 0x%x\n",
flags, info->flags);
return -1;
}
if (version != info->version) {
fprintf(stderr, "Parsed versions do not match: got %u, expected %u\n",
version, info->version);
return -1;
}
if (is_kvm != info->is_kvm) {
fprintf(stderr, "Parsed is_kvm flag does not match: got %u, expected %u\n",
is_kvm, info->is_kvm);
return -1;
}
if (kvm_version != kvm_version) {
fprintf(stderr, "Parsed KVM versions do not match: got %u, expected %u\n",
version, kvm_version);
return -1;
}
return 0;
}
static int
mymain(int argc, char **argv)
{
int ret = 0;
char cwd[PATH_MAX];
progname = argv[0];
if (argc > 1) {
fprintf(stderr, "Usage: %s\n", progname);
return (EXIT_FAILURE);
}
abs_srcdir = getenv("abs_srcdir");
if (!abs_srcdir)
abs_srcdir = getcwd(cwd, sizeof(cwd));
#define DO_TEST(name, flags, version, is_kvm, kvm_version) \
do { \
const struct testInfo info = { name, flags, version, is_kvm, kvm_version }; \
if (virtTestRun("QEMU Help String Parsing " name, \
1, testHelpStrParsing, &info) < 0) \
ret = -1; \
} while (0)
DO_TEST("qemu-0.9.1", 0x002f, 9001, 0, 0);
DO_TEST("kvm-74", 0x233e, 9001, 1, 74);
DO_TEST("qemu-0.10.5", 0x1c6f, 10005, 0, 0);
DO_TEST("qemu-kvm-0.10.5", 0x3d7e, 10005, 1, 0);
DO_TEST("kvm-86", 0x3d7e, 10050, 1, 0);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
VIRT_TEST_MAIN(mymain)
#else
int main (void) { return (77); /* means 'test skipped' for automake */ }
#endif /* WITH_QEMU */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册