%general-entities; ]> $LastChangedBy$ $Date$ Systemd-&systemd-version; systemd Introduction to systemd While systemd was installed when building LFS, there are many features provided by the package that were not included in the initial installation because Linux-PAM was not yet installed. The systemd package needs to be rebuilt to provide a working systemd-logind service, which provides many additional features for dependent packages. &lfs10_checked; Package Information Download (HTTP): Download (FTP): Download MD5 sum: &systemd-md5sum; Download size: &systemd-size; Estimated disk space required: &systemd-buildsize; Estimated build time: &systemd-time; Additional Downloads Required patch: systemd Dependencies Required Recommended Runtime Dependencies Optional , , , , , , , , , , , , , , , (for the zsh completions), gnu-efi, kexec-tools, libfido2, libmicrohttpd, lz4, quota-tools and Sphinx Optional (to rebuild the manual pages) , , , and (to build the index of systemd manual pages) User Notes: Installation of systemd Apply a patch to fix regressions in systemd-networkd and segmentation faults in systemctl: patch -Np1 -i ../systemd-&systemd-version;-upstream_fixes-1.patch Remove an unneeded group, render, from the default udev rules: sed -i 's/GROUP="render"/GROUP="video"/' rules.d/50-udev-default.rules.in Rebuild systemd by running the following commands: mkdir build && cd build && meson --prefix=/usr \ -Dblkid=true \ -Dbuildtype=release \ -Ddefault-dnssec=no \ -Dfirstboot=false \ -Dinstall-tests=false \ -Dldconfig=false \ -Dman=auto \ -Drootprefix= \ -Drootlibdir=/lib \ -Dsplit-usr=true \ -Dsysusers=false \ -Drpmmacrosdir=no \ -Db_lto=false \ -Dhomed=false \ -Duserdb=false \ -Dmode=release \ -Dpamconfdir=/etc/pam.d \ -Ddocdir=/usr/share/doc/systemd-&systemd-version; \ .. && ninja For the best test results, make sure you run the testsuite from a system that is booted by the same systemd version you are rebuilding. To test the results, issue: ninja test. Now, as the root user: ninja install Command Explanations -Dpamconfdir=/etc/pam.d: Forces the PAM files to be installed in /etc/pam.d rather than /usr/lib/pam.d. -Duserdb=false: Removes a daemon that does not offer any use under a BLFS configuration. If you wish to enable the userdbd daemon, replace "false" with "true" in the above meson command. -Dhomed=false: Remove a daemon that does not offer any use under a traditional BLFS configuration, especially using accounts created with useradd. To enable systemd-homed, first ensure that you have and , and then change "false" to "true" in the above meson command. Configuring systemd The /etc/pam.d/system-session file needs to be modified and a new file needs to be created in order for systemd-logind to work correctly. Run the following commands as the root user: cat >> /etc/pam.d/system-session << "EOF" # Begin Systemd addition session required pam_loginuid.so session optional pam_systemd.so # End Systemd addition EOF cat > /etc/pam.d/systemd-user << "EOF" # Begin /etc/pam.d/systemd-user account required pam_access.so account include system-account session required pam_env.so session required pam_limits.so session required pam_unix.so session required pam_loginuid.so session optional pam_keyinit.so force revoke session optional pam_systemd.so auth required pam_deny.so password required pam_deny.so # End /etc/pam.d/systemd-user EOF If upgrading from a previous version of systemd and an initrd is used for system boot, you should generate a new initrd before rebooting the system. Contents A list of the installed files, along with their short descriptions can be found at . Listed below are the newly installed libraries and directories along with short descriptions. Installed Programs Installed Libraries Installed Directories homectl (if is installed) and userdbctl (optionally) pam_systemd.so (in /lib/security) None Short Descriptions homectl is a tool to create, remove, change, or inspect a home directory managed by systemd-homed; note that it's useless for the classic UNIX users and home directories which we are using in LFS/BLFS book homectl userdbctl inspects users, groups, and group memberships userdbctl pam_systemd.so is a PAM module used to register user sessions with the systemd login manager, systemd-logind. pam_systemd.so