mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-06-18 19:29:21 +01:00
Fix the udev_retry script, and add an explanation
for how to configure it. git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@9614 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
parent
b777a9ed50
commit
2a1c1e03a4
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -36,6 +36,16 @@
|
||||
</listitem>
|
||||
|
||||
-->
|
||||
<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>
|
||||
|
@ -93,40 +93,52 @@
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Udev Bootscript</title>
|
||||
<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
|
||||
<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
|
||||
|
@ -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 – -->
|
||||
<!ENTITY milestone "7.0">
|
||||
<!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->
|
||||
|
@ -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 -->
|
||||
|
Loading…
Reference in New Issue
Block a user