mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-08-02 16:07:42 +00:00
qemu: add support for host-qemu-system
This commit adds support for building the system emulation mode in host-qemu. To do so, it adds the BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE and BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE sub-options, making sure that the latter is selected if the former is not enabled. This ensures that at least one is enabled *and* that existing configurations continue to build the user-land emulation (which was the only one we supported until now). The list of architectures supported by the system emulation mode is the same as the one for the user-space emulation mode (as far as the existing list is concerned), so we simply drop the comment about this dependency list being related to the user-space emulation only. Signed-off-by: Simon Maes <simonn.maes@gmail.com> [Thomas: - Make sure either BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE or BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE get selected. - Unconditionally enable FDT support in host-qemu when in system mode (so the option BR2_PACKAGE_HOST_QEMU_FDT has been removed) - Remove the unneeded BR2_PACKAGE_HOST_QEMU_HAS_EMULS option. - Remove the SDL related option, we really on the system to provide SDL. - Remove the BR2_PACKAGE_HOST_QEMU_DEBUG and BR2_PACKAGE_HOST_QEMU_STRIP_BINARY options, since they are not really useful. - Remove HOST_QEMU_SITE and HOST_QEMU_SOURCE definitions, since they are automatically derived from QEMU_SITE and QEMU_SOURCE anyway. - Group things more logically in the .mk file.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
6ab32f3856
commit
60a965fbaa
@ -1,8 +1,7 @@
|
|||||||
config BR2_PACKAGE_HOST_QEMU
|
config BR2_PACKAGE_HOST_QEMU
|
||||||
bool "host qemu"
|
bool "host qemu"
|
||||||
# So far, we only build the user mode emulation, so this list
|
select BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE \
|
||||||
# of architecture dependencies only takes into account this
|
if !BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE
|
||||||
# emulation mode.
|
|
||||||
depends on BR2_arm || BR2_armeb || BR2_aarch64 || \
|
depends on BR2_arm || BR2_armeb || BR2_aarch64 || \
|
||||||
BR2_i386 || BR2_m68k || BR2_microblazeel || \
|
BR2_i386 || BR2_m68k || BR2_microblazeel || \
|
||||||
BR2_microblazebe || BR2_mips || BR2_mipsel || \
|
BR2_microblazebe || BR2_mips || BR2_mipsel || \
|
||||||
@ -12,6 +11,24 @@ config BR2_PACKAGE_HOST_QEMU
|
|||||||
help
|
help
|
||||||
QEMU is a generic and open source machine emulator and virtualizer.
|
QEMU is a generic and open source machine emulator and virtualizer.
|
||||||
|
|
||||||
This option builds a user emulator for your selected architecture.
|
This option builds an emulator for your selected architecture.
|
||||||
|
|
||||||
http://www.qemu.org
|
http://www.qemu.org
|
||||||
|
|
||||||
|
if BR2_PACKAGE_HOST_QEMU
|
||||||
|
|
||||||
|
comment "Emulators selection"
|
||||||
|
|
||||||
|
config BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE
|
||||||
|
bool "Enable system emulation"
|
||||||
|
help
|
||||||
|
Enables the build of the system emulator, which allows to
|
||||||
|
boot an entire system in Qemu.
|
||||||
|
|
||||||
|
config BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE
|
||||||
|
bool "Enable Linux user-land emulation"
|
||||||
|
help
|
||||||
|
Enables the build of the user-land emulator, which allows to
|
||||||
|
run user-space applications.
|
||||||
|
|
||||||
|
endif
|
||||||
|
@ -61,9 +61,19 @@ endif
|
|||||||
ifeq ($(HOST_QEMU_ARCH),sh4aeb)
|
ifeq ($(HOST_QEMU_ARCH),sh4aeb)
|
||||||
HOST_QEMU_ARCH = sh4eb
|
HOST_QEMU_ARCH = sh4eb
|
||||||
endif
|
endif
|
||||||
HOST_QEMU_TARGETS = $(HOST_QEMU_ARCH)-linux-user
|
|
||||||
|
|
||||||
ifeq ($(BR2_PACKAGE_HOST_QEMU),y)
|
ifeq ($(BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE),y)
|
||||||
|
HOST_QEMU_TARGETS += $(HOST_QEMU_ARCH)-softmmu
|
||||||
|
HOST_QEMU_OPTS += --enable-system --enable-fdt
|
||||||
|
HOST_QEMU_DEPENDENCIES += host-dtc
|
||||||
|
else
|
||||||
|
HOST_QEMU_OPTS += --disable-system
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE),y)
|
||||||
|
HOST_QEMU_TARGETS += $(HOST_QEMU_ARCH)-linux-user
|
||||||
|
HOST_QEMU_OPTS += --enable-linux-user
|
||||||
|
|
||||||
HOST_QEMU_HOST_SYSTEM_TYPE = $(shell uname -s)
|
HOST_QEMU_HOST_SYSTEM_TYPE = $(shell uname -s)
|
||||||
ifneq ($(HOST_QEMU_HOST_SYSTEM_TYPE),Linux)
|
ifneq ($(HOST_QEMU_HOST_SYSTEM_TYPE),Linux)
|
||||||
$(error "qemu-user can only be used on Linux hosts")
|
$(error "qemu-user can only be used on Linux hosts")
|
||||||
@ -84,12 +94,16 @@ HOST_QEMU_COMPARE_VERSION = $(shell test $(HOST_QEMU_HOST_SYSTEM_VERSION) -ge $(
|
|||||||
# built with kernel headers that are older or the same as the kernel
|
# built with kernel headers that are older or the same as the kernel
|
||||||
# version running on the host machine.
|
# version running on the host machine.
|
||||||
#
|
#
|
||||||
|
|
||||||
ifeq ($(BR_BUILDING),y)
|
ifeq ($(BR_BUILDING),y)
|
||||||
ifneq ($(HOST_QEMU_COMPARE_VERSION),OK)
|
ifneq ($(HOST_QEMU_COMPARE_VERSION),OK)
|
||||||
$(error "Refusing to build qemu-user: target Linux version newer than host's.")
|
$(error "Refusing to build qemu-user: target Linux version newer than host's.")
|
||||||
endif
|
endif
|
||||||
endif
|
endif # BR_BUILDING
|
||||||
endif
|
|
||||||
|
else # BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE
|
||||||
|
HOST_QEMU_OPTS += --disable-linux-user
|
||||||
|
endif # BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE
|
||||||
|
|
||||||
define HOST_QEMU_CONFIGURE_CMDS
|
define HOST_QEMU_CONFIGURE_CMDS
|
||||||
cd $(@D); $(HOST_CONFIGURE_OPTS) ./configure \
|
cd $(@D); $(HOST_CONFIGURE_OPTS) ./configure \
|
||||||
@ -100,7 +114,8 @@ define HOST_QEMU_CONFIGURE_CMDS
|
|||||||
--host-cc="$(HOSTCC)" \
|
--host-cc="$(HOSTCC)" \
|
||||||
--python=$(HOST_DIR)/usr/bin/python2 \
|
--python=$(HOST_DIR)/usr/bin/python2 \
|
||||||
--extra-cflags="$(HOST_CFLAGS)" \
|
--extra-cflags="$(HOST_CFLAGS)" \
|
||||||
--extra-ldflags="$(HOST_LDFLAGS)"
|
--extra-ldflags="$(HOST_LDFLAGS)" \
|
||||||
|
$(HOST_QEMU_OPTS)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define HOST_QEMU_BUILD_CMDS
|
define HOST_QEMU_BUILD_CMDS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user