Added hotplug to HEAD

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@3671 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Alexander E. Patrakov 2004-05-20 01:47:22 +00:00
parent cdb5a78776
commit 72b0264b85
11 changed files with 256 additions and 9 deletions

1
TODO
View File

@ -6,3 +6,4 @@
those at the beginning of chapter 6 and have one less package to compile.
We need to be sure this doens't break the pureness though.
- Check for pureness and fix any occurrences of breakage.
- Add more index terms to hotplug page.

View File

@ -33,6 +33,7 @@ first a summary, then a detailed log.</para>
<listitem><para>glibc-2.3.4-20040510</para></listitem>
<listitem><para>groff-1.19.1</para></listitem>
<listitem><para>grub-0.94</para></listitem>
<listitem><para>hotplug-2004_04_01</para></listitem>
<listitem><para>kbd-1.12</para></listitem>
<listitem><para>less-382</para></listitem>
<listitem><para>lfs-bootscripts-2.1.1</para></listitem>
@ -71,6 +72,7 @@ first a summary, then a detailed log.</para>
<listitem><para>udev-025</para></listitem>
<listitem><para>udev-025-config-1.patch</para></listitem>
<listitem><para>util-linux-2.12a-kernel-headers-1.patch</para></listitem>
<listitem><para>hotplug-2004_04_01</para></listitem>
</itemizedlist>
</listitem>
@ -97,6 +99,9 @@ first a summary, then a detailed log.</para>
</itemizedlist>
</listitem>
<listitem><para>May 20th, 2004 [alexander]: Added Hotplug 2004_04_01.
</para></listitem>
<listitem><para>May 19th, 2004 [winkie]: Upgraded to Binutils 2.15 &amp; GCC
3.4.1-20040517.</para></listitem>

View File

@ -165,6 +165,13 @@
</listitem>
</varlistentry>
<varlistentry>
<term>Hotplug (&hotplug-version;) - 34 KB:</term>
<listitem>
<para><ulink url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/"/></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Iana-Etc (&iana-etc-version;) - 161 KB:</term>
<listitem>

View File

@ -63,6 +63,34 @@ following:</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Hotplug patch that eliminates bogus dependencies - 1 KB:</term>
<listitem>
<para><ulink url="&patches-root;hotplug-&hotplug-version;-bogus-deps-1.patch"/></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Hotplug patch that makes the initscript consistent with the rest - 1 KB:</term>
<listitem>
<para><ulink url="&patches-root;hotplug-&hotplug-version;-cosmetic-2.patch"/></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Hotplug patch that fixes USB cold plugging - 1 KB:</term>
<listitem>
<para><ulink url="&patches-root;hotplug-&hotplug-version;-device-2.patch"/></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Hotplug patch that adds ISAPNP hardware detection (optional) - 1 KB:</term>
<listitem>
<para><ulink url="&patches-root;hotplug-&hotplug-version;-isapnp-2.patch"/></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Inetutils Kernel Headers Patch - 1 KB:</term>
<listitem>

View File

@ -54,6 +54,7 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="grep.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="grub.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gzip.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="hotplug.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="man.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="make.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="module-init-tools.xml"/>

203
chapter06/hotplug.xml Normal file
View File

@ -0,0 +1,203 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-system-hotplug" role="wrap">
<title>Hotplug-&hotplug-version;</title>
<?dbhtml filename="hotplug.html"?>
<indexterm zone="ch-system-hotplug"><primary sortas="a-Hotplug">Hotplug</primary></indexterm>
<sect2 role="package"><title/>
<para>The Hotplug package contains scripts that react upon various changes
in the kernel state, in particular, addition and removal of hardware. This
package also detects existing hardware during boot and inserts the relevant
modules into the running kernel.
</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem><seg>0.01 SBU</seg><seg>0.1 MB</seg></seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Hotplug</title>
<para>
By default, Hotplug does not output anything in its initscript and places it
into
<filename class="directory">/etc/init.d</filename>,
whereas the place for initscripts in LFS is
<filename class="directory">/etc/rc.d/init.d</filename>. Apply the patch
that makes the output of hotplug initscript more verbose and places this
initscript into the proper directory:
</para>
<screen><userinput>patch -Np1 -i ../hotplug-&hotplug-version;-cosmetic-2.patch
</userinput></screen>
<para>
Apply the patch that avoids bogus dependencies of the hotplug initscript
upon <application>which</application> and
<application>usbutils</application> packages:
</para>
<screen><userinput>patch -Np1 -i ../hotplug-&hotplug-version;-bogus-deps-1.patch
</userinput></screen>
<para>
USB coldplugging is somewhat broken in Hotplug by default. Fix this with the
following patch:
</para>
<screen><userinput>patch -Np1 -i ../hotplug-&hotplug-version;-device-2.patch
</userinput></screen>
<para>
At last, there is an optional patch that adds ISAPNP hardware detection
capabilities to hotplug. It is not well tested. If you chose to apply it,
run the following command:
</para>
<screen><userinput>patch -Np1 -i ../hotplug-&hotplug-version;-isapnp-2.patch
</userinput></screen>
<para>And finally install the hotplug package:</para>
<screen><userinput>make install</userinput></screen>
<para>Make a symbolic link that tells the lfs-bootscripts package to run the
hotplug initscript after mounting and cleaning filesystems:</para>
<screen><userinput>ln -sf ../init.d/hotplug /etc/rc.d/init.d/S55hotplug</userinput></screen>
<para>
If you have applied the ISAPNP patch, add some required entries to
<filename>/etc/modprobe.conf</filename>:</para>
<screen><userinput>cat &gt;&gt;/etc/modprobe.conf &lt;&lt;"EOF"</userinput>
# Begin /etc/modprobe.conf entries for ISAPNP hardware detection script
# by Marco d'Itri
alias pnp:dPNP0511 irtty-sir
alias pnp:dPNP0700 floppy
alias pnp:dPNP0800 pcspkr
alias pnp:dPNP0B00 rtc
alias pnp:dPNP0303 atkbd
alias pnp:dPNP0F13 psmouse
alias pnp:dPNPB02F analog
# End /etc/modprobe.conf entries for ISAPNP hardware detection script
<userinput>EOF</userinput></screen>
<para>These entries may become unneded for newer versions of Linux kernel,
since Marco d'Itri will try to convince developers to put them into the
corresponding modules themselves.</para>
</sect2>
<sect2 id="contents-hotplug" role="content"><title>Contents of Hotplug</title>
<para></para>
</sect2>
<variablelist>
<varlistentry>
<term id="hotplug"><command>/sbin/hotplug</command></term>
<listitem>
<indexterm zone="ch-system-hotplug hotplug"><primary
sortas="b-hotplug">hotplug</primary></indexterm>
<para>This script is called by default by Linux kernel when something
changes in its internal state (e.g. a new device is added or removed).</para>
</listitem>
</varlistentry>
<varlistentry>
<term id="hotplug-initscript"><command>hotplug</command> initscript</term>
<listitem>
<indexterm zone="ch-system-hotplug hotplug-initscript"><primary
sortas="d-hotplug-initscript">hotplug</primary></indexterm>
<para>This script just runs all
<filename>/etc/hotplug/*.rc</filename> scripts in turn during system
startup.</para>
</listitem>
</varlistentry>
<varlistentry>
<term id="hotplug-rc"><command>*.rc</command> files in
<filename class="directory">/etc/hotplug</filename> directory</term>
<listitem>
<para>These scripts are used for cold plugging, i.e. detection and other
specific actions upon hardware already present during system startup. These
scripts try to find kernel modules corresponding to your hardware and insert
them into the running kernel.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term id="hotplug-agent"><command>*.agent</command> files in
<filename class="directory">/etc/hotplug</filename> directory</term>
<listitem>
<para>These scripts are called by <command>/sbin/hotplug</command>
in response to different types of hotplug events generated by the kernel.
Their action is to insert corresponding kernel modules and call user-provided
scripts, if any.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term id="hotplug-functions"><filename>/etc/hotplug/hotplug.functions</filename></term>
<listitem>
<para>This file contains common functions used by other scripts in hotplug
package.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term id="hotplug-blacklist"><filename>/etc/hotplug/blacklist</filename></term>
<listitem>
<indexterm zone="ch-system-hotplug hotplug-blacklist"><primary
sortas="e-/etc/hotplug/blacklist">/etc/hotplug/blacklist</primary></indexterm>
<para>This file contains the list of modules that should never be
inserted into the kernel by hotplug scripts.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term id="hotplug-subdirs"><filename class="directory">/etc/hotplug/{pci,usb}</filename></term>
<listitem>
<para>These directories are supposed to contain user-written handlers for
hotplug events.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term id="hotplug-usb.usermap"><filename>/etc/hotplug/usb.usermap</filename></term>
<listitem>
<indexterm zone="ch-system-hotplug hotplug-usb.usermap"><primary
sortas="e-/etc/hotplug/usb.usermap">/etc/hotplug/usb.usermap</primary></indexterm>
<para>This file contains rules that determine which user-defined handlers to
call for each USB device, based on its vendor, id and other attributes.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term id="hotplug-hotplug.d"><filename class="directory">/etc/hotplug.d</filename></term>
<listitem>
<para>This directory contains programs (or symlinks to them)
that are interested in receiving all hotplug events. E.g.,
<application>udev</application> puts its symlink here during installation.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>

View File

@ -47,6 +47,7 @@ dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:15:
<userinput>EOF</userinput></screen>
<para>The created groups aren't part of any standard -- they are some of the

View File

@ -38,11 +38,6 @@ by applying the following patch:</para>
<screen><userinput>make udevdir=/dev install</userinput></screen>
<para>And since we aren't going to be using the udev daemon, but instead the
udev binary itself, we correct it's hotplug configuration:</para>
<screen><userinput>ln -sf /sbin/udev /etc/hotplug.d/default/udev.hotplug</userinput></screen>
</sect2>

View File

@ -25,7 +25,7 @@ proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
devpts /dev/pts devpts gid=4,mode=620 0 0
shm /dev/shm tmpfs defaults 0 0
usbfs /proc/bus/usb usbfs devgid=15,devmode=0660 0 0
# End /etc/fstab
<userinput>EOF</userinput></screen>
@ -33,7 +33,8 @@ shm /dev/shm tmpfs defaults 0 0
and <filename>fff</filename> with the values appropriate for your system --
for example <filename>hda2</filename>, <filename>hda5</filename> and
<filename>reiserfs</filename>. For all the details on the six fields in this
table, see <command>man 5 fstab</command>.</para>
table, see <command>man 5 fstab</command>. Omit the usbfs line if you didn't
compile "USB device filesystem" into the kernel.</para>
<para>When using a reiserfs partition, the <emphasis>1 1</emphasis> at the
end of the line should be replaced with <emphasis>0 0</emphasis>, as such a

View File

@ -63,6 +63,10 @@ scratch.</para>
<quote>Virtual memory file system support</quote> is enabled. It resides within
the <quote>File systems</quote> menu and is normally enabled by default.</para>
<para>LFS bootscripts make the assumption that you either compile
"USB device filesystem" directly into the kernel, or don't compile it at
all. They will not work properly if it is a module (usbcore.ko).</para>
<note><para>NPTL requires the kernel to be compiled with GCC 3.x, in this case
&gcc-version;. Compiling with 2.95.x is known to cause failures in the glibc
testsuite, so do <emphasis>not</emphasis> compile the kernel with gcc 2.95.x

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!ENTITY version "CVS-20040519">
<!ENTITY releasedate "May 19, 2004">
<!ENTITY version "CVS-20040520">
<!ENTITY releasedate "May 20, 2004">
<!ENTITY milestone "6.1">
<!ENTITY lfs-root "http://www.linuxfromscratch.org/">
@ -39,6 +39,7 @@
<!ENTITY groff-version "1.19.1">
<!ENTITY grub-version "0.94">
<!ENTITY gzip-version "1.3.5">
<!ENTITY hotplug-version "2004_04_01">
<!ENTITY iana-etc-version "1.00">
<!ENTITY inetutils-version "1.4.2">
<!ENTITY kbd-version "1.12">