Index: bootscripts/ChangeLog
===================================================================
--- bootscripts/ChangeLog	(revision b777a9ed50efe38706c26e9e4bae3e1efb67d24f)
+++ bootscripts/ChangeLog	(revision 2a1c1e03a43156b673a7188a0cd4a784829ab3c5)
@@ -1,3 +1,10 @@
-2100-09-18
+2011-10-06  Bryan Kadzban <bryan@linuxfromscratch.org>
+
+   * Add configuration for udev_retry, and remove --type=failed (which does
+     not work with recent udev versions anyway, since no events can possibly
+     trigger it).  Start with just the "rtc" subsystem.  BLFS should eventually
+     add "sound" to this file, and perhaps others.
+
+2011-09-18
    * Review and update of changes made in previous change.
    ** Rename /etc/sysconfig/init_params to /etc/sysconfig/rc.site.
Index: bootscripts/Makefile
===================================================================
--- bootscripts/Makefile	(revision b777a9ed50efe38706c26e9e4bae3e1efb67d24f)
+++ bootscripts/Makefile	(revision 2a1c1e03a43156b673a7188a0cd4a784829ab3c5)
@@ -60,4 +60,7 @@
 	if [ ! -f ${EXTDIR}/sysconfig/modules     ]; then \
           install -m ${CONFMODE} lfs/sysconfig/modules     ${EXTDIR}/sysconfig/ ;\
+        fi
+	if [ ! -f ${EXTDIR}/sysconfig/udev_retry  ]; then \
+          install -m ${CONFMODE} lfs/sysconfig/udev_retry  ${EXTDIR}/sysconfig/ ;\
         fi
 	if [ ! -f ${EXTDIR}/sysconfig/rc          ]; then \
Index: bootscripts/lfs/init.d/udev_retry
===================================================================
--- bootscripts/lfs/init.d/udev_retry	(revision b777a9ed50efe38706c26e9e4bae3e1efb67d24f)
+++ bootscripts/lfs/init.d/udev_retry	(revision 2a1c1e03a43156b673a7188a0cd4a784829ab3c5)
@@ -8,4 +8,5 @@
 #               DJ Lucas - dj@linuxfromscratch.org
 # Update      : Bruce Dubbs - bdubbs@linuxfromscratch.org
+#               Bryan Kadzban - 
 #
 # Version     : LFS 7.0
@@ -45,6 +46,12 @@
       done
 
-      # Re-trigger the failed uevents in hope they will succeed now
-      /sbin/udevadm trigger --type=failed --action=add
+      # Re-trigger the uevents that may have failed, 
+      # in hope they will succeed now
+      /bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \
+      while read line ; do
+         for subsystem in $line ; do
+            /sbin/udevadm trigger --subsystem-match=$subsystem --action=add
+         done
+      done
 
       # Now wait for udevd to process the uevents we triggered
Index: chapter01/changelog.xml
===================================================================
--- chapter01/changelog.xml	(revision b777a9ed50efe38706c26e9e4bae3e1efb67d24f)
+++ chapter01/changelog.xml	(revision 2a1c1e03a43156b673a7188a0cd4a784829ab3c5)
@@ -37,4 +37,14 @@
 
 -->
+    <listitem>
+      <para>2011-10-06</para>
+      <itemizedlist>
+        <listitem>
+          <para>[bryan] - Fix the udev_retry script, and add an explanation
+          for how to configure it.</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
     <listitem>
       <para>2011-10-05</para>
Index: chapter07/udev.xml
===================================================================
--- chapter07/udev.xml	(revision b777a9ed50efe38706c26e9e4bae3e1efb67d24f)
+++ chapter07/udev.xml	(revision 2a1c1e03a43156b673a7188a0cd4a784829ab3c5)
@@ -94,26 +94,38 @@
 
     <sect3>
-      <title>Udev Bootscript</title>
-
-      <para>The <command>/etc/rc.d/init.d/udev</command> initscript takes care of creating
-      device nodes when Linux is booted. The script unsets the uevent handler
-      from the default of <command>/sbin/hotplug</command>.  This is done
-      because the kernel no longer needs to call out to an external binary.
-      Instead <command>udevd</command> will listen on a netlink socket for
-      uevents that the kernel raises. Next, the bootscript copies any static
-      device nodes that exist in <filename
+      <title>Udev Bootscripts</title>
+
+      <para>The <command>/etc/rc.d/init.d/udev</command> initscript takes care
+      of creating device nodes when Linux is booted. The script unsets the
+      uevent handler from the default of <command>/sbin/hotplug</command>.
+      This is done because the kernel no longer needs to call out to an
+      external binary.  Instead <command>udevd</command> will listen on a
+      netlink socket for uevents that the kernel raises. Next, the bootscript
+      copies any static device nodes that exist in <filename
       class="directory">/lib/udev/devices</filename> to <filename
-      class="directory">/dev</filename>. This is necessary because some devices,
-      directories, and symlinks are needed before the dynamic device handling
-      processes are available during the early stages of booting a system, or
-      are required by <command>udevd</command> itself.  Creating static device
-      nodes in <filename class="directory">/lib/udev/devices</filename> also
-      provides an easy workaround for devices that are not supported by the
-      dynamic device handling infrastructure. The bootscript then starts the
-      Udev daemon, <command>udevd</command>, which will act on any uevents it
-      receives. Finally, the bootscript forces the kernel to replay uevents for
-      any devices that have already been registered and then waits for
+      class="directory">/dev</filename>. This is necessary because some
+      devices, directories, and symlinks are needed before the dynamic device
+      handling processes are available during the early stages of booting a
+      system, or are required by <command>udevd</command> itself.  Creating
+      static device nodes in <filename
+      class="directory">/lib/udev/devices</filename> also provides an easy
+      workaround for devices that are not supported by the dynamic device
+      handling infrastructure. The bootscript then starts the Udev daemon,
+      <command>udevd</command>, which will act on any uevents it receives.
+      Finally, the bootscript forces the kernel to replay uevents for any
+      devices that have already been registered and then waits for
       <command>udevd</command> to handle them.</para>
 
+      <para>The <command>/etc/rc.d/init.d/udev_retry</command> initscript takes
+      care of re-triggering events for subsystems whose rules may rely on
+      filesystems that are not mounted until the <command>mountfs</command>
+      script is run (in particular, /usr and /var may cause this).  This script
+      runs after the <command>mountfs</command> script, so those rules (if
+      re-triggered) should succeed the second time around.  It is configured
+      from the <filename>/etc/sysconfig/udev_retry</filename> file; any words
+      in this file other than comments are considered subsystem names to
+      trigger at retry time.  (To find the subsystem of a device, use
+      <command>udevadm info --attribute-walk</command>.)</para>
+
     </sect3>
 
@@ -121,11 +133,11 @@
       <title>Device Node Creation</title>
 
-      <para>To obtain the right major and minor number for a device, Udev relies
-      on the information provided by <systemitem
+      <para>To obtain the right major and minor number for a device, Udev
+      relies on the information provided by <systemitem
       class="filesystem">sysfs</systemitem> in <filename
       class="directory">/sys</filename>.  For example,
       <filename>/sys/class/tty/vcs/dev</filename> contains the string
-      <quote>7:0</quote>. This string is used by <command>udevd</command>
-      to create a device node with major number <emphasis>7</emphasis> and minor
+      <quote>7:0</quote>. This string is used by <command>udevd</command> to
+      create a device node with major number <emphasis>7</emphasis> and minor
       <emphasis>0</emphasis>. The names and permissions of the nodes created
       under the <filename class="directory">/dev</filename> directory are
Index: general.ent
===================================================================
--- general.ent	(revision b777a9ed50efe38706c26e9e4bae3e1efb67d24f)
+++ general.ent	(revision 2a1c1e03a43156b673a7188a0cd4a784829ab3c5)
@@ -1,4 +1,4 @@
-<!ENTITY version "SVN-20111005">
-<!ENTITY releasedate "Oc5 5, 2011">
+<!ENTITY version "SVN-20111006">
+<!ENTITY releasedate "Oct 6, 2011">
 <!ENTITY copyrightdate "1999-2011"><!-- jhalfs needs a literal dash, not &ndash; -->
 <!ENTITY milestone "7.0">
Index: packages.ent
===================================================================
--- packages.ent	(revision b777a9ed50efe38706c26e9e4bae3e1efb67d24f)
+++ packages.ent	(revision 2a1c1e03a43156b673a7188a0cd4a784829ab3c5)
@@ -299,5 +299,5 @@
 <!ENTITY less-ch6-sbu "less than 0.1 SBU">
 
-<!ENTITY lfs-bootscripts-version "20110926">                 <!-- Scripts depend on this format -->
+<!ENTITY lfs-bootscripts-version "20111006">                 <!-- Scripts depend on this format -->
 <!ENTITY lfs-bootscripts-size "BOOTSCRIPTS-SIZE KB">         <!-- Updated in Makefile -->
 <!ENTITY lfs-bootscripts-url "&downloads-root;lfs-bootscripts-&lfs-bootscripts-version;.tar.bz2">
