Rewrite bootscripts and Chaper 7
[linux_from_scratch.git] / bootscripts / lfs / init.d / udev_retry
blobfaad2a4c9d84f5beb47865009bc8ca295c3a701e
1 #!/bin/sh
2 ########################################################################
3 # Begin udev_retry
5 # Description : Udev cold-plugging script (retry)
7 # Authors : Alexander E. Patrakov
8 # Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
10 # Version : LFS 7.0
12 ########################################################################
14 ### BEGIN INIT INFO
15 # Provides: udev_retry
16 # Required-Start: udev
17 # Should-Start: $local_fs
18 # Required-Stop:
19 # Should-Stop:
20 # Default-Start: S
21 # Default-Stop:
22 # Short-Description: Replays failed uevents and creates additonal devices.
23 # Description: Replays any failed uevents that were skipped due to
24 # slow hardware initialization, and creates those needed
25 # device nodes
26 # X-LFS-Provided-By: LFS
27 ### END INIT INFO
29 . /lib/boot/functions
31 case "${1}" in
32 start)
33 boot_mesg "Retrying failed uevents, if any..."
35 RUNDIR=$(/sbin/udevadm info --run)
36 # From Debian: "copy the rules generated before / was mounted
37 # read-write":
39 for file in ${RUNDIR}/tmp-rules--*; do
40 dest=${file##*tmp-rules--}
41 [ "$dest" = '*' ] && break
42 cat $file >> /etc/udev/rules.d/$dest
43 rm -f $file
44 done
46 # Re-trigger the failed uevents in hope they will succeed now
47 /sbin/udevadm trigger --type=failed --action=add
49 # Now wait for udevd to process the uevents we triggered
50 /sbin/udevadm settle
51 evaluate_retval
55 echo "Usage ${0} {start}"
56 exit 1
58 esac
60 # End udev_retry