diff options
Diffstat (limited to 'meta/classes/qemuboot.bbclass')
-rw-r--r-- | meta/classes/qemuboot.bbclass | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass index 4b7532b304..95cd1d6c4a 100644 --- a/meta/classes/qemuboot.bbclass +++ b/meta/classes/qemuboot.bbclass @@ -19,6 +19,9 @@ # QB_CPU_KVM: the similar to QB_CPU, but used when kvm, e.g., '-cpu kvm64', # set it when support kvm. # +# QB_SMP: amount of CPU cores inside qemu guest, each mapped to a thread on the host, +# e.g. "-smp 8". +# # QB_KERNEL_CMDLINE_APPEND: options to append to kernel's -append # option, e.g., "console=ttyS0 console=tty" # @@ -33,6 +36,8 @@ # in system mode, where system is experiencing entropy starvation # # QB_KERNEL_ROOT: kernel's root, e.g., /dev/vda +# By default "/dev/vda rw" gets passed to the kernel. +# To mount the rootfs read-only QB_KERNEL_ROOT can be set to e.g. "/dev/vda ro". # # QB_NETWORK_DEVICE: network device, e.g., "-device virtio-net-pci,netdev=net0,mac=@MAC@", # it needs work with QB_TAP_OPT and QB_SLIRP_OPT. @@ -40,7 +45,7 @@ # a custom one, but that may cause conflicts when multiple qemus are # running on the same host. # Note: If more than one interface of type -device virtio-net-device gets added, -# QB_NETWORK_DEVICE_prepend might be used, since Qemu enumerates the eth* +# QB_NETWORK_DEVICE:prepend might be used, since Qemu enumerates the eth* # devices in reverse order to -device arguments. # # QB_TAP_OPT: network option for 'tap' mode, e.g., @@ -72,11 +77,15 @@ # 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 +# +# QB_GRAPHICS: QEMU video card type (e.g. "-vga std") +# # Usage: # IMAGE_CLASSES += "qemuboot" # See "runqemu help" for more info QB_MEM ?= "-m 256" +QB_SMP ?= "" QB_SERIAL_OPT ?= "-serial mon:stdio -serial null" QB_DEFAULT_KERNEL ?= "${KERNEL_IMAGETYPE}" QB_DEFAULT_FSTYPE ?= "ext4" @@ -86,6 +95,7 @@ QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@" QB_CMDLINE_IP_SLIRP ?= "ip=dhcp" QB_CMDLINE_IP_TAP ?= "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0" QB_ROOTFS_EXTRA_OPT ?= "" +QB_GRAPHICS ?= "" # This should be kept align with ROOT_VM QB_DRIVE_TYPE ?= "/dev/sd" @@ -99,7 +109,7 @@ def qemuboot_vars(d): build_vars = ['MACHINE', 'TUNE_ARCH', 'DEPLOY_DIR_IMAGE', 'KERNEL_IMAGETYPE', 'IMAGE_NAME', 'IMAGE_LINK_NAME', 'STAGING_DIR_NATIVE', 'STAGING_BINDIR_NATIVE', - 'STAGING_DIR_HOST'] + 'STAGING_DIR_HOST', 'SERIAL_CONSOLES'] return build_vars + [k for k in d.keys() if k.startswith('QB_')] do_write_qemuboot_conf[vardeps] += "${@' '.join(qemuboot_vars(d))}" @@ -108,12 +118,17 @@ python do_write_qemuboot_conf() { import configparser qemuboot = "%s/%s.qemuboot.conf" % (d.getVar('IMGDEPLOYDIR'), d.getVar('IMAGE_NAME')) - qemuboot_link = "%s/%s.qemuboot.conf" % (d.getVar('IMGDEPLOYDIR'), d.getVar('IMAGE_LINK_NAME')) + if d.getVar('IMAGE_LINK_NAME'): + qemuboot_link = "%s/%s.qemuboot.conf" % (d.getVar('IMGDEPLOYDIR'), d.getVar('IMAGE_LINK_NAME')) + else: + qemuboot_link = "" finalpath = d.getVar("DEPLOY_DIR_IMAGE") topdir = d.getVar('TOPDIR') cf = configparser.ConfigParser() cf.add_section('config_bsp') for k in sorted(qemuboot_vars(d)): + if ":" in k: + continue # qemu-helper-native sysroot is not removed by rm_work and # contains all tools required by runqemu if k == 'STAGING_BINDIR_NATIVE': @@ -141,7 +156,7 @@ python do_write_qemuboot_conf() { with open(qemuboot, 'w') as f: cf.write(f) - if qemuboot_link != qemuboot: + if qemuboot_link and qemuboot_link != qemuboot: if os.path.lexists(qemuboot_link): os.remove(qemuboot_link) os.symlink(os.path.basename(qemuboot), qemuboot_link) |