Changeset 81fd230 for chapter07


Ignore:
Timestamp:
02/19/2005 10:16:42 PM (20 years ago)
Author:
Gerard Beekmans <gerard@…>
Branches:
10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 12.2, 12.2-rc1, 6.1, 6.1.1, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.5-systemd, 7.6, 7.6-systemd, 7.7, 7.7-systemd, 7.8, 7.8-systemd, 7.9, 7.9-systemd, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/loongarch-12.2, xry111/mips64el, xry111/multilib, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
Children:
3d31fc4
Parents:
2f9131f
Message:

Trunk is now identical to Testing

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@4648 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

Location:
chapter07
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • chapter07/bootscripts.xml

    r2f9131f r81fd230  
    44  %general-entities;
    55]>
    6 <sect1 id="ch-scripts-bootscripts" xreflabel="Bootscripts" role="wrap">
     6<sect1 id="ch-scripts-bootscripts" role="wrap">
    77<title>LFS-Bootscripts-&lfs-bootscripts-version;</title>
    88<?dbhtml filename="bootscripts.html"?>
     
    1111
    1212<sect2 role="package"><title/>
     13<para>The LFS-Bootscripts package contains a set of bootscripts.</para>
    1314
    1415<segmentedlist>
     
    1819</segmentedlist>
    1920
     21<segmentedlist>
     22<segtitle>LFS-Bootscripts installation depends on</segtitle>
     23<seglistitem><seg>Bash and Coreutils</seg></seglistitem>
     24</segmentedlist>
    2025</sect2>
    2126
     
    2328<title>Installation of LFS-Bootscripts</title>
    2429
    25 <para>Installation of the bootscripts is very simple:</para>
     30<para>Install the package:</para>
    2631
    2732<screen><userinput>make install</userinput></screen>
     
    2934</sect2>
    3035
    31 
    3236<sect2 id="contents-bootscripts" role="content"><title>Contents of LFS-bootscripts</title>
    3337
    34 <para>See testing</para>
     38<segmentedlist>
     39<segtitle>Installed scripts</segtitle>
     40<seglistitem><seg>checkfs, cleanfs, console, functions, halt, ifdown, ifup,
     41localnet, mountfs, mountkernfs, network, rc, reboot, sendsignals, setclock, static,
     42swap, sysklogd, template, and udev</seg></seglistitem>
     43</segmentedlist>
     44
     45<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
     46<?dbfo list-presentation="list"?>
     47
     48<varlistentry id="checkfs-bootscripts">
     49<term><command>checkfs</command></term>
     50<listitem>
     51<para>Checks the file systems before they are mounted (with the exception of journal
     52and network based file systems)</para>
     53<indexterm zone="ch-scripts-bootscripts checkfs-bootscripts"><primary sortas="d-checkfs">checkfs</primary></indexterm>
     54</listitem>
     55</varlistentry>
     56
     57<varlistentry id="cleanfs-bootscripts">
     58<term><command>cleanfs</command></term>
     59<listitem>
     60<para>Removes files that should not be
     61preserved between reboots, such as those in <filename class="directory">/var/run/</filename> and
     62<filename class="directory">/var/lock/</filename>; it re-creates <filename>/var/run/utmp</filename>
     63and removes the possibly present <filename>/etc/nologin</filename>,
     64<filename>/fastboot</filename>, and <filename>/forcefsck</filename> files</para>
     65<indexterm zone="ch-scripts-bootscripts cleanfs-bootscripts"><primary sortas="d-cleanfs">cleanfs</primary></indexterm>
     66</listitem>
     67</varlistentry>
     68
     69<varlistentry id="console-bootscripts">
     70<term><command>console</command></term>
     71<listitem>
     72<para>Loads the keymap table specified as proper for the keyboard
     73layout; it also sets the screen font</para>
     74<indexterm zone="ch-scripts-bootscripts console-bootscripts"><primary sortas="d-console">console</primary></indexterm>
     75</listitem>
     76</varlistentry>
     77
     78<varlistentry id="functions-bootscripts">
     79<term><command>functions</command></term>
     80<listitem>
     81<para>Contains functions shared among different scripts, such as error
     82and status checking</para>
     83<indexterm zone="ch-scripts-bootscripts functions-bootscripts"><primary sortas="d-functions">functions</primary></indexterm>
     84</listitem>
     85</varlistentry>
     86
     87<varlistentry id="halt-bootscripts">
     88<term><command>halt</command></term>
     89<listitem>
     90<para>Halts the system</para>
     91<indexterm zone="ch-scripts-bootscripts halt-bootscripts"><primary sortas="d-halt">halt</primary></indexterm>
     92</listitem>
     93</varlistentry>
     94
     95<varlistentry id="hotplug-bootscripts">
     96<term><command>hotplug</command></term>
     97<listitem>
     98<para>Load modules for system devices</para>
     99<indexterm zone="ch-scripts-bootscripts hotplug-bootscripts"><primary sortas="d-hotplug">hotplug</primary></indexterm>
     100</listitem>
     101</varlistentry>
     102
     103<varlistentry id="ifdown-bootscripts">
     104<term><command>ifdown</command></term>
     105<listitem>
     106<para>Assists the network script with network devices</para>
     107<indexterm zone="ch-scripts-bootscripts ifdown-bootscripts"><primary sortas="d-ifdown">ifdown</primary></indexterm>
     108</listitem>
     109</varlistentry>
     110
     111<varlistentry id="ifup-bootscripts">
     112<term><command>ifup</command></term>
     113<listitem>
     114<para>Assists the network script with network devices</para>
     115<indexterm zone="ch-scripts-bootscripts ifup-bootscripts"><primary sortas="d-ifup">ifup</primary></indexterm>
     116</listitem>
     117</varlistentry>
     118
     119<varlistentry id="localnet-bootscripts">
     120<term><command>localnet</command></term>
     121<listitem>
     122<para>Sets up the system's hostname and local loopback device</para>
     123<indexterm zone="ch-scripts-bootscripts localnet-bootscripts"><primary sortas="d-localnet">localnet</primary></indexterm>
     124</listitem>
     125</varlistentry>
     126
     127<varlistentry id="mountfs-bootscripts">
     128<term><command>mountfs</command></term>
     129<listitem>
     130<para>Mounts all file systems, except ones that are marked
     131<emphasis>noauto</emphasis> or are network based</para>
     132<indexterm zone="ch-scripts-bootscripts mountfs-bootscripts"><primary sortas="d-mountfs">mountfs</primary></indexterm>
     133</listitem>
     134</varlistentry>
     135
     136<varlistentry id="mountkernfs-bootscripts">
     137<term><command>mountkernfs</command></term>
     138<listitem>
     139<para>Is used to mount kernel-provided file systems, such as
     140<systemitem class="filesystem">proc</systemitem></para>
     141<indexterm zone="ch-scripts-bootscripts mountkernfs-bootscripts"><primary sortas="d-mountkernfs">mountkernfs</primary></indexterm>
     142</listitem>
     143</varlistentry>
     144
     145<varlistentry id="network-bootscripts">
     146<term><command>network</command></term>
     147<listitem>
     148<para>Sets up network interfaces, such as network cards, and sets up
     149the default gateway (where applicable)</para>
     150<indexterm zone="ch-scripts-bootscripts network-bootscripts"><primary sortas="d-network">network</primary></indexterm>
     151</listitem>
     152</varlistentry>
     153
     154<varlistentry id="rc-bootscripts">
     155<term><command>rc</command></term>
     156<listitem>
     157<para>The master run-level control script; it is responsible for
     158running all other scripts one-by-one, in a sequence determined by
     159the name of the symbolic links being processed</para>
     160<indexterm zone="ch-scripts-bootscripts rc-bootscripts"><primary sortas="d-rc">rc</primary></indexterm>
     161</listitem>
     162</varlistentry>
     163
     164<varlistentry id="reboot-bootscripts">
     165<term><command>reboot</command></term>
     166<listitem>
     167<para>Reboots the system</para>
     168<indexterm zone="ch-scripts-bootscripts reboot-bootscripts"><primary sortas="d-reboot">reboot</primary></indexterm>
     169</listitem>
     170</varlistentry>
     171
     172<varlistentry id="sendsignals-bootscripts">
     173<term><command>sendsignals</command></term>
     174<listitem>
     175<para>Makes sure every process is terminated before the system reboots
     176or halts</para>
     177<indexterm zone="ch-scripts-bootscripts sendsignals-bootscripts"><primary sortas="d-sendsignals">sendsignals</primary></indexterm>
     178</listitem>
     179</varlistentry>
     180
     181<varlistentry id="setclock-bootscripts">
     182<term><command>setclock</command></term>
     183<listitem>
     184<para>Resets the kernel clock to local time in case the hardware clock
     185is not set to UTC time</para>
     186<indexterm zone="ch-scripts-bootscripts setclock-bootscripts"><primary sortas="d-setclock">setclock</primary></indexterm>
     187</listitem>
     188</varlistentry>
     189
     190<varlistentry id="static-bootscripts">
     191<term><command>static</command></term>
     192<listitem>
     193<para>Provides the functionality needed to assign a static Internet
     194Protocol (IP) address to a network interface</para>
     195<indexterm zone="ch-scripts-bootscripts static-bootscripts"><primary sortas="d-static">static</primary></indexterm>
     196</listitem>
     197</varlistentry>
     198
     199<varlistentry id="swap-bootscripts">
     200<term><command>swap</command></term>
     201<listitem>
     202<para>Enables and disables swap files and partitions</para>
     203<indexterm zone="ch-scripts-bootscripts swap-bootscripts"><primary sortas="d-swap">swap</primary></indexterm>
     204</listitem>
     205</varlistentry>
     206
     207<varlistentry id="syslog-ng-bootscripts">
     208<term><command>syslog-ng</command></term>
     209<listitem>
     210<para>Starts and stops the system and kernel log daemons</para>
     211<indexterm zone="ch-scripts-bootscripts syslog-ng-bootscripts"><primary sortas="d-syslog-ng">syslog-ng</primary></indexterm>
     212</listitem>
     213</varlistentry>
     214
     215<varlistentry id="template-bootscripts">
     216<term><command>template</command></term>
     217<listitem>
     218<para>A template to create custom bootscripts for other
     219daemons</para>
     220<indexterm zone="ch-scripts-bootscripts template-bootscripts"><primary sortas="d-template">template</primary></indexterm>
     221</listitem>
     222</varlistentry>
     223
     224<varlistentry id="udev-bootscripts">
     225<term><command>udev</command></term>
     226<listitem>
     227<para>Sets up udev and create the devices nodes in <filename
     228class="directory">/dev</filename></para>
     229<indexterm zone="ch-scripts-bootscripts udev-bootscripts"><primary sortas="d-udev">udev</primary></indexterm>
     230</listitem>
     231</varlistentry>
     232</variablelist>
    35233
    36234</sect2>
    37235
    38236</sect1>
     237
  • chapter07/console.xml

    r2f9131f r81fd230  
    88<?dbhtml filename="console.html"?>
    99
    10 <para>Create the configuration file:</para>
     10<indexterm zone="ch-scripts-console">
     11<primary sortas="d-console">console</primary>
     12<secondary>configuring</secondary></indexterm>
     13
     14<para>This section discusses how to configure the
     15<command>console</command> initscript that sets up the keyboard map
     16and the console font. If non-ASCII characters (British pound and Euro
     17character are examples of non-ASCII characters) will not be used and
     18the keyboard is a U.S. one, skip this section. Without the
     19configuration file, the console initscript will do nothing.</para>
     20
     21<para>The <command>console</command> script uses the
     22<filename>/etc/sysconfig/console</filename> as a configuration file.
     23Decide which keymap and screen font will be used. The
     24language-specific HOWTO can help with this. A pre-made
     25<filename>/etc/sysconfig/console</filename> file with known settings
     26for several countries was installed with the LFS-Bootscripts package,
     27so the relevant section can be uncommented if the country is
     28supported. If still in doubt, look in the <filename
     29class="directory">/usr/share/kbd</filename> directory for valid
     30keymaps and screen fonts.  Read the loadkeys and setfont manual pages
     31and determine the correct arguments for these programs. Once decided,
     32create the configuration file with the following command:</para>
    1133
    1234<screen><userinput>cat &gt;/etc/sysconfig/console &lt;&lt;"EOF"
     
    1537EOF</userinput></screen>
    1638
    17 <para>If you see that keycode 14 is Backspace and not Delete,
    18 create the following keymap snippet to fix this issue:</para>
     39<para>For example, for Spanish users who also want to use the Euro
     40character (accessible by pressing AltGr+E), the following settings are
     41correct:</para>
     42
     43<screen><userinput>cat &gt;/etc/sysconfig/console &lt;&lt;"EOF"
     44<literal>KEYMAP="es euro2"
     45FONT="lat9-16 -u iso01"</literal>
     46EOF</userinput></screen>
     47
     48<note><para>The <envar>FONT</envar> line above is correct only for the ISO 8859-15
     49character set. If using ISO 8859-1 and, therefore, a pound sign
     50instead of Euro, the correct <envar>FONT</envar> line would be:</para>
     51
     52<screen><userinput>FONT="lat1-16"</userinput></screen></note>
     53
     54<para>If the <envar>KEYMAP</envar> or <envar>FONT</envar> variable is not set, the
     55<command>console</command> initscript will not run the corresponding
     56program.</para>
     57
     58<para>In some keymaps, the Backspace and Delete keys send characters
     59different from ones in the default keymap built into the kernel. This
     60confuses some applications.  For example,
     61<application>Emacs</application> displays its help (instead of erasing
     62the character before the cursor) when Backspace is pressed. To check
     63if the keymap in use is effected (this works only for i386
     64keymaps):</para>
     65
     66<screen><userinput>zgrep '\W14\W' <replaceable>[/path/to/your/keymap]</replaceable></userinput></screen>
     67
     68<para>If the keycode 14 is Backspace instead of Delete, create the
     69following keymap snippet to fix this issue:</para>
    1970
    2071<screen><userinput>mkdir -p /etc/kbd &amp;&amp; cat &gt; /etc/kbd/bs-sends-del &lt;&lt;"EOF"
     
    2879EOF</userinput></screen>
    2980
    30 <para>Then tell the <command>console</command> script to load this snippet
    31 after the main keymap:</para>
     81<para>Tell the <command>console</command> script to load this
     82snippet after the main keymap:</para>
    3283
    3384<screen><userinput>cat &gt;&gt;/etc/sysconfig/console &lt;&lt;"EOF"
     
    3586EOF</userinput></screen>
    3687
     88<para>To compile the keymap directly into the kernel instead of
     89setting it every time from the <command>console</command> bootscript,
     90follow the instructions given in <xref linkend="ch-bootable-kernel" role="."/>
     91Doing this ensures that the keyboard will always work as expected,
     92even when booting into maintenance mode (by passing
     93<parameter>init=/bin/sh</parameter> to the kernel), because the
     94<command>console</command> bootscript will not be run in that
     95situation. Additionally, the kernel will not set the screen font
     96automatically. This should not pose many problems because ASCII characters
     97will be handled correctly, and it is unlikely that a user would need
     98to rely on non-ASCII characters while in maintenance mode.</para>
     99
     100<para>Since the kernel will set up the keymap, it is possible to omit
     101the <envar>KEYMAP</envar> variable from the
     102<filename>/etc/sysconfig/console</filename> configuration file. It can
     103also be left in place, if desired, without consequence.  Keeping it
     104could be beneficial if running several different kernels where it is
     105difficult to ensure that the keymap is compiled into every one of
     106them.</para>
     107
    37108</sect1>
    38109
  • chapter07/hostname.xml

    r2f9131f r81fd230  
    88<?dbhtml filename="hostname.html"?>
    99
     10<indexterm zone="ch-scripts-hostname">
     11<primary sortas="d-localnet">localnet</primary>
     12<secondary>configuring</secondary></indexterm>
     13
     14<para>Part of the localnet script is setting up the system's hostname. This
     15needs to be configured in the <filename>/etc/sysconfig/network</filename>.</para>
    1016
    1117<para>Create the <filename>/etc/sysconfig/network</filename> file and enter a hostname by
     
    1420<screen><userinput>echo "HOSTNAME=<replaceable>[lfs]</replaceable>" &gt; /etc/sysconfig/network</userinput></screen>
    1521
     22<para><replaceable>[lfs]</replaceable> needs to be replaced with the
     23name the computer is to be called. Do not enter the Fully Qualified
     24Domain Name (FQDN) here. That information will be put in the
     25<filename>/etc/hosts</filename> file later.</para>
     26
    1627</sect1>
     28
  • chapter07/hosts.xml

    r2f9131f r81fd230  
    88<?dbhtml filename="hosts.html"?>
    99
    10 <para>If a network card is to be configured, create the
    11 <filename>/etc/hosts</filename> file by running:</para>
     10<indexterm zone="ch-scripts-hosts"><primary sortas="e-/etc/hosts">/etc/hosts</primary></indexterm>
     11
     12<indexterm zone="ch-scripts-hosts">
     13<primary sortas="d-localnet">localnet</primary>
     14<secondary>/etc/hosts</secondary></indexterm>
     15
     16<indexterm zone="ch-scripts-hosts">
     17<primary sortas="d-network">network</primary>
     18<secondary>/etc/hosts</secondary></indexterm>
     19
     20<para>If a network card is to be configured, decide on the IP-address,
     21FQDN, and possible aliases for use in the
     22<filename>/etc/hosts</filename> file. The syntax is:</para>
     23
     24<screen>&lt;IP address&gt; myhost.example.org aliases</screen>
     25
     26<para>Unless the computer is to be visible to the Internet (e.g.,
     27there is a registered domain and a valid block of assigned IP
     28addresses&mdash;most users do not have this), make sure that the IP
     29address is in the private network IP address range. Valid ranges
     30are:</para>
     31
     32<screen>        Class Networks
     33        A     10.0.0.0
     34        B     172.16.0.0 through 172.31.0.0
     35        C     192.168.0.0 through 192.168.255.0</screen>
     36
     37<para>A valid IP address could be 192.168.1.1. A valid FQDN for this
     38IP could be www.linuxfromscratch.org (not recommended because this is
     39a valid registered domain address and could cause domain name server
     40issues).</para>
     41
     42<para>Even if not using a network card, an FQDN is still required.
     43This is necessary for certain programs to operate correctly.</para>
     44
     45<para>Create the  <filename>/etc/hosts</filename> file by running:</para>
    1246
    1347<screen><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF"
     
    1953# End /etc/hosts (network card version)</literal>
    2054EOF</userinput></screen>
     55
     56<para>The <replaceable>[192.168.1.1]</replaceable> and
     57<replaceable>[&lt;HOSTNAME&gt;.example.org]</replaceable>
     58values need to be changed for specific users or requirements (if
     59assigned an IP address by a network/system administrator and the
     60machine will be connected to an existing network).</para>
    2161
    2262<para>If a network card is not going to be configured, create the
     
    3272
    3373</sect1>
     74
  • chapter07/inputrc.xml

    r2f9131f r81fd230  
    88<?dbhtml filename="inputrc.html"?>
    99
    10 <para>Create the /etc/inputrc file:</para>
     10<indexterm zone="ch-scripts-inputrc"><primary sortas="e-/etc/inputrc">/etc/inputrc</primary></indexterm>
     11
     12<para>The <filename>/etc/inputrc</filename> file deals with mapping
     13the keyboard for specific situations. This file is the start-up file
     14used by <application>Readline</application>, the input-related
     15library used by <application>Bash</application> and most other
     16shells.</para>
     17
     18<para>For more information, see the bash info page, section
     19<emphasis>Readline Init File</emphasis>. The readline info page is
     20also a good source of information.</para>
     21
     22<para>Global values are set in <filename>/etc/inputrc</filename>.
     23Personal user values are set in <filename>~/.inputrc</filename>. The
     24<filename>~/.inputrc</filename> file will override the global settings
     25file. A later page sets up Bash to use
     26<filename>/etc/inputrc</filename> if there is no
     27<filename>.inputrc</filename> for a user when
     28<filename>/etc/profile</filename> is read (usually at login). To make
     29the system use both, or to negate global keyboard handling, it is a
     30good idea to place a default <filename>.inputrc</filename> into the
     31<filename class="directory">/etc/skel</filename> directory for use
     32with new users.</para>
     33
     34<para>Below is a base <filename>/etc/inputrc</filename>, along with
     35comments to explain what the various options do. Note that comments
     36cannot be on the same line as commands.</para>
     37
     38<para>To create the <filename>.inputrc</filename> in <filename
     39class="directory">/etc/skel</filename> using the command below, change
     40the command's output to <filename
     41class="directory">/etc/skel/.inputrc</filename> and be sure to
     42check/set permissions afterward. Copy that file to
     43<filename>/etc/inputrc</filename> and the home directory of any user
     44already existing on the system, including <emphasis>root</emphasis>,
     45that needs a private version of the file. Be certain to use the
     46<parameter>-p</parameter> parameter of <command>cp</command> to
     47maintain permissions and be sure to change owner and group
     48appropriately.</para>
    1149
    1250<screen><userinput>cat &gt; /etc/inputrc &lt;&lt; "EOF"
     
    5795
    5896</sect1>
     97
  • chapter07/introduction.xml

    r2f9131f r81fd230  
    88<?dbhtml filename="introduction.html"?>
    99
    10 <para>See testing</para>
     10<para>This chapter details how to install the bootscripts and set them up
     11properly. Most of these scripts will work without modification, but a
     12few require additional configuration files because they deal with
     13hardware-dependent information.</para>
     14
     15<para>System-V style init scripts are employed in this book because they are
     16widely used. For additional options, a hint detailing the BSD style
     17init setup is available at
     18<ulink
     19url="http://www.linuxfromscratch.org/hints/downloads/files/bsd-init.txt"/>.
     20Searching the LFS mailing lists for <quote>depinit</quote> will also offer
     21additional choices.</para>
     22
     23<para>If using an alternate style of init scripts, skip this chapter
     24and move on to <xref linkend="chapter-bootable"/>.</para>
    1125
    1226</sect1>
     27
  • chapter07/network.xml

    r2f9131f r81fd230  
    88<?dbhtml filename="network.html"?>
    99
     10<indexterm zone="ch-scripts-network">
     11<primary sortas="d-network">network</primary>
     12<secondary>configuring</secondary></indexterm>
     13
     14<para>This section only applies if a network card is to be
     15configured.</para>
     16
     17<para>If a network card will not be used, there is likely no need to
     18create any configuration files relating to network cards. If that is
     19the case, remove the <filename class="symlink">network</filename>
     20symlinks from all run-level directories (<filename
     21class="directory">/etc/rc.d/rc*.d</filename>).</para>
    1022
    1123<sect2>
    1224<title>Creating Network Interface Configuration Files</title>
    1325
    14 <para>The following command creates a sample <filename>ipv4</filename> file for the
    15 <filename>eth0</filename> device:</para>
     26<!-- Edit Me -->
     27<para>Which interfaces are brought up and down by the network script
     28depends on the files and directories in the <filename
     29class="directory">/etc/sysconfig/network-devices</filename> hierarchy.
     30This directory should contain a directory for each interface to be configured,
     31such as <filename>ifconfig.xyz</filename>, where <quote>xyz</quote> is a
     32network interface name. Inside this directory would be files defining
     33the attributes to this interface, such as its IP address(es), subnet
     34masks, and so forth.</para>
     35<!-- -->
     36
     37<para>If the <filename
     38class="directory">/etc/sysconfig/network-devices</filename> directory
     39is to be renamed or moved, make sure to edit the
     40<filename>/etc/sysconfig/rc</filename> file and update the
     41<quote>network_devices</quote> option by providing it with the new
     42path.</para>
     43
     44<para>New files are created in this directory. The following
     45command creates a sample <filename>ipv4</filename> file for the
     46<emphasis>eth0</emphasis> device:</para>
    1647
    1748<screen><userinput>cd /etc/sysconfig/network-devices &amp;&amp;
     
    2657EOF</userinput></screen>
    2758
     59<para>The values of these variables must be changed in every file to
     60match the proper setup. If the <envar>ONBOOT</envar> variable is
     61set to <quote>yes</quote> the network script will bring up the
     62Network Interface Card (NIC) during booting of the system. If set
     63to anything but <quote>yes</quote> the NIC will be ignored by the
     64network script and not brought up.</para>
     65
     66<para>The <envar>SERVICE</envar> variable defines the method of
     67obtaining the IP address. The LFS bootscripts have a modular IP
     68assignment format, and creating additional files in the <filename
     69class="directory">/etc/sysconfig/network-devices/services</filename>
     70directory allows other IP assignment methods. This is commonly used
     71for Dynamic Host Configuration Protocol (DHCP), which is addressed in the BLFS book.</para>
     72
     73<para>The <envar>GATEWAY</envar> variable should contain
     74the default gateway IP address, if one is present. If not, then comment out
     75the variable entirely.</para>
     76
     77<para>The <envar>PREFIX</envar> variable needs to contain the
     78number of bits used in the subnet. Each octet in an IP address is 8
     79bits. If the subnet's netmask is 255.255.255.0, then it is using the
     80first three octets (24 bits) to specify the network number. If the
     81netmask is 255.255.255.240, it would be using the first 28 bits.
     82Prefixes longer than 24 bits are commonly used by DSL- and cable-based
     83Internet Service Providers (ISPs).  In this example (PREFIX=24), the netmask
     84is 255.255.255.0. Adjust according to the specific subnet.</para>
     85
    2886</sect2>
    2987
    3088<sect2 id="resolv.conf">
    3189<title>Creating the /etc/resolv.conf File</title>
     90<indexterm zone="resolv.conf"><primary sortas="e-/etc/resolv.conf">/etc/resolv.conf</primary></indexterm>
    3291
    33 <para>Create the file by running the following:</para>
     92<para>If the system is going to be connected to the Internet, it will
     93need some means of Domain Name Service (DNS) name resolution to
     94resolve Internet domain names to IP addresses, and vice versa. This is
     95best achieved by placing the IP address of the DNS server, available
     96from the ISP or network administrator, into
     97<filename>/etc/resolv.conf</filename>. Create the file by running the
     98following:</para>
    3499
    35100<screen><userinput>cat &gt; /etc/resolv.conf &lt;&lt; "EOF"
     
    43108EOF</userinput></screen>
    44109
     110<para>Replace <replaceable>[IP address of the
     111nameserver]</replaceable> with the IP address of the DNS most
     112appropriate for the setup. There will often be more than one entry
     113(requirements demand secondary servers for fallback capability). If
     114you only need or want one DNS server, remove the second
     115<emphasis>nameserver</emphasis> line from the file. The IP address may
     116also be a router on the local network.</para>
    45117</sect2>
    46118
    47119</sect1>
     120
  • chapter07/profile.xml

    r2f9131f r81fd230  
    88<?dbhtml filename="profile.html"?>
    99
     10<indexterm zone="ch-scripts-profile"><primary sortas="e-/etc/profile">/etc/profile</primary></indexterm>
    1011
    11 <para>Create the <filename>/etc/profile</filename> file:</para>
     12<para>The shell program <command>/bin/bash</command> (hereafter
     13referred to as <quote>the shell</quote>) uses a collection of startup
     14files to help create an environment to run in. Each file has a
     15specific use and may effect login and interactive environments
     16differently. The files in the <filename
     17class="directory">/etc</filename> directory provide global settings.
     18If an equivalent file exists in the home directory, it may override
     19the global settings.</para>
     20
     21<para>An interactive login shell is started after a successful login,
     22using <command>/bin/login</command>, by reading the
     23<filename>/etc/passwd</filename> file. An interactive non-login shell
     24is started at the command-line (e.g.,
     25<prompt>[prompt]$</prompt><command>/bin/bash</command>). A
     26non-interactive shell is usually present when a shell script is
     27running. It is non-interactive because it is processing a script and
     28not waiting for user input between commands.</para>
     29
     30<para>For more information, see <command>info bash</command> - Nodes:
     31Bash Startup Files and Interactive Shells.</para>
     32
     33<para>The files <filename>/etc/profile</filename> and
     34<filename>~/.bash_profile</filename> are read when the shell is
     35invoked as an interactive login shell.</para>
     36
     37<para>A base <filename>/etc/profile</filename> below sets some
     38environment variables necessary for native language support. Setting
     39them properly results in:</para>
     40
     41<itemizedlist>
     42<listitem><para>The output of programs translated into the native
     43language</para></listitem>
     44<listitem><para>Correct classification of characters into letters,
     45digits and other classes. This is necessary for Bash to properly
     46accept non-ASCII characters in command lines in non-English
     47locales</para></listitem>
     48<listitem><para>The correct alphabetical sorting order for the
     49country</para></listitem>
     50<listitem><para>Appropriate default paper size</para></listitem>
     51<listitem><para>Correct formatting of monetary, time, and date
     52values</para></listitem>
     53</itemizedlist>
     54
     55<para>This script also sets the <envar>INPUTRC</envar>
     56environment variable that makes <application>Bash</application> and
     57<application>Readline</application> use the
     58<filename>/etc/inputrc</filename> file created earlier.</para>
     59
     60<para>Replace <replaceable>[ll]</replaceable> below with the
     61two-letter code for the desired language (e.g., <quote>en</quote>) and
     62<replaceable>[CC]</replaceable> with the two-letter code for the
     63appropriate country (e.g., <quote>GB</quote>). It may also be
     64necessary to specify (and this is actually the preferred form) the
     65character encoding (e.g.  <quote>iso8859-1</quote>) after a dot (so
     66that the result is <quote>en_GB.iso8859-1</quote>).  Issue the
     67following command for more information:</para>
     68
     69<screen><userinput>man 3 setlocale</userinput></screen>
     70
     71<para>The list of all locales supported by Glibc can be obtained by running
     72the following command:</para>
     73
     74<screen><userinput>locale -a</userinput></screen>
     75
     76<para>Once the proper locale settings have been determined, create the
     77<filename>/etc/profile</filename> file:</para>
    1278
    1379<screen><userinput>cat &gt; /etc/profile &lt;&lt; "EOF"
     
    2187EOF</userinput></screen>
    2288
     89<note><para>The <quote>C</quote> (default) and <quote>en_US</quote>
     90(the recommended one for United States English users) locales are
     91different.</para></note>
     92
     93<para>Setting the keyboard layout, screen font, and
     94locale-related environment variables are the only internationalization
     95steps needed to support locales that use ordinary single-byte
     96encodings and left-to-right writing direction. More complex cases
     97(including UTF-8 based locales) require additional steps and
     98additional patches because many applications tend to not work properly
     99under such conditions.  These steps and patches are not included in
     100the LFS book and such locales are not supported by LFS in any
     101way.</para>
     102
    23103</sect1>
     104
  • chapter07/setclock.xml

    r2f9131f r81fd230  
    88<?dbhtml filename="setclock.html"?>
    99
     10<indexterm zone="ch-scripts-setclock">
     11<primary sortas="d-setclock">setclock</primary>
     12<secondary>configuring</secondary></indexterm>
     13
     14<para>The <command>setclock</command> script reads the time from the hardware clock,
     15also known as BIOS or the Complementary Metal Oxide Semiconductor
     16(CMOS) clock. If the hardware clock is set to UTC, this script will convert the hardware clock's time to
     17the local time using the <filename>/etc/localtime</filename> file
     18(which tells the <command>hwclock</command> program which timezone the
     19user is in). There is no way to
     20detect whether or not the hardware clock is set to UTC time, so this
     21needs to be manually configured.</para>
     22
     23<para>If you cannot remember whether or not the hardware
     24clock is set to UTC time, find out by running
     25the <userinput>hwclock --localtime --show</userinput> command. This will tell
     26what the current time is according to the hardware clock. If this time
     27matches whatever your watch says, then the hardware clock is set to
     28local time. If the output from <command>hwclock</command> is not local
     29time, chances are it is set to UTC time. Verify this by adding or
     30subtracting the proper amount of hours for the timezone to this
     31<command>hwclock</command> time. For example, if you live in the MST
     32timezone, which is also known as GMT -0700, add seven hours to the local
     33time. Then, account for Daylight Savings Time, which requires
     34subtracting an hour (or only add six in the first place) during the summer
     35months.</para>
     36
     37<para>Change the value of the <envar>UTC</envar> variable below
     38to a value of <parameter>0</parameter> (zero) if the hardware clock
     39is <emphasis>not</emphasis> set to UTC time.</para>
    1040
    1141<para>Create a new file <filename>/etc/sysconfig/clock</filename> by running
     
    2050EOF</userinput></screen>
    2151
     52<para>A good hint explaining how to deal with time on LFS is available
     53at <ulink url="&hints-root;time.txt"/>. It explains issues such as
     54time zones, UTC, and the <envar>TZ</envar> environment variable.</para>
     55
    2256</sect1>
     57
  • chapter07/udev.xml

    r2f9131f r81fd230  
    1212<secondary>usage</secondary></indexterm>
    1313
    14 
    15 <para>See testing</para>
     14<para>In <xref linkend="chapter-building-system"/>, we installed the Udev
     15package.  Before we go into the details regarding how this works,
     16a brief history of previous methods of handling devices is in
     17order.</para>
     18
     19<para>Linux systems in general traditionally use a static device
     20creation method, whereby a great many device nodes are created under
     21<filename class="directory">/dev</filename> (sometimes literally
     22thousands of nodes), regardless of whether the corresponding hardware
     23devices actually exist. This is typically done via a
     24<command>MAKEDEV</command> script, which contains a number of
     25calls to the <command>mknod</command> program with the relevant major and minor device
     26numbers for every possible device that might exist in the world. Using
     27the udev method, only those devices which are detected by the kernel
     28get device nodes created for them. Because these device nodes will be
     29created each time the system boots, they will be stored on a
     30<systemitem class="filesystem">ramfs</systemitem> (a file system that
     31resides entirely in memory and does not take up any disk space).
     32Device nodes do not require much disk space, so the memory that is
     33used in negligable.</para>
     34
     35<sect2>
     36<title>History</title>
     37
     38<para>In February 2000, a new filesystem called <systemitem
     39class="filesystem">devfs</systemitem> was merged into the 2.3.46
     40kernel and was made available during the 2.4 series of
     41stable kernels.  Although it was present in the kernel source itself,
     42this method of creating devices dynamically never received
     43overwhelming support from the core kernel developers.</para>
     44
     45<para>The main problem with the approach adopted by <systemitem
     46class="filesystem">devfs</systemitem> was the way it handled
     47device detection, creation, and naming. The latter issue, that of
     48device node naming, was perhaps the most critical. It is generally
     49accepted that if device names are allowed to be configurable, then
     50the device naming policy should be up to a system administrator, not
     51imposed on them by any particular developer(s). The <systemitem
     52class="filesystem">devfs</systemitem> file system also suffers from race
     53conditions that are inherent in its design and cannot be fixed
     54without a substantial revision to the kernel. It has also been marked
     55as deprecated due to a lack of recent maintenance.</para>
     56
     57<para>With the development of the unstable 2.5 kernel tree, later
     58released as the 2.6 series of stable kernels, a new virtual filesystem
     59called <systemitem class="filesystem">sysfs</systemitem> came to be.
     60The job of <systemitem class="filesystem">sysfs</systemitem> is to
     61export a view of the system's structure to userspace processes.  With
     62this userspace visible representation, the possibility of seeing a
     63userspace replacement for <systemitem
     64class="filesystem">devfs</systemitem> became much more
     65realistic.</para>
     66</sect2>
     67
     68<sect2>
     69<title>Udev Implementation</title>
     70
     71<para>The <systemitem class="filesystem">sysfs</systemitem> filesystem
     72was mentioned briefly above.  One may wonder how <systemitem
     73class="filesystem">sysfs</systemitem> knows about the devices present
     74on a system and what device numbers should be used.  Drivers that
     75have been compiled into the kernel directly register their objects
     76with <systemitem class="filesystem">sysfs</systemitem> as they are
     77detected by the kernel.  For drivers compiled as modules, this will
     78happen when the module is loaded.  Once the <systemitem
     79class="filesystem">sysfs</systemitem> filesystem is mounted (on
     80<filename class="directory">/sys</filename>), the data which the
     81built-in drivers registered with <systemitem
     82class="filesystem">sysfs</systemitem> are available to userspace
     83processes and to <command>udev</command> for device node creation.</para>
     84
     85<para>The <command>S10udev</command> initscript takes care of creating
     86these device nodes when Linux is booted. This script starts with
     87registering <command>/sbin/udev</command> as a hotplug event handler.
     88Hotplug events (discussed below) should not be generated during this
     89stage, but <command>udev</command> is registered just in case they do
     90occur.  The <command>udevstart</command> program then walks through
     91the <systemitem class="filesystem">/sys</systemitem> filesystem and
     92creates devices under <filename class="directory">/dev</filename> that
     93match the descriptions.  For example,
     94<filename>/sys/class/tty/vcs/dev</filename> contains the string
     95<quote>7:0</quote> This string is used by <command>udevstart</command>
     96to create <filename>/dev/vcs</filename> with major number
     97<emphasis>7</emphasis> and minor <emphasis>0</emphasis>.  The
     98permissions of each and every device that <command>udevstart</command>
     99creates are set using files from the <filename
     100class="directory">/etc/udev.d/permissions.d/</filename> directory.
     101These are numbered in a similar fashion to the LFS bootscripts.  If
     102<command>udev</command> cannot find a permissions file for the device
     103it is creating, it will default permissions to
     104<emphasis>600</emphasis> and ownership to
     105<emphasis>root:root</emphasis>.  The names of the nodes created under
     106the <filename class="directory">/dev</filename> directory are
     107configured according to the rules specified in the files within the
     108<filename class="directory">/etc/udev/rules.d/</filename>
     109directory.</para>
     110
     111<para>Once the above stage is complete, all devices that were already
     112present and have compiled-in drivers will be available for use. What
     113about those devices that have modular drivers?</para>
     114
     115<para>Earlier, we mentioned the concept of a <quote>hotplug event
     116handler.</quote> When a new device connection is detected by the
     117kernel, the kernel will generate a hotplug event and look at the file
     118<filename>/proc/sys/kernel/hotplug</filename> to find out the
     119userspace program that handles the device's connection.  The
     120<command>udev</command> initscript registered <command>udev</command>
     121as this handler. When these hotplug events are generated, the kernel
     122will tell <command>udev</command> to check the <filename
     123class="directory">/sys</filename> filesystem for the information
     124pertaining to this new device and create the <filename
     125class="directory">/dev</filename> entry for it.</para>
     126
     127<para>This brings us to one problem that exists with
     128<command>udev</command>, and likewise with <systemitem
     129class="filesystem">devfs</systemitem> before it. It is commonly
     130referred to as the <quote>chicken and egg</quote> problem.  Most Linux
     131distrubtions handle loading modules via entries in
     132<filename>/etc/modules.conf</filename>. Access to a device node causes
     133the appropriate kernel module to load.  With <command>udev</command>,
     134this method will not work because the device node does not exist until
     135the module is loaded.  To solve this, the
     136<command>S05modules</command> bootscript was added to the
     137lfs-bootscripts package, along with the
     138<filename>/etc/sysconfig/modules</filename> file.  By
     139adding module
     140names to the <filename>modules</filename> file, these modules will be
     141loaded when the computer is starting up. This allows
     142<command>udev</command> to detect the devices and create the
     143appropriate device nodes.</para>
     144
     145<para>Note that on slower machines or for drivers that create a lot
     146of device nodes, the process of creating devices may take a few
     147seconds to complete. This means that some device nodes may not be
     148immediately accessible.</para>
     149</sect2>
     150
     151<sect2>
     152<title>Handling Hotpluggable/Dynamic Devices</title>
     153
     154<para>When you plug in a device, such a Universal Serial Bus (USB) MP3 player, the kernel
     155recognizes that the device is now connected and generates a hotplug
     156event. If the driver is already loaded (either because it was compiled
     157into the kernel or because it was loaded via the
     158<command>S05modules</command> bootscript), <command>udev</command> will
     159be called upon to create the relevant device node(s) according to the
     160<systemitem class="filesystem">sysfs</systemitem> data available in
     161<filename class="directory">/sys</filename>.  If the driver for the
     162just plugged in device is available as a module but currently unloaded,
     163then attaching the device to the system will only cause the kernel's
     164bus driver to generate a hotplug event that notifies userspace of the
     165new device connection and it not being attached to a driver. In
     166effect, nothing happens and the device itself is not usable
     167yet.</para>
     168
     169<para>If building a system that has a lot of drivers compiled as
     170modules rather than directly built into the kernel, using the
     171<command>S05modules</command> may not be practical. The Hotplug
     172package (see <ulink url="http://linux-hotplug.sourceforge.net/"/>) can
     173be beneficial in these cases. When the Hotplug package is installed,
     174it will respond to the aforementioned kernel's bus driver hotplug
     175events. The Hotplug package will load the appropriate module and make
     176this device available by creating the device node(s) for it.</para>
     177</sect2>
     178
     179<sect2>
     180<title>Problems with Creating Devices</title>
     181
     182<para>There are a few known problems when it comes to automatically creating
     183devices nodes:</para>
     184
     185<para>1) A kernel driver may not export its data to <systemitem
     186class="filesystem">sysfs</systemitem>.</para>
     187   
     188<para>This is most common with third party drivers from outside the
     189kernel tree.  These drivers will not end up having their device nodes
     190created.  Use the
     191<filename>/etc/sysconfig/createfiles</filename> configuration file to
     192manually create the devices. Consult the
     193<filename>devices.txt</filename> file inside the kernel documentation
     194or the documentation for that driver to find the proper major/minor
     195numbers.</para>
     196
     197<para>2) A non-hardware device is required.  This is most common with
     198the Advanced Linux Sound Architecture (ALSA) project's Open Sound
     199System (OSS) compatibility module.  These types of devices can be
     200handled in one of two ways:</para>
     201
     202<itemizedlist>
     203
     204<listitem><para>Adding the module names to
     205<filename>/etc/sysconfig/modules</filename></para></listitem>
     206<listitem><para>Using an
     207<quote>install</quote> line in
     208<filename>/etc/modprobe.conf</filename>. This tells the
     209<command>modprobe</command> command <quote>when loading this module,
     210also load this other module, at the same time.</quote>  For example:</para>
     211
     212<screen><userinput>install snd-pcm modprobe -i snd-pcm ; modprobe \
     213    snd-pcm-oss ; true</userinput></screen>
     214
     215<para>This will cause the system to load both the
     216<emphasis>snd-pcm</emphasis> and <emphasis>snd-pcm-oss</emphasis>
     217modules when any request is made to load the driver
     218<emphasis>snd-pcm</emphasis>.</para></listitem>
     219</itemizedlist>
     220</sect2>
     221
     222<sect2>
     223<title>Useful Reading</title>
     224
     225<para>Additional helpful documentation is available at the following
     226sites:</para>
     227
     228<itemizedlist>
     229<listitem><para remap="verbatim">A Userspace Implementation of devfs
     230<ulink url="http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf"><phrase
     231condition="pdf">http://www.kroah.com/linux/talks/ols_2003_udev_paper/
     232Reprint-Kroah-Hartman-OLS2003.pdf</phrase></ulink></para></listitem>
     233
     234<listitem><para remap="verbatim">udev FAQ
     235<ulink url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ"/></para></listitem>
     236
     237<listitem><para remap="verbatim">The Linux Kernel Driver Model
     238<ulink url="http://public.planetmirror.com/pub/lca/2003/proceedings/papers/Patrick_Mochel/Patrick_Mochel.pdf"><phrase 
     239condition="pdf">http://public.planetmirror.com/pub/lca/2003/proceedings/papers/
     240Patrick_Mochel/Patrick_Mochel.pdf</phrase></ulink></para></listitem>
     241</itemizedlist>
     242</sect2>
    16243
    17244</sect1>
  • chapter07/usage.xml

    r2f9131f r81fd230  
    88<?dbhtml filename="usage.html"?>
    99
     10<indexterm zone="ch-scripts-usage">
     11<primary sortas="a-Bootscripts">Bootscripts</primary>
     12<secondary>usage</secondary></indexterm>
    1013
    11 <para>See testing</para>
     14<para>Linux uses a special booting facility named SysVinit that is
     15based on a concept of <emphasis>run-levels</emphasis>. It can be quite
     16different from one system to another, so it cannot be assumed that
     17because things worked in &lt;insert distro name&gt;, they should work
     18the same in LFS too. LFS has its own way of doing things, but it
     19respects generally accepted standards.</para>
     20
     21<para>SysVinit (which will be referred to as <quote>init</quote> from
     22now on) works using a run-levels scheme. There are seven (from 0 to 6)
     23run-levels (actually, there are more run-levels, but they are for
     24special cases and are generally not used. The init man page describes
     25those details), and each one of those corresponds to the actions the
     26computer is supposed to perform when it starts up. The default
     27run-level is 3. Here are the descriptions of the different run-levels
     28as they are implemented:</para>
     29
     30<literallayout>0: halt the computer
     311: single-user mode
     322: multi-user mode without networking
     333: multi-user mode with networking
     344: reserved for customization, otherwise does the same as 3
     355: same as 4, it is usually used for GUI login (like X's <command>xdm</command> or KDE's <command>kdm</command>)
     366: reboot the computer</literallayout>
     37
     38<para>The command used to change run-levels is <command>init
     39<replaceable>[runlevel]</replaceable></command>, where
     40<replaceable>[runlevel]</replaceable> is the target run-level. For
     41example, to reboot the computer, a user would issue the <command>init
     426</command> command.  The <command>reboot</command> command is an
     43alias for it, as is the <command>halt</command> command an alias for
     44<command>init 0</command>.</para>
     45
     46<para>There are a number of directories under <filename
     47class="directory">/etc/rc.d</filename> that look like <filename
     48class="directory">rc?.d</filename> (where ? is the number of the
     49run-level) and <filename class="directory">rcsysinit.d</filename>, all
     50containing a number of symbolic links. Some begin with a
     51<emphasis>K</emphasis>, the others begin with an
     52<emphasis>S</emphasis>, and all of them have two numbers following the
     53initial letter. The K means to stop (kill) a service and the S means
     54to start a service. The numbers determine the order in which the
     55scripts are run, from 00 to 99&mdash;the lower the number the earlier it
     56gets executed. When init switches to another run-level, the
     57appropriate services get killed and others get started.</para>
     58
     59<para>The real scripts are in <filename
     60class="directory">/etc/rc.d/init.d</filename>. They do the actual
     61work, and the symlinks all point to them. Killing links and starting
     62links point to the same script in <filename
     63class="directory">/etc/rc.d/init.d</filename>. This is because the
     64scripts can be called with different parameters like
     65<parameter>start</parameter>, <parameter>stop</parameter>,
     66<parameter>restart</parameter>, <parameter>reload</parameter>, and
     67<parameter>status</parameter>. When a K link is encountered, the
     68appropriate script is run with the <parameter>stop</parameter>
     69argument. When an S link is encountered, the appropriate script is run
     70with the <parameter>start</parameter> argument.</para>
     71
     72<para>There is one exception to this explanation. Links that start
     73with an <emphasis>S</emphasis> in the <filename
     74class="directory">rc0.d</filename> and <filename
     75class="directory">rc6.d</filename> directories will not cause anything
     76to be started. They will be called with the parameter
     77<parameter>stop</parameter> to stop something. The logic behind this
     78is that when a user is going to reboot or halt the system, nothing
     79needs to be started.  The system only needs to be stopped.</para>
     80
     81<para>These are descriptions of what the arguments make the scripts
     82do:</para>
     83
     84<variablelist>
     85<varlistentry>
     86<term><parameter>start</parameter></term>
     87<listitem><para>The service is started.</para></listitem>
     88</varlistentry>
     89
     90<varlistentry>
     91<term><parameter>stop</parameter></term>
     92<listitem><para>The service is stopped.</para></listitem>
     93</varlistentry>
     94
     95<varlistentry>
     96<term><parameter>restart</parameter></term>
     97<listitem><para>The service is stopped and then started again.</para></listitem>
     98</varlistentry>
     99
     100<varlistentry>
     101<term><parameter>reload</parameter></term>
     102<listitem><para>The configuration of the service is updated.
     103This is used after the configuration file of a service was modified, when
     104the service does not need to be restarted.</para></listitem>
     105</varlistentry>
     106
     107<varlistentry>
     108<term><parameter>status</parameter></term>
     109<listitem><para>Tells if the service is running and with which PIDs.</para></listitem>
     110</varlistentry>
     111</variablelist>
     112
     113<para>Feel free to modify the way the boot process works (after all,
     114it is your own LFS system). The files given here are an example of how
     115it can be done.</para>
    12116
    13117</sect1>
     118
Note: See TracChangeset for help on using the changeset viewer.