8593898109
qemu.org is held by a third-party and no core community contributor has access to the DNS configuration. This leaves the website exposed to outages due to DNS issues or IP address changes. For example, if the web server IP address needs to change we cannot guarantee qemu.org will point to it! The newer qemu-project.org domain name is owned by Anthony Liguori <anthony@codemonkey.ws>. You can confirm this by querying the whois information. Also note that the #qemu IRC channel topic already references qemu-project.org. Short of having a dedicated legal entity to hold the domain name on behalf of the community, qemu-project.org seems like the safest bet. Let's replace references to qemu.org with qemu-project.org. Note that git-submodule(1) does not detect URL changes. The following commands clear out and re-initialize all submodules to ensure you are using the latest URLs: $ git submodule deinit . # you'll be warned if you have local changes $ rm -rf .git/modules # also clear cached .git/ directories $ git submodule update --init Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1381495958-8306-1-git-send-email-stefanha@redhat.com Signed-off-by: Anthony Liguori <aliguori@amazon.com>
88 lines
2.1 KiB
Plaintext
88 lines
2.1 KiB
Plaintext
QEMU Machine Protocol
|
|
=====================
|
|
|
|
Introduction
|
|
------------
|
|
|
|
The QEMU Machine Protocol (QMP) allows applications to operate a
|
|
QEMU instance.
|
|
|
|
QMP is JSON[1] based and features the following:
|
|
|
|
- Lightweight, text-based, easy to parse data format
|
|
- Asynchronous messages support (ie. events)
|
|
- Capabilities Negotiation
|
|
|
|
For detailed information on QMP's usage, please, refer to the following files:
|
|
|
|
o qmp-spec.txt QEMU Machine Protocol current specification
|
|
o qmp-commands.txt QMP supported commands (auto-generated at build-time)
|
|
o qmp-events.txt List of available asynchronous events
|
|
|
|
[1] http://www.json.org
|
|
|
|
Usage
|
|
-----
|
|
|
|
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
|
|
|
|
However, for more flexibility and to make use of more options, the -mon
|
|
command-line option should be used. For instance, the following example
|
|
creates one HMP instance (human monitor) on stdio and one QMP instance
|
|
on localhost port 4444:
|
|
|
|
$ qemu [...] -chardev stdio,id=mon0 -mon chardev=mon0,mode=readline \
|
|
-chardev socket,id=mon1,host=localhost,port=4444,server,nowait \
|
|
-mon chardev=mon1,mode=control,pretty=on
|
|
|
|
Please, refer to QEMU's manpage for more information.
|
|
|
|
Simple Testing
|
|
--------------
|
|
|
|
To manually test QMP one can connect with telnet and issue commands by hand:
|
|
|
|
$ telnet localhost 4444
|
|
Trying 127.0.0.1...
|
|
Connected to localhost.
|
|
Escape character is '^]'.
|
|
{
|
|
"QMP": {
|
|
"version": {
|
|
"qemu": {
|
|
"micro": 50,
|
|
"minor": 6,
|
|
"major": 1
|
|
},
|
|
"package": ""
|
|
},
|
|
"capabilities": [
|
|
]
|
|
}
|
|
}
|
|
|
|
{ "execute": "qmp_capabilities" }
|
|
{
|
|
"return": {
|
|
}
|
|
}
|
|
|
|
{ "execute": "query-status" }
|
|
{
|
|
"return": {
|
|
"status": "prelaunch",
|
|
"singlestep": false,
|
|
"running": false
|
|
}
|
|
}
|
|
|
|
Please, refer to the qapi-schema.json file for a complete command reference.
|
|
|
|
QMP wiki page
|
|
-------------
|
|
|
|
http://wiki.qemu-project.org/QMP
|