| 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)" |
| 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 |