hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
config BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
   bool
   # Only tested on these architectures
   default y if BR2_aarch64 || BR2_i386 || BR2_mips || BR2_mipsel \
       || BR2_x86_64 || BR2_arm \
       || BR2_powerpc64 || BR2_powerpc64le
 
comment "QEMU requires a toolchain with wchar, threads"
   depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
   depends on BR2_USE_MMU
   depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR)
 
config BR2_PACKAGE_QEMU
   bool "QEMU"
   depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
   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