xref: /OK3568_Linux_fs/buildroot/package/systemd/Config.in (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1config BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
2	bool
3	# see src/basic/architecture.h
4	default y if BR2_arc
5	default y if BR2_aarch64 || BR2_aarch64_be
6	default y if BR2_arm || BR2_armeb
7	default y if BR2_i386 || BR2_x86_64
8	default y if BR2_m68k
9	default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
10	default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
11	default y if BR2_nios2
12	default y if BR2_riscv
13	default y if BR2_sh4 || BR2_sh4eb || BR2_sh4a || BR2_sh4aeb
14	default y if BR2_sparc || BR2_sparc64
15	default y if BR2_s390x
16
17menuconfig BR2_PACKAGE_SYSTEMD
18	bool "systemd"
19	depends on BR2_INIT_SYSTEMD
20	depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
21	depends on BR2_USE_MMU
22	depends on !BR2_STATIC_LIBS # kmod
23	depends on BR2_TOOLCHAIN_USES_GLIBC
24	depends on BR2_TOOLCHAIN_HAS_SSP
25	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
26	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
27	depends on BR2_HOST_GCC_AT_LEAST_5 # host-systemd
28	select BR2_PACKAGE_HAS_UDEV
29	select BR2_PACKAGE_DBUS # runtime dependency only
30	select BR2_PACKAGE_LIBCAP
31	select BR2_PACKAGE_UTIL_LINUX
32	select BR2_PACKAGE_UTIL_LINUX_LIBS
33	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
34	select BR2_PACKAGE_UTIL_LINUX_AGETTY
35	select BR2_PACKAGE_UTIL_LINUX_MOUNT
36	select BR2_PACKAGE_UTIL_LINUX_FSCK
37	select BR2_PACKAGE_KMOD
38	select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # kmod-tools
39	select BR2_PACKAGE_KMOD_TOOLS
40	select BR2_TARGET_TZ_INFO
41	select BR2_NEEDS_HOST_UTF8_LOCALE
42	select BR2_PACKAGE_HOST_SYSTEMD # for systemctl preset-all, during target-finalize
43	help
44	  systemd is a system and service manager for Linux,
45	  compatible with SysV and LSB init scripts. systemd provides
46	  aggressive parallelization capabilities, uses socket and
47	  D-Bus activation for starting services, offers on-demand
48	  starting of daemons, keeps track of processes using Linux
49	  cgroups, supports snapshotting and restoring of the system
50	  state, maintains mount and automount points and implements
51	  an elaborate transactional dependency-based service control
52	  logic.  It can work as a drop-in replacement for sysvinit.
53
54	  Systemd requires a Linux kernel >= 3.13 with the following
55	  options enabled:
56
57	  - CONFIG_DEVTMPFS
58	  - CONFIG_CGROUPS (it is OK to disable all controllers)
59	  - CONFIG_INOTIFY_USER
60	  - CONFIG_SIGNALFD
61	  - CONFIG_TIMERFD
62	  - CONFIG_EPOLL
63	  - CONFIG_UNIX (it requires CONFIG_NET, but every other flag in
64	    it is not necessary)
65	  - CONFIG_SYSFS
66	  - CONFIG_PROC_FS
67	  - CONFIG_FHANDLE (libudev, mount and bind mount handling)
68
69	  - CONFIG_NET_NS (needed by PrivateNetwork=, used in some
70	    systemd units)
71
72	  - CONFIG_AUTOFS_FS / CONFIG_AUTOFS4_FS
73	  - CONFIG_TMPFS_POSIX_ACL
74	  - CONFIG_TMPFS_XATTR
75
76	  These options will be automatically enabled by Buildroot if
77	  it is responsible for building the kernel. Otherwise, if you
78	  are building your kernel outside of Buildroot, make sure
79	  these options are enabled.
80
81	  Systemd also provides udev, the userspace device daemon.
82
83	  The selection of other packages will enable some features:
84
85	  - acl package will add support for multi-seat.
86	  - xz and/or l4 packages will add compression support in
87	    journal and coredump.
88	  - libcurl package will add support for systemd-journal-upload.
89	  - libgcrypt package will add support for journal sealing and
90	    DNSSEC verification in resolved.
91
92	  Notice that systemd selects the fsck wrapper from util-linux
93	  but no particular fsck.<fstype> is selected. You must choose
94	  the apropriate ones (e.g. e2fsck, from the e2fsprogs
95	  package) according to the system configuration.
96
97	  http://freedesktop.org/wiki/Software/systemd
98
99if BR2_PACKAGE_SYSTEMD
100
101config BR2_PACKAGE_PROVIDES_UDEV
102	default "systemd"
103
104config BR2_PACKAGE_SYSTEMD_BOOT
105	bool "systemd-boot"
106	depends on BR2_i386 || BR2_x86_64
107	select BR2_PACKAGE_GNU_EFI
108	help
109	  systemd-boot is a simple UEFI boot manager which executes
110	  configured EFI images. The default entry is selected by a
111	  configured pattern (glob) or an on-screen menu.
112
113	  systemd-boot operates on the EFI System Partition (ESP)
114	  only. Configuration file fragments, kernels, initrds, other
115	  EFI images need to reside on the ESP. Linux kernels need to
116	  be built with CONFIG_EFI_STUB to be able to be directly
117	  executed as an EFI image.
118
119	  See the Grub2 help text for details on preparing an EFI
120	  capable disk image using systemd-boot: the instructions are
121	  exactly the same, except that the systemd-boot configuration
122	  files will be located in /loader/ inside the EFI partition.
123
124	  https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/
125
126config BR2_PACKAGE_SYSTEMD_INITRD
127	bool "Services for booting from initrd"
128	help
129	  Install various services that are only useful if systemd is
130	  run from an initrd.
131
132config BR2_PACKAGE_SYSTEMD_KERNELINSTALL
133	bool "install kernel-install and related files"
134	help
135	  kernel-install is used to install and remove kernel and
136	  initramfs images to and from the boot loader partition.
137	  The boot loader partition will usually be one of
138	  /boot, /efi, or /boot/efi.
139
140config BR2_PACKAGE_SYSTEMD_ANALYZE
141	bool "systemd-analyze"
142	help
143	  systemd-analyze may be used to determine system boot-up
144	  performance statistics and retrieve other state and tracing
145	  information from the system and service manager, and to
146	  verify the correctness of unit files.
147	  It is also used to access special functions useful for
148	  advanced system manager debugging.
149
150config BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH
151	string
152	default "ia32"  if BR2_i386
153	default "x64"   if BR2_x86_64
154	depends on BR2_PACKAGE_SYSTEMD_BOOT
155
156config BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE
157	bool "enable journal remote tools"
158	select BR2_PACKAGE_LIBCURL
159	select BR2_PACKAGE_LIBMICROHTTPD
160	help
161	  journal remote functionality adds three tools:
162
163	  systemd-journal-gatewayd serves journal events over the
164	  network.
165
166	  systemd-journal-remote is a command to receive serialized
167	  journal events and store them to journal files.
168
169	  systemd-journal-upload will upload journal entries to the
170	  URL specified with --url=.
171
172	  https://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html
173	  https://www.freedesktop.org/software/systemd/man/systemd-journal-remote.service.html
174	  https://www.freedesktop.org/software/systemd/man/systemd-journal-upload.html
175
176config BR2_PACKAGE_SYSTEMD_BACKLIGHT
177	bool "enable backlight support"
178	help
179	  systemd-backlight is a service that restores the display
180	  backlight brightness at early boot and saves it at shutdown.
181
182	  http://www.freedesktop.org/software/systemd/man/systemd-backlight@.service.html
183
184config BR2_PACKAGE_SYSTEMD_BINFMT
185	bool "enable binfmt tool"
186	help
187	  systemd-binfmt is an early boot service that registers
188	  additional binary formats for executables in the kernel.
189
190	  http://www.freedesktop.org/software/systemd/man/systemd-binfmt.service.html
191
192config BR2_PACKAGE_SYSTEMD_COREDUMP
193	bool "enable coredump hook"
194	help
195	  systemd-coredump can be used as a helper binary by the
196	  kernel when a user space program receives a fatal signal and
197	  dumps core.
198
199	  http://www.freedesktop.org/software/systemd/man/systemd-coredump.html
200
201config BR2_PACKAGE_SYSTEMD_PSTORE
202	bool "enable pstore support"
203	default y
204	help
205	  When this features is enabled, additional tools and services
206	  are built to support archiving contents of the persistent
207	  storage filesytem.
208
209	  https://www.freedesktop.org/software/systemd/man/systemd-pstore.html
210
211config BR2_PACKAGE_SYSTEMD_FIRSTBOOT
212	bool "enable firstboot support"
213	help
214	  systemd-firstboot initializes the most basic system settings
215	  interactively on the first boot.
216
217	  http://www.freedesktop.org/software/systemd/man/systemd-firstboot.html
218
219config BR2_PACKAGE_SYSTEMD_HIBERNATE
220	bool "enable hibernation support"
221	select BR2_PACKAGE_SYSTEMD_INITRD
222	help
223	  When this features is enabled, additional tools and services
224	  are built to support suspending and resuming the system.
225
226	  http://www.freedesktop.org/software/systemd/man/systemd-sleep.html
227
228config BR2_PACKAGE_SYSTEMD_HOMED
229	bool "enable home daemon"
230	depends on BR2_TOOLCHAIN_HAS_THREADS # cryptsetup -> lvm2
231	depends on BR2_USE_MMU # cryptsetup -> lvm2
232	depends on !BR2_STATIC_LIBS # cryptsetup -> lvm2
233	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # cryptsetup -> json-c
234	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 # fscrypt_key
235	select BR2_PACKAGE_CRYPTSETUP
236	select BR2_PACKAGE_OPENSSL
237	select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
238	select BR2_PACKAGE_UTIL_LINUX_LIBFDISK
239	help
240	  systemd-homed is a system service that may be used to create,
241	  remove, change or inspect home directories.
242
243	  https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html
244
245comment "homed support needs a toolchain w/ threads, dynamic library, kernel headers >= 4.12"
246	depends on BR2_USE_MMU
247	depends on BR2_TOOLCHAIN_HAS_SYNC_4
248	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
249		BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
250
251config BR2_PACKAGE_SYSTEMD_HOSTNAMED
252	bool "enable hostname daemon"
253	default y
254	help
255	  systemd-hostnamed is a system service that may be used as a
256	  mechanism to change the system's hostname.
257
258	  http://www.freedesktop.org/software/systemd/man/systemd-hostnamed.service.html
259
260config BR2_PACKAGE_SYSTEMD_HWDB
261	bool "enable hwdb installation"
262	default y
263	help
264	  Enables hardware database installation to /usr/lib/udev/hwdb.d
265
266	  Disabling this option improves first boot time (or every boot
267	  time in case of initramfs images) and saves several MB space.
268
269	  https://www.freedesktop.org/software/systemd/man/hwdb.html
270
271config BR2_PACKAGE_SYSTEMD_IMPORTD
272	bool "enable import daemon"
273	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt
274	select BR2_PACKAGE_LIBCURL
275	select BR2_PACKAGE_LIBGCRYPT
276	select BR2_PACKAGE_XZ
277	select BR2_PACKAGE_ZLIB
278	help
279	  systemd-importd is a system service that manages virtual
280	  machine and container images for systemd-machined and
281	  machinectl.
282
283	  http://www.freedesktop.org/software/systemd/man/machinectl.html#Image%20Transfer%20Commands
284
285config BR2_PACKAGE_SYSTEMD_CATALOGDB
286	bool "enable journal catalog database installation"
287	depends on BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW # conflicting tmpfiles magic
288	help
289	  Build and install the journal catalog database.
290
291	  catalog files are used to provide extended and potentially
292	  localized messages for the journal.
293
294	  The original catalog files will be built into a DB at
295	  /usr/share/factory/var/lib/systemd/catalog/database.
296
297	  https://www.freedesktop.org/wiki/Software/systemd/catalog/
298
299config BR2_PACKAGE_SYSTEMD_LOCALED
300	bool "enable locale daemon"
301	help
302	  systemd-localed is a system service that may be used as
303	  mechanism to change the system locale settings, as well as
304	  the console key mapping and default X11 key mapping.
305
306	  http://www.freedesktop.org/software/systemd/man/systemd-localed.service.html
307
308config BR2_PACKAGE_SYSTEMD_LOGIND
309	bool "enable login daemon"
310	help
311	  systemd-logind is a system service that manages user logins.
312
313	  http://www.freedesktop.org/software/systemd/man/systemd-logind.service.html
314
315config BR2_PACKAGE_SYSTEMD_MACHINED
316	bool "enable machine daemon"
317	help
318	  systemd-machined is a system service that keeps track of
319	  virtual machines and containers, and processes belonging to
320	  them.
321
322	  http://www.freedesktop.org/software/systemd/man/systemd-machined.service.html
323
324config BR2_PACKAGE_SYSTEMD_MYHOSTNAME
325	bool "enable myhostname NSS plugin"
326	default y
327	help
328	  nss-myhostname is a plug-in module for the GNU Name Service
329	  Switch (NSS) functionality of the GNU C Library (glibc),
330	  primarily providing hostname resolution for the locally
331	  configured system hostname as returned by gethostname(2).
332
333	  http://www.freedesktop.org/software/systemd/man/nss-myhostname.html
334
335config BR2_PACKAGE_SYSTEMD_NETWORKD
336	bool "enable network manager"
337	default y
338	help
339	  systemd-networkd is a system service that manages networks.
340	  It detects and configures network devices as they appear, as
341	  well as creating virtual network devices.
342
343	  This simple network configuration solution is an alternative
344	  to dhcpcd or ISC dhcp.
345
346	  http://www.freedesktop.org/software/systemd/man/systemd-networkd.html
347
348config BR2_PACKAGE_SYSTEMD_OOMD
349	bool "enable out-of-memory killer"
350	help
351	  systemd-oomd is a system service that uses cgroups-v2 and
352	  pressure stall information (PSI) to monitor and take action
353	  on processes before an OOM occurs in kernel space.
354
355	  https://www.freedesktop.org/software/systemd/man/systemd-oomd.html
356
357config BR2_PACKAGE_SYSTEMD_POLKIT
358	bool "enable polkit support"
359	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # polkit -> c++17
360	depends on BR2_TOOLCHAIN_HAS_THREADS # polkit
361	depends on BR2_USE_WCHAR # libglib2
362	depends on !BR2_OPTIMIZE_FAST # polkit -> duktape
363	select BR2_PACKAGE_POLKIT
364	help
365	  If enabled, systemd is built with polkit support and policy
366	  files for its services are generated and installed. It is
367	  useful for allowing unprivileged processes to speak to
368	  systemd's many privileged processes.
369
370	  http://wiki.freedesktop.org/www/Software/polkit/
371
372comment "polkit support needs a toolchain with threads, wchar, gcc >= 7"
373	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || \
374		!BR2_TOOLCHAIN_HAS_THREADS
375
376comment "polkit support can't be built with Optimize for fast"
377	depends on BR2_OPTIMIZE_FAST
378
379config BR2_PACKAGE_SYSTEMD_PORTABLED
380	bool "enable portable services"
381	help
382	  Portable services are systemd services that can be dynamically
383	  attached and detached from the system.
384
385	  These services must come with their own root directory which
386	  they are bound to through an automatically generated drop-in.
387
388	  They also have restrictions applied by the host system in the
389	  form of profiles.
390
391	  This functionality is provided by the system service
392	  systemd-portabled along with the corresponding CLI
393	  portablectl.
394
395	  https://systemd.io/PORTABLE_SERVICES/
396
397config BR2_PACKAGE_SYSTEMD_QUOTACHECK
398	bool "enable quotacheck tools"
399	help
400	  systemd-quotacheck is a service responsible for file system
401	  quota checks. It is run once at boot after all necessary
402	  file systems are mounted. It is pulled in only if at least
403	  one file system has quotas enabled.
404
405	  http://www.freedesktop.org/software/systemd/man/systemd-quotacheck.service.html
406
407config BR2_PACKAGE_SYSTEMD_RANDOMSEED
408	bool "enable random-seed support"
409	help
410	  systemd-random-seed is a service that restores the random
411	  seed of the system at early boot and saves it at
412	  shutdown. Saving/restoring the random seed across boots
413	  increases the amount of available entropy early at boot.
414
415	  http://www.freedesktop.org/software/systemd/man/systemd-random-seed.service.html
416
417config BR2_PACKAGE_SYSTEMD_REPART
418	bool "enable repart support"
419	select BR2_PACKAGE_OPENSSL
420	select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
421	select BR2_PACKAGE_UTIL_LINUX_LIBFDISK
422	help
423	  systemd-repart grows and adds partitions to a partition table,
424	  based on the configuration files described in repart.d.
425
426	  https://www.freedesktop.org/software/systemd/man/systemd-repart.html
427
428config BR2_PACKAGE_SYSTEMD_RESOLVED
429	bool "enable resolve daemon"
430	default y
431	help
432	  systemd-resolved is a system service that provides network
433	  name resolution to local applications. It implements a
434	  caching and validating DNS/DNSSEC stub resolver, as well as
435	  an LLMNR resolver and responder.
436
437	  http://www.freedesktop.org/software/systemd/man/systemd-resolved.html
438
439config BR2_PACKAGE_SYSTEMD_RFKILL
440	bool "enable rfkill tools"
441	help
442	  systemd-rfkill is a service that restores the RF kill switch
443	  state at early boot and saves it at shutdown.
444
445	  http://www.freedesktop.org/software/systemd/man/systemd-rfkill@.service.html
446
447config BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT
448	bool "enable SMACK support"
449	select BR2_PACKAGE_ATTR
450	select BR2_PACKAGE_SMACK
451	help
452	  Enable support for SMACK, the Simple Mandatory Access
453	  Control Kernel, a minimal approach to Access Control
454	  implemented as a kernel LSM.
455
456	  This feature requires a kernel >= 3.8.
457
458	  When this feature is enabled, Systemd mounts smackfs and
459	  manages security labels for sockets.
460
461config BR2_PACKAGE_SYSTEMD_SYSEXT
462	bool "enable sysext support"
463	help
464	  systemd-sysext activates/deactivates system extension
465	  images.
466
467	  System extension images may – dynamically at runtime —
468	  extend the /usr/ and /opt/ directory hierarchies with
469	  additional files.
470
471	  This is particularly useful on immutable system images where
472	  a /usr/ and/or /opt/ hierarchy residing on a read-only file
473	  system shall be extended temporarily at runtime without
474	  making any persistent modifications.
475
476	  https://www.freedesktop.org/software/systemd/man/systemd-sysext.html
477
478config BR2_PACKAGE_SYSTEMD_SYSUSERS
479	bool "enable sysusers support"
480	help
481	  systemd-sysusers creates system users and groups, based on
482	  the file format and location specified in sysusers.d(5).
483
484	  http://www.freedesktop.org/software/systemd/man/systemd-sysusers.html
485
486config BR2_PACKAGE_SYSTEMD_TIMEDATED
487	bool "enable timedate daemon"
488	default y
489	help
490	  systemd-timedated is a system service that may be used as a
491	  mechanism to change the system clock and timezone, as well
492	  as to enable/disable NTP time synchronization.
493
494	  http://www.freedesktop.org/software/systemd/man/systemd-timedated.service.html
495
496config BR2_PACKAGE_SYSTEMD_TIMESYNCD
497	bool "enable timesync daemon"
498	default y
499	help
500	  systemd-timesyncd is a service that may be used to
501	  synchronize the local system clock with a Network Time
502	  Protocol server.
503
504	  This simple NTP solution is an alternative to sntp/ntpd from
505	  the ntp package.
506
507	  http://www.freedesktop.org/software/systemd/man/systemd-timesyncd.html
508
509config BR2_PACKAGE_SYSTEMD_USERDB
510	bool "enable userdb daemon"
511	help
512	  systemd-userdbd is a system service that multiplexes
513	  user/group lookups to all local services that provide JSON
514	  user/group record definitions to the system. In addition it
515	  synthesizes JSON user/group records from classic UNIX/glibc
516	  NSS user/group records in order to provide full backwards
517	  compatibility.
518
519	  https://www.freedesktop.org/software/systemd/man/systemd-userdbd.service.html
520
521config BR2_PACKAGE_SYSTEMD_VCONSOLE
522	bool "enable vconsole tool"
523	default y
524	help
525	  systemd-vconsole-setup is an early boot service that
526	  configures the virtual console font and console keymap.
527
528	  http://www.freedesktop.org/software/systemd/man/systemd-vconsole-setup.service.html
529
530endif
531