aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bootscripts/ChangeLog9
-rw-r--r--bootscripts/Makefile3
-rw-r--r--bootscripts/lfs/init.d/udev_retry11
-rw-r--r--chapter01/changelog.xml10
-rw-r--r--chapter07/udev.xml58
-rw-r--r--general.ent4
-rw-r--r--packages.ent2
7 files changed, 68 insertions, 29 deletions
diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog
index fb3cc3138..1937ca4b0 100644
--- a/bootscripts/ChangeLog
+++ b/bootscripts/ChangeLog
@@ -1,4 +1,11 @@
-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.
** Move network services to /lib/services.
diff --git a/bootscripts/Makefile b/bootscripts/Makefile
index 5053e2698..65eafc888 100644
--- a/bootscripts/Makefile
+++ b/bootscripts/Makefile
@@ -60,6 +60,9 @@ files: create-dirs
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 \
install -m ${CONFMODE} lfs/sysconfig/rc ${EXTDIR}/sysconfig/ ;\
fi
diff --git a/bootscripts/lfs/init.d/udev_retry b/bootscripts/lfs/init.d/udev_retry
index 8abf3da64..4f258ac19 100644
--- a/bootscripts/lfs/init.d/udev_retry
+++ b/bootscripts/lfs/init.d/udev_retry
@@ -7,6 +7,7 @@
# Authors : Alexander E. Patrakov
# DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
+# Bryan Kadzban -
#
# Version : LFS 7.0
#
@@ -44,8 +45,14 @@ case "${1}" in
rm -f $file
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
/sbin/udevadm settle
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 63aade35b..6fd4daedc 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -37,6 +37,16 @@
-->
<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>
<itemizedlist>
<listitem>
diff --git a/chapter07/udev.xml b/chapter07/udev.xml
index 5bb769caa..3ceb7704c 100644
--- a/chapter07/udev.xml
+++ b/chapter07/udev.xml
@@ -93,40 +93,52 @@
</sect3>
<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>
<sect3>
<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
determined by rules specified in the files within the <filename
diff --git a/general.ent b/general.ent
index 994cce4b5..f622d36f6 100644
--- a/general.ent
+++ b/general.ent
@@ -1,5 +1,5 @@
-<!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">
<!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->
diff --git a/packages.ent b/packages.ent
index 62c32c83b..813fcfb12 100644
--- a/packages.ent
+++ b/packages.ent
@@ -298,7 +298,7 @@
<!ENTITY less-ch6-du "3.5 MB">
<!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">
<!ENTITY lfs-bootscripts-md5 "BOOTSCRIPTS-MD5SUM"> <!-- Updated in Makefile -->