diff --git a/chapter09/etcshells.xml b/chapter09/etcshells.xml index 30961c80c..a0d5f21a8 100644 --- a/chapter09/etcshells.xml +++ b/chapter09/etcshells.xml @@ -23,7 +23,7 @@ The shells file contains a list of login shells on the system. Applications use this file to determine whether a shell is valid. For each shell a single line should be - present, consisting of the shell's path, relative to the root of the + present, consisting of the shell's path relative to the root of the directory structure (/). For example, this file is consulted by chsh diff --git a/chapter09/inputrc.xml b/chapter09/inputrc.xml index 00d36877f..de5401d2c 100644 --- a/chapter09/inputrc.xml +++ b/chapter09/inputrc.xml @@ -15,14 +15,14 @@ The inputrc file is the configuration file for - the Readline library, which provides editing capabilities while the user is + the readline library, which provides editing capabilities while the user is entering a line from the terminal. It works by translating keyboard inputs - into specific actions. Readline is used by Bash and most other shells as + into specific actions. Readline is used by bash and most other shells as well as many other applications. Most people do not need user-specific functionality so the command below creates a global /etc/inputrc used by everyone who - logs in. If you later decide you need to override the defaults on a per-user + logs in. If you later decide you need to override the defaults on a per user basis, you can create a .inputrc file in the user's home directory with the modified mappings. diff --git a/chapter09/introduction.xml b/chapter09/introduction.xml index cbc197a7b..875003f14 100644 --- a/chapter09/introduction.xml +++ b/chapter09/introduction.xml @@ -18,12 +18,6 @@ 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. - - System V @@ -39,15 +33,13 @@ /etc/inittab file and is organized into run levels that can be run by the user: - -0 — halt +0 — halt 1 — Single user mode 2 — Multiuser, without networking 3 — Full multiuser mode 4 — User definable 5 — Full multiuser mode with display manager -6 — reboot - +6 — reboot The usual default run level is 3 or 5. @@ -69,7 +61,7 @@ - Slower to boot. A medium speed base LFS system + May be slower to boot. A medium speed base LFS system takes 8-12 seconds where the boot time is measured from the first kernel message to the login prompt. Network connectivity is typically established about 2 seconds @@ -94,132 +86,6 @@ - - + diff --git a/chapter09/network.xml b/chapter09/network.xml index b527258ee..45cd1d438 100644 --- a/chapter09/network.xml +++ b/chapter09/network.xml @@ -13,17 +13,7 @@ network configuring - Creating Network Interface Configuration Files @@ -37,7 +27,7 @@ address(es), subnet masks, and so forth. It is necessary that the stem of the filename be ifconfig. - If the procedure in the previous section was not used, Udev + If the procedure in the previous section was not used, udev will assign network card interface names based on system physical characteristics such as enp2s1. If you are not sure what your interface name is, you can always run ip link or ls @@ -64,7 +54,7 @@ EOF If the ONBOOT variable is set to yes the System V network script will bring up the Network Interface Card (NIC) during - booting of the system. If set to anything but yes the NIC + the system boot process. If set to anything but yes 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 ifup and ifdown commands. diff --git a/chapter09/profile.xml b/chapter09/profile.xml index 226dd9fac..ec39d3a30 100644 --- a/chapter09/profile.xml +++ b/chapter09/profile.xml @@ -103,8 +103,8 @@ LC_ALL=<locale name> locale int_prefix encoding used by the locale, the local currency, and the prefix to dial before the telephone number in order to get into the country. If any of the commands above fail with a message similar to the one shown below, this means - that your locale was either not installed in Chapter 6 or is not supported by - the default installation of Glibc. + that your locale was either not installed in + or is not supported by the default installation of Glibc. locale: Cannot set LC_* to default locale: No such file or directory @@ -114,7 +114,7 @@ LC_ALL=<locale name> locale int_prefix Glibc. - Some packages beyond LFS may also lack support for your chosen locale. One + Other packages can also function incorrectly (but may not necessarily display any error messages) if the locale name does not meet their expectations. In those cases, investigating how other Linux distributions support your locale @@ -145,7 +145,7 @@ export LANG=<ll>_<CC>.<charmap><@modifiers> # End /etc/profile EOF - The C (default) and en_US (the recommended + The C (default) and en_US.utf8 (the recommended one for United States English users) locales are different. C uses the US-ASCII 7-bit character set, and treats bytes with the high bit set as invalid characters. That's why, e.g., the ls command diff --git a/chapter09/symlinks.xml b/chapter09/symlinks.xml index 951e6976d..3b46a67b0 100644 --- a/chapter09/symlinks.xml +++ b/chapter09/symlinks.xml @@ -21,7 +21,7 @@ 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 - get renumbered the other way around. + could get renumbered the other way around. In the new naming scheme, typical network device names would then be something like enp5s0 or wlp3s0. If this naming convention is not @@ -44,7 +44,7 @@ Creating Custom Udev Rules - The naming scheme can be customized by creating custom Udev + The naming scheme can be customized by creating custom udev rules. A script has been included that generates the initial rules. Generate these rules by running: @@ -68,24 +68,24 @@ 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. + udev rule that matches this NIC and actually assigns it a name. - All Udev rules are made up of several keys, separated by commas and + 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: - SUBSYSTEM=="net" - This tells Udev to ignore + SUBSYSTEM=="net" - This tells udev to ignore devices that are not network cards. - ACTION=="add" - This tells Udev to ignore this + ACTION=="add" - This tells udev to ignore this rule for a uevent that isn't an add ("remove" and "change" uevents also happen, but don't need to rename network interfaces). - DRIVERS=="?*" - This exists so that Udev will + DRIVERS=="?*" - 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. @@ -96,14 +96,14 @@ ATTR{type}=="1" - This ensures the rule only - matches the primary interface in the case of certain wireless drivers, + matches the primary interface in the case of certain wireless drivers which create multiple virtual interfaces. The secondary interfaces are skipped for the same reason that VLAN and bridge sub-interfaces are skipped: there would be a name collision otherwise. NAME - The value of this key is the name that - Udev will assign to this interface. + udev will assign to this interface. @@ -133,8 +133,8 @@ default for USB and FireWire devices), where the rules it creates depend on the physical path to the CD or DVD device. Second, it can operate in by-id mode (default for IDE and SCSI devices), where the - rules it creates depend on identification strings stored in the CD or DVD - device itself. The path is determined by Udev's path_id + rules it creates depend on identification strings stored on the CD or DVD + device itself. The path is determined by udev's path_id script, and the identification strings are read from the hardware by its ata_id or scsi_id programs, depending on which type of device you have. @@ -159,11 +159,11 @@ External devices (for example, a USB-connected CD drive) should not use by-path persistence, because each time the device is plugged into a new external port, its physical path will change. All - externally-connected devices will have this problem if you write Udev rules + externally-connected devices will have this problem if you write udev rules to recognize them by their physical path; the problem is not limited to CD and DVD drives. - If you wish to see the values that the Udev scripts will use, then + If you wish to see the values that the udev scripts will use, then for the appropriate CD-ROM device, find the corresponding directory under /sys (e.g., this can be /sys/block/hdd) and @@ -182,18 +182,18 @@ as follows (where mode is one of by-id or by-path): -sed -i -e 's/"write_cd_rules"/"write_cd_rules mode"/' \ - /etc/udev/rules.d/83-cdrom-symlinks.rules +sed -e 's/"write_cd_rules"/"write_cd_rules mode"/' \ + -i /etc/udev/rules.d/83-cdrom-symlinks.rules Note that it is not necessary to create the rules files or symlinks - at this time, because you have bind-mounted the host's - /dev directory into the LFS system, + at this time because you have bind-mounted the host's + /dev directory into the LFS system and we assume the symlinks exist on the host. The rules and symlinks will be created the first time you boot your LFS system. However, if you have multiple CD-ROM devices, then the symlinks generated at that time may point to different devices than they point to on - your host, because devices are not discovered in a predictable order. The + your host because devices are not discovered in a predictable order. The assignments created when you first boot the LFS system will be stable, so 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 @@ -212,9 +212,9 @@ E.g., if you have a USB web camera and a TV tuner, sometimes /dev/video0 refers to the camera and /dev/video1 refers to the tuner, and sometimes - after a reboot the order changes to the opposite one. + 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 for custom persistent symlinks. The case of network cards is covered separately in , and sound card configuration can be found in BLFS. @@ -237,10 +237,8 @@ cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF" # Persistent symlinks for webcam and tuner -KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", \ - SYMLINK+="webcam" -KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", \ - SYMLINK+="tvtuner" +KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam" +KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner" EOF diff --git a/chapter09/udev.xml b/chapter09/udev.xml index 6060849be..508795a03 100644 --- a/chapter09/udev.xml +++ b/chapter09/udev.xml @@ -15,7 +15,7 @@ usage - In , we installed the Udev + In , we installed the udev package when eudev systemd was built. Before we go into the details regarding how this works, a brief history of previous methods of @@ -30,7 +30,7 @@ major and minor device numbers for every possible device that might exist in the world. - Using the Udev method, only those devices which are detected by the + 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 devtmpfs file system (a virtual file system @@ -135,7 +135,7 @@ /sys/bus/pci/devices/0000:00:0d.0/modalias file might contain the string pci:v00001319d00000801sv00001319sd00001319bc04sc01i00. - The default rules provided with Udev will cause udevd + The default rules provided with udev will cause udevd to call out to /sbin/modprobe with the contents of the MODALIAS uevent environment variable (which should be the same as the contents of the modalias file in sysfs), @@ -149,7 +149,7 @@ be prevented. The kernel itself is also able to load modules for network - protocols, filesystems and NLS support on demand. + protocols, filesystems, and NLS support on demand. @@ -177,12 +177,12 @@ Udev will only load a module if it has a bus-specific alias and the bus driver properly exports the necessary aliases to sysfs. In other cases, one should - arrange module loading by other means. With Linux-&linux-version;, Udev is + arrange module loading by other means. With Linux-&linux-version;, udev is known to load properly-written drivers for INPUT, IDE, PCI, USB, SCSI, SERIO, and FireWire devices. To determine if the device driver you require has the necessary - support for Udev, run modinfo with the module name as + support for udev, run modinfo with the module name as the argument. Now try locating the device directory under /sys/bus and check whether there is a modalias file there. @@ -190,7 +190,7 @@ If the modalias file exists in sysfs, the driver supports the device and can talk to it directly, but doesn't have the alias, it is a bug in the - driver. Load the driver without the help from Udev and expect the issue + driver. Load the driver without the help from udev and expect the issue to be fixed later. If there is no modalias file in the relevant @@ -206,7 +206,7 @@ - A kernel module is not loaded automatically, and Udev is not + <title>A kernel module is not loaded automatically, and udev is not intended to load it If the wrapper module only enhances the @@ -214,7 +214,7 @@ snd-pcm-oss enhances the functionality of snd-pcm by making the sound cards available to OSS applications), configure modprobe to load the wrapper - after Udev loads the wrapped module. To do this, add a + after udev loads the wrapped module. To do this, add a softdep line to the corresponding /etc/modprobe.d/<filename>.conf file. For example: @@ -279,7 +279,7 @@ 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. + that udev doesn't create a misnamed device. Udev has no information needed to create a device node if a kernel driver does not export its data to @@ -297,12 +297,12 @@ Device naming order changes randomly after rebooting - This is due to the fact that Udev, by design, handles uevents and + 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 never be fixed. You should not rely upon the kernel device names being stable. Instead, create your own rules that make symlinks with stable names based on some stable attributes of the device, such as a - serial number or the output of various *_id utilities installed by Udev. + serial number or the output of various *_id utilities installed by udev. See and for examples. diff --git a/chapter09/usage.xml b/chapter09/usage.xml index 4a4cf6c36..d59b38b29 100644 --- a/chapter09/usage.xml +++ b/chapter09/usage.xml @@ -235,50 +235,6 @@ EOF For information on kernel module loading and udev, see . - @@ -293,11 +249,11 @@ EOF (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 /etc/localtime file (which tells the - hwclock program which timezone the user is in). There is no + hwclock program which timezone 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. - The setclock is run via + The setclock program is run via udev when the kernel detects the hardware capability upon boot. It can also be run manually with the stop parameter to store the system time to the CMOS clock. @@ -315,7 +271,7 @@ EOF Change the value of the UTC variable below to a value of 0 (zero) if the hardware clock - is not set to UTC time. + is NOT set to UTC time. Create a new file /etc/sysconfig/clock by running the following: @@ -336,7 +292,7 @@ EOF at . It explains issues such as time zones, UTC, and the TZ environment variable. - The CLOCKPARAMS and UTC paramaters may be alternatively set + The CLOCKPARAMS and UTC paramaters may also be set in the /etc/sysconfig/rc.site file. @@ -352,7 +308,7 @@ EOF This section discusses how to configure the console - bootscript that sets up the keyboard map, console font and console kernel log + 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 of this section can be skipped. Without the configuration file, (or @@ -505,7 +461,7 @@ EOF Due to the use of a 512-glyph LatArCyrHeb-16 font in the previous example, bright colors are no longer available on the Linux console unless - a framebuffer is used. If one wants to have bright colors without + a framebuffer is used. If one wants to have bright colors without a framebuffer and can live without characters not belonging to his language, it is still possible to use a language-specific 256-glyph font, as illustrated below: @@ -548,7 +504,7 @@ EOF are not multibyte. This deficiency doesn't affect keymaps for European languages, because there accents are added to unaccented ASCII characters, or two ASCII characters are composed together. However, in - UTF-8 mode it is a problem, e.g., for the Greek language, where one + UTF-8 mode it is a problem; e.g., for the Greek language, where one sometimes needs to put an accent on the letter alpha. 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 @@ -556,11 +512,11 @@ EOF - For Chinese, Japanese, Korean and some other languages, the Linux + For Chinese, Japanese, Korean, and some other languages, the Linux 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, it supports a wide variety of languages). + SCIM, supports a wide variety of languages). @@ -571,7 +527,7 @@ EOF The /etc/sysconfig/console file only controls the Linux text console localization. It has nothing to do with setting the proper keyboard layout and terminal fonts in the X Window System, with - ssh sessions or with a serial console. In such situations, limitations + ssh sessions, or with a serial console. In such situations, limitations mentioned in the last two list items above do not apply. @@ -585,9 +541,9 @@ EOF configuring - At times, it is desired to create files at boot time. For instance, + At times, it is desirable to create files at boot time. For instance, the /tmp/.ICE-unix directory - may be desired. This can be done by creating an entry in the + is often needed. This can be done by creating an entry in the /etc/sysconfig/createfiles configuration script. The format of this file is embedded in the comments of the default configuration file.