Pull request for branch yem-target-qemu
Hello All!
This series is the last part required to build QEMU for the target.
It depends on the previous series that was just sent:
- http://lists.busybox.net/pipermail/buildroot/2013-January/066369.html
The philosophy behind this long series is to add a basic, non-configurable QEMU build (which is already complex as it is), then add features one by one to ease review.
The latest patch, adding DTC, has been a bit controversial, but no final solution has been identified (as far as I remember), so I've kept it as-is.
Hopefully, we'll have time to review and definitely ack/nack this series during the DevDay in Brussels. ;-)
Changes v1 -> v2:
- rebased ontop latest tree
- fixed wreckage due to bump from QEMU 1.2.2 -> 1.3.0
- updated to QEMU 1.3.1
- added option to install QEMU tools on the target
The following changes since commit 24a0d3a9cf23549854ea6830abc9e04a974e9900:
package/dtc: add option to install programs (2013-01-29 23:21:12 +0100)
are available in the git repository at:
git://gitorious.org/buildroot/buildroot.git yem-target-qemu
Yann E. MORIN (29):
package/qemu: bump version to 1.3.1
package/qemu: build for the target (i386 or x86_64 only) package/qemu: add basic target selection package/qemu: add fine-grained target selection package/qemu: add SDL frontends
package/qemu: add option to enable/disable the VNC frontend package/qemu: add VNC jpeg and png compression package/qemu: add VNC TLS-encryption package/qemu: add option to not install blobs package/qemu: add option to remove unwanted keymaps package/qemu: add uuid support
package/qemu: add support for capabilities package/qemu: add attr/xattr option
package/qemu: add support for virtfs package/qemu: add support for cURL
package/qemu: enable use of the curses frontend package/qemu: add BlueZ connectivity package/qemu: add AIO support
package/qemu: add support for VDE switches package/qemu: add iSCSI support
package/qemu: add support for USB redirection package/qemu: add support for Spice
package/qemu: enable sound
package/qemu: add support for libseccomp package/qemu: option to build the docs package/qemu: add option to install tools on the target package/qemu: move sub-options into a sub-menu package/qemu: enable a static build
package/qemu: add support for FDT
package/Config.in | 1 + package/qemu/Config.in | 334 +++++++++++++++++++++++++++++++++++ package/qemu/qemu-static-curl.patch | 72 ++++++++ package/qemu/qemu-static-sdl.patch | 54 ++++++ package/qemu/qemu.mk | 299 +++++++++++++++++++++++++++++++- 5 files changed, 759 insertions(+), 1 deletions(-) create mode 100644 package/qemu/Config.in create mode 100644 package/qemu/qemu-static-curl.patch create mode 100644 package/qemu/qemu-static-sdl.patch
Regards,
Yann E. MORIN
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/29 package/qemu: bump version to 1.3.1
--- package/qemu/qemu.mk | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
package/qemu/qemu.mk +1 -1
@@ -4,7 +4,7 @@ # ############################################################# -QEMU_VERSION = 1.3.0 +QEMU_VERSION = 1.3.1 QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.bz2 QEMU_SITE = http://wiki.qemu.org/download QEMU_LICENSE = GPLv2 LGPLv2.1 MIT BSD-3c BSD-2c Others/BSD-1c
Signature · 1 line
1.7.2.5
PATCH 2/29 package/qemu: build for the target (i386 or x86_64 only)
In reply to Yann E. MORINUntested for other architectures, so only enabled for known-working ones.
We explicitly disable all features that depends on other packages, for now. Such features will be added one by one in the next patches. Features that do not rely on external packages are explicitly enabled to catch the dependencies on toolchain features early.
--- package/Config.in | 1 + package/qemu/Config.in | 26 ++++++++++++++++ package/qemu/qemu.mk | 75 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 0 deletions(-) create mode 100644 package/qemu/Config.in
package/Config.in +1 -0
@@ -607,6 +607,7 @@ source "package/empty/Config.in" source "package/googlefontdirectory/Config.in" source "package/mcrypt/Config.in" source "package/mobile-broadband-provider-info/Config.in" +source "package/qemu/Config.in" source "package/shared-mime-info/Config.in" source "package/snowball-init/Config.in" source "package/sound-theme-borealis/Config.in"
package/qemu/Config.in new file +26 -0
@@ -0,0 +1,26 @@ +comment "QEMU requires a toolchain with threads" + depends on !BR2_i386 && !BR2_x86_64 + depends on !BR2_TOOLCHAIN_HAS_THREADS + +config BR2_PACKAGE_QEMU + bool "QEMU" + depends on BR2_i386 || BR2_x86_64 + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_PIXMAN + select BR2_PACKAGE_ZLIB + help + QEMU is a generic and open source machine emulator and virtualizer. + + When used as a machine emulator, QEMU can run OSes and programs made + for one machine (e.g. an ARM board) on a different machine (e.g. + your own PC). By using dynamic translation, it achieves very good + performance. + + When used as a virtualizer, QEMU achieves near native performances + by executing the guest code directly on the host CPU. QEMU supports + virtualization when executing under the Xen hypervisor or using the + KVM kernel module in Linux. When using KVM, QEMU can virtualize x86, + server and embedded PowerPC, and S390 guests. + + http://qemu.org/
package/qemu/qemu.mk +75 -0
78 lines not on this page · raw message
Signature · 1 line
1.7.2.5
PATCH 2/29 package/qemu: build for the target (i386 or x86_64 only)
Dear Yann E. MORIN,
package/qemu/qemu.mk $(eval $(host-autotools-package)) · line 103
Quoted 4 lines · Yann E. MORIN
package/qemu/qemu.mk +4
-0+# Note: although QEMU uses a ./configure script, it is not compatible with +# the traditional autotools options (eg. --target et al.), so we have +# to override the default provided by the autotools-package infra, and +# provide our own. Sigh... :-/
Then please do not use the autotools-package infrastructure for this package. It doesn't use autoconf, it doesn't automake, it is *NOT* autotools.
It is not because it happens to work *today* by just overriding the QEMU_CONFIGURE_CMDS that it will continue to work tomorrow. For example, look at the out-of-tree stuff I was working on: for autotools packages, we will assume that out of tree build is supported, and that it works in a certain way. Wouldn't this break the qemu package, which pretends to be an autotools package, but in fact is not?
So, I've said this several times already: do not misuse package infrastructures, even if it happens to "work" today. Do the right thing, instead: qemu should use the generic-package infrastructure.
Thanks!
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 2/29 package/qemu: build for the target (i386 or x86_64 only)
Thomas, All,
Quoted 9 lines · On Wednesday 30 January 2013 Thomas Petazzoni wrote:
package/qemu/qemu.mk $(eval $(host-autotools-package)) · line 103
Quoted 4 lines · Yann E. MORIN
package/qemu/qemu.mk +4
-0+# Note: although QEMU uses a ./configure script, it is not compatible with +# the traditional autotools options (eg. --target et al.), so we have +# to override the default provided by the autotools-package infra, and +# provide our own. Sigh... :-/Then please do not use the autotools-package infrastructure for this package. It doesn't use autoconf, it doesn't automake, it is *NOT* autotools.
ACK. :-)
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 3/29 package/qemu: add basic target selection
In reply to Yann E. MORINqemu-1.2.1 requires that at least one target emulation be enabled, so we use some kconfig-tricks to force at least the systems emulations to be enabled if user emulation is not selected.
This limitation will be lifted in the upcoming qemu-1.3.x
--- package/qemu/Config.in | 32 ++++++++++++++++++++++++++++++++ package/qemu/qemu.mk | 14 ++++++++++++-- 2 files changed, 44 insertions(+), 2 deletions(-)
package/qemu/Config.in +32 -0
@@ -24,3 +24,35 @@ config BR2_PACKAGE_QEMU server and embedded PowerPC, and S390 guests. http://qemu.org/ + +if BR2_PACKAGE_QEMU + +comment "Emulators selection" + +# QEMU 1.2.x requires that at least one target emulation be selected, so +# we use the following two symbols to force systems emulation if user +# emulation is not selected. This limitation will be lifted when qemu-1.3.0 +# is out. +config BR2_PACKAGE_QEMU_EMUL_SET + bool + +config BR2_PACKAGE_QEMU_FORCE_SYSTEM + bool + default n if BR2_PACKAGE_QEMU_EMUL_SET + default y if ! BR2_PACKAGE_QEMU_EMUL_SET + select BR2_PACKAGE_QEMU_SYSTEM + +config BR2_PACKAGE_QEMU_SYSTEM + bool "Enable all systems emulation" + help + Say 'y' to build all system emulators/virtualisers that QEMU supports. + +config BR2_PACKAGE_QEMU_LINUX_USER + bool "Enable all Linux user-land emulation" + select BR2_PACKAGE_QEMU_EMUL_SET + help + Say 'y' to build all Linux user-land emulators that QEMU supports. + +# Note: bsd-user can not be build on Linux + +endif # BR2_PACKAGE_QEMU
package/qemu/qemu.mk +12 -2
@@ -97,6 +97,18 @@ QEMU_VARS = PYTHON=$(HOST_DIR)/usr/bin/python \ PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \ +ifeq ($(BR2_PACKAGE_QEMU_SYSTEM),y) +QEMU_OPTS += --enable-system +else +QEMU_OPTS += --disable-system +endif + +ifeq ($(BR2_PACKAGE_QEMU_LINUX_USER),y) +QEMU_OPTS += --enable-linux-user +else +QEMU_OPTS += --disable-linux-user +endif + # Note: although QEMU uses a ./configure script, it is not compatible with # the traditional autotools options (eg. --target et al.), so we have # to override the default provided by the autotools-package infra, and
@@ -118,8 +130,6 @@ define QEMU_CONFIGURE_CMDS --enable-nptl \ --enable-attr \ --enable-vhost-net \ - --enable-system \ - --enable-linux-user \ --disable-bsd-user \ --disable-xen \ --disable-slirp \
Signature · 1 line
1.7.2.5
PATCH 3/29 package/qemu: add basic target selection
Dear Yann E. MORIN,
Quoted 5 lines · Yann E. MORIN
qemu-1.2.1 requires that at least one target emulation be enabled, so we use some kconfig-tricks to force at least the systems emulations to be enabled if user emulation is not selected.
This limitation will be lifted in the upcoming qemu-1.3.x
Humm, the qemu package actually uses version 1.3.1, as per "[PATCH 01/29] package/qemu: bump version to 1.3.1" :-)
You also have the comment related to 1.2.x in the patch itself.
Best regards,
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 3/29 package/qemu: add basic target selection
Thomas, All,
Quoted 11 lines · On Wednesday 30 January 2013 Thomas Petazzoni wrote:
Quoted 5 lines · Yann E. MORIN
qemu-1.2.1 requires that at least one target emulation be enabled, so we use some kconfig-tricks to force at least the systems emulations to be enabled if user emulation is not selected.
This limitation will be lifted in the upcoming qemu-1.3.x
Humm, the qemu package actually uses version 1.3.1, as per "[PATCH 01/29] package/qemu: bump version to 1.3.1" :-)
You also have the comment related to 1.2.x in the patch itself.
Arg. I'll fix that. Thanks.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 4/29 package/qemu: add fine-grained target selection
In reply to Yann E. MORIN--- package/qemu/Config.in | 21 +++++++++++++++++++++ package/qemu/qemu.mk | 4 ++++ 2 files changed, 25 insertions(+), 0 deletions(-)
package/qemu/Config.in +21 -0
@@ -29,6 +29,25 @@ if BR2_PACKAGE_QEMU comment "Emulators selection" +config BR2_PACKAGE_QEMU_CUSTOM_TARGETS + string "Enable specific targets" + help + Enter here the list of QEMU targets you want to build. For example: + + System emulation | User-land emulation + ----------------------+----------------------- + i386-softmmu | i386-linux-user + arm-softmmu | ppc-linux-user + x86_64-softmmu | sparc-bsd-user + ... | ... + +config QEMU_FOO + bool # To break the indentation + +if BR2_PACKAGE_QEMU_CUSTOM_TARGETS = "" + +comment "... or you can select emulator families to enable, below:" + # QEMU 1.2.x requires that at least one target emulation be selected, so # we use the following two symbols to force systems emulation if user # emulation is not selected. This limitation will be lifted when qemu-1.3.0
@@ -55,4 +74,6 @@ config BR2_PACKAGE_QEMU_LINUX_USER # Note: bsd-user can not be build on Linux +endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == "" + endif # BR2_PACKAGE_QEMU
package/qemu/qemu.mk +4 -0
@@ -109,6 +109,10 @@ else QEMU_OPTS += --disable-linux-user endif +ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),) +QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))" +endif + # Note: although QEMU uses a ./configure script, it is not compatible with # the traditional autotools options (eg. --target et al.), so we have # to override the default provided by the autotools-package infra, and
Signature · 1 line
1.7.2.5
PATCH 5/29 package/qemu: add SDL frontends
In reply to Yann E. MORIN--- package/qemu/Config.in | 9 +++++++++ package/qemu/qemu.mk | 10 +++++++++- 2 files changed, 18 insertions(+), 1 deletions(-)
package/qemu/Config.in +9 -0
@@ -76,4 +76,13 @@ config BR2_PACKAGE_QEMU_LINUX_USER endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == "" +comment "Frontends" + +config BR2_PACKAGE_QEMU_SDL + bool "Enable SDL frontend" + select BR2_PACKAGE_SDL + help + Say 'y' to enable the SDL frontend, that is, a graphical window + presenting the VM's display. + endif # BR2_PACKAGE_QEMU
package/qemu/qemu.mk +9 -1
@@ -96,6 +96,7 @@ QEMU_OPTS = QEMU_VARS = \ PYTHON=$(HOST_DIR)/usr/bin/python \ PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \ + SDL_CONFIG=$(STAGING_DIR)/usr/bin/sdl-config \ ifeq ($(BR2_PACKAGE_QEMU_SYSTEM),y) QEMU_OPTS += --enable-system
@@ -113,6 +114,14 @@ ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),) QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))" endif +ifeq ($(BR2_PACKAGE_QEMU_SDL),y) +QEMU_OPTS += --enable-sdl +QEMU_DEPENDENCIES += sdl +QEMU_VARS += SDL_CONFIG=$(BR2_STAGING_DIR)/usr/bin/sdl-config +else +QEMU_OPTS += --disable-sdl +endif + # Note: although QEMU uses a ./configure script, it is not compatible with # the traditional autotools options (eg. --target et al.), so we have # to override the default provided by the autotools-package infra, and
@@ -137,7 +146,6 @@ define QEMU_CONFIGURE_CMDS --disable-bsd-user \ --disable-xen \ --disable-slirp \ - --disable-sdl \ --disable-vnc \ --disable-virtfs \ --disable-brlapi \
Signature · 1 line
1.7.2.5
PATCH 6/29 package/qemu: add option to enable/disable the VNC frontend
In reply to Yann E. MORIN--- package/qemu/Config.in | 7 +++++++ package/qemu/qemu.mk | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
@@ -78,6 +78,13 @@ endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == "" comment "Frontends" +config BR2_PACKAGE_QEMU_VNC + bool "Enable VNC frontend" + select BR2_PACKAGE_VNC + help + Say 'y' to enable the VNC frontend, that is, QEMU will act as a + VNC server presenting the VM's display. + config BR2_PACKAGE_QEMU_SDL bool "Enable SDL frontend" select BR2_PACKAGE_SDL
package/qemu/qemu.mk +10 -1
@@ -114,6 +114,12 @@ ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),) QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))" endif +ifeq ($(BR2_PACKAGE_QEMU_VNC),y) +QEMU_OPTS += --enable-vnc +else +QEMU_OPTS += --disable-vnc +endif + ifeq ($(BR2_PACKAGE_QEMU_SDL),y) QEMU_OPTS += --enable-sdl QEMU_DEPENDENCIES += sdl
@@ -146,7 +152,10 @@ define QEMU_CONFIGURE_CMDS --disable-bsd-user \ --disable-xen \ --disable-slirp \ - --disable-vnc \ + --disable-vnc-jpeg \ + --disable-vnc-png \ + --disable-vnc-tls \ + --disable-vnc-sasl \ --disable-virtfs \ --disable-brlapi \ --disable-curses \
Signature · 1 line
1.7.2.5
PATCH 7/29 package/qemu: add VNC jpeg and png compression
In reply to Yann E. MORIN--- package/qemu/Config.in | 10 ++++++++++ package/qemu/qemu.mk | 16 ++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-)
package/qemu/Config.in +10 -0
@@ -85,6 +85,16 @@ config BR2_PACKAGE_QEMU_VNC Say 'y' to enable the VNC frontend, that is, QEMU will act as a VNC server presenting the VM's display. +config BR2_PACKAGE_QEMU_VNC_PNG + bool "PNG compression" + depends on BR2_PACKAGE_QEMU_VNC + select BR2_PACKAGE_LIBPNG + +config BR2_PACKAGE_QEMU_VNC_JPEG + bool "JPEG compression" + depends on BR2_PACKAGE_QEMU_VNC + select BR2_PACKAGE_JPEG + config BR2_PACKAGE_QEMU_SDL bool "Enable SDL frontend" select BR2_PACKAGE_SDL
package/qemu/qemu.mk +14 -2
@@ -120,6 +120,20 @@ else QEMU_OPTS += --disable-vnc endif +ifeq ($(BR2_PACKAGE_QEMU_VNC_PNG),y) +QEMU_OPTS += --enable-vnc-png +QEMU_DEPENDENCIES += libpng +else +QEMU_OPTS += --disable-vnc-png +endif + +ifeq ($(BR2_PACKAGE_QEMU_VNC_JPEG),y) +QEMU_OPTS += --enable-vnc-jpeg +QEMU_DEPENDENCIES += jpeg +else +QEMU_OPTS += --disable-vnc-jpeg +endif + ifeq ($(BR2_PACKAGE_QEMU_SDL),y) QEMU_OPTS += --enable-sdl QEMU_DEPENDENCIES += sdl
@@ -152,8 +166,6 @@ define QEMU_CONFIGURE_CMDS --disable-bsd-user \ --disable-xen \ --disable-slirp \ - --disable-vnc-jpeg \ - --disable-vnc-png \ --disable-vnc-tls \ --disable-vnc-sasl \ --disable-virtfs \
Signature · 1 line
1.7.2.5
PATCH 8/29 package/qemu: add VNC TLS-encryption
In reply to Yann E. MORINOnly TLS is supported, as buildroot has no package for the SASL library.
--- package/qemu/Config.in | 11 +++++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletions(-)
package/qemu/Config.in +11 -0
@@ -95,6 +95,17 @@ config BR2_PACKAGE_QEMU_VNC_JPEG depends on BR2_PACKAGE_QEMU_VNC select BR2_PACKAGE_JPEG +# TLS does not work with static link, because the gnutls .pc is missing a +# dependency on libintl... :-( +config BR2_PACKAGE_QEMU_VNC_TLS + bool "TLS encryption" + depends on BR2_PACKAGE_QEMU_VNC + depends on !BR2_PREFER_STATIC_LIB + select BR2_PACKAGE_GNUTLS + +comment "VNC TLS encryption does not work for static link" + depends on BR2_PACKAGE_QEMU_VNC && BR2_PREFER_STATIC_LIB + config BR2_PACKAGE_QEMU_SDL bool "Enable SDL frontend" select BR2_PACKAGE_SDL
package/qemu/qemu.mk +7 -1
@@ -134,6 +134,13 @@ else QEMU_OPTS += --disable-vnc-jpeg endif +ifeq ($(BR2_PACKAGE_QEMU_VNC_TLS),y) +QEMU_OPTS += --enable-vnc-tls +QEMU_DEPENDENCIES += gnutls +else +QEMU_OPTS += --disable-vnc-tls +endif + ifeq ($(BR2_PACKAGE_QEMU_SDL),y) QEMU_OPTS += --enable-sdl QEMU_DEPENDENCIES += sdl
@@ -166,7 +173,6 @@ define QEMU_CONFIGURE_CMDS --disable-bsd-user \ --disable-xen \ --disable-slirp \ - --disable-vnc-tls \ --disable-vnc-sasl \ --disable-virtfs \ --disable-brlapi \
Signature · 1 line
1.7.2.5
PATCH 9/29 package/qemu: add option to not install blobs
In reply to Yann E. MORIN--- package/qemu/Config.in | 16 ++++++++++++++++ package/qemu/qemu.mk | 4 ++++ 2 files changed, 20 insertions(+), 0 deletions(-)
package/qemu/Config.in +16 -0
@@ -113,4 +113,20 @@ config BR2_PACKAGE_QEMU_SDL Say 'y' to enable the SDL frontend, that is, a graphical window presenting the VM's display. +comment "Misc. features" + +config BR2_PACKAGE_QEMU_BLOBS + bool "Install binary blobs" + default y + help + Say 'y' here (the default) to install binary blobs (such as BIOS + or firmwares for the different machines simulated by QEMU). + Say 'n' to not install those blobs. + + Note: Some machines may be unbootable without those blobs. + If unsure, say 'y'. + + Note2: This has nothing to do with the licensing of the blobs; + some (most?) even have a free and/or open source license. + endif # BR2_PACKAGE_QEMU
package/qemu/qemu.mk +4 -0
@@ -149,6 +149,10 @@ else QEMU_OPTS += --disable-sdl endif +ifeq ($(BR2_PACKAGE_QEMU_BLOBS),) +QEMU_OPTS += --disable-blobs +endif + # Note: although QEMU uses a ./configure script, it is not compatible with # the traditional autotools options (eg. --target et al.), so we have # to override the default provided by the autotools-package infra, and
Signature · 1 line
1.7.2.5
PATCH 10/29 package/qemu: add option to remove unwanted keymaps
In reply to Yann E. MORIN--- package/qemu/Config.in | 12 ++++++++++ package/qemu/qemu.mk | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 0 deletions(-)
package/qemu/Config.in +12 -0
@@ -129,4 +129,16 @@ config BR2_PACKAGE_QEMU_BLOBS Note2: This has nothing to do with the licensing of the blobs; some (most?) even have a free and/or open source license. +config BR2_PACKAGE_QEMU_KEYMAPS + string "Keymaps to keep" + default "all" + help + Enter the list of keymap(s) to keep. To keep many keymaps, you can + use shell globs, or you can enter a space-separated list of keymaps: + - empty to remove all keymaps + - 'all' to keep all keymaps + - 'fr*' to keep all french keymaps + - 'de fr* en-*' for german, french and english keymaps + - and so on (see the QEMU source for all supported keymaps) + endif # BR2_PACKAGE_QEMU
package/qemu/qemu.mk +55 -0
61 lines not on this page · raw message
Signature · 1 line
1.7.2.5
PATCH 11/29 package/qemu: add uuid support
In reply to Yann E. MORIN--- package/qemu/Config.in | 10 ++++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 17 insertions(+), 1 deletions(-)
package/qemu/Config.in +10 -0
@@ -115,6 +115,16 @@ config BR2_PACKAGE_QEMU_SDL comment "Misc. features" +config BR2_PACKAGE_QEMU_UUID + bool "Enable VMs UUID" + depends on BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBUUID + help + Say 'y' here to have QEMU support UUIDs for VMs. + +comment "UUID support requires util-linux (for libuuid)" + depends on !BR2_PACKAGE_UTIL_LINUX + config BR2_PACKAGE_QEMU_BLOBS bool "Install binary blobs" default y
package/qemu/qemu.mk +7 -1
@@ -149,6 +149,13 @@ else QEMU_OPTS += --disable-sdl endif +ifeq ($(BR2_PACKAGE_QEMU_UUID),y) +QEMU_OPTS += --enable-uuid +QEMU_DEPENDENCIES += util-linux +else +QEMU_OPTS += --disable-uuid +endif + ifeq ($(BR2_PACKAGE_QEMU_BLOBS),) QEMU_OPTS += --disable-blobs endif
@@ -240,7 +247,6 @@ define QEMU_CONFIGURE_CMDS --disable-fdt \ --disable-bluez \ --disable-guest-base \ - --disable-uuid \ --disable-vde \ --disable-linux-aio \ --disable-cap-ng \
Signature · 1 line
1.7.2.5
PATCH 12/29 package/qemu: add support for capabilities
In reply to Yann E. MORIN--- package/qemu/Config.in | 7 +++++++ package/qemu/qemu.mk | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
@@ -125,6 +125,13 @@ config BR2_PACKAGE_QEMU_UUID comment "UUID support requires util-linux (for libuuid)" depends on !BR2_PACKAGE_UTIL_LINUX +config BR2_PACKAGE_QEMU_CAP + bool "Enable capabilities" + select BR2_PACKAGE_LIBCAP + select BR2_PACKAGE_LIBCAP_NG + help + Say 'y' here if you want QEMU to support capabilities. + config BR2_PACKAGE_QEMU_BLOBS bool "Install binary blobs" default y
package/qemu/qemu.mk +10 -1
@@ -156,6 +156,16 @@ else QEMU_OPTS += --disable-uuid endif +# There's no configure flag to disable use of libcap +# so we must use an environment variable +ifeq ($(BR2_PACKAGE_QEMU_CAP),y) +QEMU_OPTS += --enable-cap-ng +QEMU_DEPENDENCIES += libcap libcap-ng +else +QEMU_OPTS += --disable-cap-ng +QEMU_VARS += cap=no +endif + ifeq ($(BR2_PACKAGE_QEMU_BLOBS),) QEMU_OPTS += --disable-blobs endif
@@ -249,7 +259,6 @@ define QEMU_CONFIGURE_CMDS --disable-guest-base \ --disable-vde \ --disable-linux-aio \ - --disable-cap-ng \ --disable-docs \ --disable-spice \ --disable-rbd \
Signature · 1 line
1.7.2.5
PATCH 13/29 package/qemu: add attr/xattr option
In reply to Yann E. MORIN--- package/qemu/Config.in | 6 ++++++ package/qemu/qemu.mk | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletions(-)
package/qemu/Config.in +6 -0
@@ -132,6 +132,12 @@ config BR2_PACKAGE_QEMU_CAP help Say 'y' here if you want QEMU to support capabilities. +config BR2_PACKAGE_QEMU_ATTR + bool "Enable attr and xattr" + help + Say 'y' here to have QEMU support attributes (attr) and eXtended + attibutes (xattr). + config BR2_PACKAGE_QEMU_BLOBS bool "Install binary blobs" default y
package/qemu/qemu.mk +6 -1
@@ -166,6 +166,12 @@ QEMU_OPTS += --disable-cap-ng QEMU_VARS += cap=no endif +ifeq ($(BR2_PACKAGE_QEMU_ATTR),y) +QEMU_OPTS += --enable-attr +else +QEMU_OPTS += --disable-attr +endif + ifeq ($(BR2_PACKAGE_QEMU_BLOBS),) QEMU_OPTS += --disable-blobs endif
@@ -244,7 +250,6 @@ define QEMU_CONFIGURE_CMDS --audio-card-list= \ --enable-kvm \ --enable-nptl \ - --enable-attr \ --enable-vhost-net \ --disable-bsd-user \ --disable-xen \
Signature · 1 line
1.7.2.5
PATCH 14/29 package/qemu: add support for virtfs
In reply to Yann E. MORIN--- package/qemu/Config.in | 16 ++++++++++++++++ package/qemu/qemu.mk | 7 ++++++- 2 files changed, 22 insertions(+), 1 deletions(-)
package/qemu/Config.in +16 -0
@@ -113,6 +113,22 @@ config BR2_PACKAGE_QEMU_SDL Say 'y' to enable the SDL frontend, that is, a graphical window presenting the VM's display. +comment "Block backends" + +config BR2_PACKAGE_QEMU_VIRTFS + bool "Enable plan9 ressources using VirtFS" + select BR2_PACKAGE_QEMU_CAP + select BR2_PACKAGE_QEMU_ATTR + help + Say 'y' here if you want QEMU to provide a plan9 virtual "share" + accessible from the guest OS for relatively fast access to host + files. + + This requires that the guest OS is capable of accessing plan9 + ressources (typically, in Linux, this is done by a network + file-system called 9p, and can be accelerated by using the 9p + virtio). + comment "Misc. features" config BR2_PACKAGE_QEMU_UUID
package/qemu/qemu.mk +6 -1
@@ -149,6 +149,12 @@ else QEMU_OPTS += --disable-sdl endif +ifeq ($(BR2_PACKAGE_QEMU_VIRTFS),y) +QEMU_OPTS += --enable-virtfs +else +QEMU_OPTS += --disable-virtfs +endif + ifeq ($(BR2_PACKAGE_QEMU_UUID),y) QEMU_OPTS += --enable-uuid QEMU_DEPENDENCIES += util-linux
@@ -255,7 +261,6 @@ define QEMU_CONFIGURE_CMDS --disable-xen \ --disable-slirp \ --disable-vnc-sasl \ - --disable-virtfs \ --disable-brlapi \ --disable-curses \ --disable-curl \
Signature · 1 line
1.7.2.5
PATCH 15/29 package/qemu: add support for cURL
In reply to Yann E. MORINQEMU can use libcurl as a block backend, to access remote block devices.
--- package/qemu/Config.in | 10 ++++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 17 insertions(+), 1 deletions(-)
package/qemu/Config.in +10 -0
@@ -129,6 +129,16 @@ config BR2_PACKAGE_QEMU_VIRTFS file-system called 9p, and can be accelerated by using the 9p virtio). +config BR2_PACKAGE_QEMU_CURL + bool "Enable remote block-devices using cURL" + depends on !BR2_PREFER_STATIC_LIB + select BR2_PACKAGE_LIBCURL + help + Say 'y' to access remote block-devices using libcurl. + +comment "cURL support is not possible with static linking" + depends on BR2_PREFER_STATIC_LIB + comment "Misc. features" config BR2_PACKAGE_QEMU_UUID
package/qemu/qemu.mk +7 -1
@@ -155,6 +155,13 @@ else QEMU_OPTS += --disable-virtfs endif +ifeq ($(BR2_PACKAGE_QEMU_CURL),y) +QEMU_OPTS += --enable-curl +QEMU_DEPENDENCIES += libcurl +else +QEMU_OPTS += --disable-curl +endif + ifeq ($(BR2_PACKAGE_QEMU_UUID),y) QEMU_OPTS += --enable-uuid QEMU_DEPENDENCIES += util-linux
@@ -263,7 +270,6 @@ define QEMU_CONFIGURE_CMDS --disable-vnc-sasl \ --disable-brlapi \ --disable-curses \ - --disable-curl \ --disable-fdt \ --disable-bluez \ --disable-guest-base \
Signature · 1 line
1.7.2.5
PATCH 16/29 package/qemu: enable use of the curses frontend
In reply to Yann E. MORIN--- package/qemu/Config.in | 11 +++++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletions(-)
package/qemu/Config.in +11 -0
@@ -113,6 +113,17 @@ config BR2_PACKAGE_QEMU_SDL Say 'y' to enable the SDL frontend, that is, a graphical window presenting the VM's display. +config BR2_PACKAGE_QEMU_CURSES + bool "Enable the curses frontend" + select BR2_PACKAGE_NCURSES + help + Say 'y' to use curses to display the text-mode of VGA outpout. + + If the VM's graphic adapter does not support VGA text-mode, or it + is in graphical mode, then nothing will be displayed with this + frontend (although you can still use the SDL or VNC frontends to + display the graphical output). + comment "Block backends" config BR2_PACKAGE_QEMU_VIRTFS
package/qemu/qemu.mk +7 -1
@@ -149,6 +149,13 @@ else QEMU_OPTS += --disable-sdl endif +ifeq ($(BR2_PACKAGE_QEMU_CURSES),y) +QEMU_OPTS += --enable-curses +QEMU_DEPENDENCIES += ncurses +else +QEMU_OPTS += --disable-curses +endif + ifeq ($(BR2_PACKAGE_QEMU_VIRTFS),y) QEMU_OPTS += --enable-virtfs else
@@ -269,7 +276,6 @@ define QEMU_CONFIGURE_CMDS --disable-slirp \ --disable-vnc-sasl \ --disable-brlapi \ - --disable-curses \ --disable-fdt \ --disable-bluez \ --disable-guest-base \
Signature · 1 line
1.7.2.5
PATCH 17/29 package/qemu: add BlueZ connectivity
In reply to Yann E. MORIN--- package/qemu/Config.in | 11 +++++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletions(-)
package/qemu/Config.in +11 -0
@@ -150,6 +150,17 @@ config BR2_PACKAGE_QEMU_CURL comment "cURL support is not possible with static linking" depends on BR2_PREFER_STATIC_LIB +comment "Networking" + +config BR2_PACKAGE_QEMU_BLUEZ + bool "Enable BlueZ connectivity" + depends on BR2_PACKAGE_BLUEZ_UTILS + help + Say 'y' here to enable BlueZ (bluetooth) connectivity in QEMU. + +comment "BlueZ connectivity depends on bluez-utils" + depends on !BR2_PACKAGE_BLUEZ_UTILS + comment "Misc. features" config BR2_PACKAGE_QEMU_UUID
package/qemu/qemu.mk +7 -1
@@ -169,6 +169,13 @@ else QEMU_OPTS += --disable-curl endif +ifeq ($(BR2_PACKAGE_QEMU_BLUEZ),y) +QEMU_OPTS += --enable-bluez +QEMU_DEPENDENCIES += bluez_utils +else +QEMU_OPTS += --disable-bluez +endif + ifeq ($(BR2_PACKAGE_QEMU_UUID),y) QEMU_OPTS += --enable-uuid QEMU_DEPENDENCIES += util-linux
@@ -277,7 +284,6 @@ define QEMU_CONFIGURE_CMDS --disable-vnc-sasl \ --disable-brlapi \ --disable-fdt \ - --disable-bluez \ --disable-guest-base \ --disable-vde \ --disable-linux-aio \
Signature · 1 line
1.7.2.5
PATCH 18/29 package/qemu: add AIO support
In reply to Yann E. MORINAdd support for Asynchronous Input/Ouput (AIO).
--- package/qemu/Config.in | 9 +++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletions(-)
package/qemu/Config.in +9 -0
@@ -150,6 +150,15 @@ config BR2_PACKAGE_QEMU_CURL comment "cURL support is not possible with static linking" depends on BR2_PREFER_STATIC_LIB +config BR2_PACKAGE_QEMU_AIO + bool "Enable AIO" + depends on BR2_PACKAGE_LIBAIO + help + Say 'y' here to enable Asynchronous Input/Output (AIO). + +comment "AIO support depends on libaio" + depends on !BR2_PACKAGE_LIBAIO + comment "Networking" config BR2_PACKAGE_QEMU_BLUEZ
package/qemu/qemu.mk +7 -1
@@ -169,6 +169,13 @@ else QEMU_OPTS += --disable-curl endif +ifeq ($(BR2_PACKAGE_QEMU_AIO),y) +QEMU_OPTS += --enable-linux-aio +QEMU_DEPENDENCIES += libaio +else +QEMU_OPTS += --disable-linux-aio +endif + ifeq ($(BR2_PACKAGE_QEMU_BLUEZ),y) QEMU_OPTS += --enable-bluez QEMU_DEPENDENCIES += bluez_utils
@@ -286,7 +293,6 @@ define QEMU_CONFIGURE_CMDS --disable-fdt \ --disable-guest-base \ --disable-vde \ - --disable-linux-aio \ --disable-docs \ --disable-spice \ --disable-rbd \
Signature · 1 line
1.7.2.5
PATCH 19/29 package/qemu: add support for VDE switches
In reply to Yann E. MORIN--- package/qemu/Config.in | 7 +++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
@@ -170,6 +170,13 @@ config BR2_PACKAGE_QEMU_BLUEZ comment "BlueZ connectivity depends on bluez-utils" depends on !BR2_PACKAGE_BLUEZ_UTILS +config BR2_PACKAGE_QEMU_VDE + bool "Enable VDE" + select BR2_PACKAGE_VDE2 + help + Say 'y' here to have QEMU connect to VDE (Virtual Distributed + Ethernet) switches. + comment "Misc. features" config BR2_PACKAGE_QEMU_UUID
package/qemu/qemu.mk +7 -1
@@ -183,6 +183,13 @@ else QEMU_OPTS += --disable-bluez endif +ifeq ($(BR2_PACKAGE_QEMU_VDE),y) +QEMU_OPTS += --enable-vde +QEMU_DEPENDENCIES += vde2 +else +QEMU_OPTS += --disable-vde +endif + ifeq ($(BR2_PACKAGE_QEMU_UUID),y) QEMU_OPTS += --enable-uuid QEMU_DEPENDENCIES += util-linux
@@ -292,7 +299,6 @@ define QEMU_CONFIGURE_CMDS --disable-brlapi \ --disable-fdt \ --disable-guest-base \ - --disable-vde \ --disable-docs \ --disable-spice \ --disable-rbd \
Signature · 1 line
1.7.2.5
PATCH 20/29 package/qemu: add iSCSI support
In reply to Yann E. MORIN--- package/qemu/Config.in | 6 ++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletions(-)
package/qemu/Config.in +6 -0
@@ -150,6 +150,12 @@ config BR2_PACKAGE_QEMU_CURL comment "cURL support is not possible with static linking" depends on BR2_PREFER_STATIC_LIB +config BR2_PACKAGE_QEMU_ISCSI + bool "Enable remote block-devices using iSCSI" + select BR2_PACKAGE_LIBISCSI + help + Say 'y' here to have QEMU use iSCSI targets as block-devices. + config BR2_PACKAGE_QEMU_AIO bool "Enable AIO" depends on BR2_PACKAGE_LIBAIO
package/qemu/qemu.mk +7 -1
@@ -169,6 +169,13 @@ else QEMU_OPTS += --disable-curl endif +ifeq ($(BR2_PACKAGE_QEMU_ISCSI),y) +QEMU_OPTS += --enable-libiscsi +QEMU_DEPENDENCIES += libiscsi +else +QEMU_OPTS += --disable-libiscsi +endif + ifeq ($(BR2_PACKAGE_QEMU_AIO),y) QEMU_OPTS += --enable-linux-aio QEMU_DEPENDENCIES += libaio
@@ -302,7 +309,6 @@ define QEMU_CONFIGURE_CMDS --disable-docs \ --disable-spice \ --disable-rbd \ - --disable-libiscsi \ --disable-usb-redir \ --disable-smartcard \ --disable-strip \
Signature · 1 line
1.7.2.5
PATCH 21/29 package/qemu: add support for USB redirection
In reply to Yann E. MORIN--- package/qemu/Config.in | 9 +++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletions(-)
package/qemu/Config.in +9 -0
@@ -156,6 +156,15 @@ config BR2_PACKAGE_QEMU_ISCSI help Say 'y' here to have QEMU use iSCSI targets as block-devices. +config BR2_PACKAGE_QEMU_USBREDIR + bool "Enable USB redirection" + depends on BR2_PACKAGE_USBREDIR + help + Say 'y' here to have QEMU support USB redirection over the network. + +comment "USB redirection requires usbredir" + depends on !BR2_PACKAGE_USBREDIR + config BR2_PACKAGE_QEMU_AIO bool "Enable AIO" depends on BR2_PACKAGE_LIBAIO
package/qemu/qemu.mk +7 -1
@@ -176,6 +176,13 @@ else QEMU_OPTS += --disable-libiscsi endif +ifeq ($(BR2_PACKAGE_QEMU_USBREDIR),y) +QEMU_OPTS += --enable-usb-redir +QEMU_DEPENDENCIES += usbredir +else +QEMU_OPTS += --disable-usb-redir +endif + ifeq ($(BR2_PACKAGE_QEMU_AIO),y) QEMU_OPTS += --enable-linux-aio QEMU_DEPENDENCIES += libaio
@@ -309,7 +316,6 @@ define QEMU_CONFIGURE_CMDS --disable-docs \ --disable-spice \ --disable-rbd \ - --disable-usb-redir \ --disable-smartcard \ --disable-strip \ --disable-seccomp \
Signature · 1 line
1.7.2.5
PATCH 22/29 package/qemu: add support for Spice
In reply to Yann E. MORIN--- package/qemu/Config.in | 9 +++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletions(-)
package/qemu/Config.in +9 -0
@@ -124,6 +124,15 @@ config BR2_PACKAGE_QEMU_CURSES frontend (although you can still use the SDL or VNC frontends to display the graphical output). +config BR2_PACKAGE_QEMU_SPICE + bool "Enable Spice frontend" + depends on BR2_PACKAGE_SPICE + help + Say 'y' here to have QEMU support Spice as a (VNC-like) frontend. + +comment "Spice support requires spice-server" + depends on !BR2_PACKAGE_SPICE + comment "Block backends" config BR2_PACKAGE_QEMU_VIRTFS
package/qemu/qemu.mk +7 -1
@@ -156,6 +156,13 @@ else QEMU_OPTS += --disable-curses endif +ifeq ($(BR2_PACKAGE_QEMU_SPICE),y) +QEMU_OPTS += --enable-spice +QEMU_DEPENDENCIES += spice +else +QEMU_OPTS += --disable-spice +endif + ifeq ($(BR2_PACKAGE_QEMU_VIRTFS),y) QEMU_OPTS += --enable-virtfs else
@@ -314,7 +321,6 @@ define QEMU_CONFIGURE_CMDS --disable-fdt \ --disable-guest-base \ --disable-docs \ - --disable-spice \ --disable-rbd \ --disable-smartcard \ --disable-strip \
Signature · 1 line
1.7.2.5
PATCH 23/29 package/qemu: enable sound
In reply to Yann E. MORIN--- package/qemu/Config.in | 38 ++++++++++++++++++++++++++++++++++++++ package/qemu/qemu.mk | 19 +++++++++++++++++-- 2 files changed, 55 insertions(+), 2 deletions(-)
package/qemu/Config.in +38 -0
@@ -201,6 +201,44 @@ config BR2_PACKAGE_QEMU_VDE Say 'y' here to have QEMU connect to VDE (Virtual Distributed Ethernet) switches. +comment "Sound" + +config BR2_PACKAGE_QEMU_SOUND_CARDS + string "Enable sound cards" + default "ac97 es1370 hda" + help + Enter here the list of sound cards you want QEMU to emulate. + The available sound cards are: + ac97 es1370 sb16 cs4231a adlib gus hda + + The default is: ac97 es1370 hda + + Note: even if you say 'n' to both alsa and SDL drivers, below, QEMU + always include the 'wav' driver, which stores the generated sound + into a file, and the 'none' driver, which discards generated sound. + +config BR2_PACKAGE_QEMU_MIXEMU + bool "Enable mixer emulation" + help + Say 'y' here to have QEMU emulate a mixer device. + +config BR2_PACKAGE_QEMU_SOUND_ALSA + bool "Enable sound via alsa" + select BR2_PACKAGE_ALSA_LIB + help + Say 'y' here to have QEMU play sound from the VMs via alsa. + + Note: this is only for system emulation, not user emulation. + +config BR2_PACKAGE_QEMU_SOUND_SDL + bool "Enable sound via SDL" + select BR2_PACKAGE_QEMU_SDL # Requires that SDL frontend be selected + select BR2_PACKAGE_SDL + help + Say 'y' here to have QEMU play sound from the VMs via SDL. + + Note: this is only for system emulation, not user emulation. + comment "Misc. features" config BR2_PACKAGE_QEMU_UUID
package/qemu/qemu.mk +17 -2
@@ -211,6 +211,23 @@ else QEMU_OPTS += --disable-vde endif +QEMU_SND_DRV = +ifeq ($(BR2_PACKAGE_QEMU_SOUND_ALSA),y) +QEMU_SND_DRV += alsa +QEMU_DEPENDENCIES += alsa-lib +endif +ifeq ($(BR2_PACKAGE_QEMU_SOUND_SDL),y) +QEMU_SND_DRV += sdl +QEMU_DEPENDENCIES += sdl +endif +ifneq ($(QEMU_SND_DRV),) +QEMU_OPTS += --audio-drv-list="$(QEMU_SND_DRV)" +endif +QEMU_OPTS += --audio-card-list=$(BR2_PACKAGE_QEMU_SOUND_CARDS) +ifeq ($(BR2_PACKAGE_QEMU_MIXEMU),y) +QEMU_OPTS += --enable-mixemu +endif + ifeq ($(BR2_PACKAGE_QEMU_UUID),y) QEMU_OPTS += --enable-uuid QEMU_DEPENDENCIES += util-linux
@@ -308,8 +325,6 @@ define QEMU_CONFIGURE_CMDS --prefix=/usr \ --cross-prefix=$(TARGET_CROSS) \ --with-system-pixman \ - --audio-drv-list= \ - --audio-card-list= \ --enable-kvm \ --enable-nptl \ --enable-vhost-net \
Signature · 1 line
1.7.2.5
PATCH 24/29 package/qemu: add support for libseccomp
In reply to Yann E. MORIN--- package/qemu/Config.in | 7 +++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
@@ -264,6 +264,13 @@ config BR2_PACKAGE_QEMU_ATTR Say 'y' here to have QEMU support attributes (attr) and eXtended attibutes (xattr). +config BR2_PACKAGE_QEMU_SECCOMP + bool "Enable seccomp filter" + select BR2_PACKAGE_LIBSECCOMP + help + Say 'y' here to have QEMU to use the Linux kernel's seccomp filter, + to more tightly confine the VMs. + config BR2_PACKAGE_QEMU_BLOBS bool "Install binary blobs" default y
package/qemu/qemu.mk +7 -1
@@ -251,6 +251,13 @@ else QEMU_OPTS += --disable-attr endif +ifeq ($(BR2_PACKAGE_QEMU_SECCOMP),y) +QEMU_OPTS += --enable-seccomp +QEMU_DEPENDENCIES += libseccomp +else +QEMU_OPTS += --disable-seccomp +endif + ifeq ($(BR2_PACKAGE_QEMU_BLOBS),) QEMU_OPTS += --disable-blobs endif
@@ -339,7 +346,6 @@ define QEMU_CONFIGURE_CMDS --disable-rbd \ --disable-smartcard \ --disable-strip \ - --disable-seccomp \ --disable-sparse \ --disable-tools \ $(QEMU_OPTS) \
Signature · 1 line
1.7.2.5
PATCH 25/29 package/qemu: option to build the docs
In reply to Yann E. MORIN--- package/qemu/qemu.mk | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-)
package/qemu/qemu.mk +6 -1
@@ -262,6 +262,12 @@ ifeq ($(BR2_PACKAGE_QEMU_BLOBS),) QEMU_OPTS += --disable-blobs endif +ifeq ($(BR2_HAVE_DOCUMENTATION),y) +QEMU_OPTS += --enable-docs +else +QEMU_OPTS += --disable-docs +endif + # Post-install removal of unwanted keymaps: # - if we want 'all', we do nothing; # - if we want none, we completely remove the keymap dir
@@ -342,7 +348,6 @@ define QEMU_CONFIGURE_CMDS --disable-brlapi \ --disable-fdt \ --disable-guest-base \ - --disable-docs \ --disable-rbd \ --disable-smartcard \ --disable-strip \
Signature · 1 line
1.7.2.5
PATCH 26/29 package/qemu: add option to install tools on the target
In reply to Yann E. MORINUsually, tools on the target are not needed, so they are disabled by default. Add an option to install them on the target.
--- package/qemu/Config.in | 6 ++++++ package/qemu/qemu.mk | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletions(-)
package/qemu/Config.in +6 -0
@@ -271,6 +271,12 @@ config BR2_PACKAGE_QEMU_SECCOMP Say 'y' here to have QEMU to use the Linux kernel's seccomp filter, to more tightly confine the VMs. +config BR2_PACKAGE_QEMU_TOOLS_ON_TARGET + bool "tools on target" + help + Say 'y' here to also install QEMU tools (qemu-{img,io,nbd}) on the + target. + config BR2_PACKAGE_QEMU_BLOBS bool "Install binary blobs" default y
package/qemu/qemu.mk +6 -1
@@ -258,6 +258,12 @@ else QEMU_OPTS += --disable-seccomp endif +ifeq ($(BR2_PACKAGE_QEMU_TOOLS_ON_TARGET),y) +QEMU_OPTS += --enable-tools +else +QEMU_OPTS += --disable-tools +endif + ifeq ($(BR2_PACKAGE_QEMU_BLOBS),) QEMU_OPTS += --disable-blobs endif
@@ -352,7 +358,6 @@ define QEMU_CONFIGURE_CMDS --disable-smartcard \ --disable-strip \ --disable-sparse \ - --disable-tools \ $(QEMU_OPTS) \ ) endef
Signature · 1 line
1.7.2.5
PATCH 27/29 package/qemu: move sub-options into a sub-menu
In reply to Yann E. MORINAs there are now quite a few options to QEMU, move them into their own sub-menu, so it looks a bit less crowded in the 'misc' menu.
--- package/qemu/Config.in | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
package/qemu/Config.in +1 -1
@@ -2,7 +2,7 @@ comment "QEMU requires a toolchain with threads" depends on !BR2_i386 && !BR2_x86_64 depends on !BR2_TOOLCHAIN_HAS_THREADS -config BR2_PACKAGE_QEMU +menuconfig BR2_PACKAGE_QEMU bool "QEMU" depends on BR2_i386 || BR2_x86_64 depends on BR2_TOOLCHAIN_HAS_THREADS
Signature · 1 line
1.7.2.5
PATCH 28/29 package/qemu: enable a static build
In reply to Yann E. MORIN---
It can be useful to have a statically-linked QEMU (especially the linux-user and bsd-user emulators) to avoid run-time issues with dynamically-loaded libraries.
There is an issue where QEMU could not be able to properly (re)map libraries in memory due to some overlap between its own memory mappings and the mappings of the user application being translated (it's a complex issue, so don't count on me to properly explain it, I did not understood it completely either... :-/ ).
--- package/qemu/Config.in | 37 ++++++++++++++---- package/qemu/qemu-static-curl.patch | 72 +++++++++++++++++++++++++++++++++++ package/qemu/qemu-static-sdl.patch | 54 ++++++++++++++++++++++++++ package/qemu/qemu.mk | 4 ++ 4 files changed, 159 insertions(+), 8 deletions(-) create mode 100644 package/qemu/qemu-static-curl.patch create mode 100644 package/qemu/qemu-static-sdl.patch
package/qemu/Config.in +29 -8
@@ -100,11 +100,11 @@ config BR2_PACKAGE_QEMU_VNC_JPEG config BR2_PACKAGE_QEMU_VNC_TLS bool "TLS encryption" depends on BR2_PACKAGE_QEMU_VNC - depends on !BR2_PREFER_STATIC_LIB + depends on !BR2_PACKAGE_QEMU_STATIC select BR2_PACKAGE_GNUTLS comment "VNC TLS encryption does not work for static link" - depends on BR2_PACKAGE_QEMU_VNC && BR2_PREFER_STATIC_LIB + depends on BR2_PACKAGE_QEMU_VNC && BR2_PACKAGE_QEMU_STATIC config BR2_PACKAGE_QEMU_SDL bool "Enable SDL frontend"
@@ -127,11 +127,21 @@ config BR2_PACKAGE_QEMU_CURSES config BR2_PACKAGE_QEMU_SPICE bool "Enable Spice frontend" depends on BR2_PACKAGE_SPICE + depends on !BR2_PACKAGE_QEMU_STATIC || BR2_PREFER_STATIC_LIB help Say 'y' here to have QEMU support Spice as a (VNC-like) frontend. -comment "Spice support requires spice-server" - depends on !BR2_PACKAGE_SPICE + Note: + Spice links against alsa-libs, but alsa-libs can't be built both + shared and static at the same time, so we can not link with a + static spice to get a static QEMU (BR2_PACKAGE_QEMU_STATIC) if + buildroot as a whole does not also build only static libraries + (BR2_PREFER_STATIC_LIB). + +if !BR2_PACKAGE_SPICE || ( BR2_PACKAGE_QEMU_STATIC && !BR2_PREFER_STATIC_LIB ) +comment "Spice support requires spice-server, and does not work for a static" +comment "build of QEMU unless BR2_PREFER_STATIC_LIB is set, too" +endif comment "Block backends"
@@ -151,14 +161,10 @@ config BR2_PACKAGE_QEMU_VIRTFS config BR2_PACKAGE_QEMU_CURL bool "Enable remote block-devices using cURL" - depends on !BR2_PREFER_STATIC_LIB select BR2_PACKAGE_LIBCURL help Say 'y' to access remote block-devices using libcurl. -comment "cURL support is not possible with static linking" - depends on BR2_PREFER_STATIC_LIB - config BR2_PACKAGE_QEMU_ISCSI bool "Enable remote block-devices using iSCSI" select BR2_PACKAGE_LIBISCSI
@@ -222,14 +228,21 @@ config BR2_PACKAGE_QEMU_MIXEMU help Say 'y' here to have QEMU emulate a mixer device. +# Alsa can not build both shared and static libs at the same time. +# But we may want to build QEMU staticaly, even though the global +# BR2_PREFER_STATIC_LIB is not set. Disable that case. config BR2_PACKAGE_QEMU_SOUND_ALSA bool "Enable sound via alsa" + depends on !BR2_PACKAGE_QEMU_STATIC || BR2_PREFER_STATIC_LIB select BR2_PACKAGE_ALSA_LIB help Say 'y' here to have QEMU play sound from the VMs via alsa. Note: this is only for system emulation, not user emulation. +comment "Alsa sound static link works only if BR2_PREFER_STATIC is set" + depends on BR2_PACKAGE_QEMU_STATIC && !BR2_PREFER_STATIC_LIB + config BR2_PACKAGE_QEMU_SOUND_SDL bool "Enable sound via SDL" select BR2_PACKAGE_QEMU_SDL # Requires that SDL frontend be selected
@@ -303,4 +316,12 @@ config BR2_PACKAGE_QEMU_KEYMAPS - 'de fr* en-*' for german, french and english keymaps - and so on (see the QEMU source for all supported keymaps) +config BR2_PREFER_STATIC_LIB + select BR2_PACKAGE_QEMU_STATIC + +config BR2_PACKAGE_QEMU_STATIC + bool "Build statically" + help + Build static qemu executable(s). + endif # BR2_PACKAGE_QEMU
package/qemu/qemu-static-curl.patch new file +72 -0
72 lines not on this page · raw message
package/qemu/qemu-static-sdl.patch new file +54 -0
54 lines not on this page · raw message
package/qemu/qemu.mk +4 -0
@@ -274,6 +274,10 @@ else QEMU_OPTS += --disable-docs endif +ifeq ($(BR2_PACKAGE_QEMU_STATIC),y) +QEMU_OPTS += --static +endif + # Post-install removal of unwanted keymaps: # - if we want 'all', we do nothing; # - if we want none, we completely remove the keymap dir
Signature · 1 line
1.7.2.5
PATCH 29/29 package/qemu: add support for FDT
In reply to Yann E. MORINFDT is the Flat Device Tree, and allows QEMU to pass DTs to the VMs.
--- package/qemu/Config.in | 7 +++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
@@ -254,6 +254,13 @@ config BR2_PACKAGE_QEMU_SOUND_SDL comment "Misc. features" +config BR2_PACKAGE_QEMU_FDT + bool "Enable FDT" + select BR2_PACKAGE_DTC + help + Say 'y' here to have QEMU capable of constructing Device Trees, + and passing them to the VMs. + config BR2_PACKAGE_QEMU_UUID bool "Enable VMs UUID" depends on BR2_PACKAGE_UTIL_LINUX
package/qemu/qemu.mk +7 -1
@@ -228,6 +228,13 @@ ifeq ($(BR2_PACKAGE_QEMU_MIXEMU),y) QEMU_OPTS += --enable-mixemu endif +ifeq ($(BR2_PACKAGE_QEMU_FDT),y) +QEMU_OPTS += --enable-fdt +QEMU_DEPENDENCIES += dtc +else +QEMU_OPTS += --disable-fdt +endif + ifeq ($(BR2_PACKAGE_QEMU_UUID),y) QEMU_OPTS += --enable-uuid QEMU_DEPENDENCIES += util-linux
@@ -356,7 +363,6 @@ define QEMU_CONFIGURE_CMDS --disable-slirp \ --disable-vnc-sasl \ --disable-brlapi \ - --disable-fdt \ --disable-guest-base \ --disable-rbd \ --disable-smartcard \
Signature · 1 line
1.7.2.5