runqemu: add qmp socket support

Add support for qmp sockets and defaults to unix:qmp.sock if unspecified

(From OE-Core rev: 31de620e9d899b93c6e982d3a563bbf618ce79c6)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Eilís 'pidge' Ní Fhlannagáin <pidge@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Backported from master: 380631797f0d63124a8c21efa93ab672dbd79283
Qemu throws many warnings without qmp and many runtime tests fail
without this patch also on kirkstone.

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Ross Burton 2024-02-21 20:36:56 +01:00 committed by Steve Sakoman
parent e00bde2372
commit da694d9d58

View File

@ -82,6 +82,7 @@ of the following environment variables (in any order):
kvm-vhost - enable KVM with vhost when running x86/x86_64 (VT-capable CPU required)
publicvnc - enable a VNC server open to all hosts
audio - enable audio
qmp=<path> - create a QMP socket (defaults to unix:qmp.sock if unspecified)
[*/]ovmf* - OVMF firmware file or base name for booting with UEFI
tcpserial=<port> - specify tcp serial port number
qemuparams=<xyz> - specify custom parameters to QEMU
@ -216,6 +217,7 @@ class BaseConfig(object):
self.cleaned = False
# Files to cleanup after run
self.cleanup_files = []
self.qmp = None
def acquire_taplock(self, error=True):
logger.debug("Acquiring lockfile %s..." % self.taplock)
@ -512,6 +514,10 @@ to your build configuration.
elif arg == 'publicvnc':
self.publicvnc = True
self.qemu_opt_script += ' -vnc :0'
elif arg == "qmp":
self.qmp = "unix:qmp.sock"
elif arg.startswith("qmp="):
self.qmp = arg[len('qmp='):]
elif arg.startswith('tcpserial='):
self.tcpserial_portnum = '%s' % arg[len('tcpserial='):]
elif arg.startswith('qemuparams='):
@ -1332,6 +1338,10 @@ to your build configuration.
raise RunQemuError("Failed to boot, QB_SYSTEM_NAME is NULL!")
self.qemu_system = qemu_system
def setup_qmp(self):
if self.qmp:
self.qemu_opt += " -qmp %s,server,nowait" % self.qmp
def setup_vga(self):
if self.nographic == True:
if self.sdl == True:
@ -1462,6 +1472,7 @@ to your build configuration.
if self.snapshot:
self.qemu_opt += " -snapshot"
self.setup_qmp()
self.setup_serial()
self.setup_vga()