Skip to contentSkip to conversation

Pull request for branch yem-target-qemu

GIT PULL New Yann E. MORIN 2 participants 34 messages Jan 29, 2013 – Jan 30, 2013

lore
Share & tools
lore
#0 lore raw

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.  |
'------------------------------^-------^------------------^--------------------'
#1 lore raw

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
index 65989f4..806ffd8 100644
@@ -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
#2 lore raw

PATCH 2/29 package/qemu: build for the target (i386 or x86_64 only)

In reply to Yann E. MORIN

Untested 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
index f4a331c..b04534a 100644
@@ -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
new file mode 100644
index 0000000..b0ed279
@@ -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
#3 lore raw

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
#4 lore raw

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.  |
'------------------------------^-------^------------------^--------------------'
#5 lore raw

PATCH 3/29 package/qemu: add basic target selection

In reply to 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

---
 package/qemu/Config.in |   32 ++++++++++++++++++++++++++++++++
 package/qemu/qemu.mk   |   14 ++++++++++++--
 2 files changed, 44 insertions(+), 2 deletions(-)
package/qemu/Config.in +32 -0
index b0ed279..9bfe37d 100644
@@ -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
index 6dfcdd9..c2302fa 100644
@@ -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
#6 lore raw

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
#7 lore raw

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.  |
'------------------------------^-------^------------------^--------------------'
#8 lore raw

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
index 9bfe37d..4f1576b 100644
@@ -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
index c2302fa..c91c79b 100644
@@ -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
#9 lore raw

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
index 4f1576b..ad934ae 100644
@@ -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
index c91c79b..1dd0c98 100644
@@ -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
#10 lore raw

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
index ad934ae..d904566 100644
@@ -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
index 1dd0c98..c122be7 100644
@@ -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
#11 lore raw

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
index d904566..82546a6 100644
@@ -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
index c122be7..7563e24 100644
@@ -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
#12 lore raw

PATCH 8/29 package/qemu: add VNC TLS-encryption

In reply to Yann E. MORIN

Only 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
index 82546a6..1e80f6a 100644
@@ -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
index 7563e24..fbf08fc 100644
@@ -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
#13 lore raw

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
index 1e80f6a..54f49ff 100644
@@ -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
index fbf08fc..49e2f35 100644
@@ -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
#14 lore raw

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
index 54f49ff..41c4cf2 100644
@@ -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
#15 lore raw

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
index 41c4cf2..4952c34 100644
@@ -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
index ea1487a..bdccbf5 100644
@@ -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
#16 lore raw

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
index 4952c34..2c46937 100644
@@ -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
index bdccbf5..7e704b9 100644
@@ -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
#17 lore raw

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
index 2c46937..8719bde 100644
@@ -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
index 7e704b9..c5861f0 100644
@@ -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
#18 lore raw

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
index 8719bde..75df82b 100644
@@ -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
index c5861f0..39e5c49 100644
@@ -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
#19 lore raw

PATCH 15/29 package/qemu: add support for cURL

In reply to Yann E. MORIN

QEMU 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
index 75df82b..4e5b81b 100644
@@ -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
index 39e5c49..6fda51e 100644
@@ -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
#20 lore raw

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
index 4e5b81b..dbe7cb9 100644
@@ -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
index 6fda51e..055c151 100644
@@ -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
#21 lore raw

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
index dbe7cb9..f22bb19 100644
@@ -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
index 055c151..4377b54 100644
@@ -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
#22 lore raw

PATCH 18/29 package/qemu: add AIO support

In reply to Yann E. MORIN

Add 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
index f22bb19..d57d2e9 100644
@@ -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
index 4377b54..31bd2e7 100644
@@ -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
#23 lore raw

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
index d57d2e9..123fe6b 100644
@@ -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
index 31bd2e7..9915155 100644
@@ -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
#24 lore raw

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
index 123fe6b..9f50533 100644
@@ -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
index 9915155..77ecde4 100644
@@ -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
#25 lore raw

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
index 9f50533..3b0221e 100644
@@ -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
index 77ecde4..195a808 100644
@@ -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
#26 lore raw

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
index 3b0221e..0e45b18 100644
@@ -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
index 195a808..8a082b4 100644
@@ -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
#27 lore raw

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
index 0e45b18..d6b2f95 100644
@@ -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
index 8a082b4..0cd1a37 100644
@@ -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
#28 lore raw

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
index d6b2f95..f71311d 100644
@@ -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
index 0cd1a37..ddee260 100644
@@ -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
#29 lore raw

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
index ddee260..90b1ebf 100644
@@ -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
#30 lore raw

PATCH 26/29 package/qemu: add option to install tools on the target

In reply to Yann E. MORIN

Usually, 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
index f71311d..022b07b 100644
@@ -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
index 90b1ebf..d745e0d 100644
@@ -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
#31 lore raw

PATCH 27/29 package/qemu: move sub-options into a sub-menu

In reply to Yann E. MORIN

As 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
index 022b07b..64a7e6f 100644
@@ -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
#32 lore raw

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
index 64a7e6f..e433cc0 100644
@@ -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
index d745e0d..f4705cc 100644
@@ -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
#33 lore raw

PATCH 29/29 package/qemu: add support for FDT

In reply to Yann E. MORIN

FDT 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
index e433cc0..e5bf7c0 100644
@@ -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
index f4705cc..37f81bf 100644
@@ -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