Config.in 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. config BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
  2. bool
  3. # Only tested on these architectures
  4. default y if BR2_aarch64
  5. default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5
  6. default y if BR2_i386
  7. default y if BR2_mips
  8. default y if BR2_mipsel
  9. default y if BR2_powerpc64
  10. default y if BR2_powerpc64le
  11. default y if BR2_riscv
  12. default y if BR2_x86_64
  13. comment "QEMU requires a toolchain with wchar, threads, gcc >= 8"
  14. depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
  15. depends on BR2_USE_MMU
  16. depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR) || \
  17. !BR2_TOOLCHAIN_GCC_AT_LEAST_8
  18. menuconfig BR2_PACKAGE_QEMU
  19. bool "QEMU"
  20. depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
  21. depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8
  22. depends on BR2_TOOLCHAIN_HAS_THREADS
  23. depends on BR2_USE_WCHAR # gettext
  24. depends on BR2_USE_MMU # fork()
  25. select BR2_PACKAGE_LIBGLIB2
  26. select BR2_PACKAGE_ZLIB
  27. help
  28. QEMU is a generic and open source machine emulator and
  29. virtualizer.
  30. When used as a machine emulator, QEMU can run OSes and
  31. programs made for one machine (e.g. an ARM board) on a
  32. different machine (e.g. your own PC). By using dynamic
  33. translation, it achieves very good performance.
  34. When used as a virtualizer, QEMU achieves near native
  35. performances by executing the guest code directly on the
  36. host CPU. QEMU supports virtualization when executing under
  37. the Xen hypervisor or using the KVM kernel module in
  38. Linux. When using KVM, QEMU can virtualize x86, server and
  39. embedded PowerPC, and S390 guests.
  40. https://www.qemu.org/
  41. if BR2_PACKAGE_QEMU
  42. comment "Emulators selection"
  43. config BR2_PACKAGE_QEMU_SYSTEM
  44. bool "Enable systems emulation"
  45. depends on !BR2_STATIC_LIBS # dtc
  46. select BR2_PACKAGE_PIXMAN
  47. select BR2_PACKAGE_QEMU_FDT if !BR2_PACKAGE_QEMU_CHOOSE_TARGETS
  48. help
  49. Say 'y' to build system emulators/virtualisers.
  50. if BR2_PACKAGE_QEMU_SYSTEM
  51. config BR2_PACKAGE_QEMU_BLOBS
  52. bool "Install binary blobs"
  53. default y
  54. help
  55. Say 'y' here (the default) to install binary blobs (such as
  56. BIOS or firmwares for the different machines simulated by
  57. QEMU). Say 'n' to not install those blobs.
  58. Note: Some machines may be unbootable without those blobs.
  59. If unsure, say 'y'.
  60. config BR2_PACKAGE_QEMU_SLIRP
  61. bool "Enable user mode networking (SLIRP)"
  62. select BR2_PACKAGE_SLIRP
  63. help
  64. Enable user mode network stack, which is the default
  65. networking backend. It requires no administrator privileges
  66. and generally is the easiest to use but has some
  67. limitations:
  68. - there is a lot of overhead so the performance is poor;
  69. - in general ICMP does not work (can't ping from/to a guest)
  70. - on Linux hosts, ping does work from within the guest, but it
  71. needs initial setup by root (once per host)
  72. - the guest is not directly accessible from the host or the
  73. external network
  74. User Networking is implemented using "slirp", which provides a
  75. full TCP/IP stack within QEMU and uses that stack to implement
  76. a virtual NAT'd network.
  77. Notice that this option does not disable other networking
  78. modes.
  79. config BR2_PACKAGE_QEMU_SDL
  80. bool "Enable SDL frontend"
  81. select BR2_PACKAGE_SDL2
  82. help
  83. Say 'y' to enable the SDL frontend, that is, a graphical
  84. window presenting the VM's display.
  85. config BR2_PACKAGE_QEMU_FDT
  86. bool "Enable FDT"
  87. select BR2_PACKAGE_DTC
  88. help
  89. Say 'y' here to have QEMU capable of constructing Device
  90. Trees, and passing them to the VMs.
  91. config BR2_PACKAGE_QEMU_TRACING
  92. bool "Enable tracing"
  93. help
  94. Say 'y' to enable the "log" tracing infrastructure in QEMU,
  95. used for debugging, profiling, and observing execution. For
  96. detailed documentation, see
  97. https://www.qemu.org/docs/master/devel/tracing.html
  98. endif # BR2_PACKAGE_QEMU_SYSTEM
  99. comment "systems emulation needs a toolchain w/ dynamic library"
  100. depends on BR2_STATIC_LIBS
  101. config BR2_PACKAGE_QEMU_LINUX_USER
  102. bool "Enable Linux user-land emulation"
  103. # Incompatible "struct sigevent" definition on musl
  104. depends on !BR2_TOOLCHAIN_USES_MUSL
  105. help
  106. Say 'y' to build Linux user-land emulators.
  107. # Note: bsd-user can not be build on Linux
  108. comment "Linux user-land emulation needs a glibc or uClibc toolchain"
  109. depends on BR2_TOOLCHAIN_USES_MUSL
  110. config BR2_PACKAGE_QEMU_CHOOSE_TARGETS
  111. bool "Select individual emulator targets"
  112. depends on BR2_PACKAGE_QEMU_SYSTEM || BR2_PACKAGE_QEMU_LINUX_USER
  113. help
  114. By default, all targets (system and/or user, subject to the
  115. corresponding options, above) are built. If you only need a
  116. subset of the emulated targets, say 'y' here and enable at
  117. least one target, below.
  118. if BR2_PACKAGE_QEMU_CHOOSE_TARGETS
  119. config BR2_PACKAGE_QEMU_TARGET_AARCH64
  120. bool "aarch64"
  121. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  122. help
  123. ARM 64-bit architecture.
  124. config BR2_PACKAGE_QEMU_TARGET_AARCH64_BE
  125. bool "aarch64_be (linux-user, only)"
  126. depends on BR2_PACKAGE_QEMU_LINUX_USER
  127. help
  128. ARM 64-bit architecture, big-endian.
  129. config BR2_PACKAGE_QEMU_TARGET_ALPHA
  130. bool "alpha"
  131. help
  132. DEC Alpha 64-bit RISC architecture.
  133. config BR2_PACKAGE_QEMU_TARGET_ARM
  134. bool "arm"
  135. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  136. help
  137. ARM EABI architecture, little-endian.
  138. config BR2_PACKAGE_QEMU_TARGET_ARMEB
  139. bool "armeb (linux-user, only)"
  140. depends on BR2_PACKAGE_QEMU_LINUX_USER
  141. help
  142. ARM EABI architecture, big-endian.
  143. config BR2_PACKAGE_QEMU_TARGET_AVR
  144. bool "avr (system, only)"
  145. depends on BR2_PACKAGE_QEMU_SYSTEM
  146. help
  147. AVR 8-bit microcontroller architecture.
  148. config BR2_PACKAGE_QEMU_TARGET_CRIS
  149. bool "cris"
  150. help
  151. ETRAX CRIS microcontroller architecture.
  152. config BR2_PACKAGE_QEMU_TARGET_HEXAGON
  153. bool "hexagon (linux-user, only)"
  154. depends on BR2_PACKAGE_QEMU_LINUX_USER
  155. help
  156. Qualcomm's Hexagon VLSI DSP architecture.
  157. config BR2_PACKAGE_QEMU_TARGET_HPPA
  158. bool "hppa"
  159. help
  160. HP PA-RISC architecture.
  161. config BR2_PACKAGE_QEMU_TARGET_I386
  162. bool "i386"
  163. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  164. help
  165. Intel i386 32-bit architecture.
  166. config BR2_PACKAGE_QEMU_TARGET_LOONGARCH64
  167. bool "loongarch64"
  168. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  169. help
  170. Loongson 64-bit RISC architecture.
  171. config BR2_PACKAGE_QEMU_TARGET_M68K
  172. bool "m68k"
  173. help
  174. Motorola 68000 architecture.
  175. config BR2_PACKAGE_QEMU_TARGET_MICROBLAZE
  176. bool "microblaze"
  177. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  178. help
  179. Xilinix MicroBlaze soft processor.
  180. config BR2_PACKAGE_QEMU_TARGET_MICROBLAZEEL
  181. bool "microblazeel"
  182. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  183. help
  184. Xilinix MicroBlaze EL soft processor.
  185. config BR2_PACKAGE_QEMU_TARGET_MIPS
  186. bool "mips"
  187. help
  188. MIPS 32-bit architecture.
  189. config BR2_PACKAGE_QEMU_TARGET_MIPSEL
  190. bool "mipsel"
  191. help
  192. MIPS 32-bit architecture, little-endian.
  193. config BR2_PACKAGE_QEMU_TARGET_MIPS64
  194. bool "mips64"
  195. help
  196. MIPS 64-bit architecture.
  197. config BR2_PACKAGE_QEMU_TARGET_MIPS64EL
  198. bool "mips64el"
  199. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  200. help
  201. MIPS 64-bit architecture, little-endian.
  202. config BR2_PACKAGE_QEMU_TARGET_MIPSN32
  203. bool "mipsn32 (linux-user, only)"
  204. depends on BR2_PACKAGE_QEMU_LINUX_USER
  205. help
  206. MIPS N32 architecture.
  207. config BR2_PACKAGE_QEMU_TARGET_MIPSN32EL
  208. bool "mipsn32el (linux-user, only)"
  209. depends on BR2_PACKAGE_QEMU_LINUX_USER
  210. help
  211. MIPS N32 architecture, little-endian.
  212. config BR2_PACKAGE_QEMU_TARGET_NIOS2
  213. bool "nios2"
  214. help
  215. Nios II architecture.
  216. config BR2_PACKAGE_QEMU_TARGET_OR1K
  217. bool "or1k"
  218. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  219. help
  220. OpenRISC 1000 architecture.
  221. config BR2_PACKAGE_QEMU_TARGET_PPC
  222. bool "ppc"
  223. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  224. help
  225. PoewerPC 32-bit architecture.
  226. config BR2_PACKAGE_QEMU_TARGET_PPC64
  227. bool "ppc64"
  228. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  229. help
  230. PoewerPC 64-bit architecture.
  231. config BR2_PACKAGE_QEMU_TARGET_PPC64LE
  232. bool "ppc64le (linux-user, only)"
  233. depends on BR2_PACKAGE_QEMU_LINUX_USER
  234. help
  235. PoewerPC 64-bit architecture, little-endian.
  236. config BR2_PACKAGE_QEMU_TARGET_RISCV32
  237. bool "riscv32"
  238. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  239. help
  240. RISC-V 32-bit architecture.
  241. config BR2_PACKAGE_QEMU_TARGET_RISCV64
  242. bool "riscv64"
  243. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  244. help
  245. RISC-V 64-bit architecture.
  246. config BR2_PACKAGE_QEMU_TARGET_RX
  247. bool "rx (system-only)"
  248. depends on BR2_PACKAGE_QEMU_SYSTEM
  249. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  250. help
  251. Renesas Electronics RX 32-bit architecture.
  252. config BR2_PACKAGE_QEMU_TARGET_S390X
  253. bool "s390x"
  254. help
  255. IBM z/Architecture 64-bit mainframe (s390x)
  256. config BR2_PACKAGE_QEMU_TARGET_SH4
  257. bool "sh4"
  258. help
  259. Super-H 32-bit RISC architecture.
  260. config BR2_PACKAGE_QEMU_TARGET_SH4EB
  261. bool "sh4eb"
  262. help
  263. Super-H EB 32-bit RISC architecture.
  264. config BR2_PACKAGE_QEMU_TARGET_SPARC
  265. bool "sparc"
  266. help
  267. SPARC 32-bit RISC architecture.
  268. config BR2_PACKAGE_QEMU_TARGET_SPARC32PLUS
  269. bool "sparc32plus (linux-user, only)"
  270. depends on BR2_PACKAGE_QEMU_LINUX_USER
  271. help
  272. SPARC 32-bit RISC architecture (Sun's v8plus).
  273. config BR2_PACKAGE_QEMU_TARGET_SPARC64
  274. bool "sparc64"
  275. help
  276. SPARC 64-bit RISC architecture.
  277. config BR2_PACKAGE_QEMU_TARGET_TRICORE
  278. bool "tricore (system, only)"
  279. depends on BR2_PACKAGE_QEMU_SYSTEM
  280. help
  281. Infineon TriCore 32-bit RISC architecture.
  282. config BR2_PACKAGE_QEMU_TARGET_X86_64
  283. bool "x86_64"
  284. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  285. help
  286. Intel x86 64-bit architecture.
  287. config BR2_PACKAGE_QEMU_TARGET_XTENSA
  288. bool "xtensa"
  289. help
  290. Xtensa 32-bit RISC architecture.
  291. config BR2_PACKAGE_QEMU_TARGET_XTENSAEB
  292. bool "xtensaeb"
  293. help
  294. Xtensa 32-bit RISC architecture, big-endian.
  295. endif # BR2_PACKAGE_QEMU_CHOOSE_TARGETS
  296. comment "Tools selection"
  297. config BR2_PACKAGE_QEMU_TOOLS
  298. bool "Enable tools"
  299. help
  300. Say 'y' here to include tools packaged with QEMU
  301. (e.g. qemu-img).
  302. config BR2_PACKAGE_QEMU_GUEST_AGENT
  303. bool "Enable guest agent"
  304. help
  305. Say 'y' here to include an agent to run on guests, which
  306. communicates with the host over a virtio-serial channel
  307. named "org.qemu.guest_agent.0".
  308. endif # BR2_PACKAGE_QEMU