qemu: Add support for -no-user-config
so newer cpu models can be used.
Thanks: Philipp Kern for his report and testing
Closes: #699813
Guido Günther
11 years ago
0 | From: Jiri Denemark <jdenemar@redhat.com> | |
1 | Date: Thu, 26 Apr 2012 12:11:49 +0200 | |
2 | Subject: qemu: Add support for -no-user-config | |
3 | ||
4 | Thanks to this new option we are now able to use modern CPU models (such | |
5 | as Westmere) defined in external configuration file. | |
6 | ||
7 | The qemu-1.1{,-device} data files for qemuhelptest are filled in with | |
8 | qemu-1.1-rc2 output for now. I will update those files with real | |
9 | qemu-1.1 output once it is released. | |
10 | --- | |
11 | cfg.mk | 3 +- | |
12 | src/qemu/qemu_capabilities.c | 7 +- | |
13 | src/qemu/qemu_capabilities.h | 1 + | |
14 | src/qemu/qemu_command.c | 11 +- | |
15 | src/qemu/qemu_driver.c | 2 +- | |
16 | tests/qemuhelpdata/qemu-1.1 | 268 ++++++++++++++++++++++++++++++++++++ | |
17 | tests/qemuhelpdata/qemu-1.1-device | 160 +++++++++++++++++++++ | |
18 | tests/qemuhelptest.c | 75 ++++++++++ | |
19 | 8 files changed, 519 insertions(+), 8 deletions(-) | |
20 | create mode 100644 tests/qemuhelpdata/qemu-1.1 | |
21 | create mode 100644 tests/qemuhelpdata/qemu-1.1-device | |
22 | ||
23 | diff --git a/cfg.mk b/cfg.mk | |
24 | index 9dab3c3..67141a9 100644 | |
25 | --- a/cfg.mk | |
26 | +++ b/cfg.mk | |
27 | @@ -823,7 +823,8 @@ exclude_file_name_regexp--sc_require_config_h = ^examples/ | |
28 | ||
29 | exclude_file_name_regexp--sc_require_config_h_first = ^examples/ | |
30 | ||
31 | -exclude_file_name_regexp--sc_trailing_blank = \.(fig|gif|ico|png)$$ | |
32 | +exclude_file_name_regexp--sc_trailing_blank = \ | |
33 | + (/qemuhelpdata/|\.(fig|gif|ico|png)$$) | |
34 | ||
35 | exclude_file_name_regexp--sc_unmarked_diagnostics = \ | |
36 | ^(docs/apibuild.py|tests/virt-aa-helper-test)$$ | |
37 | diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c | |
38 | index 6e5165b..a3c87d1 100644 | |
39 | --- a/src/qemu/qemu_capabilities.c | |
40 | +++ b/src/qemu/qemu_capabilities.c | |
41 | @@ -161,6 +161,7 @@ VIR_ENUM_IMPL(qemuCaps, QEMU_CAPS_LAST, | |
42 | "block-job-async", | |
43 | "scsi-cd", | |
44 | "ide-cd", | |
45 | + "no-user-config", | |
46 | ); | |
47 | ||
48 | struct qemu_feature_flags { | |
49 | @@ -1082,6 +1083,8 @@ qemuCapsComputeCmdFlags(const char *help, | |
50 | } | |
51 | if (strstr(help, "-nodefconfig")) | |
52 | qemuCapsSet(flags, QEMU_CAPS_NODEFCONFIG); | |
53 | + if (strstr(help, "-no-user-config")) | |
54 | + qemuCapsSet(flags, QEMU_CAPS_NO_USER_CONFIG); | |
55 | /* The trailing ' ' is important to avoid a bogus match */ | |
56 | if (strstr(help, "-rtc ")) | |
57 | qemuCapsSet(flags, QEMU_CAPS_RTC); | |
58 | @@ -1634,7 +1637,9 @@ qemuCapsProbeCommand(const char *qemu, | |
59 | virCommandPtr cmd = virCommandNew(qemu); | |
60 | ||
61 | if (qemuCaps) { | |
62 | - if (qemuCapsGet(qemuCaps, QEMU_CAPS_NODEFCONFIG)) | |
63 | + if (qemuCapsGet(qemuCaps, QEMU_CAPS_NO_USER_CONFIG)) | |
64 | + virCommandAddArg(cmd, "-no-user-config"); | |
65 | + else if (qemuCapsGet(qemuCaps, QEMU_CAPS_NODEFCONFIG)) | |
66 | virCommandAddArg(cmd, "-nodefconfig"); | |
67 | } | |
68 | ||
69 | diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h | |
70 | index 7a6c5a0..0e0899e 100644 | |
71 | --- a/src/qemu/qemu_capabilities.h | |
72 | +++ b/src/qemu/qemu_capabilities.h | |
73 | @@ -129,6 +129,7 @@ enum qemuCapsFlags { | |
74 | QEMU_CAPS_BLOCKJOB_ASYNC = 91, /* qemu 1.1 block-job-cancel */ | |
75 | QEMU_CAPS_SCSI_CD = 92, /* -device scsi-cd */ | |
76 | QEMU_CAPS_IDE_CD = 93, /* -device ide-cd */ | |
77 | + QEMU_CAPS_NO_USER_CONFIG = 94, /* -no-user-config */ | |
78 | ||
79 | QEMU_CAPS_LAST, /* this must always be the last item */ | |
80 | }; | |
81 | diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c | |
82 | index 117542f..8d14d41 100644 | |
83 | --- a/src/qemu/qemu_command.c | |
84 | +++ b/src/qemu/qemu_command.c | |
85 | @@ -4237,11 +4237,12 @@ qemuBuildCommandLine(virConnectPtr conn, | |
86 | virCommandAddArg(cmd, "-nographic"); | |
87 | ||
88 | if (qemuCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) { | |
89 | - if (qemuCapsGet(qemuCaps, QEMU_CAPS_NODEFCONFIG)) | |
90 | - virCommandAddArg(cmd, | |
91 | - "-nodefconfig"); /* Disable global config files */ | |
92 | - virCommandAddArg(cmd, | |
93 | - "-nodefaults"); /* Disable default guest devices */ | |
94 | + /* Disable global config files and default devices */ | |
95 | + if (qemuCapsGet(qemuCaps, QEMU_CAPS_NO_USER_CONFIG)) | |
96 | + virCommandAddArg(cmd, "-no-user-config"); | |
97 | + else if (qemuCapsGet(qemuCaps, QEMU_CAPS_NODEFCONFIG)) | |
98 | + virCommandAddArg(cmd, "-nodefconfig"); | |
99 | + virCommandAddArg(cmd, "-nodefaults"); | |
100 | } | |
101 | ||
102 | /* Serial graphics adapter */ | |
103 | diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c | |
104 | index 385b861..0053ed1 100644 | |
105 | --- a/src/qemu/qemu_driver.c | |
106 | +++ b/src/qemu/qemu_driver.c | |
107 | @@ -4898,7 +4898,7 @@ qemudCanonicalizeMachineDirect(virDomainDefPtr def, char **canonical) | |
108 | int i, nmachines = 0; | |
109 | ||
110 | /* XXX we should be checking emulator capabilities and pass them instead | |
111 | - * of NULL so that -nodefconfig is properly added when | |
112 | + * of NULL so that -nodefconfig or -no-user-config is properly added when | |
113 | * probing machine types. Luckily, qemu does not support specifying new | |
114 | * machine types in its configuration files yet, which means passing this | |
115 | * additional parameter makes no difference now. | |
116 | diff --git a/tests/qemuhelpdata/qemu-1.1 b/tests/qemuhelpdata/qemu-1.1 | |
117 | new file mode 100644 | |
118 | index 0000000..79bc8ba | |
119 | --- /dev/null | |
120 | +++ b/tests/qemuhelpdata/qemu-1.1 | |
121 | @@ -0,0 +1,268 @@ | |
122 | +QEMU emulator version 1.0.92, Copyright (c) 2003-2008 Fabrice Bellard | |
123 | +usage: qemu-system-x86_64 [options] [disk_image] | |
124 | + | |
125 | +'disk_image' is a raw hard disk image for IDE hard disk 0 | |
126 | + | |
127 | +Standard options: | |
128 | +-h or -help display this help and exit | |
129 | +-version display version information and exit | |
130 | +-machine [type=]name[,prop[=value][,...]] | |
131 | + selects emulated machine (-machine ? for list) | |
132 | + property accel=accel1[:accel2[:...]] selects accelerator | |
133 | + supported accelerators are kvm, xen, tcg (default: tcg) | |
134 | + kernel_irqchip=on|off controls accelerated irqchip support | |
135 | + kvm_shadow_mem=size of KVM shadow MMU | |
136 | +-cpu cpu select CPU (-cpu ? for list) | |
137 | +-smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets] | |
138 | + set the number of CPUs to 'n' [default=1] | |
139 | + maxcpus= maximum number of total cpus, including | |
140 | + offline CPUs for hotplug, etc | |
141 | + cores= number of CPU cores on one socket | |
142 | + threads= number of threads on one CPU core | |
143 | + sockets= number of discrete sockets in the system | |
144 | +-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node] | |
145 | +-fda/-fdb file use 'file' as floppy disk 0/1 image | |
146 | +-hda/-hdb file use 'file' as IDE hard disk 0/1 image | |
147 | +-hdc/-hdd file use 'file' as IDE hard disk 2/3 image | |
148 | +-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master) | |
149 | +-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i] | |
150 | + [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off] | |
151 | + [,cache=writethrough|writeback|none|directsync|unsafe][,format=f] | |
152 | + [,serial=s][,addr=A][,id=name][,aio=threads|native] | |
153 | + [,readonly=on|off][,copy-on-read=on|off] | |
154 | + [[,bps=b]|[[,bps_rd=r][,bps_wr=w]]][[,iops=i]|[[,iops_rd=r][,iops_wr=w]] | |
155 | + use 'file' as a drive image | |
156 | +-set group.id.arg=value | |
157 | + set <arg> parameter for item <id> of type <group> | |
158 | + i.e. -set drive.$id.file=/path/to/image | |
159 | +-global driver.prop=value | |
160 | + set a global default for a driver property | |
161 | +-mtdblock file use 'file' as on-board Flash memory image | |
162 | +-sd file use 'file' as SecureDigital card image | |
163 | +-pflash file use 'file' as a parallel flash image | |
164 | +-boot [order=drives][,once=drives][,menu=on|off] | |
165 | + [,splash=sp_name][,splash-time=sp_time] | |
166 | + 'drives': floppy (a), hard disk (c), CD-ROM (d), network (n) | |
167 | + 'sp_name': the file's name that would be passed to bios as logo picture, if menu=on | |
168 | + 'sp_time': the period that splash picture last if menu=on, unit is ms | |
169 | +-snapshot write to temporary files instead of disk image files | |
170 | +-m megs set virtual RAM size to megs MB [default=128] | |
171 | +-mem-path FILE provide backing storage for guest RAM | |
172 | +-mem-prealloc preallocate guest memory (use with -mem-path) | |
173 | +-k language use keyboard layout (for example 'fr' for French) | |
174 | +-audio-help print list of audio drivers and their options | |
175 | +-soundhw c1,... enable audio support | |
176 | + and only specified sound cards (comma separated list) | |
177 | + use -soundhw ? to get the list of supported cards | |
178 | + use -soundhw all to enable all of them | |
179 | +-balloon none disable balloon device | |
180 | +-balloon virtio[,addr=str] | |
181 | + enable virtio balloon device (default) | |
182 | +-usb enable the USB driver (will be the default soon) | |
183 | +-usbdevice name add the host or guest USB device 'name' | |
184 | +-device driver[,prop[=value][,...]] | |
185 | + add device (based on driver) | |
186 | + prop=value,... sets driver properties | |
187 | + use -device ? to print all possible drivers | |
188 | + use -device driver,? to print all possible properties | |
189 | + | |
190 | +File system options: | |
191 | +-fsdev fsdriver,id=id[,path=path,][security_model={mapped-xattr|mapped-file|passthrough|none}] | |
192 | + [,writeout=immediate][,readonly][,socket=socket|sock_fd=sock_fd] | |
193 | + | |
194 | +Virtual File system pass-through options: | |
195 | +-virtfs local,path=path,mount_tag=tag,security_model=[mapped-xattr|mapped-file|passthrough|none] | |
196 | + [,writeout=immediate][,readonly][,socket=socket|sock_fd=sock_fd] | |
197 | +-virtfs_synth Create synthetic file system image | |
198 | + | |
199 | +-name string1[,process=string2] | |
200 | + set the name of the guest | |
201 | + string1 sets the window title and string2 the process name (on Linux) | |
202 | +-uuid %08x-%04x-%04x-%04x-%012x | |
203 | + specify machine UUID | |
204 | + | |
205 | +Display options: | |
206 | +-display sdl[,frame=on|off][,alt_grab=on|off][,ctrl_grab=on|off] | |
207 | + [,window_close=on|off]|curses|none| | |
208 | + vnc=<display>[,<optargs>] | |
209 | + select display type | |
210 | +-nographic disable graphical output and redirect serial I/Os to console | |
211 | +-curses use a curses/ncurses interface instead of SDL | |
212 | +-no-frame open SDL window without a frame and window decorations | |
213 | +-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt) | |
214 | +-ctrl-grab use Right-Ctrl to grab mouse (instead of Ctrl-Alt) | |
215 | +-no-quit disable SDL window close capability | |
216 | +-sdl enable SDL | |
217 | +-spice <args> enable spice | |
218 | +-portrait rotate graphical output 90 deg left (only PXA LCD) | |
219 | +-rotate <deg> rotate graphical output some deg left (only PXA LCD) | |
220 | +-vga [std|cirrus|vmware|qxl|xenfb|none] | |
221 | + select video card type | |
222 | +-full-screen start in full screen | |
223 | +-vnc display start a VNC server on display | |
224 | + | |
225 | +i386 target only: | |
226 | +-win2k-hack use it when installing Windows 2000 to avoid a disk full bug | |
227 | +-no-fd-bootchk disable boot signature checking for floppy disks | |
228 | +-no-acpi disable ACPI | |
229 | +-no-hpet disable HPET | |
230 | +-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,{data|file}=file1[:file2]...] | |
231 | + ACPI table description | |
232 | +-smbios file=binary | |
233 | + load SMBIOS entry from binary file | |
234 | +-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d] | |
235 | + specify SMBIOS type 0 fields | |
236 | +-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str] | |
237 | + [,uuid=uuid][,sku=str][,family=str] | |
238 | + specify SMBIOS type 1 fields | |
239 | + | |
240 | +Network options: | |
241 | +-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v] | |
242 | + create a new Network Interface Card and connect it to VLAN 'n' | |
243 | +-net user[,vlan=n][,name=str][,net=addr[/mask]][,host=addr][,restrict=on|off] | |
244 | + [,hostname=host][,dhcpstart=addr][,dns=addr][,tftp=dir][,bootfile=f] | |
245 | + [,hostfwd=rule][,guestfwd=rule][,smb=dir[,smbserver=addr]] | |
246 | + connect the user mode network stack to VLAN 'n', configure its | |
247 | + DHCP server and enabled optional services | |
248 | +-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,helper=helper][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostforce=on|off] | |
249 | + connect the host TAP network interface to VLAN 'n' | |
250 | + use network scripts 'file' (default=/etc/qemu-ifup) | |
251 | + to configure it and 'dfile' (default=/etc/qemu-ifdown) | |
252 | + to deconfigure it | |
253 | + use '[down]script=no' to disable script execution | |
254 | + use network helper 'helper' (default=/usr/libexec/qemu-bridge-helper) to | |
255 | + configure it | |
256 | + use 'fd=h' to connect to an already opened TAP interface | |
257 | + use 'sndbuf=nbytes' to limit the size of the send buffer (the | |
258 | + default is disabled 'sndbuf=0' to enable flow control set 'sndbuf=1048576') | |
259 | + use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag | |
260 | + use vnet_hdr=on to make the lack of IFF_VNET_HDR support an error condition | |
261 | + use vhost=on to enable experimental in kernel accelerator | |
262 | + (only has effect for virtio guests which use MSIX) | |
263 | + use vhostforce=on to force vhost on for non-MSIX virtio guests | |
264 | + use 'vhostfd=h' to connect to an already opened vhost net device | |
265 | +-net bridge[,vlan=n][,name=str][,br=bridge][,helper=helper] | |
266 | + connects a host TAP network interface to a host bridge device 'br' | |
267 | + (default=br0) using the program 'helper' | |
268 | + (default=/usr/libexec/qemu-bridge-helper) | |
269 | +-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port] | |
270 | + connect the vlan 'n' to another VLAN using a socket connection | |
271 | +-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port[,localaddr=addr]] | |
272 | + connect the vlan 'n' to multicast maddr and port | |
273 | + use 'localaddr=addr' to specify the host address to send packets from | |
274 | +-net socket[,vlan=n][,name=str][,fd=h][,udp=host:port][,localaddr=host:port] | |
275 | + connect the vlan 'n' to another VLAN using an UDP tunnel | |
276 | +-net dump[,vlan=n][,file=f][,len=n] | |
277 | + dump traffic on vlan 'n' to file 'f' (max n bytes per packet) | |
278 | +-net none use it alone to have zero network devices. If no -net option | |
279 | + is provided, the default is '-net nic -net user' | |
280 | +-netdev [user|tap|bridge|socket],id=str[,option][,option][,...] | |
281 | + | |
282 | +Character device options: | |
283 | +-chardev null,id=id[,mux=on|off] | |
284 | +-chardev socket,id=id[,host=host],port=host[,to=to][,ipv4][,ipv6][,nodelay] | |
285 | + [,server][,nowait][,telnet][,mux=on|off] (tcp) | |
286 | +-chardev socket,id=id,path=path[,server][,nowait][,telnet],[mux=on|off] (unix) | |
287 | +-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr] | |
288 | + [,localport=localport][,ipv4][,ipv6][,mux=on|off] | |
289 | +-chardev msmouse,id=id[,mux=on|off] | |
290 | +-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]] | |
291 | + [,mux=on|off] | |
292 | +-chardev file,id=id,path=path[,mux=on|off] | |
293 | +-chardev pipe,id=id,path=path[,mux=on|off] | |
294 | +-chardev pty,id=id[,mux=on|off] | |
295 | +-chardev stdio,id=id[,mux=on|off][,signal=on|off] | |
296 | +-chardev tty,id=id,path=path[,mux=on|off] | |
297 | +-chardev parport,id=id,path=path[,mux=on|off] | |
298 | +-chardev spicevmc,id=id,name=name[,debug=debug] | |
299 | + | |
300 | +-iscsi [user=user][,password=password] | |
301 | + [,header-digest=CRC32C|CR32C-NONE|NONE-CRC32C|NONE | |
302 | + [,initiator-name=iqn] | |
303 | + iSCSI session parameters | |
304 | +Bluetooth(R) options: | |
305 | +-bt hci,null dumb bluetooth HCI - doesn't respond to commands | |
306 | +-bt hci,host[:id] | |
307 | + use host's HCI with the given name | |
308 | +-bt hci[,vlan=n] | |
309 | + emulate a standard HCI in virtual scatternet 'n' | |
310 | +-bt vhci[,vlan=n] | |
311 | + add host computer to virtual scatternet 'n' using VHCI | |
312 | +-bt device:dev[,vlan=n] | |
313 | + emulate a bluetooth device 'dev' in scatternet 'n' | |
314 | + | |
315 | +Linux/Multiboot boot specific: | |
316 | +-kernel bzImage use 'bzImage' as kernel image | |
317 | +-append cmdline use 'cmdline' as kernel command line | |
318 | +-initrd file use 'file' as initial ram disk | |
319 | +-dtb file use 'file' as device tree image | |
320 | + | |
321 | +Debug/Expert options: | |
322 | +-serial dev redirect the serial port to char device 'dev' | |
323 | +-parallel dev redirect the parallel port to char device 'dev' | |
324 | +-monitor dev redirect the monitor to char device 'dev' | |
325 | +-qmp dev like -monitor but opens in 'control' mode | |
326 | +-mon chardev=[name][,mode=readline|control][,default] | |
327 | +-debugcon dev redirect the debug console to char device 'dev' | |
328 | +-pidfile file write PID to 'file' | |
329 | +-singlestep always run in singlestep mode | |
330 | +-S freeze CPU at startup (use 'c' to start execution) | |
331 | +-gdb dev wait for gdb connection on 'dev' | |
332 | +-s shorthand for -gdb tcp::1234 | |
333 | +-d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items) | |
334 | +-D logfile output log to logfile (instead of the default /tmp/qemu.log) | |
335 | +-hdachs c,h,s[,t] | |
336 | + force hard disk 0 physical geometry and the optional BIOS | |
337 | + translation (t=none or lba) (usually QEMU can guess them) | |
338 | +-L path set the directory for the BIOS, VGA BIOS and keymaps | |
339 | +-bios file set the filename for the BIOS | |
340 | +-enable-kvm enable KVM full virtualization support | |
341 | +-xen-domid id specify xen guest domain id | |
342 | +-xen-create create domain using xen hypercalls, bypassing xend | |
343 | + warning: should not be used when xend is in use | |
344 | +-xen-attach attach to existing xen domain | |
345 | + xend will use this when starting QEMU | |
346 | +-no-reboot exit instead of rebooting | |
347 | +-no-shutdown stop before shutdown | |
348 | +-loadvm [tag|id] | |
349 | + start right away with a saved state (loadvm in monitor) | |
350 | +-daemonize daemonize QEMU after initializing | |
351 | +-option-rom rom load a file, rom, into the option ROM space | |
352 | +-clock force the use of the given methods for timer alarm. | |
353 | + To see what timers are available use -clock ? | |
354 | +-rtc [base=utc|localtime|date][,clock=host|rt|vm][,driftfix=none|slew] | |
355 | + set the RTC base and clock, enable drift fix for clock ticks (x86 only) | |
356 | +-icount [N|auto] | |
357 | + enable virtual instruction counter with 2^N clock ticks per | |
358 | + instruction | |
359 | +-watchdog i6300esb|ib700 | |
360 | + enable virtual hardware watchdog [default=none] | |
361 | +-watchdog-action reset|shutdown|poweroff|pause|debug|none | |
362 | + action when watchdog fires [default=reset] | |
363 | +-echr chr set terminal escape character instead of ctrl-a | |
364 | +-virtioconsole c | |
365 | + set virtio console | |
366 | +-show-cursor show cursor | |
367 | +-tb-size n set TB size | |
368 | +-incoming p prepare for incoming migration, listen on port p | |
369 | +-nodefaults don't create default devices | |
370 | +-chroot dir chroot to dir just before starting the VM | |
371 | +-runas user change to user id user just before starting the VM | |
372 | +-readconfig <file> | |
373 | +-writeconfig <file> | |
374 | + read/write config file | |
375 | +-nodefconfig | |
376 | + do not load default config files at startup | |
377 | +-no-user-config | |
378 | + do not load user-provided config files at startup | |
379 | +-trace [events=<file>][,file=<file>] | |
380 | + specify tracing options | |
381 | +-qtest CHR specify tracing options | |
382 | +-qtest-log LOG specify tracing options | |
383 | + | |
384 | +During emulation, the following keys are useful: | |
385 | +ctrl-alt-f toggle full screen | |
386 | +ctrl-alt-n switch to virtual console 'n' | |
387 | +ctrl-alt toggle mouse and keyboard grab | |
388 | + | |
389 | +When using -nographic, press 'ctrl-a h' to get some help. | |
390 | diff --git a/tests/qemuhelpdata/qemu-1.1-device b/tests/qemuhelpdata/qemu-1.1-device | |
391 | new file mode 100644 | |
392 | index 0000000..64aacba | |
393 | --- /dev/null | |
394 | +++ b/tests/qemuhelpdata/qemu-1.1-device | |
395 | @@ -0,0 +1,160 @@ | |
396 | +name "usb-storage", bus USB | |
397 | +name "VGA", bus PCI | |
398 | +name "scsi-hd", bus SCSI, desc "virtual SCSI disk" | |
399 | +name "i82559a", bus PCI, desc "Intel i82559A Ethernet" | |
400 | +name "i82559b", bus PCI, desc "Intel i82559B Ethernet" | |
401 | +name "i82559c", bus PCI, desc "Intel i82559C Ethernet" | |
402 | +name "sysbus-ohci", bus System, desc "OHCI USB Controller" | |
403 | +name "virtio-blk-pci", bus PCI, alias "virtio-blk" | |
404 | +name "qxl-vga", bus PCI, desc "Spice QXL GPU (primary, vga compatible)" | |
405 | +name "x3130-upstream", bus PCI, desc "TI X3130 Upstream Port of PCI Express Switch" | |
406 | +name "ide-drive", bus IDE, desc "virtual IDE disk or CD-ROM (legacy)" | |
407 | +name "virtio-9p-pci", bus PCI | |
408 | +name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA" | |
409 | +name "ide-hd", bus IDE, desc "virtual IDE disk" | |
410 | +name "ES1370", bus PCI, desc "ENSONIQ AudioPCI ES1370" | |
411 | +name "ioh3420", bus PCI, desc "Intel IOH device id 3420 PCIE Root Port" | |
412 | +name "sga", bus ISA, desc "Serial Graphics Adapter" | |
413 | +name "scsi-block", bus SCSI, desc "SCSI block device passthrough" | |
414 | +name "usb-serial", bus USB | |
415 | +name "pc-sysfw", bus System, desc "PC System Firmware" | |
416 | +name "usb-mouse", bus USB | |
417 | +name "usb-net", bus USB | |
418 | +name "usb-hub", bus USB | |
419 | +name "ccid-card-emulated", bus ccid-bus, desc "emulated smartcard" | |
420 | +name "ne2k_isa", bus ISA | |
421 | +name "scsi-generic", bus SCSI, desc "pass through generic scsi device (/dev/sg*)" | |
422 | +name "pcnet", bus PCI | |
423 | +name "lsi53c895a", bus PCI, alias "lsi" | |
424 | +name "scsi-disk", bus SCSI, desc "virtual SCSI disk or CD-ROM (legacy)" | |
425 | +name "nec-usb-xhci", bus PCI | |
426 | +name "xio3130-downstream", bus PCI, desc "TI X3130 Downstream Port of PCI Express Switch" | |
427 | +name "pci-ohci", bus PCI, desc "Apple USB Controller" | |
428 | +name "virtserialport", bus virtio-serial-bus | |
429 | +name "hda-micro", bus HDA, desc "HDA Audio Codec, duplex (speaker, microphone)" | |
430 | +name "usb-braille", bus USB | |
431 | +name "scsi-cd", bus SCSI, desc "virtual SCSI CD-ROM" | |
432 | +name "usb-wacom-tablet", bus USB, desc "QEMU PenPartner Tablet" | |
433 | +name "isa-serial", bus ISA | |
434 | +name "i82550", bus PCI, desc "Intel i82550 Ethernet" | |
435 | +name "i82551", bus PCI, desc "Intel i82551 Ethernet" | |
436 | +name "isa-debugcon", bus ISA | |
437 | +name "ide-cd", bus IDE, desc "virtual IDE CD-ROM" | |
438 | +name "SUNW,fdtwo", bus System | |
439 | +name "ich9-usb-uhci1", bus PCI | |
440 | +name "ich9-usb-uhci2", bus PCI | |
441 | +name "ich9-usb-uhci3", bus PCI | |
442 | +name "isa-parallel", bus ISA | |
443 | +name "virtconsole", bus virtio-serial-bus | |
444 | +name "ne2k_pci", bus PCI | |
445 | +name "virtio-serial-pci", bus PCI, alias "virtio-serial" | |
446 | +name "hda-duplex", bus HDA, desc "HDA Audio Codec, duplex (line-out, line-in)" | |
447 | +name "intel-hda", bus PCI, desc "Intel HD Audio Controller" | |
448 | +name "i82559er", bus PCI, desc "Intel i82559ER Ethernet" | |
449 | +name "hda-output", bus HDA, desc "HDA Audio Codec, output-only (line-out)" | |
450 | +name "i82562", bus PCI, desc "Intel i82562 Ethernet" | |
451 | +name "sysbus-ahci", bus System | |
452 | +name "usb-ccid", bus USB, desc "CCID Rev 1.1 smartcard reader" | |
453 | +name "ivshmem", bus PCI | |
454 | +name "AC97", bus PCI, desc "Intel 82801AA AC97 Audio" | |
455 | +name "e1000", bus PCI, desc "Intel Gigabit Ethernet" | |
456 | +name "sysbus-fdc", bus System | |
457 | +name "usb-bt-dongle", bus USB | |
458 | +name "usb-tablet", bus USB | |
459 | +name "isa-vga", bus ISA | |
460 | +name "usb-kbd", bus USB | |
461 | +name "isa-applesmc", bus ISA | |
462 | +name "ib700", bus ISA | |
463 | +name "rtl8139", bus PCI | |
464 | +name "qxl", bus PCI, desc "Spice QXL GPU (secondary)" | |
465 | +name "i82557a", bus PCI, desc "Intel i82557A Ethernet" | |
466 | +name "i82557b", bus PCI, desc "Intel i82557B Ethernet" | |
467 | +name "i82557c", bus PCI, desc "Intel i82557C Ethernet" | |
468 | +name "usb-audio", bus USB | |
469 | +name "piix3-usb-uhci", bus PCI | |
470 | +name "piix4-usb-uhci", bus PCI | |
471 | +name "ccid-card-passthru", bus ccid-bus, desc "passthrough smartcard" | |
472 | +name "i82801", bus PCI, desc "Intel i82801 Ethernet" | |
473 | +name "smbus-eeprom", bus I2C | |
474 | +name "vmware-svga", bus PCI | |
475 | +name "isa-cirrus-vga", bus ISA | |
476 | +name "sb16", bus ISA, desc "Creative Sound Blaster 16" | |
477 | +name "pci-bridge", bus PCI, desc "Standard PCI Bridge" | |
478 | +name "usb-ehci", bus PCI | |
479 | +name "vt82c686b-usb-uhci", bus PCI | |
480 | +name "i82558a", bus PCI, desc "Intel i82558A Ethernet" | |
481 | +name "virtio-net-pci", bus PCI, alias "virtio-net" | |
482 | +name "virtio-balloon-pci", bus PCI, alias "virtio-balloon" | |
483 | +name "ich9-usb-ehci1", bus PCI | |
484 | +name "isa-ide", bus ISA | |
485 | +name "usb-host", bus USB | |
486 | +name "ich9-ahci", bus PCI, alias "ahci" | |
487 | +name "i6300esb", bus PCI | |
488 | +name "i82558b", bus PCI, desc "Intel i82558B Ethernet" | |
489 | +name "virtio-scsi-pci", bus PCI | |
490 | +virtio-blk-pci.class=hex32 | |
491 | +virtio-blk-pci.drive=drive | |
492 | +virtio-blk-pci.logical_block_size=blocksize | |
493 | +virtio-blk-pci.physical_block_size=blocksize | |
494 | +virtio-blk-pci.min_io_size=uint16 | |
495 | +virtio-blk-pci.opt_io_size=uint32 | |
496 | +virtio-blk-pci.bootindex=int32 | |
497 | +virtio-blk-pci.discard_granularity=uint32 | |
498 | +virtio-blk-pci.serial=string | |
499 | +virtio-blk-pci.ioeventfd=on/off | |
500 | +virtio-blk-pci.vectors=uint32 | |
501 | +virtio-blk-pci.indirect_desc=on/off | |
502 | +virtio-blk-pci.event_idx=on/off | |
503 | +virtio-blk-pci.scsi=on/off | |
504 | +virtio-blk-pci.addr=pci-devfn | |
505 | +virtio-blk-pci.romfile=string | |
506 | +virtio-blk-pci.rombar=uint32 | |
507 | +virtio-blk-pci.multifunction=on/off | |
508 | +virtio-blk-pci.command_serr_enable=on/off | |
509 | +virtio-net-pci.ioeventfd=on/off | |
510 | +virtio-net-pci.vectors=uint32 | |
511 | +virtio-net-pci.indirect_desc=on/off | |
512 | +virtio-net-pci.event_idx=on/off | |
513 | +virtio-net-pci.csum=on/off | |
514 | +virtio-net-pci.guest_csum=on/off | |
515 | +virtio-net-pci.gso=on/off | |
516 | +virtio-net-pci.guest_tso4=on/off | |
517 | +virtio-net-pci.guest_tso6=on/off | |
518 | +virtio-net-pci.guest_ecn=on/off | |
519 | +virtio-net-pci.guest_ufo=on/off | |
520 | +virtio-net-pci.host_tso4=on/off | |
521 | +virtio-net-pci.host_tso6=on/off | |
522 | +virtio-net-pci.host_ecn=on/off | |
523 | +virtio-net-pci.host_ufo=on/off | |
524 | +virtio-net-pci.mrg_rxbuf=on/off | |
525 | +virtio-net-pci.status=on/off | |
526 | +virtio-net-pci.ctrl_vq=on/off | |
527 | +virtio-net-pci.ctrl_rx=on/off | |
528 | +virtio-net-pci.ctrl_vlan=on/off | |
529 | +virtio-net-pci.ctrl_rx_extra=on/off | |
530 | +virtio-net-pci.mac=macaddr | |
531 | +virtio-net-pci.vlan=vlan | |
532 | +virtio-net-pci.netdev=netdev | |
533 | +virtio-net-pci.bootindex=int32 | |
534 | +virtio-net-pci.x-txtimer=uint32 | |
535 | +virtio-net-pci.x-txburst=int32 | |
536 | +virtio-net-pci.tx=string | |
537 | +virtio-net-pci.addr=pci-devfn | |
538 | +virtio-net-pci.romfile=string | |
539 | +virtio-net-pci.rombar=uint32 | |
540 | +virtio-net-pci.multifunction=on/off | |
541 | +virtio-net-pci.command_serr_enable=on/off | |
542 | +scsi-disk.drive=drive | |
543 | +scsi-disk.logical_block_size=blocksize | |
544 | +scsi-disk.physical_block_size=blocksize | |
545 | +scsi-disk.min_io_size=uint16 | |
546 | +scsi-disk.opt_io_size=uint32 | |
547 | +scsi-disk.bootindex=int32 | |
548 | +scsi-disk.discard_granularity=uint32 | |
549 | +scsi-disk.ver=string | |
550 | +scsi-disk.serial=string | |
551 | +scsi-disk.removable=on/off | |
552 | +scsi-disk.dpofua=on/off | |
553 | +scsi-disk.channel=uint32 | |
554 | +scsi-disk.scsi-id=uint32 | |
555 | +scsi-disk.lun=uint32 | |
556 | diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c | |
557 | index d23b35a..57d1859 100644 | |
558 | --- a/tests/qemuhelptest.c | |
559 | +++ b/tests/qemuhelptest.c | |
560 | @@ -678,6 +678,81 @@ mymain(void) | |
561 | QEMU_CAPS_SCSI_BLOCK, | |
562 | QEMU_CAPS_SCSI_CD, | |
563 | QEMU_CAPS_IDE_CD); | |
564 | + DO_TEST("qemu-1.1", 1000092, 0, 0, | |
565 | + QEMU_CAPS_VNC_COLON, | |
566 | + QEMU_CAPS_NO_REBOOT, | |
567 | + QEMU_CAPS_DRIVE, | |
568 | + QEMU_CAPS_NAME, | |
569 | + QEMU_CAPS_UUID, | |
570 | + QEMU_CAPS_MIGRATE_QEMU_TCP, | |
571 | + QEMU_CAPS_MIGRATE_QEMU_EXEC, | |
572 | + QEMU_CAPS_DRIVE_CACHE_V2, | |
573 | + QEMU_CAPS_DRIVE_CACHE_UNSAFE, | |
574 | + QEMU_CAPS_DRIVE_FORMAT, | |
575 | + QEMU_CAPS_DRIVE_SERIAL, | |
576 | + QEMU_CAPS_XEN_DOMID, | |
577 | + QEMU_CAPS_DRIVE_READONLY, | |
578 | + QEMU_CAPS_VGA, | |
579 | + QEMU_CAPS_0_10, | |
580 | + QEMU_CAPS_MEM_PATH, | |
581 | + QEMU_CAPS_SDL, | |
582 | + QEMU_CAPS_MIGRATE_QEMU_UNIX, | |
583 | + QEMU_CAPS_CHARDEV, | |
584 | + QEMU_CAPS_ENABLE_KVM, | |
585 | + QEMU_CAPS_MONITOR_JSON, | |
586 | + QEMU_CAPS_BALLOON, | |
587 | + QEMU_CAPS_DEVICE, | |
588 | + QEMU_CAPS_SMP_TOPOLOGY, | |
589 | + QEMU_CAPS_NETDEV, | |
590 | + QEMU_CAPS_RTC, | |
591 | + QEMU_CAPS_VHOST_NET, | |
592 | + QEMU_CAPS_NO_HPET, | |
593 | + QEMU_CAPS_NODEFCONFIG, | |
594 | + QEMU_CAPS_BOOT_MENU, | |
595 | + QEMU_CAPS_FSDEV, | |
596 | + QEMU_CAPS_NAME_PROCESS, | |
597 | + QEMU_CAPS_SMBIOS_TYPE, | |
598 | + QEMU_CAPS_VGA_QXL, | |
599 | + QEMU_CAPS_SPICE, | |
600 | + QEMU_CAPS_VGA_NONE, | |
601 | + QEMU_CAPS_MIGRATE_QEMU_FD, | |
602 | + QEMU_CAPS_BOOTINDEX, | |
603 | + QEMU_CAPS_HDA_DUPLEX, | |
604 | + QEMU_CAPS_DRIVE_AIO, | |
605 | + QEMU_CAPS_CCID_EMULATED, | |
606 | + QEMU_CAPS_CCID_PASSTHRU, | |
607 | + QEMU_CAPS_CHARDEV_SPICEVMC, | |
608 | + QEMU_CAPS_VIRTIO_TX_ALG, | |
609 | + QEMU_CAPS_DEVICE_QXL_VGA, | |
610 | + QEMU_CAPS_PCI_MULTIFUNCTION, | |
611 | + QEMU_CAPS_VIRTIO_IOEVENTFD, | |
612 | + QEMU_CAPS_SGA, | |
613 | + QEMU_CAPS_VIRTIO_BLK_EVENT_IDX, | |
614 | + QEMU_CAPS_VIRTIO_NET_EVENT_IDX, | |
615 | + QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC, | |
616 | + QEMU_CAPS_PIIX3_USB_UHCI, | |
617 | + QEMU_CAPS_PIIX4_USB_UHCI, | |
618 | + QEMU_CAPS_USB_EHCI, | |
619 | + QEMU_CAPS_ICH9_USB_EHCI1, | |
620 | + QEMU_CAPS_VT82C686B_USB_UHCI, | |
621 | + QEMU_CAPS_PCI_OHCI, | |
622 | + QEMU_CAPS_USB_HUB, | |
623 | + QEMU_CAPS_NO_SHUTDOWN, | |
624 | + QEMU_CAPS_PCI_ROMBAR, | |
625 | + QEMU_CAPS_ICH9_AHCI, | |
626 | + QEMU_CAPS_NO_ACPI, | |
627 | + QEMU_CAPS_FSDEV_READONLY, | |
628 | + QEMU_CAPS_VIRTIO_BLK_SCSI, | |
629 | + QEMU_CAPS_VIRTIO_BLK_SG_IO, | |
630 | + QEMU_CAPS_DRIVE_COPY_ON_READ, | |
631 | + QEMU_CAPS_CPU_HOST, | |
632 | + QEMU_CAPS_FSDEV_WRITEOUT, | |
633 | + QEMU_CAPS_DRIVE_IOTUNE, | |
634 | + QEMU_CAPS_SCSI_DISK_CHANNEL, | |
635 | + QEMU_CAPS_SCSI_BLOCK, | |
636 | + QEMU_CAPS_SCSI_CD, | |
637 | + QEMU_CAPS_IDE_CD, | |
638 | + QEMU_CAPS_NO_USER_CONFIG); | |
639 | ||
640 | return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; | |
641 | } |