xref: /OK3568_Linux_fs/buildroot/system/Config.in (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunmenu "System configuration"
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun# Note on package/skeleton: usually, it is not safe to 'select' a
4*4882a593Smuzhiyun# provider of a virtual package. But below we have an exception: each
5*4882a593Smuzhiyun# init system may select one of the virtual skeleton-init-* packages.
6*4882a593Smuzhiyun# As only one init system may be enabled, only one skeleton-init-* may
7*4882a593Smuzhiyun# be selected. So this is a safe situation.
8*4882a593Smuzhiyunchoice
9*4882a593Smuzhiyun	prompt "Root FS skeleton"
10*4882a593Smuzhiyun
11*4882a593Smuzhiyunconfig BR2_ROOTFS_SKELETON_DEFAULT
12*4882a593Smuzhiyun	bool "default target skeleton"
13*4882a593Smuzhiyun	help
14*4882a593Smuzhiyun	  Use default target skeleton for selected init system.
15*4882a593Smuzhiyun
16*4882a593Smuzhiyunconfig BR2_ROOTFS_SKELETON_CUSTOM
17*4882a593Smuzhiyun	bool "custom target skeleton"
18*4882a593Smuzhiyun	select BR2_PACKAGE_SKELETON_CUSTOM
19*4882a593Smuzhiyun	help
20*4882a593Smuzhiyun	  Use custom target skeleton.
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun# skeleton from br2-external trees, if any
23*4882a593Smuzhiyunsource "$BR2_BASE_DIR/.br2-external.in.skeleton"
24*4882a593Smuzhiyun
25*4882a593Smuzhiyunendchoice
26*4882a593Smuzhiyun
27*4882a593Smuzhiyunif BR2_ROOTFS_SKELETON_CUSTOM
28*4882a593Smuzhiyun
29*4882a593Smuzhiyunconfig BR2_ROOTFS_SKELETON_CUSTOM_PATH
30*4882a593Smuzhiyun	string "custom target skeleton path"
31*4882a593Smuzhiyun	help
32*4882a593Smuzhiyun	  Path to custom target skeleton.
33*4882a593Smuzhiyun
34*4882a593Smuzhiyunendif
35*4882a593Smuzhiyun
36*4882a593Smuzhiyunif BR2_ROOTFS_SKELETON_DEFAULT
37*4882a593Smuzhiyun
38*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_HOSTNAME
39*4882a593Smuzhiyun	string "System hostname"
40*4882a593Smuzhiyun	default "buildroot"
41*4882a593Smuzhiyun	help
42*4882a593Smuzhiyun	  Select system hostname to be stored in /etc/hostname.
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun	  Leave empty to not create /etc/hostname, or to keep the
45*4882a593Smuzhiyun	  one from a custom skeleton.
46*4882a593Smuzhiyun
47*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_ISSUE
48*4882a593Smuzhiyun	string "System banner"
49*4882a593Smuzhiyun	default "Welcome to Buildroot"
50*4882a593Smuzhiyun	help
51*4882a593Smuzhiyun	  Select system banner (/etc/issue) to be displayed at login.
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun	  Leave empty to not create /etc/issue, or to keep the
54*4882a593Smuzhiyun	  one from a custom skeleton.
55*4882a593Smuzhiyun
56*4882a593Smuzhiyunendif
57*4882a593Smuzhiyun
58*4882a593Smuzhiyunchoice
59*4882a593Smuzhiyun	bool "Passwords encoding"
60*4882a593Smuzhiyun	default BR2_TARGET_GENERIC_PASSWD_SHA256
61*4882a593Smuzhiyun	help
62*4882a593Smuzhiyun	  Choose the password encoding scheme to use when Buildroot
63*4882a593Smuzhiyun	  needs to encode a password (eg. the root password, below).
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun	  Note: this is used at build-time, and *not* at runtime.
66*4882a593Smuzhiyun
67*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_PASSWD_SHA256
68*4882a593Smuzhiyun	bool "sha-256"
69*4882a593Smuzhiyun	help
70*4882a593Smuzhiyun	  Use SHA256 to encode passwords which is stronger than MD5.
71*4882a593Smuzhiyun
72*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_PASSWD_SHA512
73*4882a593Smuzhiyun	bool "sha-512"
74*4882a593Smuzhiyun	help
75*4882a593Smuzhiyun	  Use SHA512 to encode passwords which is stronger than SHA256
76*4882a593Smuzhiyun
77*4882a593Smuzhiyunendchoice # Passwd encoding
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_PASSWD_METHOD
80*4882a593Smuzhiyun	string
81*4882a593Smuzhiyun	default "md5"       if BR2_TARGET_GENERIC_PASSWD_MD5
82*4882a593Smuzhiyun	default "sha-256"   if BR2_TARGET_GENERIC_PASSWD_SHA256
83*4882a593Smuzhiyun	default "sha-512"   if BR2_TARGET_GENERIC_PASSWD_SHA512
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun# See comment at the top of the file, about selecting individual
86*4882a593Smuzhiyun# skeletons, which are providers of the virtual skeleton package.
87*4882a593Smuzhiyunchoice
88*4882a593Smuzhiyun	prompt "Init system"
89*4882a593Smuzhiyun	default BR2_INIT_BUSYBOX
90*4882a593Smuzhiyun
91*4882a593Smuzhiyunconfig BR2_INIT_BUSYBOX
92*4882a593Smuzhiyun	bool "BusyBox"
93*4882a593Smuzhiyun	select BR2_PACKAGE_BUSYBOX
94*4882a593Smuzhiyun	select BR2_PACKAGE_INITSCRIPTS
95*4882a593Smuzhiyun	select BR2_PACKAGE_SKELETON_INIT_SYSV if BR2_ROOTFS_SKELETON_DEFAULT
96*4882a593Smuzhiyun
97*4882a593Smuzhiyunconfig BR2_INIT_SYSV
98*4882a593Smuzhiyun	bool "systemV"
99*4882a593Smuzhiyun	depends on BR2_USE_MMU # sysvinit
100*4882a593Smuzhiyun	select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # sysvinit
101*4882a593Smuzhiyun	select BR2_PACKAGE_INITSCRIPTS
102*4882a593Smuzhiyun	select BR2_PACKAGE_SYSVINIT
103*4882a593Smuzhiyun	select BR2_PACKAGE_SKELETON_INIT_SYSV if BR2_ROOTFS_SKELETON_DEFAULT
104*4882a593Smuzhiyun
105*4882a593Smuzhiyunconfig BR2_INIT_OPENRC
106*4882a593Smuzhiyun	bool "OpenRC"
107*4882a593Smuzhiyun	depends on BR2_USE_MMU
108*4882a593Smuzhiyun	depends on !BR2_STATIC_LIBS
109*4882a593Smuzhiyun	select BR2_PACKAGE_OPENRC
110*4882a593Smuzhiyun	select BR2_PACKAGE_SKELETON_INIT_OPENRC if BR2_ROOTFS_SKELETON_DEFAULT
111*4882a593Smuzhiyun
112*4882a593Smuzhiyuncomment "openrc needs a toolchain w/ dynamic library"
113*4882a593Smuzhiyun	depends on BR2_USE_MMU
114*4882a593Smuzhiyun	depends on BR2_STATIC_LIBS
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun# In Buildroot, we decided not to support a split-usr when systemd is
117*4882a593Smuzhiyun# used as an init system. This is a design decision, not a systemd
118*4882a593Smuzhiyun# issue. Thus the select is with BR2_INIT_SYSTEMD (below) rather than
119*4882a593Smuzhiyun# with BR2_PACKAGE_SYSTEMD.
120*4882a593Smuzhiyunconfig BR2_INIT_SYSTEMD
121*4882a593Smuzhiyun	bool "systemd"
122*4882a593Smuzhiyun	depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
123*4882a593Smuzhiyun	depends on BR2_USE_MMU
124*4882a593Smuzhiyun	depends on !BR2_STATIC_LIBS
125*4882a593Smuzhiyun	depends on BR2_TOOLCHAIN_USES_GLIBC
126*4882a593Smuzhiyun	depends on BR2_TOOLCHAIN_HAS_SSP
127*4882a593Smuzhiyun	depends on BR2_TOOLCHAIN_HAS_THREADS
128*4882a593Smuzhiyun	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
129*4882a593Smuzhiyun	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
130*4882a593Smuzhiyun	depends on BR2_HOST_GCC_AT_LEAST_5
131*4882a593Smuzhiyun	select BR2_ROOTFS_MERGED_USR
132*4882a593Smuzhiyun	select BR2_PACKAGE_SYSTEMD
133*4882a593Smuzhiyun	select BR2_PACKAGE_SKELETON_INIT_SYSTEMD if BR2_ROOTFS_SKELETON_DEFAULT
134*4882a593Smuzhiyun
135*4882a593Smuzhiyuncomment "systemd needs a glibc toolchain w/ SSP, headers >= 3.10, host and target gcc >= 5"
136*4882a593Smuzhiyun	depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
137*4882a593Smuzhiyun	depends on BR2_USE_MMU
138*4882a593Smuzhiyun	depends on !BR2_TOOLCHAIN_USES_GLIBC || \
139*4882a593Smuzhiyun		!BR2_TOOLCHAIN_HAS_SSP || \
140*4882a593Smuzhiyun		!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || \
141*4882a593Smuzhiyun		!BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \
142*4882a593Smuzhiyun		!BR2_HOST_GCC_AT_LEAST_5
143*4882a593Smuzhiyun
144*4882a593Smuzhiyunconfig BR2_INIT_NONE
145*4882a593Smuzhiyun	bool "None"
146*4882a593Smuzhiyun	select BR2_PACKAGE_SKELETON_INIT_NONE if BR2_ROOTFS_SKELETON_DEFAULT
147*4882a593Smuzhiyun	help
148*4882a593Smuzhiyun	  Buildroot will not install any init system. You will
149*4882a593Smuzhiyun	  have to provide your own, either with a new package
150*4882a593Smuzhiyun	  or with a rootfs-overlay.
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun# Init systems from br2-external trees, if any
153*4882a593Smuzhiyunsource "$BR2_BASE_DIR/.br2-external.in.init"
154*4882a593Smuzhiyun
155*4882a593Smuzhiyunendchoice
156*4882a593Smuzhiyun
157*4882a593Smuzhiyunconfig BR2_PACKAGE_SYSTEMD_DEFAULT_TARGET
158*4882a593Smuzhiyun	string "The default unit systemd starts at bootup"
159*4882a593Smuzhiyun	default "multi-user.target"
160*4882a593Smuzhiyun	depends on BR2_INIT_SYSTEMD
161*4882a593Smuzhiyun	help
162*4882a593Smuzhiyun	  Specify the name of the unit configuration file to be started
163*4882a593Smuzhiyun	  at bootup by systemd. Should end in ".target".
164*4882a593Smuzhiyun	  ex: multi-user.target
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun	  https://www.freedesktop.org/software/systemd/man/systemd.special.html#default.target
167*4882a593Smuzhiyun
168*4882a593Smuzhiyunchoice
169*4882a593Smuzhiyun	prompt "/dev management" if !BR2_INIT_SYSTEMD
170*4882a593Smuzhiyun	default BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
171*4882a593Smuzhiyun
172*4882a593Smuzhiyunconfig BR2_ROOTFS_DEVICE_CREATION_STATIC
173*4882a593Smuzhiyun	bool "Static using device table"
174*4882a593Smuzhiyun
175*4882a593Smuzhiyunconfig BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
176*4882a593Smuzhiyun	bool "Dynamic using devtmpfs only"
177*4882a593Smuzhiyun
178*4882a593Smuzhiyunconfig BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
179*4882a593Smuzhiyun	bool "Dynamic using devtmpfs + mdev"
180*4882a593Smuzhiyun	select BR2_PACKAGE_BUSYBOX
181*4882a593Smuzhiyun
182*4882a593Smuzhiyunconfig BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
183*4882a593Smuzhiyun	bool "Dynamic using devtmpfs + eudev"
184*4882a593Smuzhiyun	depends on BR2_USE_WCHAR # eudev
185*4882a593Smuzhiyun	depends on !BR2_STATIC_LIBS
186*4882a593Smuzhiyun	depends on BR2_USE_MMU # eudev
187*4882a593Smuzhiyun	select BR2_PACKAGE_EUDEV
188*4882a593Smuzhiyun
189*4882a593Smuzhiyuncomment "eudev needs a toolchain w/ wchar, dynamic library"
190*4882a593Smuzhiyun	depends on BR2_USE_MMU
191*4882a593Smuzhiyun	depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS
192*4882a593Smuzhiyun
193*4882a593Smuzhiyunendchoice
194*4882a593Smuzhiyun
195*4882a593Smuzhiyuncomment "/dev management using udev (from systemd)"
196*4882a593Smuzhiyun	depends on BR2_INIT_SYSTEMD
197*4882a593Smuzhiyun
198*4882a593Smuzhiyunconfig BR2_ROOTFS_DEVICE_TABLE
199*4882a593Smuzhiyun	string "Path to the permission tables"
200*4882a593Smuzhiyun	default "system/device_table.txt"
201*4882a593Smuzhiyun	help
202*4882a593Smuzhiyun	  Specify a space-separated list of permission table locations,
203*4882a593Smuzhiyun	  that will be passed to the makedevs utility to assign
204*4882a593Smuzhiyun	  correct owners and permissions on various files in the
205*4882a593Smuzhiyun	  target filesystem.
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun	  See package/makedevs/README for details on the usage and
208*4882a593Smuzhiyun	  syntax of these files.
209*4882a593Smuzhiyun
210*4882a593Smuzhiyunconfig BR2_ROOTFS_STATIC_DEVICE_TABLE
211*4882a593Smuzhiyun	string "Path to the device tables"
212*4882a593Smuzhiyun	default "system/device_table_dev.txt"
213*4882a593Smuzhiyun	depends on BR2_ROOTFS_DEVICE_CREATION_STATIC
214*4882a593Smuzhiyun	help
215*4882a593Smuzhiyun	  Specify a space-separated list of device table locations,
216*4882a593Smuzhiyun	  that will be passed to the makedevs utility to create all
217*4882a593Smuzhiyun	  the special device files under /dev.
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun	  See package/makedevs/README for details on the usage and
220*4882a593Smuzhiyun	  syntax of these files.
221*4882a593Smuzhiyun
222*4882a593Smuzhiyunconfig BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES
223*4882a593Smuzhiyun	bool "support extended attributes in device tables"
224*4882a593Smuzhiyun	help
225*4882a593Smuzhiyun	  Support extended attributes handling in device tables
226*4882a593Smuzhiyun
227*4882a593Smuzhiyunconfig BR2_ROOTFS_MERGED_USR
228*4882a593Smuzhiyun	bool "Use symlinks to /usr for /bin, /sbin and /lib"
229*4882a593Smuzhiyun	help
230*4882a593Smuzhiyun	  If you say 'n' here, then /bin, /sbin and /lib and their
231*4882a593Smuzhiyun	  counterparts in /usr will be separate directories. This
232*4882a593Smuzhiyun	  is the historical UNIX way. In this case, /usr can be a
233*4882a593Smuzhiyun	  filesystem on a partition separate from / .
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun	  If you say 'y' here, then /bin, /sbin and /lib will be
236*4882a593Smuzhiyun	  symlinks to their counterparts in /usr. In this case, /usr can
237*4882a593Smuzhiyun	  not be a separate filesystem.
238*4882a593Smuzhiyun
239*4882a593Smuzhiyunif BR2_ROOTFS_SKELETON_DEFAULT
240*4882a593Smuzhiyun
241*4882a593Smuzhiyunconfig BR2_TARGET_ENABLE_ROOT_LOGIN
242*4882a593Smuzhiyun	bool "Enable root login with password"
243*4882a593Smuzhiyun	default y
244*4882a593Smuzhiyun	select BR2_PACKAGE_HOST_MKPASSWD if BR2_TARGET_GENERIC_ROOT_PASSWD != ""
245*4882a593Smuzhiyun	help
246*4882a593Smuzhiyun	  Allow root to log in with a password.
247*4882a593Smuzhiyun
248*4882a593Smuzhiyun	  If not enabled, root will not be able to log in with a
249*4882a593Smuzhiyun	  password. However, if you have an ssh server and you add an
250*4882a593Smuzhiyun	  ssh key, you can still allow root to log in. Alternatively,
251*4882a593Smuzhiyun	  you can use sudo to become root.
252*4882a593Smuzhiyun
253*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_ROOT_PASSWD
254*4882a593Smuzhiyun	string "Root password"
255*4882a593Smuzhiyun	default ""
256*4882a593Smuzhiyun	depends on BR2_TARGET_ENABLE_ROOT_LOGIN
257*4882a593Smuzhiyun	help
258*4882a593Smuzhiyun	  Set the initial root password.
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun	  If set to empty (the default), then no root password will be
261*4882a593Smuzhiyun	  set, and root will need no password to log in.
262*4882a593Smuzhiyun
263*4882a593Smuzhiyun	  If the password starts with any of $1$, $5$ or $6$, it is
264*4882a593Smuzhiyun	  considered to be already crypt-encoded with respectively md5,
265*4882a593Smuzhiyun	  sha256 or sha512.  Any other value is taken to be a clear-text
266*4882a593Smuzhiyun	  value, and is crypt-encoded as per the "Passwords encoding"
267*4882a593Smuzhiyun	  scheme, above.
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun	  Note: "$" signs in the hashed password must be doubled. For
270*4882a593Smuzhiyun	  example, if the hashed password is
271*4882a593Smuzhiyun	  "$1$longsalt$v35DIIeMo4yUfI23yditq0", then you must enter it
272*4882a593Smuzhiyun	  as "$$1$$longsalt$$v35DIIeMo4yUfI23yditq0" (this is necessary
273*4882a593Smuzhiyun	  otherwise make would attempt to interpret the $ as a variable
274*4882a593Smuzhiyun	  expansion).
275*4882a593Smuzhiyun
276*4882a593Smuzhiyun	  WARNING! WARNING!
277*4882a593Smuzhiyun	  The password appears as-is in the .config file, and may appear
278*4882a593Smuzhiyun	  in the build log! Avoid using a valuable password if either
279*4882a593Smuzhiyun	  the .config file or the build log may be distributed, or at
280*4882a593Smuzhiyun	  the very least use a strong cryptographic hash for your
281*4882a593Smuzhiyun	  password!
282*4882a593Smuzhiyun
283*4882a593Smuzhiyunchoice
284*4882a593Smuzhiyun	bool "/bin/sh"
285*4882a593Smuzhiyun	default BR2_SYSTEM_BIN_SH_DASH if !BR2_PACKAGE_BUSYBOX
286*4882a593Smuzhiyun	help
287*4882a593Smuzhiyun	  Select which shell will provide /bin/sh.
288*4882a593Smuzhiyun
289*4882a593Smuzhiyunconfig BR2_SYSTEM_BIN_SH_BASH
290*4882a593Smuzhiyun	bool "bash"
291*4882a593Smuzhiyun	depends on BR2_USE_MMU # bash
292*4882a593Smuzhiyun	depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
293*4882a593Smuzhiyun	select BR2_PACKAGE_BASH
294*4882a593Smuzhiyun
295*4882a593Smuzhiyun# busybox has shells that work on noMMU
296*4882a593Smuzhiyunconfig BR2_SYSTEM_BIN_SH_BUSYBOX
297*4882a593Smuzhiyun	bool "busybox' default shell"
298*4882a593Smuzhiyun	depends on BR2_PACKAGE_BUSYBOX
299*4882a593Smuzhiyun
300*4882a593Smuzhiyunconfig BR2_SYSTEM_BIN_SH_DASH
301*4882a593Smuzhiyun	bool "dash"
302*4882a593Smuzhiyun	depends on BR2_USE_MMU # dash
303*4882a593Smuzhiyun	depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
304*4882a593Smuzhiyun	select BR2_PACKAGE_DASH
305*4882a593Smuzhiyun
306*4882a593Smuzhiyunconfig BR2_SYSTEM_BIN_SH_MKSH
307*4882a593Smuzhiyun	bool "mksh"
308*4882a593Smuzhiyun	depends on BR2_USE_MMU # mksh
309*4882a593Smuzhiyun	depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
310*4882a593Smuzhiyun	select BR2_PACKAGE_MKSH
311*4882a593Smuzhiyun
312*4882a593Smuzhiyunconfig BR2_SYSTEM_BIN_SH_ZSH
313*4882a593Smuzhiyun	bool "zsh"
314*4882a593Smuzhiyun	depends on BR2_USE_MMU # zsh
315*4882a593Smuzhiyun	depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
316*4882a593Smuzhiyun	select BR2_PACKAGE_ZSH
317*4882a593Smuzhiyun
318*4882a593Smuzhiyuncomment "bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS"
319*4882a593Smuzhiyun	depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS && BR2_PACKAGE_BUSYBOX
320*4882a593Smuzhiyun
321*4882a593Smuzhiyunconfig BR2_SYSTEM_BIN_SH_NONE
322*4882a593Smuzhiyun	bool "none"
323*4882a593Smuzhiyun
324*4882a593Smuzhiyunendchoice # /bin/sh
325*4882a593Smuzhiyun
326*4882a593Smuzhiyunconfig BR2_SYSTEM_BIN_SH
327*4882a593Smuzhiyun	string
328*4882a593Smuzhiyun	default "bash"    if BR2_SYSTEM_BIN_SH_BASH
329*4882a593Smuzhiyun	default "dash"    if BR2_SYSTEM_BIN_SH_DASH
330*4882a593Smuzhiyun	default "mksh"    if BR2_SYSTEM_BIN_SH_MKSH
331*4882a593Smuzhiyun	default "zsh"     if BR2_SYSTEM_BIN_SH_ZSH
332*4882a593Smuzhiyun
333*4882a593Smuzhiyunchoice
334*4882a593Smuzhiyun	prompt "Run a shell on serial console after boot"
335*4882a593Smuzhiyun	default BR2_TARGET_SERIAL_SHELL_SH if BR2_PACKAGE_ROCKCHIP
336*4882a593Smuzhiyun	help
337*4882a593Smuzhiyun	  Select a shell to use.
338*4882a593Smuzhiyun
339*4882a593Smuzhiyunconfig BR2_TARGET_SERIAL_SHELL_GETTY
340*4882a593Smuzhiyun	bool "/sbin/getty (login prompt)"
341*4882a593Smuzhiyun	select BR2_TARGET_GENERIC_GETTY
342*4882a593Smuzhiyun
343*4882a593Smuzhiyunconfig BR2_TARGET_SERIAL_SHELL_SH
344*4882a593Smuzhiyun	bool "/bin/sh"
345*4882a593Smuzhiyun
346*4882a593Smuzhiyunconfig BR2_TARGET_SERIAL_SHELL_LOGIN
347*4882a593Smuzhiyun	bool "/bin/login"
348*4882a593Smuzhiyun
349*4882a593Smuzhiyunconfig BR2_TARGET_SERIAL_SHELL_NONE
350*4882a593Smuzhiyun	bool "none"
351*4882a593Smuzhiyun
352*4882a593Smuzhiyunendchoice
353*4882a593Smuzhiyun
354*4882a593Smuzhiyunmenuconfig BR2_TARGET_GENERIC_GETTY
355*4882a593Smuzhiyun	bool "Run a getty (login prompt) after boot"
356*4882a593Smuzhiyun	depends on BR2_TARGET_SERIAL_SHELL_GETTY
357*4882a593Smuzhiyun
358*4882a593Smuzhiyunif BR2_TARGET_GENERIC_GETTY
359*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_GETTY_PORT
360*4882a593Smuzhiyun	string "TTY port"
361*4882a593Smuzhiyun	default "console"
362*4882a593Smuzhiyun	help
363*4882a593Smuzhiyun	  Specify a port to run a getty on.
364*4882a593Smuzhiyun
365*4882a593Smuzhiyunchoice
366*4882a593Smuzhiyun	prompt "Baudrate"
367*4882a593Smuzhiyun	default BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
368*4882a593Smuzhiyun	help
369*4882a593Smuzhiyun	  Select a baudrate to use.
370*4882a593Smuzhiyun
371*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
372*4882a593Smuzhiyun	bool "keep kernel default"
373*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600
374*4882a593Smuzhiyun	bool "9600"
375*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200
376*4882a593Smuzhiyun	bool "19200"
377*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400
378*4882a593Smuzhiyun	bool "38400"
379*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600
380*4882a593Smuzhiyun	bool "57600"
381*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200
382*4882a593Smuzhiyun	bool "115200"
383*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_GETTY_BAUDRATE_1500000
384*4882a593Smuzhiyun	bool "1500000"
385*4882a593Smuzhiyunendchoice
386*4882a593Smuzhiyun
387*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_GETTY_BAUDRATE
388*4882a593Smuzhiyun	string
389*4882a593Smuzhiyun	default "0"		if BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
390*4882a593Smuzhiyun	default "9600"		if BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600
391*4882a593Smuzhiyun	default "19200"		if BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200
392*4882a593Smuzhiyun	default "38400"		if BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400
393*4882a593Smuzhiyun	default "57600"		if BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600
394*4882a593Smuzhiyun	default "115200"	if BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200
395*4882a593Smuzhiyun	default "1500000"	if BR2_TARGET_GENERIC_GETTY_BAUDRATE_1500000
396*4882a593Smuzhiyun
397*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_GETTY_TERM
398*4882a593Smuzhiyun	string "TERM environment variable"
399*4882a593Smuzhiyun	default "vt100"
400*4882a593Smuzhiyun	# currently observed by all but systemd
401*4882a593Smuzhiyun	depends on !BR2_INIT_SYSTEMD
402*4882a593Smuzhiyun	help
403*4882a593Smuzhiyun	  Specify a TERM type.
404*4882a593Smuzhiyun
405*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_GETTY_OPTIONS
406*4882a593Smuzhiyun	string "other options to pass to getty"
407*4882a593Smuzhiyun	default ""
408*4882a593Smuzhiyun	# currently observed by all but systemd
409*4882a593Smuzhiyun	depends on !BR2_INIT_SYSTEMD
410*4882a593Smuzhiyun	help
411*4882a593Smuzhiyun	  Any other flags you want to pass to getty,
412*4882a593Smuzhiyun	  Refer to getty --help for details.
413*4882a593Smuzhiyunendif
414*4882a593Smuzhiyun
415*4882a593Smuzhiyunconfig BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
416*4882a593Smuzhiyun	bool "remount root filesystem read-write during boot"
417*4882a593Smuzhiyun	default y
418*4882a593Smuzhiyun	help
419*4882a593Smuzhiyun	  The root filesystem is typically mounted read-only at boot.
420*4882a593Smuzhiyun	  By default, buildroot remounts it in read-write mode early
421*4882a593Smuzhiyun	  during the boot process.
422*4882a593Smuzhiyun	  Say no here if you would rather like your root filesystem to
423*4882a593Smuzhiyun	  remain read-only.
424*4882a593Smuzhiyun	  If unsure, say Y.
425*4882a593Smuzhiyun
426*4882a593Smuzhiyunconfig BR2_SYSTEM_DHCP
427*4882a593Smuzhiyun	string "Network interface to configure through DHCP"
428*4882a593Smuzhiyun	default ""
429*4882a593Smuzhiyun	depends on BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || \
430*4882a593Smuzhiyun		BR2_PACKAGE_SYSTEMD_NETWORKD || BR2_PACKAGE_NETIFRC
431*4882a593Smuzhiyun	help
432*4882a593Smuzhiyun	  Enter here the name of the network interface (E.G. eth0) to
433*4882a593Smuzhiyun	  automatically configure through DHCP at bootup.
434*4882a593Smuzhiyun
435*4882a593Smuzhiyun	  If left empty, no automatic DHCP requests will take place.
436*4882a593Smuzhiyun
437*4882a593Smuzhiyun	  For more complicated network setups use an overlay to
438*4882a593Smuzhiyun	  overwrite /etc/network/interfaces or add a networkd
439*4882a593Smuzhiyun	  configuration file.
440*4882a593Smuzhiyun
441*4882a593Smuzhiyuncomment "automatic network configuration via DHCP needs ifupdown or busybox or networkd or netifrc"
442*4882a593Smuzhiyun	depends on !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || \
443*4882a593Smuzhiyun		BR2_PACKAGE_SYSTEMD_NETWORKD || BR2_PACKAGE_NETIFRC)
444*4882a593Smuzhiyun
445*4882a593Smuzhiyunendif # BR2_ROOTFS_SKELETON_DEFAULT
446*4882a593Smuzhiyun
447*4882a593Smuzhiyunconfig BR2_SYSTEM_DEFAULT_PATH
448*4882a593Smuzhiyun	string "Set the system's default PATH"
449*4882a593Smuzhiyun	default "/usr/bin:/usr/sbin" if BR2_ROOTFS_MERGED_USR
450*4882a593Smuzhiyun	default "/bin:/sbin:/usr/bin:/usr/sbin" if !BR2_ROOTFS_MERGED_USR
451*4882a593Smuzhiyun	help
452*4882a593Smuzhiyun	  Sets the system's default PATH. It is being used in
453*4882a593Smuzhiyun	  /etc/profile in the skeleton-init-common package and by some
454*4882a593Smuzhiyun	  daemons.
455*4882a593Smuzhiyun
456*4882a593Smuzhiyun	  The default should work in most cases.
457*4882a593Smuzhiyun
458*4882a593Smuzhiyunconfig BR2_ENABLE_LOCALE_PURGE
459*4882a593Smuzhiyun	bool "Purge unwanted locales"
460*4882a593Smuzhiyun	default y
461*4882a593Smuzhiyun	help
462*4882a593Smuzhiyun	  Explicitly specify what locales to install on target. If N
463*4882a593Smuzhiyun	  then all locales supported by packages are installed.
464*4882a593Smuzhiyun
465*4882a593Smuzhiyunconfig BR2_ENABLE_LOCALE_WHITELIST
466*4882a593Smuzhiyun	string "Locales to keep"
467*4882a593Smuzhiyun	default "C en_US"
468*4882a593Smuzhiyun	depends on BR2_ENABLE_LOCALE_PURGE
469*4882a593Smuzhiyun	help
470*4882a593Smuzhiyun	  Whitespace seperated list of locales to allow on target.
471*4882a593Smuzhiyun	  Locales not listed here will be removed from the target.
472*4882a593Smuzhiyun	  See 'locale -a' on your host for a list of locales available
473*4882a593Smuzhiyun	  on your build host, or have a look in /usr/share/locale in
474*4882a593Smuzhiyun	  the target file system for available locales.
475*4882a593Smuzhiyun
476*4882a593Smuzhiyun	  Notice that listing a locale here doesn't guarantee that it
477*4882a593Smuzhiyun	  will be available on the target - That purely depends on the
478*4882a593Smuzhiyun	  support for that locale in the selected packages.
479*4882a593Smuzhiyun
480*4882a593Smuzhiyunconfig BR2_GENERATE_LOCALE
481*4882a593Smuzhiyun	string "Generate locale data"
482*4882a593Smuzhiyun	default ""
483*4882a593Smuzhiyun	depends on \
484*4882a593Smuzhiyun		(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && BR2_ENABLE_LOCALE) || \
485*4882a593Smuzhiyun		BR2_TOOLCHAIN_USES_GLIBC
486*4882a593Smuzhiyun	help
487*4882a593Smuzhiyun	  Generate support for a list of locales. Locales can be
488*4882a593Smuzhiyun	  specified with or without encoding, when no encoding is
489*4882a593Smuzhiyun	  specified, UTF-8 is assumed. Examples of locales: en_US,
490*4882a593Smuzhiyun	  fr_FR.UTF-8.
491*4882a593Smuzhiyun
492*4882a593Smuzhiyunconfig BR2_SYSTEM_ENABLE_NLS
493*4882a593Smuzhiyun	bool "Enable Native Language Support (NLS)"
494*4882a593Smuzhiyun	depends on BR2_USE_WCHAR
495*4882a593Smuzhiyun	#  - glibc has built-in NLS support, but anyway doesn't
496*4882a593Smuzhiyun	#    support static linking
497*4882a593Smuzhiyun	#  - musl and uclibc support static linking, but they don't
498*4882a593Smuzhiyun	#    have built-in NLS support, which is provided by the
499*4882a593Smuzhiyun	#    libintl library from gettext. The fact that it is a
500*4882a593Smuzhiyun	#    separate library causes too many problems for static
501*4882a593Smuzhiyun	#    linking.
502*4882a593Smuzhiyun	depends on !BR2_STATIC_LIBS
503*4882a593Smuzhiyun	select BR2_PACKAGE_GETTEXT if !BR2_TOOLCHAIN_HAS_FULL_GETTEXT
504*4882a593Smuzhiyun	help
505*4882a593Smuzhiyun	  This option will enable Native Language Support, which will
506*4882a593Smuzhiyun	  allow software packages to support translations.
507*4882a593Smuzhiyun
508*4882a593Smuzhiyuncomment "NLS support needs a toolchain w/ wchar, dynamic library"
509*4882a593Smuzhiyun	depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS
510*4882a593Smuzhiyun
511*4882a593Smuzhiyunconfig BR2_TARGET_TZ_INFO
512*4882a593Smuzhiyun	bool "Install timezone info"
513*4882a593Smuzhiyun	select BR2_PACKAGE_TZDATA if BR2_TOOLCHAIN_USES_GLIBC
514*4882a593Smuzhiyun	select BR2_PACKAGE_TZDATA if BR2_TOOLCHAIN_USES_MUSL
515*4882a593Smuzhiyun	select BR2_PACKAGE_TZ if BR2_TOOLCHAIN_USES_UCLIBC
516*4882a593Smuzhiyun	help
517*4882a593Smuzhiyun	  Say 'y' here to install timezone info.
518*4882a593Smuzhiyun
519*4882a593Smuzhiyunif BR2_TARGET_TZ_INFO
520*4882a593Smuzhiyun
521*4882a593Smuzhiyunconfig BR2_TARGET_TZ_ZONELIST
522*4882a593Smuzhiyun	string "timezone list"
523*4882a593Smuzhiyun	default "default"
524*4882a593Smuzhiyun	help
525*4882a593Smuzhiyun	  Space-separated list of time zones to compile.
526*4882a593Smuzhiyun
527*4882a593Smuzhiyun	  The value "default" includes all commonly used time zones.
528*4882a593Smuzhiyun	  Note that this set consumes around 5.5M for glibc and 2.1M for
529*4882a593Smuzhiyun	  uClibc.
530*4882a593Smuzhiyun
531*4882a593Smuzhiyun	  The full list is the list of files in the time zone database
532*4882a593Smuzhiyun	  source, not including the build and .tab files.
533*4882a593Smuzhiyun
534*4882a593Smuzhiyunconfig BR2_TARGET_LOCALTIME
535*4882a593Smuzhiyun	string "default local time"
536*4882a593Smuzhiyun	default "Etc/UTC"
537*4882a593Smuzhiyun	help
538*4882a593Smuzhiyun	  The time zone to install as the default local time, expressed
539*4882a593Smuzhiyun	  as a tzdata location, such as:
540*4882a593Smuzhiyun	    Etc/UTC             (the default)
541*4882a593Smuzhiyun	    GMT
542*4882a593Smuzhiyun	    Europe/Paris
543*4882a593Smuzhiyun	    America/New_York
544*4882a593Smuzhiyun	    Pacific/Wallis
545*4882a593Smuzhiyun	    ...
546*4882a593Smuzhiyun
547*4882a593Smuzhiyun	  Set to empty to not install a default time zone.
548*4882a593Smuzhiyun
549*4882a593Smuzhiyunendif # BR2_TARGET_TZ_INFO
550*4882a593Smuzhiyun
551*4882a593Smuzhiyunconfig BR2_ROOTFS_USERS_TABLES
552*4882a593Smuzhiyun	string "Path to the users tables"
553*4882a593Smuzhiyun	help
554*4882a593Smuzhiyun	  Specify a space-separated list of users table locations,
555*4882a593Smuzhiyun	  that will be passed to the mkusers utility to create
556*4882a593Smuzhiyun	  users on the system, with home directory, password, etc.
557*4882a593Smuzhiyun
558*4882a593Smuzhiyun	  See manual for details on the usage and syntax of these files.
559*4882a593Smuzhiyun
560*4882a593Smuzhiyunconfig BR2_ROOTFS_OVERLAY
561*4882a593Smuzhiyun	string "Root filesystem overlay directories"
562*4882a593Smuzhiyun	default ""
563*4882a593Smuzhiyun	help
564*4882a593Smuzhiyun	  Specify a list of directories that are copied over the target
565*4882a593Smuzhiyun	  root filesystem after the build has finished and before it is
566*4882a593Smuzhiyun	  packed into the selected filesystem images.
567*4882a593Smuzhiyun
568*4882a593Smuzhiyun	  They are copied as-is into the rootfs, excluding files ending
569*4882a593Smuzhiyun	  with ~ and .git, .svn and .hg directories.
570*4882a593Smuzhiyun
571*4882a593Smuzhiyunconfig BR2_ROOTFS_POST_BUILD_SCRIPT
572*4882a593Smuzhiyun	string "Custom scripts to run before creating filesystem images"
573*4882a593Smuzhiyun	default ""
574*4882a593Smuzhiyun	help
575*4882a593Smuzhiyun	  Specify a space-separated list of scripts to be run after the
576*4882a593Smuzhiyun	  build has finished and before Buildroot starts packing the
577*4882a593Smuzhiyun	  files into selected filesystem images.
578*4882a593Smuzhiyun
579*4882a593Smuzhiyun	  This gives users the opportunity to do board-specific
580*4882a593Smuzhiyun	  cleanups, add-ons and the like, so the generated files can be
581*4882a593Smuzhiyun	  used directly without further processing.
582*4882a593Smuzhiyun
583*4882a593Smuzhiyun	  These scripts are called with the target directory name as
584*4882a593Smuzhiyun	  first argument. Make sure the exit code of those scripts are
585*4882a593Smuzhiyun	  0, otherwise make will stop after calling them.
586*4882a593Smuzhiyun
587*4882a593Smuzhiyunconfig BR2_ROOTFS_POST_FAKEROOT_SCRIPT
588*4882a593Smuzhiyun	string "Custom scripts to run inside the fakeroot environment"
589*4882a593Smuzhiyun	default ""
590*4882a593Smuzhiyun	help
591*4882a593Smuzhiyun	  Specify a space-separated list of scripts to be run at the end
592*4882a593Smuzhiyun	  of the fakeroot script right before the image(s) are actually
593*4882a593Smuzhiyun	  generated.
594*4882a593Smuzhiyun
595*4882a593Smuzhiyun	  This gives users the opportunity to do customisations of the
596*4882a593Smuzhiyun	  content of the rootfs, which would otherwise require root
597*4882a593Smuzhiyun	  rights.
598*4882a593Smuzhiyun
599*4882a593Smuzhiyun	  These scripts are called with the target directory name as
600*4882a593Smuzhiyun	  first argument. The build will fail on the first scripts that
601*4882a593Smuzhiyun	  exits with a non-zero exit code.
602*4882a593Smuzhiyun
603*4882a593Smuzhiyun	  Note that Buildroot already provides mechanisms to customise
604*4882a593Smuzhiyun	  the content of the rootfs:
605*4882a593Smuzhiyun
606*4882a593Smuzhiyun	    - BR2_ROOTFS_STATIC_DEVICE_TABLE
607*4882a593Smuzhiyun	        to create arbitrary entries statically in /dev
608*4882a593Smuzhiyun
609*4882a593Smuzhiyun	    - BR2_ROOTFS_DEVICE_TABLE
610*4882a593Smuzhiyun	        to set arbitrary permissions as well as extended
611*4882a593Smuzhiyun	        attributes (such as capabilities) on files and
612*4882a593Smuzhiyun	        directories,
613*4882a593Smuzhiyun
614*4882a593Smuzhiyun	    - BR2_ROOTFS_USERS_TABLES:
615*4882a593Smuzhiyun	        to create arbitrary users and their home directories
616*4882a593Smuzhiyun
617*4882a593Smuzhiyun	  It is highly recommended to use those mechanisms if possible,
618*4882a593Smuzhiyun	  rather than using custom fakeroot scripts.
619*4882a593Smuzhiyun
620*4882a593Smuzhiyunconfig BR2_ROOTFS_POST_IMAGE_SCRIPT
621*4882a593Smuzhiyun	string "Custom scripts to run after creating filesystem images"
622*4882a593Smuzhiyun	default ""
623*4882a593Smuzhiyun	help
624*4882a593Smuzhiyun	  Specify a space-separated list of scripts to be run after
625*4882a593Smuzhiyun	  the build has finished and after Buildroot has packed the
626*4882a593Smuzhiyun	  files into selected filesystem images.
627*4882a593Smuzhiyun
628*4882a593Smuzhiyun	  This can for example be used to call a tool building a
629*4882a593Smuzhiyun	  firmware image from different images generated by Buildroot,
630*4882a593Smuzhiyun	  or automatically extract the tarball root filesystem image
631*4882a593Smuzhiyun	  into some location exported by NFS, or any other custom
632*4882a593Smuzhiyun	  action.
633*4882a593Smuzhiyun
634*4882a593Smuzhiyun	  These scripts are called with the images directory name as
635*4882a593Smuzhiyun	  first argument. The script is executed from the main Buildroot
636*4882a593Smuzhiyun	  source directory as the current directory.
637*4882a593Smuzhiyun
638*4882a593Smuzhiyunconfig BR2_ROOTFS_POST_SCRIPT_ARGS
639*4882a593Smuzhiyun	string "Extra arguments passed to custom scripts"
640*4882a593Smuzhiyun	depends on BR2_ROOTFS_POST_BUILD_SCRIPT != "" \
641*4882a593Smuzhiyun		|| BR2_ROOTFS_POST_FAKEROOT_SCRIPT != "" \
642*4882a593Smuzhiyun		|| BR2_ROOTFS_POST_IMAGE_SCRIPT != ""
643*4882a593Smuzhiyun	help
644*4882a593Smuzhiyun	  Pass these additional arguments to each post-build or
645*4882a593Smuzhiyun	  post-image scripts.
646*4882a593Smuzhiyun
647*4882a593Smuzhiyun	  Note that all the post-build and post-image scripts will be
648*4882a593Smuzhiyun	  passed the same set of arguments, you can not pass different
649*4882a593Smuzhiyun	  arguments to each script.
650*4882a593Smuzhiyun
651*4882a593Smuzhiyun	  Note also, as stated in their respective help text, that the
652*4882a593Smuzhiyun	  first argument to each post-build or post-image script is the
653*4882a593Smuzhiyun	  target directory / images directory. The arguments in this
654*4882a593Smuzhiyun	  option will be passed *after* those.
655*4882a593Smuzhiyun
656*4882a593Smuzhiyunendmenu
657