diff options
author | Xi Ruoyao <xry111@xry111.site> | 2023-07-17 11:55:43 +0800 |
---|---|---|
committer | Xi Ruoyao <xry111@xry111.site> | 2023-07-17 11:55:43 +0800 |
commit | 2cbb6135ed43be861b809eea42dfe62d8053132c (patch) | |
tree | 2699de0a200ac05f1b5fe565b2c3f447cc95f83e | |
parent | 1053282e5f0a6e7bba9605676b650d46db6ffaf4 (diff) | |
parent | 51c7e709c05ab01ad800212e388545aa189fcd40 (diff) |
Merge branch 'xry111/systemd-udevd-for-sysv' into trunk
-rw-r--r-- | appendices/dependencies.xml | 125 | ||||
-rw-r--r-- | appendices/udev-rules.xml | 2 | ||||
-rw-r--r-- | bootscripts/ChangeLog | 3 | ||||
-rw-r--r-- | bootscripts/lfs/init.d/udev | 10 | ||||
-rw-r--r-- | bootscripts/lfs/init.d/udev_retry | 6 | ||||
-rw-r--r-- | chapter01/changelog.xml | 4 | ||||
-rw-r--r-- | chapter01/whatsnew.xml | 22 | ||||
-rw-r--r-- | chapter03/packages.xml | 16 | ||||
-rw-r--r-- | chapter08/chapter08.xml | 2 | ||||
-rw-r--r-- | chapter08/eudev.xml | 202 | ||||
-rw-r--r-- | chapter08/jinja2.xml | 2 | ||||
-rw-r--r-- | chapter08/markupsafe.xml | 2 | ||||
-rw-r--r-- | chapter08/udev.xml | 269 | ||||
-rw-r--r-- | chapter09/network.xml | 2 | ||||
-rw-r--r-- | packages.ent | 12 |
15 files changed, 374 insertions, 305 deletions
diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 1d693e064..8038ee943 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -3,6 +3,9 @@ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; + <!-- Convenient entity for "Systemd" or "Udev" --> + <!ENTITY systemd-udev "<phrase revision='systemd'>Systemd</phrase> + <phrase revision='sysv'>Udev</phrase>"> ]> <appendix id="appendixc" xreflabel="Appendix C"> @@ -466,9 +469,7 @@ <segmentedlist id="coreutils-before"> <segtitle>&before;</segtitle> <seglistitem> - <seg>Bash, Diffutils, <phrase revision="sysv">Eudev, </phrase> - Findutils, <phrase revision="sysv">and </phrase>Man-DB<phrase - revision="systemd">, and Systemd</phrase></seg> + <seg>Bash, Diffutils, Findutils, Man-DB, and &systemd-udev;</seg> </seglistitem> </segmentedlist> @@ -642,45 +643,6 @@ </seglistitem> </segmentedlist> -<!-- Begin Eudev dependency info --> - <bridgehead renderas="sect2" id="eudev-dep" revision="sysv">Eudev</bridgehead> - - <segmentedlist id="eudev-depends" revision="sysv"> - <segtitle>&dependencies;</segtitle> - <seglistitem> - <seg>Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Gperf, Make, - Sed, and Util-linux</seg> - </seglistitem> - </segmentedlist> - - <segmentedlist id="eudev-rundeps" revision="sysv"> - <segtitle>&runtime;</segtitle> - <seglistitem> - <seg>Glibc, Kmod, Xz, Util-linux, and Zlib.</seg> - </seglistitem> - </segmentedlist> - - <segmentedlist id="eudev-testdeps" revision="sysv"> - <segtitle>&testsuites;</segtitle> - <seglistitem> - <seg>None</seg> - </seglistitem> - </segmentedlist> - - <segmentedlist id="eudev-before" revision="sysv"> - <segtitle>&before;</segtitle> - <seglistitem> - <seg>None</seg> - </seglistitem> - </segmentedlist> - - <segmentedlist id="eudev-optdeps" revision="sysv"> - <segtitle>&external;</segtitle> - <seglistitem> - <seg>None</seg> - </seglistitem> - </segmentedlist> - <!-- Begin Expat dependency info --> <bridgehead renderas="sect2" id="expat-dep">Expat</bridgehead> @@ -1555,7 +1517,7 @@ <segmentedlist id="jinja2-before" revision='systemd'> <segtitle>&before;</segtitle> <seglistitem> - <seg>Systemd</seg> + <seg>&systemd-udev;</seg> </seglistitem> </segmentedlist> @@ -1633,8 +1595,7 @@ <segmentedlist id="kmod-before"> <segtitle>&before;</segtitle> <seglistitem> - <seg><phrase revision="sysv">Eudev</phrase> - <phrase revision="systemd">Systemd</phrase></seg> + <seg>&systemd-udev;</seg> </seglistitem> </segmentedlist> @@ -1913,9 +1874,7 @@ <segmentedlist id="libxcrypt-before"> <segtitle>&before;</segtitle> <seglistitem> - <seg>GCC, Perl, Python, - <phrase revision='sysv'>and </phrase>Shadow<phrase - revision='systemd'>, and Systemd</phrase></seg> + <seg>GCC, Perl, Python, Shadow, and &systemd-udev;</seg> </seglistitem> </segmentedlist> @@ -2236,10 +2195,7 @@ <segmentedlist id="meson-before"> <segtitle>&before;</segtitle> <seglistitem> - <seg> - <phrase revision='sysv'>None</phrase> - <phrase revision='systemd'>Systemd</phrase> - </seg> + <seg>&systemd-udev;</seg> </seglistitem> </segmentedlist> @@ -2438,7 +2394,7 @@ <segmentedlist id="openssl-before"> <segtitle>&before;</segtitle> <seglistitem> - <seg>Coreutils, Kmod, and Linux</seg> + <seg>Coreutils, Kmod, Linux, and &systemd-udev;</seg> </seglistitem> </segmentedlist> @@ -2560,7 +2516,7 @@ <seglistitem> <seg><phrase revision='systemd'>D-Bus, </phrase>E2fsprogs, IProute2, Kmod, Man-DB, Procps-ng, Python, - <phrase revision='systemd'>Systemd, </phrase>and Util-linux</seg> + &systemd-udev;, and Util-linux</seg> </seglistitem> </segmentedlist> @@ -2866,16 +2822,17 @@ <segmentedlist id="systemd-depends" revision='systemd'> <segtitle>&dependencies;</segtitle> <seglistitem> - <seg>Acl, Attr, Bash, Binutils, Coreutils, Diffutils, Expat, Gawk, + <seg>Acl, Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Libxcrypt, Meson, - Pkgconf, Sed, Util-linux, and Zstd</seg> + OpenSSL, Pkgconf, Sed, Util-linux, and Zstd</seg> </seglistitem> </segmentedlist> <segmentedlist id="systemd-rundeps" revision='systemd'> <segtitle>&runtime;</segtitle> <seglistitem> - <seg>Acl, Attr, Glibc, Libcap, Libxcrypt, and Util-linux</seg> + <seg>Acl, Glibc, Libcap, Libxcrypt, OpenSSL, Util-linux, Xz, + Zlib, and Zstd</seg> </seglistitem> </segmentedlist> @@ -3104,23 +3061,62 @@ </seglistitem> </segmentedlist> +<!-- Begin Udev dependency info --> + <bridgehead renderas="sect2" id="udev-dep" revision="sysv">Udev</bridgehead> + + <segmentedlist id="udev-depends" revision="sysv"> + <segtitle>&dependencies;</segtitle> + <seglistitem> + <seg>Acl, Bash, Binutils, Coreutils, Diffutils, Gawk, + GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Libxcrypt, Meson, + OpenSSL, Pkgconf, Sed, Util-linux, and Zstd</seg> + </seglistitem> + </segmentedlist> + + <segmentedlist id="udev-rundeps" revision="sysv"> + <segtitle>&runtime;</segtitle> + <seglistitem> + <seg>Acl, Glibc, Libcap, OpenSSL, and Util-linux</seg> + </seglistitem> + </segmentedlist> + + <segmentedlist id="udev-testdeps" revision="sysv"> + <segtitle>&testsuites;</segtitle> + <seglistitem> + <seg>None</seg> + </seglistitem> + </segmentedlist> + + <segmentedlist id="udev-before" revision="sysv"> + <segtitle>&before;</segtitle> + <seglistitem> + <seg>Util-linux</seg> + </seglistitem> + </segmentedlist> + + <segmentedlist id="udev-optdeps" revision="sysv"> + <segtitle>&external;</segtitle> + <seglistitem> + <seg>None</seg> + </seglistitem> + </segmentedlist> + <!-- Begin Util-linux dependency info --> <bridgehead renderas="sect2" id="util-linux-dep">Util-linux</bridgehead> <segmentedlist id="util-linux-depends"> <segtitle>&dependencies;</segtitle> <seglistitem> - <seg>Bash, Binutils, Coreutils, Diffutils, - <phrase revision="sysv">Eudev, </phrase>File, Findutils, Gawk, + <seg>Bash, Binutils, Coreutils, Diffutils, File, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Ncurses, Pkgconf, Sed, - <phrase revision="systemd">Systemd, </phrase>and Zlib</seg> + &systemd-udev;, and Zlib</seg> </seglistitem> </segmentedlist> <segmentedlist id="util-linux-rundeps"> <segtitle>&runtime;</segtitle> <seglistitem> - <seg>Glibc, Ncurses, Readline, and Zlib</seg> + <seg>Glibc, Ncurses, Readline, &systemd-udev;, and Zlib</seg> </seglistitem> </segmentedlist> @@ -3308,9 +3304,7 @@ <segmentedlist id="xz-before"> <segtitle>&before;</segtitle> <seglistitem> - <seg><phrase revision="sysv">Eudev, </phrase>File, GRUB, Kmod, - Libelf, <phrase revision="sysv">and </phrase>Man-DB<phrase - revision="systemd">, and Systemd</phrase></seg> + <seg>File, GRUB, Kmod, Libelf, Man-DB, and &systemd-udev;</seg> </seglistitem> </segmentedlist> @@ -3386,8 +3380,7 @@ <segmentedlist id="zstd-before"> <segtitle>&before;</segtitle> <seglistitem> - <seg><phrase revision='sysv'>GCC and Libelf</phrase> - <phrase revision='systemd'>GCC, Libelf, and Systemd</phrase></seg> + <seg>GCC, Libelf, and &systemd-udev;</seg> </seglistitem> </segmentedlist> diff --git a/appendices/udev-rules.xml b/appendices/udev-rules.xml index d1ab70dcf..ca1a7c88b 100644 --- a/appendices/udev-rules.xml +++ b/appendices/udev-rules.xml @@ -13,7 +13,7 @@ <title>Udev configuration rules</title> <para>The rules in this appendix are listed for convenience. Installation is - normally done via instructions in <xref linkend='ch-system-eudev'/>. </para> + normally done via instructions in <xref linkend='ch-system-udev'/>. </para> <sect1 id="lfsrules" role="wrap"> <title>55-lfs.rules</title> diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog index c7a3d9a7b..0c1d33f6d 100644 --- a/bootscripts/ChangeLog +++ b/bootscripts/ChangeLog @@ -1,3 +1,6 @@ +2023-07-15 Xi Ruoyao <xry111@xry111.site> + * Use /bin/udevadm instead of /sbin/udevadm. + 2022-09-30 Bruce Dubbs <bdubbs@linuxfromscratch.org> * Mount /dev/shm as a tmpfs. diff --git a/bootscripts/lfs/init.d/udev b/bootscripts/lfs/init.d/udev index c74c8e19f..f7d4b9bff 100644 --- a/bootscripts/lfs/init.d/udev +++ b/bootscripts/lfs/init.d/udev @@ -45,17 +45,17 @@ case "${1}" in # Start the udev daemon to continually watch for, and act on, # uevents - /sbin/udevd --daemon + SYSTEMD_LOG_TARGET=kmsg /sbin/udevd --daemon # Now traverse /sys in order to "coldplug" devices that have # already been discovered - /sbin/udevadm trigger --action=add --type=subsystems - /sbin/udevadm trigger --action=add --type=devices - /sbin/udevadm trigger --action=change --type=devices + /bin/udevadm trigger --action=add --type=subsystems + /bin/udevadm trigger --action=add --type=devices + /bin/udevadm trigger --action=change --type=devices # Now wait for udevd to process the uevents we triggered if ! is_true "$OMIT_UDEV_SETTLE"; then - /sbin/udevadm settle + /bin/udevadm settle fi # If any LVM based partitions are on the system, ensure they diff --git a/bootscripts/lfs/init.d/udev_retry b/bootscripts/lfs/init.d/udev_retry index 112846a03..ccac9a2bd 100644 --- a/bootscripts/lfs/init.d/udev_retry +++ b/bootscripts/lfs/init.d/udev_retry @@ -34,8 +34,6 @@ case "${1}" in start) log_info_msg "Retrying failed uevents, if any..." - # As of udev-186, the --run option is no longer valid - #rundir=$(/sbin/udevadm info --run) rundir=/run/udev # From Debian: "copy the rules generated before / was mounted # read-write": @@ -52,13 +50,13 @@ case "${1}" in /bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \ while read line ; do for subsystem in $line ; do - /sbin/udevadm trigger --subsystem-match=$subsystem --action=add + /bin/udevadm trigger --subsystem-match=$subsystem --action=add done done # Now wait for udevd to process the uevents we triggered if ! is_true "$OMIT_UDEV_RETRY_SETTLE"; then - /sbin/udevadm settle + /bin/udevadm settle fi evaluate_retval diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index e13faf328..18ac4f3f7 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -44,6 +44,10 @@ <para>2023-07-15</para> <itemizedlist> <listitem> + <para>[xry111] - Replace eudev-3.2.12 with udev from systemd-253. + Fixes <ulink url='&lfs-ticket-root;5285'>#5085</ulink>.</para> + </listitem> + <listitem> <para>[bdubbs] - Update to iana-etc-20230629. Addresses <ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para> </listitem> diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index a2d4cc179..bd3843566 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -91,9 +91,9 @@ <!--<listitem> <para>E2fsprogs-&e2fsprogs-version;</para> </listitem>--> - <listitem revision="sysv"> - <para>Eudev-&eudev-version;</para> - </listitem> + <!--<listitem revision="sysv"> + <para>Udev-&systemd-version; (from systemd)</para> + </listitem>--> <!--<listitem> <para>Expat-&expat-version;</para> </listitem>--> @@ -304,6 +304,18 @@ <title>Added:</title> <listitem><para></para></listitem> <!-- satisfy build --> + <listitem revision="sysv"> + <para>Udev-&systemd-version; (from systemd)</para> + </listitem> + + <listitem revision="sysv"> + <para>Jinja2-&jinja2-version;</para> + </listitem> + + <listitem revision="sysv"> + <para>MarkupSafe-&markupsafe-version;</para> + </listitem> + <listitem> <para>Libxcrypt-&libxcrypt-version;</para> </listitem> @@ -334,6 +346,10 @@ <listitem><para></para></listitem> <!-- satisfy build --> <listitem> + <para>eudev-3.2.12</para> + </listitem> + + <listitem> <para>Pkg-config-0.29.2</para> </listitem> diff --git a/chapter03/packages.xml b/chapter03/packages.xml index 86932b428..4db7bb5a1 100644 --- a/chapter03/packages.xml +++ b/chapter03/packages.xml @@ -174,14 +174,6 @@ </listitem> </varlistentry> - <varlistentry revision="sysv"> - <term>Eudev (&eudev-version;) - <token>&eudev-size;</token>:</term> - <listitem> - <para>Download: <ulink url="&eudev-url;"/></para> - <para>MD5 sum: <literal>&eudev-md5;</literal></para> - </listitem> - </varlistentry> - <varlistentry> <term>Expat (&expat-version;) - <token>&expat-size;</token>:</term> <listitem> @@ -387,7 +379,7 @@ </listitem> </varlistentry> - <varlistentry revision="systemd"> + <varlistentry> <term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term> <listitem> <para>Home page: <ulink url="&jinja2-home;"/></para> @@ -536,7 +528,7 @@ </listitem> </varlistentry> - <varlistentry revision="systemd"> + <varlistentry> <term>MarkupSafe (&markupsafe-version;) - <token>&markupsafe-size;</token>:</term> <listitem> <para>Home page: <ulink url="&markupsafe-home;"/></para> @@ -697,7 +689,7 @@ </listitem> </varlistentry> - <varlistentry revision="systemd"> + <varlistentry> <term>Systemd (&systemd-version;) - <token>&systemd-size;</token>:</term> <listitem> <para>Home page: <ulink url="&systemd-home;"/></para> @@ -706,7 +698,7 @@ </listitem> </varlistentry> - <varlistentry revision="systemd"> + <varlistentry> <term>Systemd Man Pages(&systemd-version;) - <token>&systemd-man-size;</token>:</term> <listitem> <para>Home page: <ulink url="&systemd-home;"/></para> diff --git a/chapter08/chapter08.xml b/chapter08/chapter08.xml index e97ae7057..3f356d39e 100644 --- a/chapter08/chapter08.xml +++ b/chapter08/chapter08.xml @@ -91,7 +91,7 @@ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbus.xml"/> <!-- sysv only --> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="eudev.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="udev.xml"/> <!-- Both sysv on systemd builds --> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="man-db.xml"/> diff --git a/chapter08/eudev.xml b/chapter08/eudev.xml deleted file mode 100644 index 785e70103..000000000 --- a/chapter08/eudev.xml +++ /dev/null @@ -1,202 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ - <!ENTITY % general-entities SYSTEM "../general.ent"> - %general-entities; -]> - -<sect1 id="ch-system-eudev" role="wrap" revision="sysv"> - <?dbhtml filename="eudev.html"?> - - <sect1info condition="script"> - <productname>eudev</productname> - <productnumber>&eudev-version;</productnumber> - <address>&eudev-url;</address> - </sect1info> - - <title>Eudev-&eudev-version;</title> - - <indexterm zone="ch-system-eudev"> - <primary sortas="a-Eudev">Eudev</primary> - </indexterm> - - <sect2 role="package"> - <title/> - - <para>The Eudev package contains programs for dynamic creation of device - nodes.</para> - - <segmentedlist> - <segtitle>&buildtime;</segtitle> - <segtitle>&diskspace;</segtitle> - - <seglistitem> - <seg>&eudev-fin-sbu;</seg> - <seg>&eudev-fin-du;</seg> - </seglistitem> - </segmentedlist> - </sect2> - - <sect2 role="installation"> - <title>Installation of Eudev</title> - <!-- No longer seems needed. bdubbs 5/18/23 - <para>First fix the location of udev rules in the .pc file:</para> - -<screen><userinput remap="pre">sed -i '/udevdir/a udev_dir=${udevdir}' src/udev/udev.pc.in</userinput></screen> ---> - <!-- different from systemd: we do not have a render group and file is - named differently --> - <para>Remove an unneeded group - <systemitem class="groupname">sgx</systemitem>, from the default udev - rules:</para> - -<screen><userinput remap="pre">sed -i -e 's/GROUP="sgx", //' rules/50-udev-default.rules</userinput></screen> - - <para>Prepare Eudev for compilation:</para> - -<screen><userinput remap="configure">./configure --prefix=/usr \ - --bindir=/usr/sbin \ - --sysconfdir=/etc \ - --enable-manpages \ - --disable-static</userinput></screen> - - <para>Compile the package:</para> - -<screen><userinput remap="make">make</userinput></screen> - - <para>Create some directories now that are needed for tests, but - will also be used as a part of installation:</para> - -<screen><userinput remap="test">mkdir -pv /usr/lib/udev/rules.d -mkdir -pv /etc/udev/rules.d</userinput></screen> - - <para>To test the results, issue:</para> - -<screen><userinput remap="test">make check</userinput></screen> - - <para>Install the package:</para> - -<screen><userinput remap="install">make install</userinput></screen> - - <para>Install some custom rules and support files useful in an LFS - environment:</para> - -<screen><userinput remap="install">tar -xvf ../&udev-lfs-version;.tar.xz -make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen> - - </sect2> - - <sect2 id="conf-eudev" role="configuration"> - <title>Configuring Eudev</title> - - <indexterm zone="conf-eudev"> - <primary sortas="a-Eudev">Eudev</primary> - <secondary>configuring</secondary> - </indexterm> - - <indexterm zone="conf-eudev"> - <primary sortas="e-/etc/udev/rules.d/65-kvm.rules">/etc/udev/rules.d/65-kvm.rules</primary> - </indexterm> - - <para> - The default udev rule installed by Eudev would allow all users to - access <filename class='devicefile'>/dev/kvm</filename>. The editors - consider it dangerous. Create a configuration file to override it: - </para> - -<screen><userinput>cat > /etc/udev/rules.d/65-kvm.rules << "EOF" -<literal>KERNEL=="kvm", GROUP="kvm", MODE="0660", TAG+="uaccess"</literal> -EOF</userinput></screen> - - <indexterm zone="conf-eudev"> - <primary sortas="e-/etc/udev/hwdb.bin">/etc/udev/hwdb.bin</primary> - </indexterm> - - <para>Information about hardware devices is maintained in the - <filename class="directory">/etc/udev/hwdb.d</filename> and - <filename class="directory">/usr/lib/udev/hwdb.d</filename> directories. - <application>Eudev</application> needs that information to be compiled - into a binary database <filename>/etc/udev/hwdb.bin</filename>. Create the - initial database:</para> - -<screen><userinput>udevadm hwdb --update</userinput></screen> - - <para>This command needs to be run each time the hardware information is - updated.</para> - - </sect2> - - <sect2 id="contents-eudev" role="content"> - <title>Contents of Eudev</title> - - <segmentedlist> - <segtitle>Installed programs</segtitle> - <segtitle>Installed libraries</segtitle> - <segtitle>Installed directories</segtitle> - - <seglistitem> - <seg><!-- These are in /usr/lib/udev and not to be called by the user: - accelerometer, ata_id, cdrom_id, collect, mtd_probe, - scsi_id, v4l_id,--> udevadm and udevd</seg> - - <seg>libudev.so</seg> - - <seg>/etc/udev, /usr/lib/udev, and /usr/share/doc/udev-&udev-lfs-version;</seg> - </seglistitem> - </segmentedlist> - - <variablelist> - <bridgehead renderas="sect3">Short Descriptions</bridgehead> - <?dbfo list-presentation="list"?> - <?dbhtml list-presentation="table"?> - <varlistentry id="udevadm" revision="sysv"> - <term><command>udevadm</command></term> - <listitem> - <para>Generic udev administration tool: controls the udevd daemon, - provides info from the Udev database, monitors uevents, waits for - uevents to finish, tests Udev configuration, and triggers uevents - for a given device</para> - <indexterm zone="ch-system-eudev udevadm"> - <primary sortas="b-udevadm">udevadm</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="udevd"> - <term><command>udevd</command></term> - <listitem> - <para>A daemon that listens for uevents on the netlink socket, - creates devices and runs the configured external programs in - response to these uevents</para> - <indexterm zone="ch-system-eudev udevd"> - <primary sortas="b-udevd">udevd</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="libudev"> - <term><filename class="libraryfile">libudev</filename></term> - <listitem> - <para>A library interface to udev device information</para> - <indexterm zone="ch-system-eudev libudev"> - <primary sortas="c-libudev">libudev</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="etc-udev"> - <term><filename class="directory">/etc/udev</filename></term> - <listitem> - <para>Contains Udev configuration files, - device permissions, and rules for device naming</para> - <indexterm zone="ch-system-eudev etc-udev"> - <primary sortas="e-/etc/udev">/etc/udev</primary> - </indexterm> - </listitem> - </varlistentry> - - </variablelist> - - </sect2> - -</sect1> diff --git a/chapter08/jinja2.xml b/chapter08/jinja2.xml index 8fa12dd25..ca614ecdc 100644 --- a/chapter08/jinja2.xml +++ b/chapter08/jinja2.xml @@ -5,7 +5,7 @@ %general-entities; ]> -<sect1 id="ch-system-jinja2" role="wrap" revision="systemd"> +<sect1 id="ch-system-jinja2" role="wrap"> <?dbhtml filename="jinja2.html"?> <sect1info condition="script"> diff --git a/chapter08/markupsafe.xml b/chapter08/markupsafe.xml index 27fdb1627..b4a0cbc58 100644 --- a/chapter08/markupsafe.xml +++ b/chapter08/markupsafe.xml @@ -5,7 +5,7 @@ %general-entities; ]> -<sect1 id="ch-system-markupsafe" role="wrap" revision="systemd"> +<sect1 id="ch-system-markupsafe" role="wrap"> <?dbhtml filename="markupsafe.html"?> <sect1info condition="script"> diff --git a/chapter08/udev.xml b/chapter08/udev.xml new file mode 100644 index 000000000..2d3792511 --- /dev/null +++ b/chapter08/udev.xml @@ -0,0 +1,269 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> + +<sect1 id="ch-system-udev" role="wrap" revision="sysv"> + <?dbhtml filename="udev.html"?> + + <sect1info condition="script"> + <productname>udev</productname> + <productnumber>&systemd-version;</productnumber> + <address>&systemd-url;</address> + </sect1info> + + <title>Udev from Systemd-&systemd-version;</title> + + <indexterm zone="ch-system-udev"> + <primary sortas="a-Udev">Udev</primary> + </indexterm> + + <sect2 role="package"> + <title/> + + <para>The Udev package contains programs for dynamic creation of device + nodes.</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&udev-fin-sbu;</seg> + <seg>&udev-fin-du;</seg> + </seglistitem> + </segmentedlist> + </sect2> + + <sect2 role="installation"> + <title>Installation of Udev</title> + + <para>Udev is part of the systemd-&systemd-version; package. Use + the systemd-&systemd-version;.tar.xz file as the source tarball.</para> + + <para>Remove two unneeded groups, + <systemitem class="groupname">render</systemitem> and + <systemitem class="groupname">sgx</systemitem>, from the default udev + rules:</para> + + <screen><userinput remap="pre">sed -i -e 's/GROUP="render"/GROUP="video"/' \ + -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in</userinput></screen> + + <para>Remove one udev rule requiring a full Systemd installation:</para> + + <screen><userinput remap="pre">sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in</userinput></screen> + + <para>Prepare Udev for compilation:</para> + +<screen><userinput remap="configure">mkdir -p build +cd build + +meson setup \ + --prefix=/usr \ + --buildtype=release \ + -Dmode=release \ + -Ddev-kvm-mode=0660 \ + -Dlink-udev-shared=false \ + ..</userinput></screen> + + <variablelist> + <title>The meaning of the meson options:</title> + + <varlistentry> + <term><parameter>--buildtype=release</parameter></term> + <listitem> + <para>This switch overrides the default buildtype + (<quote>debug</quote>), which produces unoptimized + binaries.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>-Dmode=release</parameter></term> + <listitem> + <para>Disable some features considered experimental by upstream. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>-Ddev-kvm-mode=0660</parameter></term> + <listitem> + <para>The default udev rule would allow all users to access + <filename class='devicefile'>/dev/kvm</filename>. The editors + consider it dangerous. This option overrides it.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>-Dlink-udev-shared=false</parameter></term> + <listitem> + <para>This option prevents udev from linking to the internal + systemd shared library, + <systemitem class='library'>libsystemd-shared</systemitem>. + This library is designed to be shared by many Systemd components + and it's too overkill for a udev-only installation.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Only build the components needed for udev:</para> + + <screen><userinput remap="make">ninja udevadm systemd-hwdb \ + $(grep -o -E "^build (src/libudev|src/udev|rules.d|hwdb.d)[^:]*" \ + build.ninja | awk '{ print $2 }') \ + $(realpath libudev.so --relative-to .)</userinput></screen> + + <para>Remove one udev rule file requiring a full Systemd + installation:</para> + +<screen><userinput remap="make">rm rules.d/90-vconsole.rules</userinput></screen> + + <para>Install the package:</para> + + <screen><userinput remap="install">install -vm755 -d {/usr/lib,/etc}/udev/{hwdb,rules}.d +install -vm755 -d /usr/{lib,share}/pkgconfig +install -vm755 udevadm /usr/bin/ +install -vm755 systemd-hwdb /usr/bin/udev-hwdb +ln -sv ../bin/udevadm /usr/sbin/udevd +cp -av libudev.so{,*[0-9]} /usr/lib/ +install -vm644 ../src/libudev/libudev.h /usr/include/ +install -vm644 src/libudev/*.pc /usr/lib/pkgconfig/ +install -vm644 src/udev/*.pc /usr/share/pkgconfig/ +install -vm644 ../src/udev/udev.conf /etc/udev/ +install -vm644 rules.d/* ../rules.d/{*.rules,README} /usr/lib/udev/rules.d/ +install -vm644 hwdb.d/* ../hwdb.d/{*.hwdb,README} /usr/lib/udev/hwdb.d/ +install -vm755 $(find src/udev -type f | grep -F -v ".") /usr/lib/udev</userinput></screen> + + <para>Install some custom rules and support files useful in an LFS + environment:</para> + +<screen><userinput remap="install">tar -xvf ../../&udev-lfs-version;.tar.xz +make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen> + + <para>Install the man pages:</para> + + <!-- Please make sure systemd man pages tarball has a common leading + component in the path. --> +<screen><userinput remap="install">tar -xf ../../systemd-man-pages-253.tar.xz --strip-components=1 \ + -C /usr/share/man --wildcards '*/udev*' '*/libudev*' \ + '*/systemd-'{hwdb,udevd.service}.8 +sed 's/systemd\(\\\?-\)/udev-/' /usr/share/man/man8/systemd-hwdb.8 \ + > /usr/share/man/man8/udev-hwdb.8 +sed 's|lib.*udevd|sbin/udevd|' \ + /usr/share/man/man8/systemd-udevd.service.8 \ + > /usr/share/man/man8/udevd.8 +rm /usr/share/man/man8/systemd-*.8</userinput></screen> + + </sect2> + + <sect2 id="conf-udev" role="configuration"> + <title>Configuring Udev</title> + + <indexterm zone="conf-udev"> + <primary sortas="a-Udev">Udev</primary> + <secondary>configuring</secondary> + </indexterm> + + <indexterm zone="conf-udev"> + <primary sortas="e-/etc/udev/hwdb.bin">/etc/udev/hwdb.bin</primary> + </indexterm> + + <para>Information about hardware devices is maintained in the + <filename class="directory">/etc/udev/hwdb.d</filename> and + <filename class="directory">/usr/lib/udev/hwdb.d</filename> directories. + <application>Udev</application> needs that information to be compiled + into a binary database <filename>/etc/udev/hwdb.bin</filename>. Create the + initial database:</para> + +<screen><userinput>udev-hwdb update</userinput></screen> + + <para>This command needs to be run each time the hardware information is + updated.</para> + + </sect2> + + <sect2 id="contents-udev" role="content"> + <title>Contents of Udev</title> + + <segmentedlist> + <segtitle>Installed programs</segtitle> + <segtitle>Installed libraries</segtitle> + <segtitle>Installed directories</segtitle> + + <seglistitem> + <seg>udevadm, udevd (symlink to udevadm), and udev-hwdb</seg> + + <seg>libudev.so</seg> + + <seg>/etc/udev and /usr/lib/udev</seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + <varlistentry id="udevadm" revision="sysv"> + <term><command>udevadm</command></term> + <listitem> + <para>Generic udev administration tool: controls the udevd daemon, + provides info from the Udev database, monitors uevents, waits for + uevents to finish, tests Udev configuration, and triggers uevents + for a given device</para> + <indexterm zone="ch-system-udev udevadm"> + <primary sortas="b-udevadm">udevadm</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="udevd"> + <term><command>udevd</command></term> + <listitem> + <para>A daemon that listens for uevents on the netlink socket, + creates devices and runs the configured external programs in + response to these uevents</para> + <indexterm zone="ch-system-udev udevd"> + <primary sortas="b-udevd">udevd</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="udev-hwdb"> + <term><command>udev-hwdb</command></term> + <listitem> + <para>Updates or queries the hardware database.</para> + <indexterm zone="ch-system-udev udev-hwdb"> + <primary sortas="b-udev-hwdb">udev-hwdb</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="libudev"> + <term><filename class="libraryfile">libudev</filename></term> + <listitem> + <para>A library interface to udev device information</para> + <indexterm zone="ch-system-udev libudev"> + <primary sortas="c-libudev">libudev</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="etc-udev"> + <term><filename class="directory">/etc/udev</filename></term> + <listitem> + <para>Contains Udev configuration files, + device permissions, and rules for device naming</para> + <indexterm zone="ch-system-udev etc-udev"> + <primary sortas="e-/etc/udev">/etc/udev</primary> + </indexterm> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> + +</sect1> diff --git a/chapter09/network.xml b/chapter09/network.xml index e2d0a5edf..c86edf56a 100644 --- a/chapter09/network.xml +++ b/chapter09/network.xml @@ -37,7 +37,7 @@ <para>The interface names depend on the implementation and configuration of the udev daemon running on the system. The udev - daemon for LFS (installed in <xref linkend="ch-system-eudev"/>) will + daemon for LFS (installed in <xref linkend="ch-system-udev"/>) will not run until the LFS system is booted. So the interface names in the LFS system cannot always be determined by running those commands on the host distro, diff --git a/packages.ent b/packages.ent index 2abb800d1..11378b56e 100644 --- a/packages.ent +++ b/packages.ent @@ -156,13 +156,6 @@ <!ENTITY elfutils-fin-du "120 MB"> <!ENTITY elfutils-fin-sbu "0.3 SBU"> -<!ENTITY eudev-version "3.2.12"> -<!ENTITY eudev-size "2,145 KB"> -<!ENTITY eudev-url "https://github.com/eudev-project/eudev/releases/download/v&eudev-version;/eudev-&eudev-version;.tar.gz"> -<!ENTITY eudev-md5 "6f1559ca7c27013ff68816e2732498a3"> -<!ENTITY eudev-fin-du "83 MB"> -<!ENTITY eudev-fin-sbu "0.1 SBU"> - <!ENTITY expat-version "2.5.0"> <!ENTITY expat-size "450 KB"> <!ENTITY expat-url "&sourceforge;expat/expat-&expat-version;.tar.xz"> @@ -390,7 +383,7 @@ <!ENTITY less-fin-du "4.3 MB"> <!ENTITY less-fin-sbu "less than 0.1 SBU"> -<!ENTITY lfs-bootscripts-version "20230101"> <!-- Scripts depend on this format --> +<!ENTITY lfs-bootscripts-version "20230716"> <!-- Scripts depend on this format --> <!ENTITY lfs-bootscripts-size "BOOTSCRIPTS-SIZE KB"> <!ENTITY lfs-bootscripts-url "&downloads-root;lfs-bootscripts-&lfs-bootscripts-version;.tar.xz"> <!ENTITY lfs-bootscripts-md5 "BOOTSCRIPTS-MD5SUM"> @@ -713,6 +706,9 @@ <!ENTITY tzdata-md5 "5aa672bf129b44dd915f8232de38e49a"> <!ENTITY tzdata-home "https://www.iana.org/time-zones"> +<!ENTITY udev-fin-du "130 MB"> +<!ENTITY udev-fin-sbu "0.2 SBU"> + <!ENTITY udev-lfs-version "udev-lfs-20171102"> <!ENTITY udev-lfs-size "11 KB"> <!ENTITY udev-lfs-url "&anduin-sources;/&udev-lfs-version;.tar.xz"> |