Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng

This commit is contained in:
Xi Ruoyao 2022-12-25 22:07:15 +08:00
commit 76b84d2a02
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3
17 changed files with 253 additions and 229 deletions

View File

@ -53,7 +53,7 @@
</listitem>
<listitem>
<para>[bdubbs] - Update to vim-9.0.1060. Addresses
<ulink url="&lfs-ticket-root;5006">#5006</ulink>.</para>
<ulink url="&lfs-ticket-root;4500">#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iproute2-6.1.0. Fixes

View File

@ -17,8 +17,8 @@
the debugger can provide not only memory addresses, but also
the names of the routines and variables.</para>
<para>However, the inclusion of these debugging symbols enlarges a
program or library significantly. The following is an example of the
<para>The inclusion of these debugging symbols enlarges a
program or library significantly. Here are two examples of the
amount of space these symbols occupy:</para>
<itemizedlist>
@ -28,7 +28,7 @@
</listitem>
<listitem>
<para>A <command>bash</command> binary without debugging symbols:
480 KB</para>
480 KB (60% smaller)</para>
</listitem>
<listitem>
<para>Glibc and GCC files (<filename class="directory">/lib</filename>
@ -36,15 +36,14 @@
symbols: 87 MB</para>
</listitem>
<listitem>
<para>Glibc and GCC files without debugging symbols: 16 MB</para>
<para>Glibc and GCC files without debugging symbols: 16 MB (82% smaller)</para>
</listitem>
</itemizedlist>
<para>Sizes may vary depending on which compiler and C library were used,
but when comparing programs with and without debugging symbols, the
difference will usually be a factor between two and five.</para>
<para>Because most users will never use a debugger on their system software,
<para>Sizes will vary depending on which compiler and C library were used,
but a program that has been stripped of debugging symbols is usually some
50% to 80% smaller than its unstripped counterpart.
Because most users will never use a debugger on their system software,
a lot of disk space can be regained by removing these symbols. The next
section shows how to strip all debugging symbols from the programs and
libraries.</para>

View File

@ -10,16 +10,16 @@
<title>Cleaning Up</title>
<para>Finally, clean up some extra files left around from running tests:</para>
<para>Finally, clean up some extra files left over from running tests:</para>
<screen><userinput>rm -rf /tmp/*</userinput></screen>
<para>There are also several files installed in the /usr/lib and /usr/libexec
<para>There are also several files in the /usr/lib and /usr/libexec
directories with a file name extension of .la. These are "libtool archive"
files. As already said, on a modern Linux system the libtool .la files are
files. On a modern Linux system the libtool .la files are
only useful for libltdl. No libraries in LFS are expected to be loaded
by libltdl, and it's known that some .la files can cause BLFS packages
fail to build. Remove those files now:</para>
by libltdl, and it's known that some .la files can break BLFS package
builds. Remove those files now:</para>
<screen><userinput>find /usr/lib /usr/libexec -name \*.la -delete</userinput></screen>

View File

@ -23,7 +23,7 @@
<sect2 role="package">
<title/>
<para>The e2fsprogs package contains the utilities for handling the
<para>The E2fsprogs package contains the utilities for handling the
<systemitem class="filesystem">ext2</systemitem> file system. It also
supports the <systemitem class="filesystem">ext3</systemitem> and
<systemitem class="filesystem">ext4</systemitem> journaling
@ -44,13 +44,13 @@
<sect2 role="installation">
<title>Installation of E2fsprogs</title>
<para>The e2fsprogs documentation recommends that the package be built in
<para>The E2fsprogs documentation recommends that the package be built in
a subdirectory of the source tree: </para>
<screen><userinput remap="pre">mkdir -v build
cd build</userinput></screen>
<para>Prepare e2fsprogs for compilation:</para>
<para>Prepare E2fsprogs for compilation:</para>
<screen><userinput remap="configure">../configure --prefix=/usr \
--sysconfdir=/etc \
@ -74,11 +74,11 @@ cd build</userinput></screen>
<varlistentry>
<term><parameter>--disable-*</parameter></term>
<listitem>
<para>This prevents e2fsprogs from building and installing the
<para>These prevent building and installing the
<systemitem class="library">libuuid</systemitem> and
<systemitem class="library">libblkid</systemitem> libraries, the
<systemitem class="daemon">uuidd</systemitem> daemon, and the
<command>fsck</command> wrapper, as util-linux installs more
<command>fsck</command> wrapper; util-linux installs more
recent versions.</para>
</listitem>
</varlistentry>
@ -175,11 +175,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="chattr">
<term><command>chattr</command></term>
<listitem>
<para>Changes the attributes of files on an <systemitem
class="filesystem">ext2</systemitem> file system; it also
changes <systemitem class="filesystem">ext3</systemitem>
file systems, the journaling version of <systemitem
class="filesystem">ext2</systemitem> file systems</para>
<para>Changes the attributes of files on <systemitem
class="filesystem">ext{234}</systemitem> file systems</para>
<indexterm zone="ch-system-e2fsprogs chattr">
<primary sortas="b-chattr">chattr</primary>
</indexterm>
@ -202,8 +199,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<term><command>debugfs</command></term>
<listitem>
<para>A file system debugger; it can be used to examine and change
the state of an <systemitem class="filesystem">ext2</systemitem>
file system</para>
the state of <systemitem class="filesystem">ext{234}</systemitem>
file systems</para>
<indexterm zone="ch-system-e2fsprogs debugfs">
<primary sortas="b-debugfs">debugfs</primary>
</indexterm>
@ -234,9 +231,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="e2fsck">
<term><command>e2fsck</command></term>
<listitem>
<para>Is used to check, and optionally repair <systemitem
class="filesystem">ext2</systemitem> file systems and <systemitem
class="filesystem">ext3</systemitem> file systems</para>
<para>Is used to check and optionally repair <systemitem
class="filesystem">ext{234}</systemitem> file systems</para>
<indexterm zone="ch-system-e2fsprogs e2fsck">
<primary sortas="b-e2fsck">e2fsck</primary>
</indexterm>
@ -247,7 +243,7 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<term><command>e2image</command></term>
<listitem>
<para>Is used to save critical <systemitem
class="filesystem">ext2</systemitem> file system data to a file</para>
class="filesystem">ext{234}</systemitem> file system data to a file</para>
<indexterm zone="ch-system-e2fsprogs e2image">
<primary sortas="b-e2image">e2image</primary>
</indexterm>
@ -258,7 +254,7 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<term><command>e2label</command></term>
<listitem>
<para>Displays or changes the file system label on the <systemitem
class="filesystem">ext2</systemitem> file system present on a given
class="filesystem">ext{234}</systemitem> file system on a given
device</para>
<indexterm zone="ch-system-e2fsprogs e2label">
<primary sortas="b-e2label">e2label</primary>
@ -269,7 +265,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="e2mmpstatus">
<term><command>e2mmpstatus</command></term>
<listitem>
<para>Checks MMP status of an ext4 filesystem</para>
<para>Checks MMP (Multiple Mount Protection) status of an <systemitem
class="filesystem">ext4</systemitem> file system</para>
<indexterm zone="ch-system-e2fsprogs e2mmpstatus">
<primary sortas="b-e2mmpstatus">e2mmpstatus</primary>
</indexterm>
@ -279,7 +276,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="e2scrub">
<term><command>e2scrub</command></term>
<listitem>
<para>Checks the contents of a mounted ext[234] filesystem</para>
<para>Checks the contents of a mounted <systemitem
class="filesystem">ext{234}</systemitem> file system</para>
<indexterm zone="ch-system-e2fsprogs e2scrub">
<primary sortas="b-e2scrub">e2scrub</primary>
</indexterm>
@ -289,7 +287,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="e2scrub_all">
<term><command>e2scrub_all</command></term>
<listitem>
<para>Checks all mounted ext[234] filesystems for errors</para>
<para>Checks all mounted <systemitem class="filesystem">ext{234}</systemitem>
file systems for errors</para>
<indexterm zone="ch-system-e2fsprogs e2scrub_all">
<primary sortas="b-e2scrub_all">e2scrub_all</primary>
</indexterm>
@ -299,9 +298,10 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="e2undo">
<term><command>e2undo</command></term>
<listitem>
<para>Replays the undo log undo_log for an ext2/ext3/ext4 filesystem
found on a device [This can be used to undo a failed operation by an
e2fsprogs program.]</para>
<para>Replays the undo log for an <systemitem
class="filesystem">ext{234}</systemitem> file system
found on a device. [This can be used to undo a failed operation by an
E2fsprogs program.]</para>
<indexterm zone="ch-system-e2fsprogs e2undo">
<primary sortas="b-e2undo">e2undo</primary>
</indexterm>
@ -311,7 +311,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="e4crypt">
<term><command>e4crypt</command></term>
<listitem>
<para>Ext4 filesystem encryption utility</para>
<para><systemitem class="filesystem">Ext4</systemitem>
file system encryption utility</para>
<indexterm zone="ch-system-e2fsprogs e4crypt">
<primary sortas="b-e4crypt">e4crypt</primary>
</indexterm>
@ -321,7 +322,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="e4defrag">
<term><command>e4defrag</command></term>
<listitem>
<para>Online defragmenter for ext4 filesystems</para>
<para>Online defragmenter for <systemitem
class="filesystem">ext4</systemitem> file systems</para>
<indexterm zone="ch-system-e2fsprogs e4defrag">
<primary sortas="b-e4defrag">e4defrag</primary>
</indexterm>
@ -407,9 +409,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="mke2fs">
<term><command>mke2fs</command></term>
<listitem>
<para>Creates an <systemitem class="filesystem">ext2</systemitem>
or <systemitem class="filesystem">ext3</systemitem> file system on
the given device</para>
<para>Creates an <systemitem class="filesystem">ext{234}</systemitem>
file system on the given device</para>
<indexterm zone="ch-system-e2fsprogs mke2fs">
<primary sortas="b-mke2fs">mke2fs</primary>
</indexterm>
@ -452,8 +453,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="mklost-found">
<term><command>mklost+found</command></term>
<listitem>
<para>Used to create a <filename class="directory">lost+found</filename>
directory on an <systemitem class="filesystem">ext2</systemitem> file
<para>Creates a <filename class="directory">lost+found</filename>
directory on an <systemitem class="filesystem">ext{234}</systemitem> file
system; it pre-allocates disk blocks to this directory to lighten the
task of <command>e2fsck</command></para>
<indexterm zone="ch-system-e2fsprogs mklost-found">
@ -465,8 +466,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="resize2fs">
<term><command>resize2fs</command></term>
<listitem>
<para>Can be used to enlarge or shrink an <systemitem
class="filesystem">ext2</systemitem> file system</para>
<para>Can be used to enlarge or shrink <systemitem
class="filesystem">ext{234}</systemitem> file systems</para>
<indexterm zone="ch-system-e2fsprogs resize2fs">
<primary sortas="b-resize2fs">resize2fs</primary>
</indexterm>
@ -476,8 +477,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="tune2fs">
<term><command>tune2fs</command></term>
<listitem>
<para>Adjusts tunable file system parameters on an <systemitem
class="filesystem">ext2</systemitem> file system</para>
<para>Adjusts tunable file system parameters on <systemitem
class="filesystem">ext{234}</systemitem> file systems</para>
<indexterm zone="ch-system-e2fsprogs tune2fs">
<primary sortas="b-tune2fs">tune2fs</primary>
</indexterm>
@ -508,8 +509,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<varlistentry id="libext2fs">
<term><filename class="libraryfile">libext2fs</filename></term>
<listitem>
<para>Contains routines to enable user-level programs to manipulate an
<systemitem class="filesystem">ext2</systemitem> file system</para>
<para>Contains routines to enable user-level programs to manipulate
<systemitem class="filesystem">ext{234}</systemitem> file systems</para>
<indexterm zone="ch-system-e2fsprogs libext2fs">
<primary sortas="c-libext2fs">libext2fs</primary>
</indexterm>

View File

@ -23,7 +23,7 @@
<sect2 role="package">
<title/>
<para>The Libcap package implements the user-space interface to the POSIX
<para>The Libcap package implements the userspace interface to the POSIX
1003.1e capabilities available in Linux kernels. These capabilities
partition the all-powerful root privilege into a set of distinct
privileges.</para>

View File

@ -12,39 +12,39 @@
<para>This section is optional. If the intended user is not a
programmer and does not plan to do
any debugging on the system software, the system size can be decreased
by about 2 GB by removing the debugging symbols and unneeded symbol table
entries from binaries and libraries. This causes no inconvenience other
than not being able to debug the software fully anymore.</para>
any debugging of the system software, the system's size can be decreased
by some 2 GB by removing the debugging symbols, and some unnecessary symbol table
entries, from binaries and libraries. This causes no real inconvenience for
a typical Linux user.</para>
<para>Most people who use the commands mentioned below do not
experience any difficulties. However, it is easy to make a typo and
render the new system unusable, so before running the
experience any difficulties. However, it is easy to make a mistake and
render the new system unusable. So before running the
<command>strip</command> commands, it is a good idea to make a
backup of the LFS system in its current state.</para>
<para>A <command>strip</command> command with
<para>A <command>strip</command> command with the
<parameter>--strip-unneeded</parameter> option removes all debug symbols
from a binary or library. And, it removes all symbol table entries not
from a binary or library. It also removes all symbol table entries not
needed by the linker (for static libraries) or dynamic linker (for
dynamic-linked binaries and shared libraries).</para>
dynamically linked binaries and shared libraries).</para>
<para>The debugging symbols for selected libraries are placed
in separate files. This debugging information is needed if running
regression tests that use <ulink
<para>The debugging symbols from selected libraries are preserved
in separate files. That debugging information is needed to run
regression tests with <ulink
url='&blfs-book;/general/valgrind.html'>valgrind</ulink> or <ulink
url='&blfs-book;/general/gdb.html'>gdb</ulink> later in BLFS.
url='&blfs-book;/general/gdb.html'>gdb</ulink> later, in BLFS.
</para>
<para>Note that <command>strip</command> will overwrite the binary or library
file it is processing. This can crash the processes using code or data from
the file. If the process running <command>strip</command> itself is
affected, the binary or library being stripped can be destroyed and can
make the system completely unusable. To avoid it, we'll copy some libraries
the file. If the process running <command>strip</command> is
affected, the binary or library being stripped can be destroyed; this can
make the system completely unusable. To avoid this problem we copy some libraries
and binaries into <filename class="directory">/tmp</filename>, strip them
there, and install them back with the <command>install</command> command.
Read the related entry in <xref linkend="pkgmgmt-upgrade-issues"/> for the
rationale to use the <command>install</command> command here.</para>
there, then reinstall them with the <command>install</command> command.
(The related entry in <xref linkend="pkgmgmt-upgrade-issues"/> gives the
rationale for using the <command>install</command> command here.)</para>
<note><para>The ELF loader's name is ld-linux-x86-64.so.2 on 64-bit systems
and ld-linux.so.2 on 32-bit systems. The construct below selects the
@ -111,8 +111,8 @@ done
unset BIN LIB save_usrlib online_usrbin online_usrlib
</userinput></screen>
<para>A large number of files will be reported as having their file
format not recognized. These warnings can be safely ignored. They
indicate that those files are scripts instead of binaries.</para>
<para>A large number of files will be flagged as errors because their file
format is not recognized. These warnings can be safely ignored. They
indicate that those files are scripts, not binaries.</para>
</sect1>

View File

@ -23,8 +23,8 @@
<sect2 role="package">
<title/>
<para>The sysklogd package contains programs for logging system messages,
such as those given by the kernel when unusual things happen.</para>
<para>The Sysklogd package contains programs for logging system messages,
such as those emitted by the kernel when unusual things happen.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@ -41,8 +41,8 @@
<sect2 role="installation">
<title>Installation of Sysklogd</title>
<para>First, fix problems that causes a segmentation fault under
some conditions in klogd and fix an obsolete program construct:</para>
<para>First, fix a problem that causes a segmentation fault in klogd
under some conditions, and fix an obsolete program construct:</para>
<screen><userinput remap="pre">sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c
sed -i 's/union wait/int/' syslogd.c</userinput></screen>

View File

@ -115,7 +115,7 @@
<varlistentry id="fstab-decode">
<term><command>fstab-decode</command></term>
<listitem>
<para>Run a command with fstab-encoded arguments</para>
<para>Runs a command with fstab-encoded arguments</para>
<indexterm zone="ch-system-sysvinit fstab-decode">
<primary sortas="b-fstab-decode">fstab-decode</primary>
</indexterm>
@ -126,10 +126,10 @@
<term><command>halt</command></term>
<listitem>
<para>Normally invokes <command>shutdown</command> with the
<parameter>-h</parameter> option, except when already in run-level 0,
then it tells the kernel to halt the system; it notes in the
file <filename>/var/log/wtmp</filename> that the system is being
brought down</para>
<parameter>-h</parameter> option, but when already in run-level 0,
it tells the kernel to halt the system; it notes in the
file <filename>/var/log/wtmp</filename> that the system is
going down</para>
<indexterm zone="ch-system-sysvinit halt-sysv">
<primary sortas="b-halt">halt</primary>
</indexterm>
@ -140,8 +140,8 @@
<term><command>init</command></term>
<listitem>
<para>The first process to be started when the kernel has initialized
the hardware which takes over the boot process and starts all the
proceses specified in its configuration file</para>
the hardware; it takes over the boot process and starts all the
processes specified in its configuration file</para>
<indexterm zone="ch-system-sysvinit init-sysv">
<primary sortas="b-init">init</primary>
</indexterm>
@ -152,7 +152,7 @@
<term><command>killall5</command></term>
<listitem>
<para>Sends a signal to all processes, except the processes in its own
session so it will not kill its parent shell</para>
session; it will not kill its parent shell</para>
<indexterm zone="ch-system-sysvinit killall5">
<primary sortas="b-killall5">killall5</primary>
</indexterm>

View File

@ -77,7 +77,7 @@
--docdir=/usr/share/doc/util-linux-&util-linux-version;</userinput></screen>
<para>The --disable and --without options prevent warnings about
building components that require packages not in LFS or are
building components that either require packages not in LFS, or are
inconsistent with programs installed by other packages.</para>
<para>Compile the package:</para>
@ -92,7 +92,7 @@
be available in the currently running system and must be built as a
module. Building it into the kernel will prevent booting. For complete
coverage, other BLFS packages must be installed. If desired, this test can
be run after rebooting into the completed LFS system and running:</para>
be run by booting into the completed LFS system and running:</para>
<screen role="nodump"><userinput>bash tests/run.sh --srcdir=$PWD --builddir=$PWD</userinput></screen>
</warning>
@ -125,16 +125,17 @@ su tester -c "make -k check"</userinput></screen>
<seg>addpart, agetty, blkdiscard, blkid, blkzone, blockdev, cal, cfdisk, chcpu,
chmem, choom, chrt, col, colcrt, colrm, column, ctrlaltdel, delpart, dmesg,
eject, fallocate, fdisk, fincore, findfs, findmnt, flock, fsck,
fsck.cramfs, fsck.minix, fsfreeze, fstrim, getopt, hexdump, hwclock,
i386, ionice, ipcmk, ipcrm, ipcs, irqtop, isosize, kill, last, lastb (link to
last), ldattach, linux32, linux64, logger, look, losetup, lsblk, lscpu,
lsipc, lsirq, lslocks, lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap,
fsck.cramfs, fsck.minix, fsfreeze, fstrim, getopt, hardlink, hexdump, hwclock,
i386 (link to setarch), ionice, ipcmk, ipcrm, ipcs, irqtop, isosize, kill, last,
lastb (link to last), ldattach, linux32 (link to setarch), linux64 (link to setarch),
logger, look, losetup, lsblk, lscpu, lsipc, lsirq, lsfd, lslocks, lslogins,
lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap,
more, mount, mountpoint, namei, nsenter, partx, pivot_root, prlimit,
readprofile, rename, renice, resizepart, rev, rfkill, rtcwake, script,
scriptlive, scriptreplay, setarch, setsid, setterm, sfdisk, sulogin, swaplabel,
swapoff (link to swapon), swapon, switch_root, taskset, uclampset, ul,
umount, uname26, unshare, utmpdump, uuidd, uuidgen, uuidparse, wall, wdctl, whereis,
wipefs, x86_64, and zramctl</seg>
swapoff, swapon, switch_root, taskset, uclampset, ul,
umount, uname26 (link to setarch), unshare, utmpdump, uuidd, uuidgen, uuidparse,
wall, wdctl, whereis, wipefs, x86_64 (link to setarch), and zramctl</seg>
<seg>libblkid.so, libfdisk.so, libmount.so,
libsmartcols.so, and libuuid.so</seg>
<seg>/usr/include/blkid,
@ -197,7 +198,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="blkzone">
<term><command>blkzone</command></term>
<listitem>
<para>Runs zone command on the given block device</para>
<para>Is used to manage zoned storage block devices</para>
<indexterm zone="ch-system-util-linux blkzone">
<primary sortas="b-blkzone">blkzone</primary>
</indexterm>
@ -258,7 +259,8 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="choom">
<term><command>choom</command></term>
<listitem>
<para>Displays and adjusts OOM-killer score</para>
<para>Displays and adjusts OOM-killer scores, used to determine
which process to kill first when Linux is Out Of Memory</para>
<indexterm zone="ch-system-util-linux choom">
<primary sortas="b-choom">choom</primary>
</indexterm>
@ -390,7 +392,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="findfs">
<term><command>findfs</command></term>
<listitem>
<para>Finds a file system by label or Universally Unique Identifier
<para>Finds a file system, either by label or Universally Unique Identifier
(UUID)</para>
<indexterm zone="ch-system-util-linux findfs">
<primary sortas="b-findfs">findfs</primary>
@ -402,7 +404,7 @@ su tester -c "make -k check"</userinput></screen>
<term><command>findmnt</command></term>
<listitem>
<para>Is a command line interface to the libmount library
for work with mountinfo, fstab and mtab files</para>
for working with mountinfo, fstab and mtab files</para>
<indexterm zone="ch-system-util-linux findmnt">
<primary sortas="b-findmnt">findmnt</primary>
</indexterm>
@ -483,11 +485,21 @@ su tester -c "make -k check"</userinput></screen>
</listitem>
</varlistentry>
<varlistentry id="hardlink">
<term><command>hardlink</command></term>
<listitem>
<para>Consolidates duplicate files by creating hard links</para>
<indexterm zone="ch-system-util-linux hardlink">
<primary sortas="b-hardlink">hardlink</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="hexdump">
<term><command>hexdump</command></term>
<listitem>
<para>Dumps the given file in hexadecimal or in another given
format</para>
<para>Dumps the given file in hexadecimal, decimal, octal,
or ascii</para>
<indexterm zone="ch-system-util-linux hexdump">
<primary sortas="b-hexdump">hexdump</primary>
</indexterm>
@ -691,6 +703,16 @@ su tester -c "make -k check"</userinput></screen>
</listitem>
</varlistentry>
<varlistentry id="lsfd">
<term><command>lsfd</command></term>
<listitem>
<para>Displays information about open files; replaces <command>lsof</command></para>
<indexterm zone="ch-system-util-linux lsfd">
<primary sortas="b-lsfd">lsfd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lsipc">
<term><command>lsipc</command></term>
<listitem>
@ -861,7 +883,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="namei">
<term><command>namei</command></term>
<listitem>
<para>Shows the symbolic links in the given pathnames</para>
<para>Shows the symbolic links in the given paths</para>
<indexterm zone="ch-system-util-linux namei">
<primary sortas="b-namei">namei</primary>
</indexterm>
@ -903,7 +925,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="prlimit">
<term><command>prlimit</command></term>
<listitem>
<para>Get and set a process' resource limits</para>
<para>Gets and sets a process's resource limits</para>
<indexterm zone="ch-system-util-linux prlimit">
<primary sortas="b-prlimit">prlimit</primary>
</indexterm>
@ -974,7 +996,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="rtcwake">
<term><command>rtcwake</command></term>
<listitem>
<para>Used to enter a system sleep state until specified wakeup
<para>Used to enter a system sleep state until the specified wakeup
time</para>
<indexterm zone="ch-system-util-linux rtcwake">
<primary sortas="b-rtcwake">rtcwake</primary>
@ -995,7 +1017,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="scriptlive">
<term><command>scriptlive</command></term>
<listitem>
<para>Re-run session typescripts using timing information</para>
<para>Re-runs session typescripts using timing information</para>
<indexterm zone="ch-system-util-linux scriptlive">
<primary sortas="b-scriptlive">scriptlive</primary>
</indexterm>
@ -1015,7 +1037,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="setarch">
<term><command>setarch</command></term>
<listitem>
<para>Changes reported architecture in a new program environment and
<para>Changes reported architecture in a new program environment, and
sets personality flags</para>
<indexterm zone="ch-system-util-linux setarch">
<primary sortas="b-setarch">setarch</primary>
@ -1068,7 +1090,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="swaplabel">
<term><command>swaplabel</command></term>
<listitem>
<para>Allows to change swaparea UUID and label</para>
<para>Makes changes to the swap area's UUID and label</para>
<indexterm zone="ch-system-util-linux swaplabel">
<primary sortas="b-swaplabel">swaplabel</primary>
</indexterm>
@ -1088,7 +1110,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="swapon">
<term><command>swapon</command></term>
<listitem>
<para>Enables devices and files for paging and swapping and
<para>Enables devices and files for paging and swapping, and
lists the devices and files currently in use</para>
<indexterm zone="ch-system-util-linux swapon">
<primary sortas="b-swapon">swapon</primary>
@ -1109,7 +1131,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="taskset">
<term><command>taskset</command></term>
<listitem>
<para>Retrieves or sets a process' CPU affinity</para>
<para>Retrieves or sets a process's CPU affinity</para>
<indexterm zone="ch-system-util-linux taskset">
<primary sortas="b-taskset">taskset</primary>
</indexterm>
@ -1119,7 +1141,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="uclampset">
<term><command>uclampset</command></term>
<listitem>
<para>Manipulate the utilization clamping attributes of the
<para>Manipulates the utilization clamping attributes of the
system or a process</para>
<indexterm zone="ch-system-util-linux uclampset">
<primary sortas="b-uclampset">uclampset</primary>
@ -1171,7 +1193,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="utmpdump">
<term><command>utmpdump</command></term>
<listitem>
<para>Displays the content of the given login file in a more
<para>Displays the content of the given login file in a
user-friendly format</para>
<indexterm zone="ch-system-util-linux utmpdump">
<primary sortas="b-utmpdump">utmpdump</primary>
@ -1193,9 +1215,10 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="uuidgen">
<term><command>uuidgen</command></term>
<listitem>
<para>Creates new UUIDs. Each new UUID can reasonably be considered
<para>Creates new UUIDs. Each new UUID is a random number likely to be
unique among all UUIDs created, on the local system and on other
systems, in the past and in the future</para>
systems, in the past and in the future, with extremely high
probability (~340 trillion trillion trillion unique UUIDs are possible)</para>
<indexterm zone="ch-system-util-linux uuidgen">
<primary sortas="b-uuidgen">uuidgen</primary>
</indexterm>
@ -1205,7 +1228,7 @@ su tester -c "make -k check"</userinput></screen>
<varlistentry id="uuidparse">
<term><command>uuidparse</command></term>
<listitem>
<para>An utility to parse unique identifiers</para>
<para>A utility to parse unique identifiers</para>
<indexterm zone="ch-system-util-linux uuidparse">
<primary sortas="b-uuidparse">uuidparse</primary>
</indexterm>
@ -1237,7 +1260,7 @@ su tester -c "make -k check"</userinput></screen>
<term><command>whereis</command></term>
<listitem>
<para>Reports the location of the binary, source, and man page
for the given command</para>
files for the given command</para>
<indexterm zone="ch-system-util-linux whereis">
<primary sortas="b-whereis">whereis</primary>
</indexterm>

View File

@ -74,7 +74,7 @@
<term><command>checkfs</command></term>
<listitem>
<para>Checks the integrity of the file systems before they are mounted
(with the exception of journal and network based file systems)</para>
(with the exception of journaling and network-based file systems)</para>
<indexterm zone="ch-config-bootscripts checkfs-bootscripts">
<primary sortas="d-checkfs">checkfs</primary>
</indexterm>
@ -173,8 +173,8 @@
<varlistentry id="mountfs-bootscripts">
<term><command>mountfs</command></term>
<listitem>
<para>Mounts all file systems, except ones that are marked
<emphasis>noauto</emphasis> or are network based</para>
<para>Mounts all file systems, except those that are marked
<emphasis>noauto</emphasis>, or are network based</para>
<indexterm zone="ch-config-bootscripts mountfs-bootscripts">
<primary sortas="d-mountfs">mountfs</primary>
</indexterm>
@ -208,7 +208,7 @@
<listitem>
<para>The master run-level control script; it is responsible for
running all the other bootscripts one-by-one, in a sequence determined
by the name of the symbolic links being processed</para>
by the names of the symbolic links to those other bootscripts</para>
<indexterm zone="ch-config-bootscripts rc-bootscripts">
<primary sortas="d-rc">rc</primary>
</indexterm>
@ -239,8 +239,8 @@
<varlistentry id="setclock-bootscripts">
<term><command>setclock</command></term>
<listitem>
<para>Resets the kernel clock to local time in case the hardware clock
is not set to UTC time</para>
<para>Resets the system clock to local time if the hardware clock
is not set to UTC</para>
<indexterm zone="ch-config-bootscripts setclock-bootscripts">
<primary sortas="d-setclock">setclock</primary>
</indexterm>
@ -305,7 +305,7 @@
<term><command>udev</command></term>
<listitem>
<para>Prepares the <filename class="directory">/dev</filename>
directory and starts Udev</para>
directory and starts the udev daemon</para>
<indexterm zone="ch-config-bootscripts udev-bootscripts">
<primary sortas="d-udev">udev</primary>
</indexterm>

View File

@ -11,19 +11,19 @@
<title>Introduction</title>
<para>Booting a Linux system involves several tasks. The process must
mount both virtual and real file systems, initialize devices, activate swap,
check file systems for integrity, mount any swap partitions or files, set
mount both virtual and real file systems, initialize devices,
check file systems for integrity, mount and activate any swap partitions or files, set
the system clock, bring up networking, start any daemons required by the
system, and accomplish any other custom tasks needed by the user. This
system, and accomplish any other custom tasks specified by the user. This
process must be organized to ensure the tasks are performed in the correct
order but, at the same time, be executed as fast as possible.</para>
order and executed as quickly as possible.</para>
<sect2 id='sysv-desc'>
<title>System V</title>
<para>System V is the classic boot process that has been used in Unix and
Unix-like systems such as Linux since about 1983. It consists of a small
program, <command>init</command>, that sets up basic programs such as
program, <command>init</command>, that sets up basic processes such as
<command>login</command> (via getty) and runs a script. This script,
usually named <command>rc</command>, controls the execution of a set of
additional scripts that perform the tasks required to initialize the
@ -31,7 +31,7 @@
<para>The <command>init</command> program is controlled by the
<filename>/etc/inittab</filename> file and is organized into run levels that
can be run by the user. In LFS, they are used as follows:</para>
can be chosen by the user. In LFS, they are used as follows:</para>
<literallayout>0 &mdash; halt
1 &mdash; Single user mode
@ -70,13 +70,13 @@
<listitem>
<para>Serial processing of boot tasks. This is related to the previous
point. A delay in any process such as a file system check, will
point. A delay in any process, such as a file system check, will
delay the entire boot process.</para>
</listitem>
<listitem>
<para>Does not directly support advanced features like
control groups (cgroups), and per-user fair share scheduling.</para>
control groups (cgroups) and per-user fair share scheduling.</para>
</listitem>
<listitem>

View File

@ -17,15 +17,15 @@
<sect2>
<title>Creating Network Interface Configuration Files</title>
<para>Which interfaces are brought up and down by the network script
usually depends on the files in <filename
class="directory">/etc/sysconfig/</filename>. This directory should
<para>The files in <filename class="directory">/etc/sysconfig/</filename>
usually determine which interfaces are brought up and down by the network
script. This directory should
contain a file for each interface to be configured, such as
<filename>ifconfig.xyz</filename>, where <quote>xyz</quote> should describe
<filename>ifconfig.xyz</filename>, where <quote>xyz</quote> describes
the network card. The interface name (e.g. eth0) is usually appropriate.
Inside this file are attributes to this interface, such as its IP
address(es), subnet masks, and so forth. It is necessary that the stem of
the filename be <emphasis>ifconfig</emphasis>.</para>
Each file contains the attributes of one interface, such as its IP
address(es), subnet masks, and so forth. The stem of
the filename must be <emphasis>ifconfig</emphasis>.</para>
<note>
<para>If the procedure in the previous section was not used, udev
@ -38,10 +38,10 @@
<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
not run until the LFS system is booted. So it's unreliable to
determine the interface names being used in LFS system by running
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,
<emphasis>even though in the chroot environment</emphasis>.</para>
<emphasis>even in the chroot environment</emphasis>.</para>
</note>
<para>The following command creates a sample file for the
@ -59,14 +59,14 @@ PREFIX=<replaceable>24</replaceable>
BROADCAST=<replaceable>192.168.1.255</replaceable></literal>
EOF</userinput></screen>
<para>The values in italics must be changed in every file to match
the proper setup.</para>
<para>The values in italics must be changed in each file, to set
the interfaces up correctly.</para>
<para>If the <envar>ONBOOT</envar> variable is set to <quote>yes</quote> the
System V network script will bring up the Network Interface Card (NIC) during
the system boot process. If set to anything but <quote>yes</quote> the NIC
will be ignored by the network script and not be automatically brought up.
The interface can be manually started or stopped with the
the system boot process. If set to anything besides <quote>yes</quote>, the NIC
will be ignored by the network script and will not be started automatically.
Interfaces can be manually started or stopped with the
<command>ifup</command> and <command>ifdown</command> commands.</para>
<para>The <envar>IFACE</envar> variable defines the interface name,
@ -84,11 +84,11 @@ EOF</userinput></screen>
gateway IP address, if one is present. If not, then comment out the
variable entirely.</para>
<para>The <envar>PREFIX</envar> variable contains the number of
bits used in the subnet. Each octet in an IP address is 8 bits. If the
subnet's netmask is 255.255.255.0, then it is using the first three octets
<para>The <envar>PREFIX</envar> variable specifies the number of
bits used in the subnet. Each segment of an IP address is 8 bits. If the
subnet's netmask is 255.255.255.0, then it is using the first three segments
(24 bits) to specify the network number. If the netmask is 255.255.255.240,
it would be using the first 28 bits. Prefixes longer than 24 bits are
the subnet is using the first 28 bits. Prefixes longer than 24 bits are
commonly used by DSL and cable-based Internet Service Providers (ISPs).
In this example (PREFIX=24), the netmask is 255.255.255.0. Adjust the
<envar>PREFIX</envar> variable according to your specific subnet.
@ -139,7 +139,7 @@ EOF</userinput></screen>
</sect2>
<sect2 id="ch-config-hostname">
<title>Configuring the system hostname</title>
<title>Configuring the System Hostname</title>
<indexterm zone="ch-config-hostname">
<primary sortas="d-hostname">hostname</primary>
@ -156,7 +156,7 @@ EOF</userinput></screen>
<para><replaceable>&lt;lfs&gt;</replaceable> needs to be replaced with the
name given to the computer. Do not enter the Fully Qualified Domain Name
(FQDN) here. That information is put in the
(FQDN) here. That information goes in the
<filename>/etc/hosts</filename> file.</para>
</sect2>

View File

@ -17,27 +17,28 @@
<para>Udev, by default, names network devices according to Firmware/BIOS
data or physical characteristics like the bus, slot, or MAC address. The
purpose of this naming convention is to ensure that network devices are
named consistently and not based on the time the network card was
discovered. For example, on a computer having two network cards made by
Intel and Realtek, the network card manufactured by Intel may become eth0
and the Realtek card becomes eth1. In some cases, after a reboot the cards
could get renumbered the other way around.</para>
named consistently, not based on when the network card was
discovered. In older versions of Linux&mdash;on a computer with two
network cards made by Intel and Realtek, for instance&mdash;the
network card manufactured by Intel might have become eth0
while the Realtek card became eth1. After a reboot, the cards
would sometimes get renumbered the other way around.</para>
<para>In the new naming scheme, typical network device names would then
be something like enp5s0 or wlp3s0. If this naming convention is not
desired, the traditional naming scheme or a custom scheme can be
<para>In the new naming scheme, typical network device names are
something like enp5s0 or wlp3s0. If this naming convention is not
desired, the traditional naming scheme, or a custom scheme, can be
implemented.</para>
<sect3>
<title>Disabling Persistent Naming on the Kernel Command Line</title>
<para>The traditional naming scheme using eth0, eth1, etc can be
<para>The traditional naming scheme using eth0, eth1, etc. can be
restored by adding <userinput>net.ifnames=0</userinput> on the
kernel command line. This is most appropriate for those systems
that have only one ethernet device of the same type. Laptops
often have multiple ethernet connections that are named eth0 and
wlan0 and are also candidates for this method. The command line
is passed in the GRUB configuration file.
kernel command line. This is most appropriate for systems
that have just one ethernet device of a particular type. Laptops
often have two ethernet connections named eth0 and
wlan0; such laptops can also use this method. The command line
is in the GRUB configuration file.
See <xref linkend="grub-cfg"/>.</para>
</sect3>
@ -56,23 +57,22 @@
<screen role="nodump"><userinput>cat /etc/udev/rules.d/70-persistent-net.rules</userinput></screen>
<note><para>In some cases such as when MAC addresses have been assigned to
a network card manually or in a virtual environment such as Qemu or Xen,
the network rules file may not have been generated because addresses
<note><para>In some cases, such as when MAC addresses have been assigned to
a network card manually, or in a virtual environment such as Qemu or Xen,
the network rules file may not be generated because addresses
are not consistently assigned. In these cases, this method cannot
be used.</para></note>
<para>The file begins with a comment block followed by two lines for each
<para>The file begins with a comment block, followed by two lines for each
NIC. The first line for each NIC is a commented description showing its
hardware IDs (e.g. its PCI vendor and device IDs, if it's a PCI card),
along with its driver in parentheses, if the driver can be found. Neither
along with its driver (in parentheses, if the driver can be found). Neither
the hardware ID nor the driver is used to determine which name to give an
interface; this information is only for reference. The second line is the
udev rule that matches this NIC and actually assigns it a name.</para>
<para>All udev rules are made up of several keys, separated by commas and
optional whitespace. This rule's keys and an explanation of each of them
are as follows:</para>
<para>All udev rules are made up of several keywords, separated by commas and
optional whitespace. Here are the keywords, and an explanation of each one:</para>
<itemizedlist>
<listitem>
@ -88,10 +88,10 @@
<para><literal>DRIVERS=="?*"</literal> - This exists so that udev will
ignore VLAN or bridge sub-interfaces (because these sub-interfaces do
not have drivers). These sub-interfaces are skipped because the name
that would be assigned would collide with their parent devices.</para>
that would be assigned would collide with the parent devices.</para>
</listitem>
<listitem>
<para><literal>ATTR{address}</literal> - The value of this key is the
<para><literal>ATTR{address}</literal> - The value of this keyword is the
NIC's MAC address.</para>
</listitem>
<listitem>
@ -102,7 +102,7 @@
skipped: there would be a name collision otherwise.</para>
</listitem>
<listitem>
<para><literal>NAME</literal> - The value of this key is the name that
<para><literal>NAME</literal> - The value of this keyword is the name that
udev will assign to this interface.</para>
</listitem>
</itemizedlist>
@ -110,7 +110,7 @@
<para>The value of <literal>NAME</literal> is the important part. Make sure
you know which name has been assigned to each of your network cards before
proceeding, and be sure to use that <literal>NAME</literal> value when
creating your configuration files below.</para>
creating your network configuration files.</para>
</sect3>
@ -118,10 +118,10 @@
<sect2 revision="sysv">
<title>CD-ROM symlinks</title>
<title>CD-ROM Symlinks</title>
<para>Some software that you may want to install later (e.g., various
media players) expect the <filename class="symlink">/dev/cdrom</filename>
media players) expects the <filename class="symlink">/dev/cdrom</filename>
and <filename class="symlink">/dev/dvd</filename> symlinks to exist, and
to point to a CD-ROM or DVD-ROM device. Also, it may be convenient to put
references to those symlinks into <filename>/etc/fstab</filename>. Udev
@ -139,15 +139,15 @@
<command>ata_id</command> or <command>scsi_id</command> programs, depending
on which type of device you have.</para>
<para>There are advantages to each approach; the correct approach to use
will depend on what kinds of device changes may happen. If you expect the
<para>There are advantages to each approach; the correct approach
depends on what kinds of device changes may happen. If you expect the
physical path to the device (that is, the ports and/or slots that it plugs
into) to change, for example because you plan on moving the drive to a
different IDE port or a different USB connector, then you should use the
<quote>by-id</quote> mode. On the other hand, if you expect the device's
identification to change, for example because it may die, and you would
replace it with a different device with the same capabilities and which
is plugged into the same connectors, then you should use the
identification to change, for example because it may die, and you intend
to replace it with a different device that
plugs into the same connectors, then you should use the
<quote>by-path</quote> mode.</para>
<para>If either type of change is possible with your drive, then choose a
@ -198,13 +198,13 @@
this is only an issue if you need the symlinks on both systems to point to
the same device. If you need that, then inspect (and possibly edit) the
generated <filename>/etc/udev/rules.d/70-persistent-cd.rules</filename>
file after booting, to make sure the assigned symlinks match what you need.</para>
file after booting, to make sure the assigned symlinks match your needs.</para>
</sect2>
<sect2>
<title>Dealing with duplicate devices</title>
<title>Dealing with Duplicate Devices</title>
<para>As explained in <xref linkend="ch-config-udev"/>, the order in
which devices with the same function appear in
@ -214,7 +214,7 @@
<filename>/dev/video1</filename> refers to the tuner, and sometimes
after a reboot the order changes.
For all classes of hardware except sound cards and network cards, this is
fixable by creating udev rules for custom persistent symlinks.
fixable by creating udev rules to create persistent symlinks.
The case of network cards is covered separately in
<xref linkend="ch-config-network"/>, and sound card configuration can
be found in <ulink url="&blfs-book;postlfs/devices.html">BLFS</ulink>.</para>

View File

@ -16,23 +16,23 @@
</indexterm>
<para>In <xref linkend="chapter-building-system"/>, we installed the udev
package when <phrase revision="sysv">eudev</phrase>
daemon when <phrase revision="sysv">eudev</phrase>
<phrase revision="systemd">systemd</phrase> was built. Before we go into the
details regarding how this works, a brief history of previous methods of
details regarding how udev works, a brief history of previous methods of
handling devices is in order.</para>
<para>Linux systems in general traditionally used a static device creation
method, whereby a great many device nodes were created under <filename
class="directory">/dev</filename> (sometimes literally thousands of nodes),
regardless of whether the corresponding hardware devices actually existed. This
was typically done via a <command>MAKEDEV</command> script, which contains a
was typically done via a <command>MAKEDEV</command> script, which contained a
number of calls to the <command>mknod</command> program with the relevant
major and minor device numbers for every possible device that might exist in
the world.</para>
<para>Using the udev method, only those devices which are detected by the
kernel get device nodes created for them. Because these device nodes will be
created each time the system boots, they will be stored on a <systemitem
<para>Using the udev method, device nodes are only created for those devices
which are detected by the kernel. These device nodes are
created each time the system boots; they are stored in a <systemitem
class="filesystem">devtmpfs</systemitem> file system (a virtual file system
that resides entirely in system memory). Device nodes do not require much
space, so the memory that is used is negligible.</para>
@ -51,23 +51,23 @@
class="filesystem">devfs</systemitem> was the way it handled device
detection, creation, and naming. The latter issue, that of device node
naming, was perhaps the most critical. It is generally accepted that if
device names are allowed to be configurable, then the device naming policy
should be up to a system administrator, not imposed on them by any
particular developer(s). The <systemitem
device names are configurable, the device naming policy
should be chosen by system administrators, and not imposed on them by the
developer(s). The <systemitem
class="filesystem">devfs</systemitem> file system also suffered from race
conditions that were inherent in its design and could not be fixed without a
substantial revision to the kernel. It was marked as deprecated for a long
period &ndash; due to a lack of maintenance &ndash; and was finally removed
conditions that were inherent in its design; these could not be fixed without a
substantial revision of the kernel. <systemitem class="filesystem">devfs</systemitem>
was marked as deprecated for a long
time, and was finally removed
from the kernel in June, 2006.</para>
<para>With the development of the unstable 2.5 kernel tree, later released
as the 2.6 series of stable kernels, a new virtual filesystem called
<systemitem class="filesystem">sysfs</systemitem> came to be. The job of
<systemitem class="filesystem">sysfs</systemitem> is to export a view of
<systemitem class="filesystem">sysfs</systemitem> is to provide information about
the system's hardware configuration to userspace processes. With this
userspace-visible representation, the possibility of developing a userspace
replacement for <systemitem class="filesystem">devfs</systemitem> became
much more realistic.</para>
userspace-visible representation, it became possible to develop a userspace
replacement for <systemitem class="filesystem">devfs</systemitem>.</para>
</sect2>
@ -81,12 +81,13 @@
was mentioned briefly above. One may wonder how <systemitem
class="filesystem">sysfs</systemitem> knows about the devices present on
a system and what device numbers should be used for them. Drivers that
have been compiled into the kernel directly register their objects with a
have been compiled into the kernel register their objects in
<systemitem class="filesystem">sysfs</systemitem> (devtmpfs internally)
as they are detected by the kernel. For drivers compiled as modules, this
registration will happen when the module is loaded. Once the <systemitem
class="filesystem">sysfs</systemitem> filesystem is mounted (on /sys),
data which the drivers register with <systemitem
as they are detected by the kernel. For drivers compiled as modules,
registration happens when the module is loaded. Once the <systemitem
class="filesystem">sysfs</systemitem> filesystem is mounted (on
<filename class="directory">/sys</filename>),
data which the drivers have registered with <systemitem
class="filesystem">sysfs</systemitem> are available to userspace
processes and to udevd for processing (including modifications to device
nodes).</para>
@ -96,13 +97,13 @@
<sect3 id='ch-config-udev-device-node-creation'>
<title>Device Node Creation</title>
<para>Device files are created by the kernel by the <systemitem
<para>Device files are created by the kernel in the <systemitem
class="filesystem">devtmpfs</systemitem> file system. Any driver that
wishes to register a device node will go through the <systemitem
wishes to register a device node will use the <systemitem
class="filesystem">devtmpfs</systemitem> (via the driver core) to do it.
When a <systemitem class="filesystem">devtmpfs</systemitem> instance is
mounted on <filename class="directory">/dev</filename>, the device node
will initially be created with a fixed name, permissions, and
will initially be exposed to userspace with a fixed name, permissions, and
owner.</para>
<para>A short time later, the kernel will send a uevent to <command>
@ -172,7 +173,7 @@
creating device nodes.</para>
<sect3>
<title>A kernel module is not loaded automatically</title>
<title>A Kernel Module Is Not Loaded Automatically</title>
<para>Udev will only load a module if it has a bus-specific alias and the
bus driver properly exports the necessary aliases to <systemitem
@ -206,8 +207,8 @@
</sect3>
<sect3>
<title>A kernel module is not loaded automatically, and udev is not
intended to load it</title>
<title>A Kernel Module Is Not Loaded Automatically, and Udev Is Not
Intended to Load It</title>
<para>If the <quote>wrapper</quote> module only enhances the
functionality provided by some other module (e.g.,
@ -236,7 +237,7 @@
</sect3>
<sect3>
<title>Udev loads some unwanted module</title>
<title>Udev Loads Some Unwanted Module</title>
<para>Either don't build the module, or blacklist it in a
<filename>/etc/modprobe.d/blacklist.conf</filename> file as done with the
@ -250,7 +251,7 @@
</sect3>
<sect3>
<title>Udev creates a device incorrectly, or makes a wrong symlink</title>
<title>Udev Creates a Device Incorrectly, or Makes the Wrong Symlink</title>
<para>This usually happens if a rule unexpectedly matches a device. For
example, a poorly-written rule can match both a SCSI disk (as desired)
@ -261,7 +262,7 @@
</sect3>
<sect3>
<title>Udev rule works unreliably</title>
<title>Udev Rule Works Unreliably</title>
<para>This may be another manifestation of the previous problem. If not,
and your rule uses <systemitem class="filesystem">sysfs</systemitem>
@ -275,15 +276,15 @@
</sect3>
<sect3>
<title>Udev does not create a device</title>
<title>Udev Does Not Create a Device</title>
<para>Further text assumes that the driver is built statically into the
kernel or already loaded as a module, and that you have already checked
that udev doesn't create a misnamed device.</para>
<para>First, be certain that the driver is built into the
kernel or already loaded as a module, and that
udev isn't creating a misnamed device.</para>
<para>Udev has no information needed to create a device node if a kernel
driver does not export its data to
<systemitem class="filesystem">sysfs</systemitem>. This is most common
<para>If a kernel driver does not export its data to
<systemitem class="filesystem">sysfs</systemitem>, udev lacks the
information needed to create a device node. This is most likely to happen
with third party drivers from outside the kernel tree. Create a static
device node in <filename>/usr/lib/udev/devices</filename> with the
appropriate major/minor numbers (see the file
@ -295,7 +296,7 @@
</sect3>
<sect3>
<title>Device naming order changes randomly after rebooting</title>
<title>Device Naming Order Changes Randomly After Rebooting</title>
<para>This is due to the fact that udev, by design, handles uevents and
loads modules in parallel, and thus in an unpredictable order. This will

View File

@ -328,7 +328,7 @@
<listitem>
<para>Libcap</para>
<para>This package implements the user-space interfaces to
<para>This package implements the userspace interfaces to
the POSIX 1003.1e capabilities available in Linux kernels.
</para>
</listitem>