[OE-core] [RFC PATCH 1/8] qemu-boot.bbclass: add it for runqemu

Robert Yang liezhi.yang at windriver.com
Tue May 10 08:13:59 UTC 2016


It saves vars in ${DEPLOY_DIR_IMAGE}/qemu-boot, and scritps/runqemu will
invoke it, so that runqemu can work easier.

The class will be inherited when QEMU_BOOT_SUPPORTED = "1", default 0
which is set in bitbake.conf.

Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
---
 meta/classes/image.bbclass     |  3 +++
 meta/classes/qemu-boot.bbclass | 39 +++++++++++++++++++++++++++++++++++++++
 meta/conf/bitbake.conf         |  3 +++
 3 files changed, 45 insertions(+)
 create mode 100644 meta/classes/qemu-boot.bbclass

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 4542e95..2985d5e 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -22,6 +22,9 @@ INHIBIT_DEFAULT_DEPS = "1"
 TESTIMAGECLASS = "${@base_conditional('TEST_IMAGE', '1', 'testimage-auto', '', d)}"
 inherit ${TESTIMAGECLASS}
 
+QEMU_BOOT_CLASS = "${@base_conditional('QEMU_BOOT_SUPPORTED', '1', 'qemu-boot', '', d)}"
+inherit ${QEMU_BOOT_CLASS}
+
 # IMAGE_FEATURES may contain any available package group
 IMAGE_FEATURES ?= ""
 IMAGE_FEATURES[type] = "list"
diff --git a/meta/classes/qemu-boot.bbclass b/meta/classes/qemu-boot.bbclass
new file mode 100644
index 0000000..efee12c
--- /dev/null
+++ b/meta/classes/qemu-boot.bbclass
@@ -0,0 +1,39 @@
+QEMU_NAME ?= ""
+QEMU_MAHINE_SUBTYPE ?= ""
+QEMU_CPU_SUBTYPE ?= ""
+QEMU_CPU_SUBTYPE_KVM ?= ""
+QEMU_MEM ?= "-m 256"
+QEMU_SYSTEM_OPTIONS ?= ""
+QEMU_SECOND_SERIAL_OPT ?= "-serial mon:stdio -serial null"
+QEMU_KERNEL_OPTIONS ?= ""
+QEMU_DEFAULT_KERNEL ?= "${KERNEL_IMAGETYPE}-${MACHINE}.bin"
+QEMU_DEFAULT_FSTYPE ?= "ext4"
+QEMU_DTB ?= ""
+QEMU_UI_OPTIONS ?= "-show-cursor -usb -usbdevice tablet"
+
+QEMU_OPTIONS ?= "${QEMU_SYSTEM_OPTIONS} ${QEMU_MEM} ${QEMU_MAHINE_SUBTYPE}"
+
+do_qemu_vars[dirs] = "${DEPLOY_DIR_IMAGE}"
+do_qemu_vars() {
+cat > ${DEPLOY_DIR_IMAGE}/qemu-boot <<_EOF
+QEMU_NAME="${QEMU_NAME}"
+QEMU_OPTIONS="${QEMU_OPTIONS}"
+TUNE_ARCH="${TUNE_ARCH}"
+QEMU_DEFAULT_KERNEL="${QEMU_DEFAULT_KERNEL}"
+QEMU_DEFAULT_FSTYPE="${QEMU_DEFAULT_FSTYPE}"
+QEMU_MEM="${QEMU_MEM}"
+QEMU_CPU_SUBTYPE="${QEMU_CPU_SUBTYPE}"
+QEMU_CPU_SUBTYPE_KVM="${QEMU_CPU_SUBTYPE_KVM}"
+QEMU_SECOND_SERIAL_OPT="${QEMU_SECOND_SERIAL_OPT}"
+QEMU_KERNEL_OPTIONS="${QEMU_KERNEL_OPTIONS}"
+DEPLOY_DIR_IMAGE="${DEPLOY_DIR_IMAGE}"
+MACHINE="${MACHINE}"
+STAGING_DIR_NATIVE="${STAGING_DIR_NATIVE}"
+STAGING_BINDIR_NATIVE="${STAGING_BINDIR_NATIVE}"
+STAGING_DIR_HOST="${STAGING_DIR_HOST}"
+QEMU_DTB="${QEMU_DTB}"
+QEMU_UI_OPTIONS="${QEMU_UI_OPTIONS}"
+_EOF
+}
+
+addtask do_qemu_vars before do_build
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 1c4175f..6e4865c 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -818,3 +818,6 @@ BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc deps depends \
 
 MLPREFIX ??= ""
 MULTILIB_VARIANTS ??= ""
+
+# Supported run by qemu or not
+QEMU_BOOT_SUPPORTED ?= "0"
-- 
2.7.4




More information about the Openembedded-core mailing list