Skip to content

Commit

Permalink
qemu: update to 6.1.0, add usb passthrough option
Browse files Browse the repository at this point in the history
One of big change is that QEMU has switched to Meson build system.
That result in few changes to build scripts to fix python interpreter
usage.
Second change that it's not possible to select binaries to build, so
now we have to build all targets at once (that require --enable-tools).

Options --disable-sheepdog and --disable-vxhs was removed from qemu
6.1.0 and 6.0.0 accordingly.

Signed-off-by: Vladimir Ermakov <[email protected]>
  • Loading branch information
vooon authored and utoni committed Mar 17, 2022
1 parent dbabbc3 commit 02828cf
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 44 deletions.
43 changes: 19 additions & 24 deletions utils/qemu/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
include $(TOPDIR)/rules.mk

PKG_NAME:=qemu
PKG_VERSION:=5.0.0
PKG_RELEASE:=5
PKG_VERSION:=6.1.0
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_HASH:=2f13a92a0fa5c8b69ff0796b59b86b080bbb92ebad5d301a7724dd06b5e78cb6
PKG_HASH:=eebc089db3414bbeedf1e464beda0a7515aad30f73261abc246c9b27503a3c96
PKG_SOURCE_URL:=http://download.qemu.org/
PKG_LICENSE:=GPL-2.0
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE tcg/LICENSE
PKG_MAINTAINER:=Yousong Zhou <[email protected]>
PKG_CPE_ID:=cpe:/a:qemu:qemu
Expand All @@ -23,7 +23,7 @@ PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_USE_MIPS16:=0

PKG_BUILD_DEPENDS+=spice-protocol
PKG_BUILD_DEPENDS+=spice-protocol meson/host

include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/package.mk
Expand Down Expand Up @@ -96,7 +96,7 @@ endef

define Package/qemu-img/install
$(INSTALL_DIR) $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/qemu-img $(1)/usr/bin/qemu-img
$(INSTALL_BIN) $(PKG_BUILD_DIR)/build/qemu-img $(1)/usr/bin/qemu-img
endef


Expand All @@ -111,7 +111,7 @@ endef

define Package/qemu-nbd/install
$(INSTALL_DIR) $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/qemu-nbd $(1)/usr/sbin/qemu-nbd
$(INSTALL_BIN) $(PKG_BUILD_DIR)/build/qemu-nbd $(1)/usr/sbin/qemu-nbd
endef


Expand Down Expand Up @@ -190,12 +190,13 @@ define qemu-target
SUBMENU:=Virtualization
TITLE:=QEMU target $(1)
URL:=http://www.qemu.org
DEPENDS:= +glib2 +libpthread +zlib $(QEMU_DEPS_IN_HOST) $(qemu-target-$(1)-deps) \
DEPENDS:= +glib2 +libpthread +zlib +libbpf $(QEMU_DEPS_IN_HOST) $(qemu-target-$(1)-deps) \
+QEMU_UI_VNC:qemu-keymaps \
+QEMU_UI_VNC_JPEG:libjpeg \
+QEMU_UI_VNC_PNG:libpng \
+QEMU_UI_VNC_SASL:libsasl2 \
+QEMU_UI_SPICE:libspice-server \
+QEMU_DEV_USB:libusb-1.0 \
$(if $(filter %-softmmu,$(1)),+libncurses +libfdt +pixman +qemu-firmware-efi $(ICONV_DEPENDS))
endef

Expand Down Expand Up @@ -257,6 +258,9 @@ config QEMU_UI_VNC_SASL
config QEMU_UI_SPICE
bool "QEMU SPICE ui support"

config QEMU_DEV_USB
bool "QEMU USB passthrough support"

endif
endef

Expand All @@ -266,6 +270,7 @@ PKG_CONFIG_DEPENDS += \
CONFIG_QEMU_UI_VNC_PNG \
CONFIG_QEMU_UI_VNC_SASL \
CONFIG_QEMU_UI_SPICE \
CONFIG_QEMU_DEV_USB \


# QEMU configure script does not recognize these options
Expand Down Expand Up @@ -299,7 +304,9 @@ CONFIGURE_ARGS += \
--enable-vhost-scsi \
--enable-vhost-user \
--enable-vhost-user-fs \
--enable-vhost-user-blk-server \
--enable-vhost-vsock \
--enable-vhost-vdpa \

# Image formats support
CONFIGURE_ARGS += \
Expand Down Expand Up @@ -351,6 +358,8 @@ CONFIGURE_ARGS += \
--enable-live-block-migration \
--enable-membarrier \
--enable-replication \
--enable-lto \
--enable-tools \

# Review configure options not explicitly specified here
#
Expand All @@ -375,7 +384,7 @@ CONFIGURE_ARGS += \
--disable-debug-tcg \
--disable-docs \
--disable-gcrypt \
--disable-git-update \
--with-git-submodules=ignore \
--disable-glusterfs \
--disable-gnutls \
--disable-guest-agent-msi \
Expand All @@ -385,7 +394,7 @@ CONFIGURE_ARGS += \
--disable-libpmem \
--disable-libssh \
--disable-libudev \
--disable-libusb \
--$(if $(CONFIG_QEMU_DEV_USB),enable,disable)-libusb \
--disable-libxml2 \
--disable-linux-aio \
--disable-linux-io-uring \
Expand All @@ -405,19 +414,16 @@ CONFIGURE_ARGS += \
--disable-rdma \
--disable-sanitizers \
--disable-seccomp \
--disable-sheepdog \
--disable-smartcard \
--disable-snappy \
--disable-sparse \
--disable-strip \
--disable-tcg-interpreter \
--disable-tcmalloc \
--disable-tools \
--disable-tpm \
--disable-usb-redir \
--disable-vde \
--disable-virtfs \
--disable-vxhs \
--disable-werror \
--disable-xen-pci-passthrough \
--disable-xkbcommon \
Expand All @@ -435,17 +441,6 @@ MAKE_FLAGS:=$(filter-out \
ARCH=% \
,$(MAKE_FLAGS))

QEMU_MAKE_TARGETS := \
$(if $(CONFIG_PACKAGE_qemu-ga),qemu-ga) \
$(if $(CONFIG_PACKAGE_qemu-bridge-helper),qemu-bridge-helper) \
$(if $(CONFIG_PACKAGE_qemu-img),qemu-img) \
$(if $(CONFIG_PACKAGE_qemu-nbd),qemu-nbd) \
$(foreach target,$(qemu-target-list),$(if $(CONFIG_PACKAGE_qemu-$(target)),$(target)/all)) \

define Build/Compile
$(if $(strip $(QEMU_MAKE_TARGETS)),$(call Build/Compile/Default,$(QEMU_MAKE_TARGETS)))
endef

$(eval $(call BuildPackage,virtio-console-helper))
$(eval $(call BuildPackage,qemu-ga))
$(eval $(call BuildPackage,qemu-bridge-helper))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ OpenWrt base build system decide flavor of fortify_source to use

--- a/configure
+++ b/configure
@@ -1601,6 +1601,8 @@ for opt do
@@ -1581,6 +1581,8 @@ for opt do
;;
--gdb=*) gdb_bin="$optarg"
--disable-slirp-smbd) slirp_smbd=no
;;
+ --disable-fortify-source) fortify_source="no"
+ ;;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ Subject: [PATCH] configure: allow enabling/disabling libudev from command line

--- a/configure
+++ b/configure
@@ -1601,6 +1601,10 @@ for opt do
@@ -1581,6 +1581,10 @@ for opt do
;;
--gdb=*) gdb_bin="$optarg"
--disable-slirp-smbd) slirp_smbd=no
;;
+ --enable-libudev) libudev=yes
+ ;;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ Fixes a512590 ("configure: qemu-ga is only needed with softmmu targets")

--- a/configure
+++ b/configure
@@ -6414,7 +6414,7 @@ fi
@@ -4375,7 +4375,7 @@ fi
# Probe for guest agent support/options

if [ "$guest_agent" != "no" ]; then
- if [ "$softmmu" = no -a "$want_tools" = no ] ; then
+ if [ "$guest_agent" = "" -a "$want_tools" = no ] ; then
guest_agent=no
elif [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" -o "$mingw32" = "yes" ] ; then
tools="qemu-ga\$(EXESUF) $tools"
guest_agent=yes
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,21 @@ Subject: [PATCH] pc-bios: fix compilation when $(AS) is actually gcc driver

--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -34,7 +34,7 @@ endif
QEMU_INCLUDES += -I$(SRC_PATH)
@@ -36,7 +36,7 @@ override CFLAGS += -m32 -include $(SRC_D
endif

Wa = -Wa,
-ASFLAGS += -32
+ASFLAGS += $(Wa)-32
QEMU_CFLAGS += $(call cc-c-option, $(QEMU_CFLAGS), $(Wa)-32)

build-all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
@@ -44,7 +44,7 @@ build-all: multiboot.bin linuxboot.bin l
-override ASFLAGS += -32
+override ASFLAGS += $(Wa)-32
override CFLAGS += $(call cc-option, $(Wa)-32)

LD_I386_EMULATION ?= elf_i386
@@ -47,7 +47,7 @@ all: multiboot.bin linuxboot.bin linuxbo
pvh.img: pvh.o pvh_main.o

%.o: %.S
- $(call quiet-command,$(CPP) $(QEMU_INCLUDES) $(QEMU_DGFLAGS) -c -o - $< | $(AS) $(ASFLAGS) -o $@,"AS","$(TARGET_DIR)$@")
+ $(call quiet-command,$(CPP) $(QEMU_INCLUDES) $(QEMU_DGFLAGS) -c -o - $< | $(AS) $(ASFLAGS) -o $@ -x assembler -,"AS","$(TARGET_DIR)$@")
- $(call quiet-command,$(CPP) $(CPPFLAGS) -c -o - $< | $(AS) $(ASFLAGS) -o $@,"AS","$@")
+ $(call quiet-command,$(CPP) $(CPPFLAGS) -c -o - $< | $(AS) $(ASFLAGS) -o $@ -x assembler -,"AS","$@")

pvh.img: pvh.o pvh_main.o
$(call quiet-command,$(LD) $(LDFLAGS_NOPIE) -m $(LD_I386_EMULATION) -T $(SRC_PATH)/pc-bios/optionrom/flat.lds -s -o $@ $^,"BUILD","$(TARGET_DIR)$@")
%.o: %.c
$(call quiet-command,$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@,"CC","$@")
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Signed-off-by: Yousong Zhou <[email protected]>
#endif /* CONFIG_LINUX */

#include "qemu/osdep.h"
@@ -27,6 +24,13 @@
@@ -29,6 +26,13 @@
#include <sys/vfs.h>
#endif

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ https://gitlab.alpinelinux.org/alpine/aports/commit/76b81b486480fd9c3294cd420bcf
@@ -111,6 +115,7 @@ void qmp_guest_shutdown(bool has_mode, c

execle("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
"hypervisor initiated shutdown", (char*)NULL, environ);
"hypervisor initiated shutdown", (char *)NULL, environ);
+ execle(fallback_cmd, fallback_cmd, (char*)NULL, environ);
_exit(EXIT_FAILURE);
} else if (pid < 0) {
Expand Down

0 comments on commit 02828cf

Please sign in to comment.