![James Hilliard](/assets/img/avatar_default.png)
Added config option for new systemd-pstore feature. Removed patches that have been committed upstream. Added symlinks required to enable some services. After extensive discussion with upstream it does not seem there is any acceptable option to have symlink installation handled on their side. The recommended solution from upstream is to have systemctl handle service installation, however this has a number of downsides such as requiring us to build a host-systemd just to install a few symlinks. Since we already customize service installation it is simpler for us to create the symlinks ourselves, this will also simplify service customization on our side as we will not need to disable any systemd default services in cases where we need to make customizations. In addition using systemctl would introduce a minimum host headers dependency in which we don't have the infrastructure to handle properly. The downside to this approach is that we need to track service creation changes from upstream ourselves, however this is relatively straightforward and since upstream service file locations are relatively stable regressions should be limited. This will mostly be a concern in regards to adding support for new systemd features. Details: https://github.com/systemd/systemd/issues/12767 https://github.com/systemd/systemd/pull/12164 https://github.com/systemd/systemd/pull/12769 https://github.com/systemd/systemd/pull/12775 Signed-off-by: James Hilliard <james.hilliard1@gmail.com> Tested-by: Jérémy Rosen <jeremy.rosen@smile.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
395 lines
13 KiB
Plaintext
395 lines
13 KiB
Plaintext
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
|
|
|
|
menuconfig BR2_PACKAGE_SYSTEMD
|
|
bool "systemd"
|
|
depends on BR2_INIT_SYSTEMD
|
|
depends on !BR2_STATIC_LIBS # kmod
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
|
|
depends on BR2_USE_MMU # dbus
|
|
select BR2_PACKAGE_HAS_UDEV
|
|
select BR2_PACKAGE_DBUS # runtime dependency only
|
|
select BR2_PACKAGE_LIBCAP
|
|
select BR2_PACKAGE_UTIL_LINUX
|
|
select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
|
|
select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
|
|
select BR2_PACKAGE_UTIL_LINUX_BINARIES
|
|
select BR2_PACKAGE_UTIL_LINUX_AGETTY
|
|
select BR2_PACKAGE_UTIL_LINUX_MOUNT
|
|
select BR2_PACKAGE_UTIL_LINUX_NOLOGIN
|
|
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
|
|
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.
|
|
|
|
Systemd requires a Linux kernel >= 3.0 with the following
|
|
options enabled:
|
|
|
|
- CONFIG_CGROUPS
|
|
- CONFIG_INOTIFY_USER
|
|
- CONFIG_FHANDLE
|
|
- 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.<fstype> is selected. You must choose
|
|
the apropriate ones (e.g. e2fsck, from the e2fsprogs
|
|
package) according to the system configuration.
|
|
|
|
http://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_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_GATEWAY
|
|
bool "HTTP server for journal events"
|
|
select BR2_PACKAGE_LIBMICROHTTPD
|
|
help
|
|
systemd-journal-gatewayd serves journal events over the
|
|
network. Clients must connect using HTTP. The server
|
|
listens on port 19531 by default.
|
|
|
|
http://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html
|
|
|
|
config BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE
|
|
bool "enable systemd-journal-remote"
|
|
depends on BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY
|
|
select BR2_PACKAGE_LIBCURL
|
|
help
|
|
systemd-journal-remote is a command to receive serialized
|
|
journal events and store them to journal files. Input
|
|
streams are in the Journal Export Format[1], i.e. like the
|
|
output from journalctl --output=export. For transport over
|
|
the network, this serialized stream is usually carried over
|
|
an HTTPS connection.
|
|
|
|
https://www.freedesktop.org/software/systemd/man/systemd-journal-remote.service.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.
|
|
|
|
http://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.
|
|
|
|
http://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.
|
|
|
|
http://www.freedesktop.org/software/systemd/man/systemd-firstboot.html
|
|
|
|
config BR2_PACKAGE_SYSTEMD_HIBERNATE
|
|
bool "enable hibernation support"
|
|
help
|
|
When this features is enabled, additional tools and services
|
|
are built to support suspending and resuming the system.
|
|
|
|
http://www.freedesktop.org/software/systemd/man/systemd-sleep.html
|
|
|
|
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.
|
|
|
|
http://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_BZIP2
|
|
select BR2_PACKAGE_LZ4
|
|
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.
|
|
|
|
http://www.freedesktop.org/software/systemd/man/machinectl.html#Image%20Transfer%20Commands
|
|
|
|
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.
|
|
|
|
http://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.
|
|
|
|
http://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.
|
|
|
|
http://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).
|
|
|
|
http://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.
|
|
|
|
http://www.freedesktop.org/software/systemd/man/systemd-networkd.html
|
|
|
|
config BR2_PACKAGE_SYSTEMD_POLKIT
|
|
bool "enable polkit support"
|
|
depends on BR2_TOOLCHAIN_USES_GLIBC # polkit
|
|
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.
|
|
|
|
http://wiki.freedesktop.org/www/Software/polkit/
|
|
|
|
comment "polkit support needs a glibc toolchain"
|
|
depends on !BR2_TOOLCHAIN_USES_GLIBC
|
|
|
|
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.
|
|
|
|
http://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.
|
|
|
|
http://www.freedesktop.org/software/systemd/man/systemd-random-seed.service.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.
|
|
|
|
http://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.
|
|
|
|
http://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_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).
|
|
|
|
http://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.
|
|
|
|
http://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.
|
|
|
|
http://www.freedesktop.org/software/systemd/man/systemd-timesyncd.html
|
|
|
|
config BR2_PACKAGE_SYSTEMD_TMPFILES
|
|
bool "enable tmpfiles support"
|
|
default y
|
|
help
|
|
systemd-tmpfiles creates, deletes, and cleans up volatile
|
|
and temporary files and directories, based on the
|
|
configuration file format and location specified in
|
|
tmpfiles.d(5).
|
|
|
|
http://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.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.
|
|
|
|
http://www.freedesktop.org/software/systemd/man/systemd-vconsole-setup.service.html
|
|
|
|
endif
|