mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-06-19 03:39:20 +01:00
Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk
This commit is contained in:
commit
1e6c82bb09
@ -39,6 +39,16 @@
|
||||
<listitem revision="sysv"> or <listitem revision="systemd"> as
|
||||
appropriate for the entry or if needed the entire day's listitem.
|
||||
-->
|
||||
<listitem revision="systemd">
|
||||
<para>2022-12-28</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[renodr] - Patch systemd against CVE-2022-4415. Fixes
|
||||
<ulink url="&lfs-ticket-root;5187">#5187</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2022-12-31</para>
|
||||
<itemizedlist>
|
||||
@ -91,7 +101,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
|
||||
|
@ -299,6 +299,10 @@
|
||||
<listitem>
|
||||
<para>&readline-fixes-patch;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem revision="systemd">
|
||||
<para>&systemd-upstream-patch;</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<itemizedlist>
|
||||
|
@ -135,7 +135,7 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<!--
|
||||
|
||||
<varlistentry revision="systemd">
|
||||
<term>Systemd Upstream Patch - <token>&systemd-upstream-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
@ -143,7 +143,7 @@
|
||||
<para>MD5 sum: <literal>&systemd-upstream-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
-->
|
||||
|
||||
<!--
|
||||
<varlistentry>
|
||||
<term>Xz Upstream Fix Patch - <token>&xz-upstream-fix-patch-size;</token>:</term>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<primary sortas="e-/dev/">/dev/*</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Applications running in user space utilize various file
|
||||
<para>Applications running in userspace utilize various file
|
||||
systems created by the kernel to communicate
|
||||
with the kernel itself. These file systems are virtual: no disk
|
||||
space is used for them. The content of these file systems resides in
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
@ -61,7 +61,7 @@
|
||||
<screen><userinput remap="install">make LN='ln -f' install</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the make environment variable:</title>
|
||||
<title>The meaning of the overridden make variable:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><envar>LN='ln -f'</envar></term>
|
||||
@ -88,7 +88,7 @@ cp -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-&gawk-version;</
|
||||
<segtitle>Installed directories</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>awk (link to gawk), gawk, and awk-&gawk-version;</seg>
|
||||
<seg>awk (link to gawk), gawk, and gawk-&gawk-version;</seg>
|
||||
<seg>filefuncs.so, fnmatch.so, fork.so, inplace.so, intdiv.so, ordchr.so,
|
||||
readdir.so, readfile.so, revoutput.so, revtwoway.so, rwarray.so,
|
||||
and time.so (all in /usr/lib/gawk)</seg>
|
||||
|
@ -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>
|
||||
|
@ -77,7 +77,7 @@
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-cache-owner=bin</parameter></term>
|
||||
<listitem>
|
||||
<para>This makes the system-wide cache files be owned by user
|
||||
<para>This changes ownership of the system-wide cache files to user
|
||||
<systemitem class="username">bin</systemitem>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -55,7 +55,7 @@
|
||||
<para>If the Linux kernel needs to be upgraded (for example, from
|
||||
5.10.17 to 5.10.18 or 5.11.1), nothing else needs to be rebuilt.
|
||||
The system will keep working fine thanks to the well-defined interface
|
||||
between the kernel and user space. Specifically, Linux API headers
|
||||
between the kernel and userspace. Specifically, Linux API headers
|
||||
need not be (and should not be, see the next item) upgraded
|
||||
along with the kernel. You will merely need to reboot your system to use the
|
||||
upgraded kernel.</para>
|
||||
|
@ -40,7 +40,7 @@
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Procps-ng</title>
|
||||
|
||||
<para>Prepare procps-ng for compilation:</para>
|
||||
<para>Prepare Procps-ng for compilation:</para>
|
||||
|
||||
<screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr \
|
||||
--docdir=/usr/share/doc/procps-ng-&procps-ng-version; \
|
||||
@ -60,7 +60,7 @@
|
||||
<term><parameter>--disable-kill</parameter></term>
|
||||
<listitem>
|
||||
<para>This switch disables building the <command>kill</command>
|
||||
command that will be installed by the Util-linux package.</para>
|
||||
command; it will be installed from the Util-linux package.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@ -181,7 +181,7 @@ make check</userinput></screen>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pwait">
|
||||
<!-- <varlistentry id="pwait">
|
||||
<term><command>pwait</command></term>
|
||||
<listitem>
|
||||
<para>Waits for a process to finish before executing.</para>
|
||||
@ -189,7 +189,8 @@ make check</userinput></screen>
|
||||
<primary sortas="b-pwait">pwait</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</varlistentry> This program no longer exists;
|
||||
it's already been removed from the Installed programs list. -->
|
||||
|
||||
<varlistentry id="pwdx">
|
||||
<term><command>pwdx</command></term>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -40,11 +40,11 @@
|
||||
<sect2 role="installation">
|
||||
<title>Installation of systemd</title>
|
||||
|
||||
<!--
|
||||
<para>First, fix an issue introduced by glibc-2.36.</para>
|
||||
|
||||
<para>First, fix a security issue in systemd-coredump:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&systemd-upstream-patch;</userinput></screen>
|
||||
-->
|
||||
|
||||
|
||||
<para>Remove two unneeded groups,
|
||||
<systemitem class="groupname">render</systemitem> and
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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 — halt
|
||||
1 — 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>
|
||||
|
@ -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><lfs></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>
|
||||
|
@ -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—on a computer with two
|
||||
network cards made by Intel and Realtek, for instance—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>
|
||||
|
@ -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 – due to a lack of maintenance – 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
|
||||
class="filesystem">devtmpfs</systemitem> filesystem. Any driver that
|
||||
wishes to register a device node will go through 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 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
|
||||
|
@ -19,25 +19,29 @@
|
||||
<sect2>
|
||||
<title>How Do the System V Bootscripts Work?</title>
|
||||
|
||||
<para>Linux uses a special booting facility named SysVinit that is based on a
|
||||
concept of <emphasis>run-levels</emphasis>. It can be quite different from one
|
||||
system to another, so it cannot be assumed that because things worked in one
|
||||
particular Linux distribution, they should work the same in LFS too. LFS has its
|
||||
own way of doing things, but it respects generally accepted standards.</para>
|
||||
<para>This version of LFS uses a special booting facility named SysVinit, based on a
|
||||
series of <emphasis>run levels</emphasis>. The boot procedure can be quite different from one
|
||||
system to another; the fact that things worked one way in a particular Linux
|
||||
distribution does not guarantee they will work the same way in LFS. LFS has its
|
||||
own way of doing things, but it does respect generally accepted standards.</para>
|
||||
|
||||
<para>There is an alternative boot procedure called <command>systemd</command>. We will
|
||||
not discuss that boot process any further here. For a detailed description visit
|
||||
<ulink url="https://www.linux.com/training-tutorials/understanding-and-using-systemd/"/>.</para>
|
||||
|
||||
<para>SysVinit (which will be referred to as <quote>init</quote> from now on)
|
||||
works using a run-levels scheme. There are seven (numbered 0 to 6) run-levels
|
||||
(actually, there are more run-levels, but they are for special cases and are
|
||||
generally not used. See <filename>init(8)</filename> for more details), and
|
||||
each one of those corresponds to the actions the computer is supposed to
|
||||
perform when it starts up. The default run-level is 3. Here are the
|
||||
descriptions of the different run-levels as they are implemented in LFS:</para>
|
||||
uses a run levels scheme. There are seven run levels, numbered 0 to 6.
|
||||
(Actually, there are more run levels, but the others are for special cases and are
|
||||
generally not used. See <filename>init(8)</filename> for more details.)
|
||||
Each one of the seven corresponds to actions the computer is supposed to
|
||||
perform when it starts up or shuts down. The default run level is 3. Here are the
|
||||
descriptions of the different run levels as they are implemented in LFS:</para>
|
||||
|
||||
<literallayout>0: halt the computer
|
||||
1: single-user mode
|
||||
2: reserved for customization, otherwise does the same as 3
|
||||
2: reserved for customization, otherwise the same as 3
|
||||
3: multi-user mode with networking
|
||||
4: reserved for customization, otherwise does the same as 3
|
||||
4: reserved for customization, otherwise the same as 3
|
||||
5: same as 4, it is usually used for GUI login (like GNOME's <command>gdm</command> or LXDE's <command>lxdm</command>)
|
||||
6: reboot the computer</literallayout>
|
||||
|
||||
@ -45,9 +49,9 @@
|
||||
<para>
|
||||
Classically, run level 2 above was defined as
|
||||
"multi-user mode without networking", but this was only the case
|
||||
many years ago when multiple users could log into a system connected via
|
||||
serial ports. In today's environment it makes no sense and
|
||||
we designate it now as "reserved".
|
||||
many years ago when multiple users could connect to a system via
|
||||
serial ports. In today's environment it makes no sense, and
|
||||
we now say it is "reserved".
|
||||
</para>
|
||||
</note>
|
||||
|
||||
@ -65,8 +69,8 @@
|
||||
<primary sortas="e-/etc/inittab">/etc/inittab</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>During the kernel initialization, the first program that is run
|
||||
is either specified on the command line or, by default
|
||||
<para>During kernel initialization, the first program that is run
|
||||
(if not overridden on the command line) is
|
||||
<command>init</command>. This program reads the initialization file
|
||||
<filename>/etc/inittab</filename>. Create this file with:</para>
|
||||
|
||||
@ -101,8 +105,8 @@ s1:1:respawn:/sbin/sulogin
|
||||
EOF</userinput></screen>
|
||||
|
||||
<para>An explanation of this initialization file is in the man page for
|
||||
<emphasis>inittab</emphasis>. For LFS, the key command that is run is
|
||||
<command>rc</command>. The initialization file above will instruct
|
||||
<emphasis>inittab</emphasis>. In LFS, the key command is
|
||||
<command>rc</command>. The initialization file above instructs
|
||||
<command>rc</command> to run all the scripts starting with an S in the
|
||||
<filename class="directory">/etc/rc.d/rcS.d</filename> directory
|
||||
followed by all the scripts starting with an S in the <filename
|
||||
@ -113,22 +117,22 @@ EOF</userinput></screen>
|
||||
functions in <filename class="directory">/lib/lsb/init-functions</filename>.
|
||||
This library also reads an optional configuration file,
|
||||
<filename>/etc/sysconfig/rc.site</filename>. Any of the system
|
||||
configuration file parameters described in subsequent sections can be
|
||||
alternatively placed in this file allowing consolidation of all system
|
||||
configuration parameters described in subsequent sections can be
|
||||
placed in this file, allowing consolidation of all system
|
||||
parameters in this one file.</para>
|
||||
|
||||
<para>As a debugging convenience, the functions script also logs all output
|
||||
to <filename>/run/var/bootlog</filename>. Since the <filename
|
||||
class="directory">/run</filename> directory is a tmpfs, this file is not
|
||||
persistent across boots, however it is appended to the more permanent file
|
||||
persistent across boots; however, it is appended to the more permanent file
|
||||
<filename>/var/log/boot.log</filename> at the end of the boot process.</para>
|
||||
|
||||
<sect3 id="init-levels" >
|
||||
<title>Changing Run Levels</title>
|
||||
|
||||
<para>Changing run-levels is done with <command>init
|
||||
<para>Changing run levels is done with <command>init
|
||||
<replaceable><runlevel></replaceable></command>, where
|
||||
<replaceable><runlevel></replaceable> is the target run-level. For example, to
|
||||
<replaceable><runlevel></replaceable> is the target run level. For example, to
|
||||
reboot the computer, a user could issue the <command>init 6</command> command,
|
||||
which is an alias for the <command>reboot</command> command. Likewise,
|
||||
<command>init 0</command> is an alias for the <command>halt</command>
|
||||
@ -136,15 +140,15 @@ EOF</userinput></screen>
|
||||
|
||||
<para>There are a number of directories under <filename
|
||||
class="directory">/etc/rc.d</filename> that look like <filename
|
||||
class="directory">rc?.d</filename> (where ? is the number of the run-level) and
|
||||
class="directory">rc?.d</filename> (where ? is the number of the run level) and
|
||||
<filename class="directory">rcS.d</filename>, all containing a number of
|
||||
symbolic links. Some begin with a <emphasis>K</emphasis>, the others begin with
|
||||
symbolic links. Some links begin with a <emphasis>K</emphasis>; the others begin with
|
||||
an <emphasis>S</emphasis>, and all of them have two numbers following the
|
||||
initial letter. The K means to stop (kill) a service and the S means to start a
|
||||
service. The numbers determine the order in which the scripts are run, from 00
|
||||
to 99—the lower the number the earlier it gets executed. When
|
||||
<command>init</command> switches to another run-level, the appropriate services
|
||||
are either started or stopped, depending on the runlevel chosen.</para>
|
||||
to 99—the smaller the number, the sooner tht script runs. When
|
||||
<command>init</command> switches to another run level, the appropriate services
|
||||
are either started or stopped, depending on the run level chosen.</para>
|
||||
|
||||
<para>The real scripts are in <filename
|
||||
class="directory">/etc/rc.d/init.d</filename>. They do the actual work, and
|
||||
@ -227,25 +231,25 @@ EOF</userinput></screen>
|
||||
|
||||
<para>The <filename>/etc/rc.d/init.d/udev</filename> initscript starts
|
||||
<command>udevd</command>, triggers any "coldplug" devices that have
|
||||
already been created by the kernel and waits for any rules to complete.
|
||||
already been created by the kernel, and waits for any rules to complete.
|
||||
The script also unsets the uevent handler from the default of
|
||||
<filename>/sbin/hotplug </filename>. This is done because the kernel no
|
||||
longer needs to call out to an external binary. Instead
|
||||
longer needs to call an external binary. Instead,
|
||||
<command>udevd</command> will listen on a netlink socket for uevents that
|
||||
the kernel raises.</para>
|
||||
|
||||
<para>The <command>/etc/rc.d/init.d/udev_retry</command> initscript takes
|
||||
<para>The <command>/etc/rc.d/init.d/udev_retry</command> script takes
|
||||
care of re-triggering events for subsystems whose rules may rely on
|
||||
filesystems that are not mounted until the <command>mountfs</command>
|
||||
file systems that are not mounted until the <command>mountfs</command>
|
||||
script is run (in particular, <filename class="directory">/usr</filename>
|
||||
and <filename class="directory">/var</filename> may cause this). This
|
||||
script runs after the <command>mountfs</command> script, so those rules
|
||||
(if re-triggered) should succeed the second time around. It is
|
||||
configured from the <filename>/etc/sysconfig/udev_retry</filename> file;
|
||||
configured by the <filename>/etc/sysconfig/udev_retry</filename> file;
|
||||
any words in this file other than comments are considered subsystem names
|
||||
to trigger at retry time. To find the subsystem of a device, use
|
||||
<command>udevadm info --attribute-walk <device></command> where
|
||||
<device> is an absolute path in /dev or /sys such as /dev/sr0 or
|
||||
<device> is an absolute path in /dev or /sys, such as /dev/sr0, or
|
||||
/sys/class/rtc.</para>
|
||||
|
||||
<para>For information on kernel module loading and udev, see
|
||||
@ -260,13 +264,13 @@ EOF</userinput></screen>
|
||||
<secondary>configuring</secondary></indexterm>
|
||||
|
||||
<para>The <command>setclock</command> script reads the time from the hardware
|
||||
clock, also known as the BIOS or the Complementary Metal Oxide Semiconductor
|
||||
clock, also known as the BIOS or Complementary Metal Oxide Semiconductor
|
||||
(CMOS) clock. If the hardware clock is set to UTC, this script will convert the
|
||||
hardware clock's time to the local time using the
|
||||
<filename>/etc/localtime</filename> file (which tells the
|
||||
<command>hwclock</command> program which timezone to use). There is no
|
||||
<command>hwclock</command> program which time zone to use). There is no
|
||||
way to detect whether or not the hardware clock is set to UTC, so this
|
||||
needs to be configured manually.</para>
|
||||
must be configured manually.</para>
|
||||
|
||||
<para>The <command>setclock</command> program is run via
|
||||
<application>udev</application> when the kernel detects the hardware
|
||||
@ -279,9 +283,9 @@ EOF</userinput></screen>
|
||||
clock. If this time matches whatever your watch says, then the hardware clock is
|
||||
set to local time. If the output from <command>hwclock</command> is not local
|
||||
time, chances are it is set to UTC time. Verify this by adding or subtracting
|
||||
the proper amount of hours for the timezone to the time shown by
|
||||
the proper number of hours for your time zone to the time shown by
|
||||
<command>hwclock</command>. For example, if you are currently in the MST
|
||||
timezone, which is also known as GMT -0700, add seven hours to the local
|
||||
time zone, which is also known as GMT -0700, add seven hours to the local
|
||||
time.</para>
|
||||
|
||||
<para>Change the value of the <envar>UTC</envar> variable below
|
||||
@ -325,7 +329,7 @@ EOF</userinput></screen>
|
||||
<para>This section discusses how to configure the <command>console</command>
|
||||
bootscript that sets up the keyboard map, console font, and console kernel log
|
||||
level. If non-ASCII characters (e.g., the copyright sign, the British pound
|
||||
sign and Euro symbol) will not be used and the keyboard is a U.S. one, much
|
||||
sign, and the Euro symbol) will not be used and the keyboard is a U.S. one, much
|
||||
of this section can be skipped. Without the configuration file, (or
|
||||
equivalent settings in <filename>rc.site</filename>), the
|
||||
<command>console</command> bootscript will do nothing.</para>
|
||||
@ -333,11 +337,11 @@ EOF</userinput></screen>
|
||||
<para>The <command>console</command> script reads the
|
||||
<filename>/etc/sysconfig/console</filename> file for configuration
|
||||
information. Decide which keymap and screen font will be used. Various
|
||||
language-specific HOWTOs can also help with this, see <ulink
|
||||
language-specific HOWTOs can also help with this; see <ulink
|
||||
url="https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>. If still in
|
||||
doubt, look in the <filename class="directory">/usr/share/keymaps</filename>
|
||||
and <filename class="directory">/usr/share/consolefonts</filename> directories
|
||||
for valid keymaps and screen fonts. Read <filename>loadkeys(1)</filename> and
|
||||
for valid keymaps and screen fonts. Read the <filename>loadkeys(1)</filename> and
|
||||
<filename>setfont(8)</filename> manual pages to determine the correct
|
||||
arguments for these programs.</para>
|
||||
|
||||
@ -358,7 +362,7 @@ EOF</userinput></screen>
|
||||
<term>KEYMAP</term>
|
||||
<listitem>
|
||||
<para>This variable specifies the arguments for the
|
||||
<command>loadkeys</command> program, typically, the name of keymap
|
||||
<command>loadkeys</command> program, typically, the name of the keymap
|
||||
to load, e.g., <quote>it</quote>. If this variable is not set, the
|
||||
bootscript will not run the <command>loadkeys</command> program,
|
||||
and the default kernel keymap will be used. Note that a few keymaps
|
||||
@ -390,11 +394,11 @@ EOF</userinput></screen>
|
||||
name, <quote>-m</quote>, and the name of the application character
|
||||
map to load. E.g., in order to load the <quote>lat1-16</quote> font
|
||||
together with the <quote>8859-1</quote> application character map
|
||||
(as it is appropriate in the USA),
|
||||
(appropriate in the USA),
|
||||
<!-- because of the copyright sign -->
|
||||
set this variable to <quote>lat1-16 -m 8859-1</quote>.
|
||||
In UTF-8 mode, the kernel uses the application character map for
|
||||
conversion of composed 8-bit key codes in the keymap to UTF-8, and thus
|
||||
In UTF-8 mode, the kernel uses the application character map to
|
||||
convert 8-bit key codes to UTF-8. Therefore
|
||||
the argument of the "-m" parameter should be set to the encoding of the
|
||||
composed key codes in the keymap.</para>
|
||||
|
||||
@ -404,7 +408,7 @@ EOF</userinput></screen>
|
||||
<varlistentry>
|
||||
<term>UNICODE</term>
|
||||
<listitem>
|
||||
<para>Set this variable to <quote>1</quote>, <quote>yes</quote> or
|
||||
<para>Set this variable to <quote>1</quote>, <quote>yes</quote>, or
|
||||
<quote>true</quote> in order to put the
|
||||
console into UTF-8 mode. This is useful in UTF-8 based locales and
|
||||
harmful otherwise.</para>
|
||||
@ -522,7 +526,7 @@ EOF</userinput></screen>
|
||||
UTF-8 mode it is a problem; e.g., for the Greek language, where one
|
||||
sometimes needs to put an accent on the letter <quote>alpha</quote>.
|
||||
The solution is either to avoid the use of UTF-8, or to install the
|
||||
X window system that doesn't have this limitation in its input
|
||||
X window system, which doesn't have this limitation, in its input
|
||||
handling.</para>
|
||||
</listitem>
|
||||
|
||||
@ -531,7 +535,7 @@ EOF</userinput></screen>
|
||||
console cannot be configured to display the needed characters. Users
|
||||
who need such languages should install the X Window System, fonts that
|
||||
cover the necessary character ranges, and the proper input method (e.g.,
|
||||
SCIM, supports a wide variety of languages).</para>
|
||||
SCIM supports a wide variety of languages).</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
@ -565,7 +569,7 @@ EOF</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ch-config-sysklogd">
|
||||
<title>Configuring the sysklogd Script</title>
|
||||
<title>Configuring the Sysklogd Script</title>
|
||||
|
||||
<indexterm zone="ch-config-sysklogd">
|
||||
<primary sortas="d-sysklogd">sysklogd</primary>
|
||||
@ -600,8 +604,8 @@ EOF</userinput></screen>
|
||||
<filename>console</filename>, and <filename>clock</filename> files in the
|
||||
<filename class='directory'>/etc/sysconfig/</filename> directory. If the
|
||||
associated variables are present in both these separate files and
|
||||
<filename>rc.site</filename>, the values in the script specific files have
|
||||
precedence. </para>
|
||||
<filename>rc.site</filename>, the values in the script-specific files take
|
||||
effect. </para>
|
||||
|
||||
<para><filename>rc.site</filename> also contains parameters that can
|
||||
customize other aspects of the boot process. Setting the IPROMPT variable
|
||||
@ -615,8 +619,8 @@ EOF</userinput></screen>
|
||||
<title>Customizing the Boot and Shutdown Scripts</title>
|
||||
|
||||
<para>The LFS boot scripts boot and shut down a system in a fairly
|
||||
efficient manner, but there are a few tweaks that you can make in the
|
||||
rc.site file to improve speed even more and to adjust messages according
|
||||
efficient manner, but there are a few tweaks you can make in the
|
||||
rc.site file to improve speed even more, and to adjust messages according
|
||||
to your preferences. To do this, adjust the settings in
|
||||
the <filename>/etc/sysconfig/rc.site</filename> file above.</para>
|
||||
|
||||
@ -624,18 +628,18 @@ EOF</userinput></screen>
|
||||
|
||||
<listitem><para>During the boot script <filename>udev</filename>, there is
|
||||
a call to <command>udev settle</command> that requires some time to
|
||||
complete. This time may or may not be required depending on devices present
|
||||
complete. This time may or may not be required depending on the devices
|
||||
in the system. If you only have simple partitions and a single ethernet
|
||||
card, the boot process will probably not need to wait for this command. To
|
||||
skip it, set the variable OMIT_UDEV_SETTLE=y.</para></listitem>
|
||||
|
||||
<listitem><para>The boot script <filename>udev_retry</filename> also runs
|
||||
<command>udev settle</command> by default. This command is only needed by
|
||||
default if the <filename class='directory'>/var</filename> directory is
|
||||
separately mounted. This is because the clock needs the file
|
||||
<filename>/var/lib/hwclock/adjtime</filename>. Other customizations may
|
||||
<command>udev settle</command> by default. This command is only needed
|
||||
if the <filename class='directory'>/var</filename> directory is
|
||||
separately mounted, because the clock needs the
|
||||
<filename>/var/lib/hwclock/adjtime</filename> file. Other customizations may
|
||||
also need to wait for udev to complete, but in many installations it is not
|
||||
needed. Skip the command by setting the variable OMIT_UDEV_RETRY_SETTLE=y.
|
||||
necessary. Skip the command by setting the variable OMIT_UDEV_RETRY_SETTLE=y.
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para>By default, the file system checks are silent. This can
|
||||
@ -664,7 +668,7 @@ EOF</userinput></screen>
|
||||
|
||||
<listitem><para>During shutdown, the <command>init</command> program sends
|
||||
a TERM signal to each program it has started (e.g. agetty), waits for a set
|
||||
time (default 3 seconds), and sends each process a KILL signal and waits
|
||||
time (default 3 seconds), then sends each process a KILL signal and waits
|
||||
again. This process is repeated in the <command>sendsignals</command>
|
||||
script for any processes that are not shut down by their own scripts. The
|
||||
delay for <command>init</command> can be set by passing a parameter. For
|
||||
|
10
patches.ent
10
patches.ent
@ -91,11 +91,11 @@
|
||||
<!ENTITY sysvinit-consolidated-patch-md5 "17ffccbb8e18c39e8cedc32046f3a475">
|
||||
<!ENTITY sysvinit-consolidated-patch-size "2.5 KB">
|
||||
|
||||
<!--
|
||||
<!ENTITY systemd-upstream-patch "systemd-&systemd-version;-glibc_2.36_fix-1.patch">
|
||||
<!ENTITY systemd-upstream-patch-md5 "fd8dc901e73ad00dc72a351a0d4ac48c">
|
||||
<!ENTITY systemd-upstream-patch-size "3.0 KB">
|
||||
-->
|
||||
|
||||
<!ENTITY systemd-upstream-patch "systemd-&systemd-version;-security_fix-1.patch">
|
||||
<!ENTITY systemd-upstream-patch-md5 "da817e69e897d35cdffd7c45ea06be39">
|
||||
<!ENTITY systemd-upstream-patch-size "76.0 KB">
|
||||
|
||||
<!--
|
||||
<!ENTITY xz-upstream-fix-patch "xz-&xz-version;-upstream_fix-1.patch">
|
||||
<!ENTITY xz-upstream-fix-patch-md5 "584c72ea3d8f7502b2770670f3090788">
|
||||
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user