mirror of
https://git.yoctoproject.org/poky
synced 2026-06-02 13:29:49 +00:00
runqemu: add QB_ROOTFS_EXTRA_OPT parameter
Content of the optional parameter will be appended to the rootfs-device in the qemu configuration, in case QB_ROOTFS_OPT is not specified. By default this is empty. Example use cases are: Defining 'readonly' when using squashfs, so multiple instances of qemu can share the same base image, something that cannot be done by just specifying 'snapshot'. Defining 'bootindex=0' which helps to get past the EFI shell in ovmf-binary. This also enables the use case of running WIC images with EFI bootloader through the testimage.bbclass. (From OE-Core rev: 1a5cb1bd56be2b784208516a7c73c49906c7022f) Signed-off-by: Konrad Weihmann <kweihmann@outlook.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit e9b8c194636cb5505774a2a71bf54450580dd5b8) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
c330f61704
commit
81c46e46a8
@@ -65,6 +65,10 @@
|
|||||||
# " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
|
# " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
|
||||||
# Note, runqemu will replace "@PORT@" with the port number which is used.
|
# Note, runqemu will replace "@PORT@" with the port number which is used.
|
||||||
#
|
#
|
||||||
|
# QB_ROOTFS_EXTRA_OPT: extra options to be appended to the rootfs device in case there is none specified by QB_ROOTFS_OPT.
|
||||||
|
# Can be used to automatically determine the image from the other variables
|
||||||
|
# but define things link 'bootindex' when booting from EFI or 'readonly' when using squashfs
|
||||||
|
# without the need to specify a dedicated qemu configuration
|
||||||
# Usage:
|
# Usage:
|
||||||
# IMAGE_CLASSES += "qemuboot"
|
# IMAGE_CLASSES += "qemuboot"
|
||||||
# See "runqemu help" for more info
|
# See "runqemu help" for more info
|
||||||
@@ -77,6 +81,7 @@ QB_OPT_APPEND ?= "-show-cursor"
|
|||||||
QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@"
|
QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@"
|
||||||
QB_CMDLINE_IP_SLIRP ?= "ip=dhcp"
|
QB_CMDLINE_IP_SLIRP ?= "ip=dhcp"
|
||||||
QB_CMDLINE_IP_TAP ?= "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0"
|
QB_CMDLINE_IP_TAP ?= "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0"
|
||||||
|
QB_ROOTFS_EXTRA_OPT ?= ""
|
||||||
|
|
||||||
# This should be kept align with ROOT_VM
|
# This should be kept align with ROOT_VM
|
||||||
QB_DRIVE_TYPE ?= "/dev/sd"
|
QB_DRIVE_TYPE ?= "/dev/sd"
|
||||||
|
|||||||
+8
-3
@@ -1196,6 +1196,10 @@ class BaseConfig(object):
|
|||||||
else:
|
else:
|
||||||
self.rootfs_options = '-drive file=%s,if=virtio,format=%s' % (self.rootfs, rootfs_format)
|
self.rootfs_options = '-drive file=%s,if=virtio,format=%s' % (self.rootfs, rootfs_format)
|
||||||
|
|
||||||
|
qb_rootfs_extra_opt = self.get("QB_ROOTFS_EXTRA_OPT")
|
||||||
|
if qb_rootfs_extra_opt and not qb_rootfs_extra_opt.startswith(","):
|
||||||
|
qb_rootfs_extra_opt = "," + qb_rootfs_extra_opt
|
||||||
|
|
||||||
if self.fstype in ('cpio.gz', 'cpio'):
|
if self.fstype in ('cpio.gz', 'cpio'):
|
||||||
self.kernel_cmdline = 'root=/dev/ram0 rw debugshell'
|
self.kernel_cmdline = 'root=/dev/ram0 rw debugshell'
|
||||||
self.rootfs_options = '-initrd %s' % self.rootfs
|
self.rootfs_options = '-initrd %s' % self.rootfs
|
||||||
@@ -1208,14 +1212,15 @@ class BaseConfig(object):
|
|||||||
drive_type = self.get('QB_DRIVE_TYPE')
|
drive_type = self.get('QB_DRIVE_TYPE')
|
||||||
if drive_type.startswith("/dev/sd"):
|
if drive_type.startswith("/dev/sd"):
|
||||||
logger.info('Using scsi drive')
|
logger.info('Using scsi drive')
|
||||||
vm_drive = '-drive if=none,id=hd,file=%s,format=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd' \
|
vm_drive = '-drive if=none,id=hd,file=%s,format=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd%s' \
|
||||||
% (self.rootfs, rootfs_format)
|
% (self.rootfs, rootfs_format, qb_rootfs_extra_opt)
|
||||||
elif drive_type.startswith("/dev/hd"):
|
elif drive_type.startswith("/dev/hd"):
|
||||||
logger.info('Using ide drive')
|
logger.info('Using ide drive')
|
||||||
vm_drive = "-drive file=%s,format=%s" % (self.rootfs, rootfs_format)
|
vm_drive = "-drive file=%s,format=%s" % (self.rootfs, rootfs_format)
|
||||||
elif drive_type.startswith("/dev/vdb"):
|
elif drive_type.startswith("/dev/vdb"):
|
||||||
logger.info('Using block virtio drive');
|
logger.info('Using block virtio drive');
|
||||||
vm_drive = '-drive id=disk0,file=%s,if=none,format=%s -device virtio-blk-device,drive=disk0' % (self.rootfs, rootfs_format)
|
vm_drive = '-drive id=disk0,file=%s,if=none,format=%s -device virtio-blk-device,drive=disk0%s' \
|
||||||
|
% (self.rootfs, rootfs_format,qb_rootfs_extra_opt)
|
||||||
else:
|
else:
|
||||||
# virtio might have been selected explicitly (just use it), or
|
# virtio might have been selected explicitly (just use it), or
|
||||||
# is used as fallback (then warn about that).
|
# is used as fallback (then warn about that).
|
||||||
|
|||||||
Reference in New Issue
Block a user