Index: appendices/dependencies.xml
===================================================================
--- appendices/dependencies.xml	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ appendices/dependencies.xml	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -4,4 +4,7 @@
   <!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>">
 ]>
 
@@ -467,7 +470,5 @@
         <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>
@@ -637,43 +638,4 @@
 
       <segmentedlist id="e2fsprogs-optdeps">
-        <segtitle>&external;</segtitle>
-        <seglistitem>
-          <seg>None</seg>
-        </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>
@@ -1556,5 +1518,5 @@
         <segtitle>&before;</segtitle>
         <seglistitem>
-          <seg>Systemd</seg>
+          <seg>&systemd-udev;</seg>
         </seglistitem>
       </segmentedlist>
@@ -1634,6 +1596,5 @@
         <segtitle>&before;</segtitle>
         <seglistitem>
-          <seg><phrase revision="sysv">Eudev</phrase>
-          <phrase revision="systemd">Systemd</phrase></seg>
+          <seg>&systemd-udev;</seg>
         </seglistitem>
       </segmentedlist>
@@ -1914,7 +1875,5 @@
         <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>
@@ -2237,8 +2196,5 @@
         <segtitle>&before;</segtitle>
         <seglistitem>
-          <seg>
-            <phrase revision='sysv'>None</phrase>
-            <phrase revision='systemd'>Systemd</phrase>
-          </seg>
+          <seg>&systemd-udev;</seg>
         </seglistitem>
       </segmentedlist>
@@ -2439,5 +2395,5 @@
         <segtitle>&before;</segtitle>
         <seglistitem>
-          <seg>Coreutils, Kmod, and Linux</seg>
+          <seg>Coreutils, Kmod, Linux, and &systemd-udev;</seg>
         </seglistitem>
       </segmentedlist>
@@ -2561,5 +2517,5 @@
           <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>
@@ -2867,7 +2823,7 @@
         <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>
@@ -2876,5 +2832,6 @@
         <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>
@@ -3105,4 +3062,44 @@
       </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>
@@ -3111,8 +3108,7 @@
         <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>
@@ -3121,5 +3117,5 @@
         <segtitle>&runtime;</segtitle>
         <seglistitem>
-          <seg>Glibc, Ncurses, Readline, and Zlib</seg>
+          <seg>Glibc, Ncurses, Readline, &systemd-udev;, and Zlib</seg>
         </seglistitem>
       </segmentedlist>
@@ -3309,7 +3305,5 @@
         <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>
@@ -3387,6 +3381,5 @@
         <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>
Index: appendices/udev-rules.xml
===================================================================
--- appendices/udev-rules.xml	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ appendices/udev-rules.xml	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -14,5 +14,5 @@
 
   <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">
Index: bootscripts/ChangeLog
===================================================================
--- bootscripts/ChangeLog	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ bootscripts/ChangeLog	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -1,2 +1,5 @@
+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.
Index: bootscripts/lfs/init.d/udev
===================================================================
--- bootscripts/lfs/init.d/udev	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ bootscripts/lfs/init.d/udev	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -46,15 +46,15 @@
       # 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
 
Index: bootscripts/lfs/init.d/udev_retry
===================================================================
--- bootscripts/lfs/init.d/udev_retry	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ bootscripts/lfs/init.d/udev_retry	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -35,6 +35,4 @@
       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
@@ -53,5 +51,5 @@
       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
@@ -59,5 +57,5 @@
       # 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
 
Index: chapter01/changelog.xml
===================================================================
--- chapter01/changelog.xml	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ chapter01/changelog.xml	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -45,4 +45,8 @@
       <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>
Index: chapter01/whatsnew.xml
===================================================================
--- chapter01/whatsnew.xml	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ chapter01/whatsnew.xml	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -92,7 +92,7 @@
        <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>
@@ -305,4 +305,16 @@
     <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>
@@ -339,4 +351,8 @@
 
     <listitem>
+      <para>eudev-3.2.12</para>
+    </listitem>
+
+    <listitem>
       <para>grub-2.06-upstream_fixes-1.patch</para>
     </listitem>
Index: chapter03/packages.xml
===================================================================
--- chapter03/packages.xml	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ chapter03/packages.xml	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -172,12 +172,4 @@
         <para>Download: <ulink url="&elfutils-url;"/></para>
         <para>MD5 sum: <literal>&elfutils-md5;</literal></para>
-      </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>
@@ -388,5 +380,5 @@
     </varlistentry>
 
-    <varlistentry revision="systemd">
+    <varlistentry>
       <term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term>
       <listitem>
@@ -537,5 +529,5 @@
     </varlistentry>
 
-    <varlistentry revision="systemd">
+    <varlistentry>
       <term>MarkupSafe (&markupsafe-version;) - <token>&markupsafe-size;</token>:</term>
       <listitem>
@@ -698,5 +690,5 @@
     </varlistentry>
 
-    <varlistentry revision="systemd">
+    <varlistentry>
       <term>Systemd (&systemd-version;) - <token>&systemd-size;</token>:</term>
       <listitem>
@@ -707,5 +699,5 @@
     </varlistentry>
 
-    <varlistentry revision="systemd">
+    <varlistentry>
       <term>Systemd Man Pages(&systemd-version;) - <token>&systemd-man-size;</token>:</term>
       <listitem>
Index: chapter08/chapter08.xml
===================================================================
--- chapter08/chapter08.xml	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ chapter08/chapter08.xml	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -92,5 +92,5 @@
 
   <!-- 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 -->
Index: apter08/eudev.xml
===================================================================
--- chapter08/eudev.xml	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ 	(revision )
@@ -1,202 +1,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 &lt;&lt; "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>
Index: chapter08/jinja2.xml
===================================================================
--- chapter08/jinja2.xml	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ chapter08/jinja2.xml	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -6,5 +6,5 @@
 ]>
 
-<sect1 id="ch-system-jinja2" role="wrap" revision="systemd">
+<sect1 id="ch-system-jinja2" role="wrap">
   <?dbhtml filename="jinja2.html"?>
 
Index: chapter08/markupsafe.xml
===================================================================
--- chapter08/markupsafe.xml	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ chapter08/markupsafe.xml	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -6,5 +6,5 @@
 ]>
 
-<sect1 id="ch-system-markupsafe" role="wrap" revision="systemd">
+<sect1 id="ch-system-markupsafe" role="wrap">
   <?dbhtml filename="markupsafe.html"?>
 
Index: chapter08/udev.xml
===================================================================
--- chapter08/udev.xml	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
+++ chapter08/udev.xml	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -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>
Index: chapter09/network.xml
===================================================================
--- chapter09/network.xml	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ chapter09/network.xml	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -38,5 +38,5 @@
       <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
Index: packages.ent
===================================================================
--- packages.ent	(revision 803bcf814b540ca5ef41f277376c17e47eb231e1)
+++ packages.ent	(revision b277295798b4a77d27c8548ad4e2fd33c3f5b0cf)
@@ -156,11 +156,4 @@
 <!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">
@@ -391,5 +384,5 @@
 <!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">
@@ -714,4 +707,7 @@
 <!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">
