# don't use udev if sysfs is not mounted.
[ -d $sysfs_dir/class ] || exit 1
[ -r /proc/mounts ] || exit 1
-[ -x /sbin/udev ] || exit 1
[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
. /etc/rc.d/init.d/functions
case "$type" in
L) ln -s $arg1 $udev_root/$name ;;
D) mkdir -p $udev_root/$name ;;
+ M) mknod -m 600 /dev/$name $arg1 ;;
*) echo "links.conf: unparseable line ($type $name $arg1)" ;;
esac
done
set_hotplug_handler() {
echo "" > /proc/sys/kernel/hotplug
}
- return 0
+
export ACTION=add
prog=udev
ret=0
show "Starting udev"
busy
-if ! supported_kernel; then
- fail
-fi
# mount the tmpfs on ${udev_root%/}, if not already done
LANG=C awk "\$2 == \"${udev_root%/}\" && \$3 == \"tmpfs\" { exit 1 }" /proc/mounts && {
if LANG=C fgrep -q "none ${udev_root%/}/pts " /proc/mounts; then
kill_udevd > "$udev_root/null" 2>&1
if [ -f "/sys/class/tty/console/uevent" ]; then
+
# Start udevd daemon
udevd --daemon
+ ret=$(( $ret + $? ))
- # Making extra nodes
- make_extra_nodes
-
- # Setting default hotplug handler
+ # Setting default hotplug handler
set_hotplug_handler
+ ret=$(( $ret + $? ))
+
+ # Making extra nodes
+ make_extra_nodes
+ ret=$(( $ret + $? ))
# retrigger all events
mkdir -p /dev/.udev/queue
;;
esac
done
-
+
+ ret=$(( $ret + $? ))
+
# trigger the sorted events
for i in $first $default $last; do
echo "add" > "$i"
done
-
+ ret=$(( $ret + $? ))
+
# wait for the events to finish
loop=300
while test -d /dev/.udev/queue; do
test "$loop" -gt 0 || break
loop=$(($loop - 1))
done
+
+ ret=$(( $ret + $? ))
else
echo "udev requires a kernel >= 2.6.15, not started."
exit 0