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