xref: /OK3568_Linux_fs/buildroot/package/qemu/Config.in (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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