Назад | Перейти на главную страницу

qmp-shell не распознает команды

Итак, есть скрипт на Python, позволяющий подключиться к монитору QEMU из обычной оболочки. Мне пришлось скачать куча файлов из дерева исходников QEMU, и добавить -qmp unix:./qmp-sock,server,nowait в командную строку vm. Он подключается, но я не могу заставить его работать.

$ qmp-shell qmp-sock 
Welcome to the QMP low-level shell!
Connected to QEMU 1.5.3

(QEMU) help
{u'error': {u'class': u'CommandNotFound', u'desc': u'The command help has not been found'}}
(QEMU) query-
query-balloon               query-fdsets                query-status
query-block                 query-kvm                   query-target
query-block-jobs            query-machines              query-tpm
query-blockstats            query-mice                  query-tpm-models
query-chardev               query-migrate               query-tpm-types
query-command-line-options  query-migrate-cache-size    query-uuid
query-commands              query-migrate-capabilities  query-version
query-cpu-definitions       query-name                  query-vnc
query-cpus                  query-pci                   
query-events                query-spice                 
(QEMU) query-kvm
{u'return': {u'enabled': True, u'present': True}}
(QEMU) info block
Error while parsing command line: list index out of range
command format: <command-name>  [arg-name1=arg1] ... [arg-nameN=argN]
(QEMU) info
{u'error': {u'class': u'CommandNotFound', u'desc': u'The command info has not been found'}}
(QEMU) exit
{u'error': {u'class': u'CommandNotFound', u'desc': u'The command exit has not been found'}}
(QEMU)

Предполагая, что qmp-shell работает так же, как, скажем, телнетинг в сокет QMP и прямая отправка команд JSON, вам нужно выполнить qmp_capabilities команда. Ни одна из других команд в qmp будет работать до тех пор, пока не будет выполнен, и приведет к ошибке «CommandNotFound».

См. Страницу qemu wiki относительно QMP для подробностей.