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