![Fabrice Fontaine](/assets/img/avatar_default.png)
Use a system-wide slirp now that we switched to the up to date https://gitlab.freedesktop.org/slirp/libslirp qemu already depends on libglib2 so we don't need to add any new dependencies Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
153 lines
4.5 KiB
Plaintext
153 lines
4.5 KiB
Plaintext
config BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
|
|
bool
|
|
# Only tested on these architectures
|
|
default y if BR2_aarch64 || BR2_i386 || BR2_mips || BR2_mipsel \
|
|
|| BR2_x86_64 || BR2_arm \
|
|
|| BR2_powerpc64 || BR2_powerpc64le
|
|
|
|
comment "QEMU requires a toolchain with wchar, threads"
|
|
depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
|
|
depends on BR2_USE_MMU
|
|
depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR)
|
|
|
|
config BR2_PACKAGE_QEMU
|
|
bool "QEMU"
|
|
depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS
|
|
depends on BR2_USE_WCHAR # gettext
|
|
depends on BR2_USE_MMU # fork()
|
|
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/
|
|
|
|
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
|
|
... | ...
|
|
|
|
comment "Networking options"
|
|
|
|
config BR2_PACKAGE_QEMU_SLIRP
|
|
bool "Enable user mode networking (SLIRP)"
|
|
select BR2_PACKAGE_SLIRP
|
|
help
|
|
Enable user mode network stack, which is the default
|
|
networking backend. It requires no administrator privileges
|
|
and generally is the easiest to use but has some
|
|
limitations:
|
|
|
|
- there is a lot of overhead so the performance is poor;
|
|
- in general ICMP does not work (can't ping from/to a guest)
|
|
- on Linux hosts, ping does work from within the guest, but it
|
|
needs initial setup by root (once per host)
|
|
- the guest is not directly accessible from the host or the
|
|
external network
|
|
|
|
User Networking is implemented using "slirp", which provides a
|
|
full TCP/IP stack within QEMU and uses that stack to implement
|
|
a virtual NAT'd network.
|
|
|
|
Notice that this option does not disable other networking
|
|
modes.
|
|
|
|
if BR2_PACKAGE_QEMU_CUSTOM_TARGETS = ""
|
|
|
|
comment "... or you can select emulator families to enable, below:"
|
|
|
|
config BR2_PACKAGE_QEMU_SYSTEM
|
|
bool "Enable all systems emulation"
|
|
depends on !BR2_STATIC_LIBS # dtc
|
|
select BR2_PACKAGE_QEMU_FDT
|
|
help
|
|
Say 'y' to build all system emulators/virtualisers that QEMU
|
|
supports.
|
|
|
|
comment "systems emulation needs a toolchain w/ dynamic library"
|
|
depends on BR2_STATIC_LIBS
|
|
|
|
config BR2_PACKAGE_QEMU_LINUX_USER
|
|
bool "Enable all Linux user-land emulation"
|
|
# Incompatible "struct sigevent" definition on musl
|
|
depends on !BR2_TOOLCHAIN_USES_MUSL
|
|
help
|
|
Say 'y' to build all Linux user-land emulators that QEMU
|
|
supports.
|
|
|
|
# Note: bsd-user can not be build on Linux
|
|
|
|
comment "Linux user-land emulation needs a glibc or uClibc toolchain"
|
|
depends on BR2_TOOLCHAIN_USES_MUSL
|
|
|
|
endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == ""
|
|
|
|
config BR2_PACKAGE_QEMU_HAS_EMULS
|
|
def_bool y
|
|
depends on BR2_PACKAGE_QEMU_SYSTEM || BR2_PACKAGE_QEMU_LINUX_USER || BR2_PACKAGE_QEMU_CUSTOM_TARGETS != ""
|
|
|
|
if BR2_PACKAGE_QEMU_HAS_EMULS
|
|
|
|
comment "Frontends"
|
|
|
|
config BR2_PACKAGE_QEMU_SDL
|
|
bool "Enable SDL frontend"
|
|
depends on !BR2_STATIC_LIBS # sdl2
|
|
select BR2_PACKAGE_SDL2
|
|
help
|
|
Say 'y' to enable the SDL frontend, that is, a graphical
|
|
window presenting the VM's display.
|
|
|
|
comment "SDL frontend needs a toolchain w/ dynamic library"
|
|
depends on BR2_STATIC_LIBS
|
|
|
|
comment "Misc. features"
|
|
|
|
config BR2_PACKAGE_QEMU_FDT
|
|
bool "Enable FDT"
|
|
depends on !BR2_STATIC_LIBS # dtc
|
|
select BR2_PACKAGE_DTC
|
|
help
|
|
Say 'y' here to have QEMU capable of constructing Device
|
|
Trees, and passing them to the VMs.
|
|
|
|
comment "FDT support needs a toolchain w/ dynamic library"
|
|
depends on BR2_STATIC_LIBS
|
|
|
|
endif # BR2_PACKAGE_QEMU_HAS_EMULS
|
|
|
|
config BR2_PACKAGE_QEMU_TOOLS
|
|
bool "Enable tools"
|
|
help
|
|
Say 'y' here to include tools packaged with QEMU
|
|
(e.g. qemu-img).
|
|
|
|
endif # BR2_PACKAGE_QEMU
|