aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06
diff options
context:
space:
mode:
authorArchaic <archaic@linuxfromscratch.org>2006-05-01 15:46:53 +0000
committerArchaic <archaic@linuxfromscratch.org>2006-05-01 15:46:53 +0000
commit7d6d34b85935b7adb2aceab412183887531c3f52 (patch)
treef38cd333158ae7e3d5885478ac7fe686e170b027 /chapter06
parent6b8936fc924978087067950c3636e2fe3b012ca5 (diff)
Updated to udev-091. Moved to a tarball-based set of udev rules. Updated the bootscripts to support the new udevsettle program.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7569 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter06')
-rw-r--r--chapter06/udev.xml72
1 files changed, 53 insertions, 19 deletions
diff --git a/chapter06/udev.xml b/chapter06/udev.xml
index 9125ba226..1591192d0 100644
--- a/chapter06/udev.xml
+++ b/chapter06/udev.xml
@@ -35,6 +35,11 @@
<sect2 role="installation">
<title>Installation of Udev</title>
+ <para>The udev-config tarball contains LFS-specific files used to configure
+ Udev.</para>
+
+<screen><userinput>tar xf ../&udev-config;.tar.bz2</userinput></screen>
+
<para>Create some devices and directories that Udev cannot handle due to
them being required very early in the boot process:</para>
@@ -49,8 +54,8 @@ ln -sv /proc/kcore /lib/udev/devices/core</userinput></screen>
<para>Compile the package:</para>
<screen><userinput>make EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \
- extras/firmware extras/floppy extras/scsi_id \
- extras/usb_id extras/volume_id"</userinput></screen>
+ extras/firmware extras/floppy extras/path_id \
+ extras/scsi_id extras/usb_id extras/volume_id"</userinput></screen>
<variablelist>
<title>The meaning of the make option:</title>
@@ -72,8 +77,8 @@ ln -sv /proc/kcore /lib/udev/devices/core</userinput></screen>
<screen><userinput>make DESTDIR=/ \
EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \
- extras/firmware extras/floppy extras/scsi_id \
- extras/usb_id extras/volume_id" install</userinput></screen>
+ extras/firmware extras/floppy extras/path_id \
+ extras/scsi_id extras/usb_id extras/volume_id" install</userinput></screen>
<variablelist>
<title>The meaning of the make parameter:</title>
@@ -92,15 +97,18 @@ ln -sv /proc/kcore /lib/udev/devices/core</userinput></screen>
<para>Udev's configuration is far from ideal by default, so install
the configuration files here:</para>
-<screen><userinput>cp -v ../&udev-config-file; /etc/udev/rules.d/25-lfs.rules</userinput></screen>
+<!-- FIXME: 90-bug.rules should be removed once the book is released -->
+<screen><userinput>cp &udev-config;/05-udev-early.rules /etc/udev/rules.d/
+cp &udev-config;/25-lfs.rules /etc/udev/rules.d/
+cp &udev-config;/60-persistent-storage.rules /etc/udev/rules.d/
+cp &udev-config;/81-cdrom.rules /etc/udev/rules.d/
+cp &udev-config;/83-cdrom-symlinks.rules /etc/udev/rules.d/
+cp &udev-config;/90-bug.rules /etc/udev/rules.d/</userinput></screen>
- <para>Create some rules that work around broken sysfs attribute creation
- timing in linux-2.6.15:</para>
+ <para>Now install a helper script that is not included in the main Udev
+ tarball:</para>
-<screen><userinput>cat &gt; /etc/udev/rules.d/10-wait_for_sysfs.rules &lt;&lt; "EOF"
-ACTION=="add", DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
-ACTION=="add", SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
-EOF</userinput></screen>
+<screen><userinput>install -m 744 &udev-config;/write_cd_aliases /lib/udev/</userinput></screen>
<para>Install the documentation that explains how to create Udev rules:</para>
@@ -155,12 +163,6 @@ EOF</userinput></screen>
<screen><userinput>gcc -o /lib/udev/bug bug.c</userinput></screen>
- <para>The next step adds a simple logging rule to run this program.</para>
-
-<screen><userinput>cat &gt; /etc/udev/rules.d/90-bug.rules &lt;&lt; "EOF"
-<literal>ACTION=="add", RUN+="bug"</literal>
-EOF</userinput></screen>
-
<para>When booting the new LFS system, if any events are missed, a warning
message will appear and a <filename>/dev/bugreport</filename> file will be
created. The warning message will tell you where to send feedback.</para>
@@ -178,8 +180,8 @@ EOF</userinput></screen>
<seglistitem>
<seg>ata_id, cdrom_id, create_floppy_devices, edd_id, firmware_helper,
- scsi_id, udevcontrol, udevd, udevinfo, udevmonitor, udevtest, usb_id
- and vol_id</seg>
+ path_id, scsi_id, udevcontrol, udevd, udevinfo, udevmonitor, udevsettle,
+ udevtest, udevtrigger, usb_id, vol_id, and write_cd_aliases</seg>
<seg>/etc/udev</seg>
</seglistitem>
</segmentedlist>
@@ -241,6 +243,17 @@ EOF</userinput></screen>
</listitem>
</varlistentry>
+ <varlistentry id="path_id">
+ <term><command>path_id</command></term>
+ <listitem>
+ <para>Provide the shortest possible unique hardware path to a
+ device</para>
+ <indexterm zone="ch-system-udev path_id">
+ <primary sortas="b-path_id">path_id</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="scsi_id">
<term><command>scsi_id</command></term>
<listitem>
@@ -301,6 +314,17 @@ EOF</userinput></screen>
</listitem>
</varlistentry>
+ <varlistentry id="udevsettle">
+ <term><command>udevsettle</command></term>
+ <listitem>
+ <para>Watches the Udev event queue and exits if all current uevents
+ have been handled</para>
+ <indexterm zone="ch-system-udev udevsettle">
+ <primary sortas="b-udevsettle">udevsettle</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="udevtest">
<term><command>udevtest</command></term>
<listitem>
@@ -313,6 +337,16 @@ EOF</userinput></screen>
</listitem>
</varlistentry>
+ <varlistentry id="udevtrigger">
+ <term><command>udevtrigger</command></term>
+ <listitem>
+ <para>Triggers kernel device uevents to be replayed</para>
+ <indexterm zone="ch-system-udev udevtrigger">
+ <primary sortas="b-udevtrigger">udevtrigger</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="usb_id">
<term><command>usb_id</command></term>
<listitem>