Skip to contentSkip to conversation

qemu upgrade to 2.4.0-rc0

PATCH New Cristian Iorga 1 participant 4 messages Jul 16, 2015

lore
Share & tools
lore
#0 lore raw

v4 cover qemu upgrade to 2.4.0-rc0

There is a long list of issues affecting qemu 2.3.0 (current version) in combination with tests performed on YP autobuilders, situation that seriously impacts the way our project evolves and can be managed.
As such, we are proposing an upgrade to qemu 2.4.0 RC0, as much better behavior has been seen with this upgrade.

Patchset V4 sets qemu PV to a higher version, to make sure it sorts higher than any 2.3.* version (e.g. if someone is using some newer revision from 2.3 branch).

Patchset V3 adds a proper upgrade versioning scheme for qemu, so that the upgrade to final version won't hinder the upgrade path for it.

Patchset V2 adds a better commit message for "runqemu-internal: add temporary disk interface to qemuarm64" fix.

The following changes since commit ba07a69f3dc8fb798e372130bf665d059fed9d42:

dpkg: Fix for Fedora22 and new versions of tar (2015-07-13 13:47:28 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ciorga/qemu-upg-3
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=ciorga/qemu-upg-3

Cristian Iorga (3):
qemu: upgrade to 2.4.0-rc0
runqemu-internal: add temporary disk interface to qemuarm64 bitbake.conf: fix qemu user mode linux for qemuarm64

 meta/conf/bitbake.conf                             |  1 +
 meta/recipes-devtools/qemu/qemu.inc                |  3 --
 .../qemu/qemu/larger_default_ram_size.patch        | 22 ---------------
 meta/recipes-devtools/qemu/qemu_2.3.0.bb           | 32 ----------------------
 meta/recipes-devtools/qemu/qemu_2.4.0-rc0.bb       | 22 +++++++++++++++
 scripts/runqemu-internal                           |  2 +-
 6 files changed, 24 insertions(+), 58 deletions(-)
 delete mode 100644 meta/recipes-devtools/qemu/qemu/larger_default_ram_size.patch
 delete mode 100644 meta/recipes-devtools/qemu/qemu_2.3.0.bb
 create mode 100644 meta/recipes-devtools/qemu/qemu_2.4.0-rc0.bb
Signature · 1 line
2.1.4
#1 lore raw

PATCH v4 1/3 qemu: upgrade to 2.4.0-rc0

- Get rid of direct use of gnutls APIs in quorum
blockdrv in favour of using the crypto APIs.
- Convert VNC websockets to use crypto APIs.
- quorum and vnc-ws packageconfig options no
longer exist, removed.
- All previous CVE are now included.
- larger_default_ram_size.patch patch removed,
no longer necessary.

---
 meta/recipes-devtools/qemu/qemu.inc                |  3 --
 .../qemu/qemu/larger_default_ram_size.patch        | 22 ---------------
 meta/recipes-devtools/qemu/qemu_2.3.0.bb           | 32 ----------------------
 meta/recipes-devtools/qemu/qemu_2.4.0-rc0.bb       | 22 +++++++++++++++
 4 files changed, 22 insertions(+), 57 deletions(-)
 delete mode 100644 meta/recipes-devtools/qemu/qemu/larger_default_ram_size.patch
 delete mode 100644 meta/recipes-devtools/qemu/qemu_2.3.0.bb
 create mode 100644 meta/recipes-devtools/qemu/qemu_2.4.0-rc0.bb
meta/recipes-devtools/qemu/qemu.inc +0 -3
index d794af9..eba7d3d 100644
@@ -15,7 +15,6 @@ QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el ppc sh4 x86_64"
 
 SRC_URI = "\
     file://powerpc_rom.bin \
-    file://larger_default_ram_size.patch \
     file://disable-grabs.patch \
     file://exclude-some-arm-EABI-obsolete-syscalls.patch \
     file://wacom.patch \
@@ -89,9 +88,7 @@ PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr,--disable-virtfs,libcap a
 PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio,"
 PACKAGECONFIG[xfs] = "--enable-xfsctl,--disable-xfsctl,xfsprogs,"
 PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen,xen-libxenstore xen-libxenctrl xen-libxenguest"
-PACKAGECONFIG[quorum] = "--enable-quorum, --disable-quorum, gnutls,"
 PACKAGECONFIG[vnc-tls] = "--enable-vnc --enable-vnc-tls,--disable-vnc-tls, gnutls,"
-PACKAGECONFIG[vnc-ws] = "--enable-vnc --enable-vnc-ws,--disable-vnc-ws, gnutls,"
 PACKAGECONFIG[vnc-sasl] = "--enable-vnc --enable-vnc-sasl,--disable-vnc-sasl,cyrus-sasl,"
 PACKAGECONFIG[vnc-jpeg] = "--enable-vnc --enable-vnc-jpeg,--disable-vnc-jpeg,jpeg,"
 PACKAGECONFIG[vnc-png] = "--enable-vnc --enable-vnc-png,--disable-vnc-png,libpng,"
meta/recipes-devtools/qemu/qemu/larger_default_ram_size.patch deleted +0 -22
deleted file mode 100644
index 711c360..0000000
@@ -1,22 +0,0 @@
-This patch is taken from debian. 128M is too less sometimes if distro
-with lot of packages is booted so this patch raises the default to 384M
-
-It has not been applied to upstream qemu
-
-Khem Raj <[email protected]>
-
-Upstream-Status: Pending
-
-Index: qemu-0.14.0/vl.c
-===================================================================
---- qemu-0.14.0.orig/vl.c
-+++ qemu-0.14.0/vl.c
-@@ -168,7 +168,7 @@ int main(int argc, char **argv)
- //#define DEBUG_NET
- //#define DEBUG_SLIRP
- 
--#define DEFAULT_RAM_SIZE 128
-+#define DEFAULT_RAM_SIZE 384
- 
- #define MAX_VIRTIO_CONSOLES 1
- 
meta/recipes-devtools/qemu/qemu_2.3.0.bb deleted +0 -32
deleted file mode 100644
index cae0ad1..0000000
@@ -1,32 +0,0 @@
-require qemu.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
-                    file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
-
-SRC_URI += "file://configure-fix-Darwin-target-detection.patch \
-            file://qemu-enlarge-env-entry-size.patch \
-            file://Qemu-Arm-versatilepb-Add-memory-size-checking.patch \
-            file://qemu-CVE-2015-3456.patch \
-            file://01-xen-properly-gate-host-writes-of-modified-PCI-CFG-contents-CVE-2015-4103.patch \
-            file://02-xen-dont-allow-guest-to-control-MSI-mask-register-CVE-2015-4104.patch \
-            file://03-xen-MSI-X-limit-error-messages-CVE-2015-4105.patch \
-            file://04-xen-MSI-dont-open-code-pass-through-of-enable-bit-mod-CVE-2015-4106.patch \
-            file://05-xen-pt-consolidate-PM-capability-emu_mask-CVE-2015-4106.patch \
-            file://06-xen-pt-correctly-handle-PM-status-bit-CVE-2015-4106.patch \
-            file://07-xen-pt-split-out-calculation-of-throughable-mask-CVE-2015-4106.patch \
-            file://08-xen-pt-mark-all-PCIe-capability-bits-read-only-CVE-2015-4106.patch \
-            file://09-xen-pt-mark-reserved-bits-in-PCI-config-space-fields-CVE-2015-4106.patch \
-            file://10-xen-pt-add-a-few-PCI-config-space-field-descriptions-CVE-2015-4106.patch \
-            file://11-xen-pt-unknown-PCI-config-space-fields-should-be-readonly-CVE-2015-4106.patch \
-            file://qemu-fix-CVE-2015-3209.patch \
-           "
-SRC_URI_prepend = "http://wiki.qemu-project.org/download/${BP}.tar.bz2"
-SRC_URI[md5sum] = "2fab3ea4460de9b57192e5b8b311f221"
-SRC_URI[sha256sum] = "b6bab7f763d5be73e7cb5ee7d4c8365b7a8df2972c52fa5ded18893bd8281588"
-
-COMPATIBLE_HOST_class-target_mips64 = "null"
-
-do_install_append() {
-    # Prevent QA warnings about installed ${localstatedir}/run
-    if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi
-}
meta/recipes-devtools/qemu/qemu_2.4.0-rc0.bb new file +22 -0
new file mode 100644
index 0000000..62df46e
@@ -0,0 +1,22 @@
+require qemu.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
+                    file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
+
+SRC_URI += "file://configure-fix-Darwin-target-detection.patch \
+            file://qemu-enlarge-env-entry-size.patch \
+            file://Qemu-Arm-versatilepb-Add-memory-size-checking.patch \
+           "
+SRC_URI_prepend = "http://wiki.qemu-project.org/download/${BPN}-${REALPV}.tar.bz2"
+SRC_URI[md5sum] = "0c890db3811f2ad9cc7bb2a5afe08e4c"
+SRC_URI[sha256sum] = "8dda3e0f9baffbe29b524c03fd46d611afed1dfb5da1becec033beaf76a1bc6d"
+S="${WORKDIR}/${BPN}-${REALPV}"
+REALPV = "2.4.0-rc0"
+PV = "2.3.99+${REALPV}"
+
+COMPATIBLE_HOST_class-target_mips64 = "null"
+
+do_install_append() {
+    # Prevent QA warnings about installed ${localstatedir}/run
+    if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi
+}
Signature · 1 line
2.1.4
#2 lore raw

PATCH v4 2/3 runqemu-internal: add temporary disk interface to qemuarm64

In reply to Cristian Iorga

Starting with qemu 2.4, a disk needs be attached via a specified interface, even if that interface is none. In case of qemuarm64 machine, the board is virtual, so a none interface it works correctly.

---
 scripts/runqemu-internal | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
scripts/runqemu-internal +1 -1
index 6878251..03b40d8 100755
@@ -270,7 +270,7 @@ else
         if [ "$MACHINE" = "qemuarm64" ]; then
             QEMU_NETWORK_CMD="-netdev tap,id=net0,ifname=$TAP,script=no,downscript=no -device virtio-net-device,netdev=net0 "
             DROOT="/dev/vda"
-            ROOTFS_OPTIONS="-drive id=disk0,file=$ROOTFS,format=raw -device virtio-blk-device,drive=disk0"
+            ROOTFS_OPTIONS="-drive id=disk0,file=$ROOTFS,if=none,format=raw -device virtio-blk-device,drive=disk0"
         fi
 
         KERNCMDLINE="mem=$QEMU_MEMORY"
Signature · 1 line
2.1.4
#3 lore raw

PATCH v4 3/3 bitbake.conf: fix qemu user mode linux for qemuarm64

In reply to Cristian Iorga

OLDEST_KERNEL is invalid for aarch64, it didn't exist back in our current version. Use a more recent version for aarch64 to allow user mode qemu to work correctly.

---
 meta/conf/bitbake.conf | 1 +
 1 file changed, 1 insertion(+)
meta/conf/bitbake.conf +1 -0
index ee75c9b..730ab80 100644
@@ -397,6 +397,7 @@ SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}"
 ##################################################################
 
 OLDEST_KERNEL = "2.6.32"
+OLDEST_KERNEL_aarch64 = "3.14"
 STAGING_KERNEL_DIR = "${TMPDIR}/work-shared/${MACHINE}/kernel-source"
 STAGING_KERNEL_BUILDDIR = "${TMPDIR}/work-shared/${MACHINE}/kernel-build-artifacts"
 
Signature · 1 line
2.1.4