1config BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET 2 bool 3 # Only tested on these architectures 4 default y if BR2_aarch64 || BR2_i386 || BR2_mips || BR2_mipsel \ 5 || BR2_x86_64 || BR2_arm \ 6 || BR2_powerpc64 || BR2_powerpc64le 7 8comment "QEMU requires a toolchain with wchar, threads, gcc >= 8" 9 depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET 10 depends on BR2_USE_MMU 11 depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR) || \ 12 !BR2_TOOLCHAIN_GCC_AT_LEAST_8 13 14config BR2_PACKAGE_QEMU 15 bool "QEMU" 16 depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET 17 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 18 depends on BR2_TOOLCHAIN_HAS_THREADS 19 depends on BR2_USE_WCHAR # gettext 20 depends on BR2_USE_MMU # fork() 21 select BR2_PACKAGE_LIBGLIB2 22 select BR2_PACKAGE_PIXMAN 23 select BR2_PACKAGE_ZLIB 24 help 25 QEMU is a generic and open source machine emulator and 26 virtualizer. 27 28 When used as a machine emulator, QEMU can run OSes and 29 programs made for one machine (e.g. an ARM board) on a 30 different machine (e.g. your own PC). By using dynamic 31 translation, it achieves very good performance. 32 33 When used as a virtualizer, QEMU achieves near native 34 performances by executing the guest code directly on the 35 host CPU. QEMU supports virtualization when executing under 36 the Xen hypervisor or using the KVM kernel module in 37 Linux. When using KVM, QEMU can virtualize x86, server and 38 embedded PowerPC, and S390 guests. 39 40 http://qemu.org/ 41 42if BR2_PACKAGE_QEMU 43 44comment "Emulators selection" 45 46config BR2_PACKAGE_QEMU_CUSTOM_TARGETS 47 string "Enable specific targets" 48 help 49 Enter here the list of QEMU targets you want to build. For 50 example: 51 52 System emulation | User-land emulation 53 ----------------------+----------------------- 54 i386-softmmu | i386-linux-user 55 arm-softmmu | ppc-linux-user 56 x86_64-softmmu | sparc-bsd-user 57 ... | ... 58 59comment "Networking options" 60 61config BR2_PACKAGE_QEMU_SLIRP 62 bool "Enable user mode networking (SLIRP)" 63 select BR2_PACKAGE_SLIRP 64 help 65 Enable user mode network stack, which is the default 66 networking backend. It requires no administrator privileges 67 and generally is the easiest to use but has some 68 limitations: 69 70 - there is a lot of overhead so the performance is poor; 71 - in general ICMP does not work (can't ping from/to a guest) 72 - on Linux hosts, ping does work from within the guest, but it 73 needs initial setup by root (once per host) 74 - the guest is not directly accessible from the host or the 75 external network 76 77 User Networking is implemented using "slirp", which provides a 78 full TCP/IP stack within QEMU and uses that stack to implement 79 a virtual NAT'd network. 80 81 Notice that this option does not disable other networking 82 modes. 83 84if BR2_PACKAGE_QEMU_CUSTOM_TARGETS = "" 85 86comment "... or you can select emulator families to enable, below:" 87 88config BR2_PACKAGE_QEMU_SYSTEM 89 bool "Enable all systems emulation" 90 depends on !BR2_STATIC_LIBS # dtc 91 select BR2_PACKAGE_QEMU_FDT 92 help 93 Say 'y' to build all system emulators/virtualisers that QEMU 94 supports. 95 96comment "systems emulation needs a toolchain w/ dynamic library" 97 depends on BR2_STATIC_LIBS 98 99config BR2_PACKAGE_QEMU_LINUX_USER 100 bool "Enable all Linux user-land emulation" 101 # Incompatible "struct sigevent" definition on musl 102 depends on !BR2_TOOLCHAIN_USES_MUSL 103 help 104 Say 'y' to build all Linux user-land emulators that QEMU 105 supports. 106 107# Note: bsd-user can not be build on Linux 108 109comment "Linux user-land emulation needs a glibc or uClibc toolchain" 110 depends on BR2_TOOLCHAIN_USES_MUSL 111 112endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == "" 113 114config BR2_PACKAGE_QEMU_HAS_EMULS 115 def_bool y 116 depends on BR2_PACKAGE_QEMU_SYSTEM || BR2_PACKAGE_QEMU_LINUX_USER || BR2_PACKAGE_QEMU_CUSTOM_TARGETS != "" 117 118if BR2_PACKAGE_QEMU_HAS_EMULS 119 120comment "Frontends" 121 122config BR2_PACKAGE_QEMU_SDL 123 bool "Enable SDL frontend" 124 depends on !BR2_STATIC_LIBS # sdl2 125 select BR2_PACKAGE_SDL2 126 help 127 Say 'y' to enable the SDL frontend, that is, a graphical 128 window presenting the VM's display. 129 130comment "SDL frontend needs a toolchain w/ dynamic library" 131 depends on BR2_STATIC_LIBS 132 133comment "Misc. features" 134 135config BR2_PACKAGE_QEMU_FDT 136 bool "Enable FDT" 137 depends on !BR2_STATIC_LIBS # dtc 138 select BR2_PACKAGE_DTC 139 help 140 Say 'y' here to have QEMU capable of constructing Device 141 Trees, and passing them to the VMs. 142 143comment "FDT support needs a toolchain w/ dynamic library" 144 depends on BR2_STATIC_LIBS 145 146endif # BR2_PACKAGE_QEMU_HAS_EMULS 147 148config BR2_PACKAGE_QEMU_TOOLS 149 bool "Enable tools" 150 help 151 Say 'y' here to include tools packaged with QEMU 152 (e.g. qemu-img). 153 154endif # BR2_PACKAGE_QEMU 155