Merge remote-tracking branch 'origin/trunk' into xry111/loongarch

This commit is contained in:
Xi Ruoyao 2023-07-18 07:38:16 +08:00
commit b277295798
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3
15 changed files with 374 additions and 305 deletions

View File

@ -3,6 +3,9 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent"> <!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities; %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"> <appendix id="appendixc" xreflabel="Appendix C">
@ -466,9 +469,7 @@
<segmentedlist id="coreutils-before"> <segmentedlist id="coreutils-before">
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg>Bash, Diffutils, <phrase revision="sysv">Eudev, </phrase> <seg>Bash, Diffutils, Findutils, Man-DB, and &systemd-udev;</seg>
Findutils, <phrase revision="sysv">and </phrase>Man-DB<phrase
revision="systemd">, and Systemd</phrase></seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -642,45 +643,6 @@
</seglistitem> </seglistitem>
</segmentedlist> </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 --> <!-- Begin Expat dependency info -->
<bridgehead renderas="sect2" id="expat-dep">Expat</bridgehead> <bridgehead renderas="sect2" id="expat-dep">Expat</bridgehead>
@ -1555,7 +1517,7 @@
<segmentedlist id="jinja2-before" revision='systemd'> <segmentedlist id="jinja2-before" revision='systemd'>
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg>Systemd</seg> <seg>&systemd-udev;</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -1633,8 +1595,7 @@
<segmentedlist id="kmod-before"> <segmentedlist id="kmod-before">
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg><phrase revision="sysv">Eudev</phrase> <seg>&systemd-udev;</seg>
<phrase revision="systemd">Systemd</phrase></seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -1913,9 +1874,7 @@
<segmentedlist id="libxcrypt-before"> <segmentedlist id="libxcrypt-before">
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg>GCC, Perl, Python, <seg>GCC, Perl, Python, Shadow, and &systemd-udev;</seg>
<phrase revision='sysv'>and </phrase>Shadow<phrase
revision='systemd'>, and Systemd</phrase></seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -2236,10 +2195,7 @@
<segmentedlist id="meson-before"> <segmentedlist id="meson-before">
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg> <seg>&systemd-udev;</seg>
<phrase revision='sysv'>None</phrase>
<phrase revision='systemd'>Systemd</phrase>
</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -2438,7 +2394,7 @@
<segmentedlist id="openssl-before"> <segmentedlist id="openssl-before">
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg>Coreutils, Kmod, and Linux</seg> <seg>Coreutils, Kmod, Linux, and &systemd-udev;</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -2560,7 +2516,7 @@
<seglistitem> <seglistitem>
<seg><phrase revision='systemd'>D-Bus, </phrase>E2fsprogs, <seg><phrase revision='systemd'>D-Bus, </phrase>E2fsprogs,
IProute2, Kmod, Man-DB, Procps-ng, Python, IProute2, Kmod, Man-DB, Procps-ng, Python,
<phrase revision='systemd'>Systemd, </phrase>and Util-linux</seg> &systemd-udev;, and Util-linux</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -2866,16 +2822,17 @@
<segmentedlist id="systemd-depends" revision='systemd'> <segmentedlist id="systemd-depends" revision='systemd'>
<segtitle>&dependencies;</segtitle> <segtitle>&dependencies;</segtitle>
<seglistitem> <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, GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Libxcrypt, Meson,
Pkgconf, Sed, Util-linux, and Zstd</seg> OpenSSL, Pkgconf, Sed, Util-linux, and Zstd</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<segmentedlist id="systemd-rundeps" revision='systemd'> <segmentedlist id="systemd-rundeps" revision='systemd'>
<segtitle>&runtime;</segtitle> <segtitle>&runtime;</segtitle>
<seglistitem> <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> </seglistitem>
</segmentedlist> </segmentedlist>
@ -3104,23 +3061,62 @@
</seglistitem> </seglistitem>
</segmentedlist> </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 --> <!-- Begin Util-linux dependency info -->
<bridgehead renderas="sect2" id="util-linux-dep">Util-linux</bridgehead> <bridgehead renderas="sect2" id="util-linux-dep">Util-linux</bridgehead>
<segmentedlist id="util-linux-depends"> <segmentedlist id="util-linux-depends">
<segtitle>&dependencies;</segtitle> <segtitle>&dependencies;</segtitle>
<seglistitem> <seglistitem>
<seg>Bash, Binutils, Coreutils, Diffutils, <seg>Bash, Binutils, Coreutils, Diffutils, File, Findutils, Gawk,
<phrase revision="sysv">Eudev, </phrase>File, Findutils, Gawk,
GCC, Gettext, Glibc, Grep, Make, Ncurses, Pkgconf, Sed, GCC, Gettext, Glibc, Grep, Make, Ncurses, Pkgconf, Sed,
<phrase revision="systemd">Systemd, </phrase>and Zlib</seg> &systemd-udev;, and Zlib</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<segmentedlist id="util-linux-rundeps"> <segmentedlist id="util-linux-rundeps">
<segtitle>&runtime;</segtitle> <segtitle>&runtime;</segtitle>
<seglistitem> <seglistitem>
<seg>Glibc, Ncurses, Readline, and Zlib</seg> <seg>Glibc, Ncurses, Readline, &systemd-udev;, and Zlib</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -3308,9 +3304,7 @@
<segmentedlist id="xz-before"> <segmentedlist id="xz-before">
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg><phrase revision="sysv">Eudev, </phrase>File, GRUB, Kmod, <seg>File, GRUB, Kmod, Libelf, Man-DB, and &systemd-udev;</seg>
Libelf, <phrase revision="sysv">and </phrase>Man-DB<phrase
revision="systemd">, and Systemd</phrase></seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -3386,8 +3380,7 @@
<segmentedlist id="zstd-before"> <segmentedlist id="zstd-before">
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg><phrase revision='sysv'>GCC and Libelf</phrase> <seg>GCC, Libelf, and &systemd-udev;</seg>
<phrase revision='systemd'>GCC, Libelf, and Systemd</phrase></seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>

View File

@ -13,7 +13,7 @@
<title>Udev configuration rules</title> <title>Udev configuration rules</title>
<para>The rules in this appendix are listed for convenience. Installation is <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"> <sect1 id="lfsrules" role="wrap">
<title>55-lfs.rules</title> <title>55-lfs.rules</title>

View File

@ -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> 2022-09-30 Bruce Dubbs <bdubbs@linuxfromscratch.org>
* Mount /dev/shm as a tmpfs. * Mount /dev/shm as a tmpfs.

View File

@ -45,17 +45,17 @@ case "${1}" in
# Start the udev daemon to continually watch for, and act on, # Start the udev daemon to continually watch for, and act on,
# uevents # uevents
/sbin/udevd --daemon SYSTEMD_LOG_TARGET=kmsg /sbin/udevd --daemon
# Now traverse /sys in order to "coldplug" devices that have # Now traverse /sys in order to "coldplug" devices that have
# already been discovered # already been discovered
/sbin/udevadm trigger --action=add --type=subsystems /bin/udevadm trigger --action=add --type=subsystems
/sbin/udevadm trigger --action=add --type=devices /bin/udevadm trigger --action=add --type=devices
/sbin/udevadm trigger --action=change --type=devices /bin/udevadm trigger --action=change --type=devices
# Now wait for udevd to process the uevents we triggered # Now wait for udevd to process the uevents we triggered
if ! is_true "$OMIT_UDEV_SETTLE"; then if ! is_true "$OMIT_UDEV_SETTLE"; then
/sbin/udevadm settle /bin/udevadm settle
fi fi
# If any LVM based partitions are on the system, ensure they # If any LVM based partitions are on the system, ensure they

View File

@ -34,8 +34,6 @@ case "${1}" in
start) start)
log_info_msg "Retrying failed uevents, if any..." 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 rundir=/run/udev
# From Debian: "copy the rules generated before / was mounted # From Debian: "copy the rules generated before / was mounted
# read-write": # read-write":
@ -52,13 +50,13 @@ case "${1}" in
/bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \ /bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \
while read line ; do while read line ; do
for subsystem in $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
done done
# Now wait for udevd to process the uevents we triggered # Now wait for udevd to process the uevents we triggered
if ! is_true "$OMIT_UDEV_RETRY_SETTLE"; then if ! is_true "$OMIT_UDEV_RETRY_SETTLE"; then
/sbin/udevadm settle /bin/udevadm settle
fi fi
evaluate_retval evaluate_retval

View File

@ -43,6 +43,10 @@
<listitem> <listitem>
<para>2023-07-15</para> <para>2023-07-15</para>
<itemizedlist> <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> <listitem>
<para>[bdubbs] - Update to iana-etc-20230629. Addresses <para>[bdubbs] - Update to iana-etc-20230629. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para> <ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>

View File

@ -91,9 +91,9 @@
<!--<listitem> <!--<listitem>
<para>E2fsprogs-&e2fsprogs-version;</para> <para>E2fsprogs-&e2fsprogs-version;</para>
</listitem>--> </listitem>-->
<listitem revision="sysv"> <!--<listitem revision="sysv">
<para>Eudev-&eudev-version;</para> <para>Udev-&systemd-version; (from systemd)</para>
</listitem> </listitem>-->
<!--<listitem> <!--<listitem>
<para>Expat-&expat-version;</para> <para>Expat-&expat-version;</para>
</listitem>--> </listitem>-->
@ -304,6 +304,18 @@
<title>Added:</title> <title>Added:</title>
<listitem><para></para></listitem> <!-- satisfy build --> <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> <listitem>
<para>Libxcrypt-&libxcrypt-version;</para> <para>Libxcrypt-&libxcrypt-version;</para>
</listitem> </listitem>
@ -337,6 +349,10 @@
<title>Removed:</title> <title>Removed:</title>
<listitem><para></para></listitem> <!-- satisfy build --> <listitem><para></para></listitem> <!-- satisfy build -->
<listitem>
<para>eudev-3.2.12</para>
</listitem>
<listitem> <listitem>
<para>grub-2.06-upstream_fixes-1.patch</para> <para>grub-2.06-upstream_fixes-1.patch</para>
</listitem> </listitem>

View File

@ -174,14 +174,6 @@
</listitem> </listitem>
</varlistentry> </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> <varlistentry>
<term>Expat (&expat-version;) - <token>&expat-size;</token>:</term> <term>Expat (&expat-version;) - <token>&expat-size;</token>:</term>
<listitem> <listitem>
@ -387,7 +379,7 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry revision="systemd"> <varlistentry>
<term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term> <term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term>
<listitem> <listitem>
<para>Home page: <ulink url="&jinja2-home;"/></para> <para>Home page: <ulink url="&jinja2-home;"/></para>
@ -536,7 +528,7 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry revision="systemd"> <varlistentry>
<term>MarkupSafe (&markupsafe-version;) - <token>&markupsafe-size;</token>:</term> <term>MarkupSafe (&markupsafe-version;) - <token>&markupsafe-size;</token>:</term>
<listitem> <listitem>
<para>Home page: <ulink url="&markupsafe-home;"/></para> <para>Home page: <ulink url="&markupsafe-home;"/></para>
@ -697,7 +689,7 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry revision="systemd"> <varlistentry>
<term>Systemd (&systemd-version;) - <token>&systemd-size;</token>:</term> <term>Systemd (&systemd-version;) - <token>&systemd-size;</token>:</term>
<listitem> <listitem>
<para>Home page: <ulink url="&systemd-home;"/></para> <para>Home page: <ulink url="&systemd-home;"/></para>
@ -706,7 +698,7 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry revision="systemd"> <varlistentry>
<term>Systemd Man Pages(&systemd-version;) - <token>&systemd-man-size;</token>:</term> <term>Systemd Man Pages(&systemd-version;) - <token>&systemd-man-size;</token>:</term>
<listitem> <listitem>
<para>Home page: <ulink url="&systemd-home;"/></para> <para>Home page: <ulink url="&systemd-home;"/></para>

View File

@ -91,7 +91,7 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbus.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbus.xml"/>
<!-- sysv only --> <!-- 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 --> <!-- Both sysv on systemd builds -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="man-db.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="man-db.xml"/>

View File

@ -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 &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>

View File

@ -5,7 +5,7 @@
%general-entities; %general-entities;
]> ]>
<sect1 id="ch-system-jinja2" role="wrap" revision="systemd"> <sect1 id="ch-system-jinja2" role="wrap">
<?dbhtml filename="jinja2.html"?> <?dbhtml filename="jinja2.html"?>
<sect1info condition="script"> <sect1info condition="script">

View File

@ -5,7 +5,7 @@
%general-entities; %general-entities;
]> ]>
<sect1 id="ch-system-markupsafe" role="wrap" revision="systemd"> <sect1 id="ch-system-markupsafe" role="wrap">
<?dbhtml filename="markupsafe.html"?> <?dbhtml filename="markupsafe.html"?>
<sect1info condition="script"> <sect1info condition="script">

269
chapter08/udev.xml Normal file
View File

@ -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>

View File

@ -37,7 +37,7 @@
<para>The interface names depend on the implementation and <para>The interface names depend on the implementation and
configuration of the udev daemon running on the system. The udev 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 not run until the LFS system is booted. So the interface names
in the LFS system cannot always be determined by running in the LFS system cannot always be determined by running
those commands on the host distro, those commands on the host distro,

View File

@ -156,13 +156,6 @@
<!ENTITY elfutils-fin-du "120 MB"> <!ENTITY elfutils-fin-du "120 MB">
<!ENTITY elfutils-fin-sbu "0.3 SBU"> <!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-version "2.5.0">
<!ENTITY expat-size "450 KB"> <!ENTITY expat-size "450 KB">
<!ENTITY expat-url "&sourceforge;expat/expat-&expat-version;.tar.xz"> <!ENTITY expat-url "&sourceforge;expat/expat-&expat-version;.tar.xz">
@ -390,7 +383,7 @@
<!ENTITY less-fin-du "4.3 MB"> <!ENTITY less-fin-du "4.3 MB">
<!ENTITY less-fin-sbu "less than 0.1 SBU"> <!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-size "BOOTSCRIPTS-SIZE KB">
<!ENTITY lfs-bootscripts-url "&downloads-root;lfs-bootscripts-&lfs-bootscripts-version;.tar.xz"> <!ENTITY lfs-bootscripts-url "&downloads-root;lfs-bootscripts-&lfs-bootscripts-version;.tar.xz">
<!ENTITY lfs-bootscripts-md5 "BOOTSCRIPTS-MD5SUM"> <!ENTITY lfs-bootscripts-md5 "BOOTSCRIPTS-MD5SUM">
@ -713,6 +706,9 @@
<!ENTITY tzdata-md5 "5aa672bf129b44dd915f8232de38e49a"> <!ENTITY tzdata-md5 "5aa672bf129b44dd915f8232de38e49a">
<!ENTITY tzdata-home "https://www.iana.org/time-zones"> <!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-version "udev-lfs-20171102">
<!ENTITY udev-lfs-size "11 KB"> <!ENTITY udev-lfs-size "11 KB">
<!ENTITY udev-lfs-url "&anduin-sources;/&udev-lfs-version;.tar.xz"> <!ENTITY udev-lfs-url "&anduin-sources;/&udev-lfs-version;.tar.xz">