-device piix3-usb-uhci -device usb-tablet -name primary \
-netdev tap,id=hn0,vhost=off,helper=/usr/lib/qemu/qemu-bridge-helper \
-device rtl8139,id=e0,netdev=hn0 \
- -chardev socket,id=mirror0,host=0.0.0.0,port=9003,server,nowait \
- -chardev socket,id=compare1,host=0.0.0.0,port=9004,server,wait \
- -chardev socket,id=compare0,host=127.0.0.1,port=9001,server,nowait \
+ -chardev socket,id=mirror0,host=0.0.0.0,port=9003,server=on,wait=off \
+ -chardev socket,id=compare1,host=0.0.0.0,port=9004,server=on,wait=on \
+ -chardev socket,id=compare0,host=127.0.0.1,port=9001,server=on,wait=off \
-chardev socket,id=compare0-0,host=127.0.0.1,port=9001 \
- -chardev socket,id=compare_out,host=127.0.0.1,port=9005,server,nowait \
+ -chardev socket,id=compare_out,host=127.0.0.1,port=9005,server=on,wait=off \
-chardev socket,id=compare_out0,host=127.0.0.1,port=9005 \
-object filter-mirror,id=m0,netdev=hn0,queue=tx,outdev=mirror0 \
-object filter-redirector,netdev=hn0,id=redire0,queue=rx,indev=compare_out \
on the host specify the ccid-card-passthru device with a suitable chardev:
- qemu -chardev socket,server,host=0.0.0.0,port=2001,id=ccid,nowait -usb -device usb-ccid -device ccid-card-passthru,chardev=ccid
+ qemu -chardev socket,server=on,host=0.0.0.0,port=2001,id=ccid,wait=off \
+ -usb -device usb-ccid -device ccid-card-passthru,chardev=ccid
on the client run vscclient, built when you built QEMU:
Run qemu as per #5, and run vscclient from the "fake-smartcard"
directory as follows:
- qemu -chardev socket,server,host=0.0.0.0,port=2001,id=ccid,nowait -usb -device usb-ccid -device ccid-card-passthru,chardev=ccid
+ qemu -chardev socket,server=on,host=0.0.0.0,port=2001,id=ccid,wait=off \
+ -usb -device usb-ccid -device ccid-card-passthru,chardev=ccid
vscclient -e "db=\"sql:$PWD\" use_hw=no soft=(,Test,CAC,,id-cert,signing-cert,encryption-cert)" <qemu-host> 2001
Primary(ip:3.3.3.3):
-netdev tap,id=hn0,vhost=off,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown
-device e1000,id=e0,netdev=hn0,mac=52:a4:00:12:78:66
--chardev socket,id=mirror0,host=3.3.3.3,port=9003,server,nowait
--chardev socket,id=compare1,host=3.3.3.3,port=9004,server,nowait
--chardev socket,id=compare0,host=3.3.3.3,port=9001,server,nowait
+-chardev socket,id=mirror0,host=3.3.3.3,port=9003,server=on,wait=off
+-chardev socket,id=compare1,host=3.3.3.3,port=9004,server=on,wait=off
+-chardev socket,id=compare0,host=3.3.3.3,port=9001,server=on,wait=off
-chardev socket,id=compare0-0,host=3.3.3.3,port=9001
--chardev socket,id=compare_out,host=3.3.3.3,port=9005,server,nowait
+-chardev socket,id=compare_out,host=3.3.3.3,port=9005,server=on,wait=off
-chardev socket,id=compare_out0,host=3.3.3.3,port=9005
-object iothread,id=iothread1
-object filter-mirror,id=m0,netdev=hn0,queue=tx,outdev=mirror0
Primary(ip:3.3.3.3):
-netdev tap,id=hn0,vhost=off,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown
-device e1000,id=e0,netdev=hn0,mac=52:a4:00:12:78:66
--chardev socket,id=mirror0,host=3.3.3.3,port=9003,server,nowait
--chardev socket,id=compare1,host=3.3.3.3,port=9004,server,nowait
--chardev socket,id=compare0,host=3.3.3.3,port=9001,server,nowait
+-chardev socket,id=mirror0,host=3.3.3.3,port=9003,server=on,wait=off
+-chardev socket,id=compare1,host=3.3.3.3,port=9004,server=on,wait=off
+-chardev socket,id=compare0,host=3.3.3.3,port=9001,server=on,wait=off
-chardev socket,id=compare0-0,host=3.3.3.3,port=9001
--chardev socket,id=compare_out,host=3.3.3.3,port=9005,server,nowait
+-chardev socket,id=compare_out,host=3.3.3.3,port=9005,server=on,wait=off
-chardev socket,id=compare_out0,host=3.3.3.3,port=9005
-object filter-mirror,id=m0,netdev=hn0,queue=tx,outdev=mirror0,vnet_hdr_support
-object filter-redirector,netdev=hn0,id=redire0,queue=rx,indev=compare_out,vnet_hdr_support
First, QEMU should be started like this:
# qemu-system-TARGET [...] \
- -chardev socket,id=qmp,port=4444,host=localhost,server \
+ -chardev socket,id=qmp,port=4444,host=localhost,server=on \
-mon chardev=qmp,mode=control,pretty=on
Then, in a different terminal:
-M q35 -nodefaults -m 512 \
-blockdev node-name=node-A,driver=qcow2,file.driver=file,file.node-name=file,file.filename=./a.qcow2 \
-device virtio-blk,drive=node-A,id=virtio0 \
- -monitor stdio -qmp unix:/tmp/qmp-sock,server,nowait
+ -monitor stdio -qmp unix:/tmp/qmp-sock,server=on,wait=off
The ``-blockdev`` command-line option, used above, is available from
QEMU 2.9 onwards. In the above invocation, notice the ``node-name``
-M q35 -nodefaults -m 512 \
-blockdev node-name=node-TargetDisk,driver=qcow2,file.driver=file,file.node-name=file,file.filename=./target-disk.qcow2 \
-device virtio-blk,drive=node-TargetDisk,id=virtio0 \
- -S -monitor stdio -qmp unix:./qmp-sock2,server,nowait \
+ -S -monitor stdio -qmp unix:./qmp-sock2,server=on,wait=off \
-incoming tcp:localhost:6666
Given the disk image chain on source QEMU::
You can use the -qmp option to enable QMP. For example, the following
makes QMP available on localhost port 4444:
-$ qemu [...] -qmp tcp:localhost:4444,server,nowait
+$ qemu [...] -qmp tcp:localhost:4444,server=on,wait=off
However, for more flexibility and to make use of more options, the -mon
command-line option should be used. For instance, the following example
on localhost port 4444:
$ qemu [...] -chardev stdio,id=mon0 -mon chardev=mon0,mode=readline \
- -chardev socket,id=mon1,host=localhost,port=4444,server,nowait \
+ -chardev socket,id=mon1,host=localhost,port=4444,server=on,wait=off \
-mon chardev=mon1,mode=control,pretty=on
Please, refer to QEMU's manpage for more information.
$ qemu-system-x86_64 -display none -no-user-config -m 2048 \
-nodefaults -monitor stdio -machine pc,accel=kvm,usb=off \
-smp 1,maxcpus=2 -cpu IvyBridge-IBRS \
- -qmp unix:/tmp/qmp-sock,server,nowait
+ -qmp unix:/tmp/qmp-sock,server=on,wait=off
(2) Run 'qmp-shell' (located in the source tree, under: "scripts/qmp/)
to connect to the just-launched QEMU::
* Add a ``tn3270`` chardev and a ``x-terminal3270`` to the QEMU command line::
- -chardev socket,id=ch0,host=0.0.0.0,port=2300,nowait,server,tn3270
+ -chardev socket,id=ch0,host=0.0.0.0,port=2300,wait=off,server=on,tn3270=on
-device x-terminal3270,chardev=ch0,devno=fe.0.000a,id=terminal0
* Start the guest. In the guest, use ``chccwdev -e 0.0.000a`` to enable
- Continuous non interrupted execution with serial output into telnet window::
qemu-system-avr -M mega2560 -bios demo.elf -nographic \
- -serial tcp::5678,server,nowait
+ -serial tcp::5678,server=on,wait=off
and then in another shell::
a description of character device properties. A common character device
definition configures a UNIX domain socket::
- --chardev socket,id=char1,path=/tmp/qmp.sock,server,nowait
+ --chardev socket,id=char1,path=/tmp/qmp.sock,server=on,wait=off
.. option:: --export [type=]nbd,id=<id>,node-name=<node-name>[,name=<export-name>][,writable=on|off][,bitmap=<name>]
--export [type=]vhost-user-blk,id=<id>,node-name=<node-name>,addr.type=unix,addr.path=<socket-path>[,writable=on|off][,logical-block-size=<block-size>][,num-queues=<num-queues>]
QMP commands::
$ qemu-storage-daemon \
- --chardev socket,path=qmp.sock,server,nowait,id=char1 \
+ --chardev socket,path=qmp.sock,server=on,wait=off,id=char1 \
--monitor chardev=char1
Export raw image file ``disk.img`` over NBD UNIX domain socket ``nbd.sock``::
#
# Start QEMU with:
#
-# # qemu [...] -chardev socket,path=/tmp/qga.sock,server,nowait,id=qga0 \
+# # qemu [...] -chardev socket,path=/tmp/qga.sock,server=on,wait=off,id=qga0 \
# -device virtio-serial -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0
#
# Run the script:
g_setenv("QTEST_SILENT_ERRORS", "1", 1);
/*
- * We rely on config->addr containing "nowait", otherwise
+ * We rely on config->addr containing "wait=off", otherwise
* qemu_chr_new() will block until a client connects. We
* can't spawn our client thread though, because until
* qemu_chr_new() returns we don't know what TCP port was
g_setenv("QTEST_SILENT_ERRORS", "1", 1);
/*
- * We rely on addr containing "nowait", otherwise
+ * We rely on addr containing "wait=off", otherwise
* qemu_chr_new() will block until a client connects. We
* can't spawn our client thread though, because until
* qemu_chr_new() returns we don't know what TCP port was