config BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET bool # Only tested on these architectures default y if BR2_aarch64 default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 default y if BR2_i386 default y if BR2_mips default y if BR2_mipsel default y if BR2_powerpc64 default y if BR2_powerpc64le default y if BR2_riscv default y if BR2_x86_64 comment "QEMU requires a toolchain with wchar, threads, gcc >= 8" depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET depends on BR2_USE_MMU depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR) || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_8 config BR2_PACKAGE_QEMU bool "QEMU" depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 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