config BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS bool # see src/basic/architecture.h default y if BR2_arc default y if BR2_aarch64 || BR2_aarch64_be default y if BR2_arm || BR2_armeb default y if BR2_i386 || BR2_x86_64 default y if BR2_m68k default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le default y if BR2_nios2 default y if BR2_riscv default y if BR2_sh4 || BR2_sh4eb || BR2_sh4a || BR2_sh4aeb default y if BR2_sparc || BR2_sparc64 default y if BR2_s390x menuconfig BR2_PACKAGE_SYSTEMD bool "systemd" depends on BR2_INIT_SYSTEMD depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS # kmod depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_TOOLCHAIN_HAS_SSP depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 depends on BR2_HOST_GCC_AT_LEAST_5 # host-systemd select BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_DBUS if !BR2_PACKAGE_DBUS_BROKER # runtime select BR2_PACKAGE_LIBCAP select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBS select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_AGETTY select BR2_PACKAGE_UTIL_LINUX_MOUNT select BR2_PACKAGE_UTIL_LINUX_FSCK select BR2_PACKAGE_KMOD select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # kmod-tools select BR2_PACKAGE_KMOD_TOOLS select BR2_TARGET_TZ_INFO select BR2_NEEDS_HOST_UTF8_LOCALE select BR2_PACKAGE_HOST_SYSTEMD # for systemctl preset-all, during target-finalize help systemd is a system and service manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit. Kernel versions below 4.15 ("recommended baseline") have significant gaps in functionality and are not recommended for use with this version of systemd. Systemd requires a Linux kernel >= 3.15 with the following options enabled: - CONFIG_DEVTMPFS - CONFIG_CGROUPS (it is OK to disable all controllers) - CONFIG_INOTIFY_USER - CONFIG_SIGNALFD - CONFIG_TIMERFD - CONFIG_EPOLL - CONFIG_UNIX (it requires CONFIG_NET, but every other flag in it is not necessary) - CONFIG_SYSFS - CONFIG_PROC_FS - CONFIG_FHANDLE (libudev, mount and bind mount handling) - CONFIG_NET_NS (Required for PrivateNetwork=, used in some systemd units) - CONFIG_USER_NS (Required for PrivateUsers=) - CONFIG_AUTOFS_FS / CONFIG_AUTOFS4_FS - CONFIG_TMPFS_POSIX_ACL - CONFIG_TMPFS_XATTR These options will be automatically enabled by Buildroot if it is responsible for building the kernel. Otherwise, if you are building your kernel outside of Buildroot, make sure these options are enabled. Systemd also provides udev, the userspace device daemon. The selection of other packages will enable some features: - acl package will add support for multi-seat. - xz and/or l4 packages will add compression support in journal and coredump. - libcurl package will add support for systemd-journal-upload. - libgcrypt package will add support for journal sealing and DNSSEC verification in resolved. Notice that systemd selects the fsck wrapper from util-linux but no particular fsck. is selected. You must choose the apropriate ones (e.g. e2fsck, from the e2fsprogs package) according to the system configuration. https://freedesktop.org/wiki/Software/systemd/ if BR2_PACKAGE_SYSTEMD config BR2_PACKAGE_PROVIDES_UDEV default "systemd" config BR2_PACKAGE_SYSTEMD_BOOT bool "systemd-boot" depends on BR2_i386 || BR2_x86_64 select BR2_PACKAGE_GNU_EFI help systemd-boot is a simple UEFI boot manager which executes configured EFI images. The default entry is selected by a configured pattern (glob) or an on-screen menu. systemd-boot operates on the EFI System Partition (ESP) only. Configuration file fragments, kernels, initrds, other EFI images need to reside on the ESP. Linux kernels need to be built with CONFIG_EFI_STUB to be able to be directly executed as an EFI image. See the Grub2 help text for details on preparing an EFI capable disk image using systemd-boot: the instructions are exactly the same, except that the systemd-boot configuration files will be located in /loader/ inside the EFI partition. https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/ config BR2_PACKAGE_SYSTEMD_INITRD bool "Services for booting from initrd" help Install various services that are only useful if systemd is run from an initrd. config BR2_PACKAGE_SYSTEMD_KERNELINSTALL bool "install kernel-install and related files" help kernel-install is used to install and remove kernel and initramfs images to and from the boot loader partition. The boot loader partition will usually be one of /boot, /efi, or /boot/efi. config BR2_PACKAGE_SYSTEMD_ANALYZE bool "systemd-analyze" help systemd-analyze may be used to determine system boot-up performance statistics and retrieve other state and tracing information from the system and service manager, and to verify the correctness of unit files. It is also used to access special functions useful for advanced system manager debugging. config BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH string default "ia32" if BR2_i386 default "x64" if BR2_x86_64 depends on BR2_PACKAGE_SYSTEMD_BOOT config BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE bool "enable journal remote tools" select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBMICROHTTPD help journal remote functionality adds three tools: systemd-journal-gatewayd serves journal events over the network. systemd-journal-remote is a command to receive serialized journal events and store them to journal files. systemd-journal-upload will upload journal entries to the URL specified with --url=. https://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html https://www.freedesktop.org/software/systemd/man/systemd-journal-remote.service.html https://www.freedesktop.org/software/systemd/man/systemd-journal-upload.html config BR2_PACKAGE_SYSTEMD_BACKLIGHT bool "enable backlight support" help systemd-backlight is a service that restores the display backlight brightness at early boot and saves it at shutdown. https://www.freedesktop.org/software/systemd/man/systemd-backlight@.service.html config BR2_PACKAGE_SYSTEMD_BINFMT bool "enable binfmt tool" help systemd-binfmt is an early boot service that registers additional binary formats for executables in the kernel. http://www.freedesktop.org/software/systemd/man/systemd-binfmt.service.html config BR2_PACKAGE_SYSTEMD_COREDUMP bool "enable coredump hook" help systemd-coredump can be used as a helper binary by the kernel when a user space program receives a fatal signal and dumps core. https://www.freedesktop.org/software/systemd/man/systemd-coredump.html config BR2_PACKAGE_SYSTEMD_PSTORE bool "enable pstore support" default y help When this features is enabled, additional tools and services are built to support archiving contents of the persistent storage filesytem. https://www.freedesktop.org/software/systemd/man/systemd-pstore.html config BR2_PACKAGE_SYSTEMD_FIRSTBOOT bool "enable firstboot support" help systemd-firstboot initializes the most basic system settings interactively on the first boot. https://www.freedesktop.org/software/systemd/man/systemd-firstboot.html config BR2_PACKAGE_SYSTEMD_HIBERNATE bool "enable hibernation support" select BR2_PACKAGE_SYSTEMD_INITRD help When this features is enabled, additional tools and services are built to support suspending and resuming the system. https://www.freedesktop.org/software/systemd/man/systemd-sleep.html config BR2_PACKAGE_SYSTEMD_HOMED bool "enable home daemon" depends on BR2_TOOLCHAIN_HAS_THREADS # cryptsetup -> lvm2 depends on BR2_USE_MMU # cryptsetup -> lvm2 depends on !BR2_STATIC_LIBS # cryptsetup -> lvm2 depends on BR2_TOOLCHAIN_HAS_SYNC_4 # cryptsetup -> json-c depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 # fscrypt_key select BR2_PACKAGE_CRYPTSETUP select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL select BR2_PACKAGE_UTIL_LINUX_LIBFDISK help systemd-homed is a system service that may be used to create, remove, change or inspect home directories. https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html comment "homed support needs a toolchain w/ threads, dynamic library, kernel headers >= 4.12" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 config BR2_PACKAGE_SYSTEMD_HOSTNAMED bool "enable hostname daemon" default y help systemd-hostnamed is a system service that may be used as a mechanism to change the system's hostname. https://www.freedesktop.org/software/systemd/man/systemd-hostnamed.service.html config BR2_PACKAGE_SYSTEMD_HWDB bool "enable hwdb installation" default y help Enables hardware database installation to /usr/lib/udev/hwdb.d Disabling this option improves first boot time (or every boot time in case of initramfs images) and saves several MB space. https://www.freedesktop.org/software/systemd/man/hwdb.html config BR2_PACKAGE_SYSTEMD_IMPORTD bool "enable import daemon" depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_XZ select BR2_PACKAGE_ZLIB help systemd-importd is a system service that manages virtual machine and container images for systemd-machined and machinectl. https://www.freedesktop.org/software/systemd/man/machinectl.html#Image%20Transfer%20Commands config BR2_PACKAGE_SYSTEMD_CATALOGDB bool "enable journal catalog database installation" depends on BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW # conflicting tmpfiles magic help Build and install the journal catalog database. catalog files are used to provide extended and potentially localized messages for the journal. The original catalog files will be built into a DB at /usr/share/factory/var/lib/systemd/catalog/database. https://www.freedesktop.org/wiki/Software/systemd/catalog/ config BR2_PACKAGE_SYSTEMD_LOCALED bool "enable locale daemon" help systemd-localed is a system service that may be used as mechanism to change the system locale settings, as well as the console key mapping and default X11 key mapping. https://www.freedesktop.org/software/systemd/man/systemd-localed.service.html config BR2_PACKAGE_SYSTEMD_LOGIND bool "enable login daemon" help systemd-logind is a system service that manages user logins. https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html config BR2_PACKAGE_SYSTEMD_MACHINED bool "enable machine daemon" help systemd-machined is a system service that keeps track of virtual machines and containers, and processes belonging to them. https://www.freedesktop.org/software/systemd/man/systemd-machined.service.html config BR2_PACKAGE_SYSTEMD_MYHOSTNAME bool "enable myhostname NSS plugin" default y help nss-myhostname is a plug-in module for the GNU Name Service Switch (NSS) functionality of the GNU C Library (glibc), primarily providing hostname resolution for the locally configured system hostname as returned by gethostname(2). https://www.freedesktop.org/software/systemd/man/nss-myhostname.html config BR2_PACKAGE_SYSTEMD_NETWORKD bool "enable network manager" default y help systemd-networkd is a system service that manages networks. It detects and configures network devices as they appear, as well as creating virtual network devices. This simple network configuration solution is an alternative to dhcpcd or ISC dhcp. https://www.freedesktop.org/software/systemd/man/systemd-networkd.html config BR2_PACKAGE_SYSTEMD_OOMD bool "enable out-of-memory killer" help systemd-oomd is a system service that uses cgroups-v2 and pressure stall information (PSI) to monitor and take action on processes before an OOM occurs in kernel space. https://www.freedesktop.org/software/systemd/man/systemd-oomd.html config BR2_PACKAGE_SYSTEMD_POLKIT bool "enable polkit support" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # polkit -> c++17 depends on BR2_TOOLCHAIN_HAS_THREADS # polkit depends on BR2_USE_WCHAR # libglib2 depends on !BR2_OPTIMIZE_FAST # polkit -> duktape select BR2_PACKAGE_POLKIT help If enabled, systemd is built with polkit support and policy files for its services are generated and installed. It is useful for allowing unprivileged processes to speak to systemd's many privileged processes. https://wiki.freedesktop.org/www/Software/polkit/ comment "polkit support needs a toolchain with threads, wchar, gcc >= 7" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || \ !BR2_TOOLCHAIN_HAS_THREADS comment "polkit support can't be built with Optimize for fast" depends on BR2_OPTIMIZE_FAST config BR2_PACKAGE_SYSTEMD_PORTABLED bool "enable portable services" help Portable services are systemd services that can be dynamically attached and detached from the system. These services must come with their own root directory which they are bound to through an automatically generated drop-in. They also have restrictions applied by the host system in the form of profiles. This functionality is provided by the system service systemd-portabled along with the corresponding CLI portablectl. https://systemd.io/PORTABLE_SERVICES/ config BR2_PACKAGE_SYSTEMD_QUOTACHECK bool "enable quotacheck tools" help systemd-quotacheck is a service responsible for file system quota checks. It is run once at boot after all necessary file systems are mounted. It is pulled in only if at least one file system has quotas enabled. https://www.freedesktop.org/software/systemd/man/systemd-quotacheck.service.html config BR2_PACKAGE_SYSTEMD_RANDOMSEED bool "enable random-seed support" help systemd-random-seed is a service that restores the random seed of the system at early boot and saves it at shutdown. Saving/restoring the random seed across boots increases the amount of available entropy early at boot. https://www.freedesktop.org/software/systemd/man/systemd-random-seed.service.html config BR2_PACKAGE_SYSTEMD_REPART bool "enable repart support" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL select BR2_PACKAGE_UTIL_LINUX_LIBFDISK help systemd-repart grows and adds partitions to a partition table, based on the configuration files described in repart.d. https://www.freedesktop.org/software/systemd/man/systemd-repart.html config BR2_PACKAGE_SYSTEMD_RESOLVED bool "enable resolve daemon" default y help systemd-resolved is a system service that provides network name resolution to local applications. It implements a caching and validating DNS/DNSSEC stub resolver, as well as an LLMNR resolver and responder. https://www.freedesktop.org/software/systemd/man/systemd-resolved.html config BR2_PACKAGE_SYSTEMD_RFKILL bool "enable rfkill tools" help systemd-rfkill is a service that restores the RF kill switch state at early boot and saves it at shutdown. https://www.freedesktop.org/software/systemd/man/systemd-rfkill.service.html config BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT bool "enable SMACK support" select BR2_PACKAGE_ATTR select BR2_PACKAGE_SMACK help Enable support for SMACK, the Simple Mandatory Access Control Kernel, a minimal approach to Access Control implemented as a kernel LSM. This feature requires a kernel >= 3.8. When this feature is enabled, Systemd mounts smackfs and manages security labels for sockets. config BR2_PACKAGE_SYSTEMD_SYSEXT bool "enable sysext support" help systemd-sysext activates/deactivates system extension images. System extension images may – dynamically at runtime — extend the /usr/ and /opt/ directory hierarchies with additional files. This is particularly useful on immutable system images where a /usr/ and/or /opt/ hierarchy residing on a read-only file system shall be extended temporarily at runtime without making any persistent modifications. https://www.freedesktop.org/software/systemd/man/systemd-sysext.html config BR2_PACKAGE_SYSTEMD_SYSUPDATE bool "enable sysupdate support" select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL select BR2_PACKAGE_UTIL_LINUX_LIBFDISK help systemd-sysupdate atomically updates the host OS, container images, portable service images or other sources, based on the transfer configuration files described in sysupdate.d. Note that the bootloader must be configured specifically to support the A/B update mechanism defined by sysupdate. Only systemd-boot does this out of the box. https://www.freedesktop.org/software/systemd/man/systemd-sysupdate.html config BR2_PACKAGE_SYSTEMD_SYSUSERS bool "enable sysusers support" help systemd-sysusers creates system users and groups, based on the file format and location specified in sysusers.d(5). https://www.freedesktop.org/software/systemd/man/systemd-sysusers.html config BR2_PACKAGE_SYSTEMD_TIMEDATED bool "enable timedate daemon" default y help systemd-timedated is a system service that may be used as a mechanism to change the system clock and timezone, as well as to enable/disable NTP time synchronization. https://www.freedesktop.org/software/systemd/man/systemd-timedated.service.html config BR2_PACKAGE_SYSTEMD_TIMESYNCD bool "enable timesync daemon" default y help systemd-timesyncd is a service that may be used to synchronize the local system clock with a Network Time Protocol server. This simple NTP solution is an alternative to sntp/ntpd from the ntp package. https://www.freedesktop.org/software/systemd/man/systemd-timesyncd.html config BR2_PACKAGE_SYSTEMD_USERDB bool "enable userdb daemon" help systemd-userdbd is a system service that multiplexes user/group lookups to all local services that provide JSON user/group record definitions to the system. In addition it synthesizes JSON user/group records from classic UNIX/glibc NSS user/group records in order to provide full backwards compatibility. https://www.freedesktop.org/software/systemd/man/systemd-userdbd.service.html config BR2_PACKAGE_SYSTEMD_UTMP bool "enable utmp support" help systemd-update-utmp-runlevel.service is a service that writes SysV runlevel changes to utmp and wtmp, as well as the audit logs, as they occur. systemd-update-utmp.service does the same for system reboots and shutdown requests. https://www.freedesktop.org/software/systemd/man/systemd-update-utmp.service.html Utmp keeps track of what users do on the system (where they logged from, on which terminal, ...) along with a general status of the system (list of reboots, current uptime, current number of users logged in). You should only enable this if your system will have actual users who log in. https://man7.org/linux/man-pages/man5/utmp.5.html config BR2_PACKAGE_SYSTEMD_VCONSOLE bool "enable vconsole tool" default y help systemd-vconsole-setup is an early boot service that configures the virtual console font and console keymap. https://www.freedesktop.org/software/systemd/man/systemd-vconsole-setup.service.html endif