chiark / gitweb /
[PATCH] fix udev init.d script to handle all class devices in sysfs.
[elogind.git] / etc / init.d / udev
index 99f06c296306f8fee99929b7856a82446ab2b218..5c09afd205c6cde35e798d8a961d8294b849f4e6 100644 (file)
@@ -24,24 +24,31 @@ case "$1" in
        # device bring up
        action "Creating initial udev device nodes: " /bin/true
        export ACTION=add
-       # add tty devices
-       for i in ${sysfs_dir}/class/tty/*; do
-               export DEVPATH="/"`echo $i | cut --delimiter='/' --fields=3-`
-               $bin tty
-       done
        # add block devices and their partitions
        for i in ${sysfs_dir}/block/*; do
-               export DEVPATH="/"`echo $i | cut --delimiter='/' --fields=3-`
+               # add each drive
+               export DEVPATH=${i#${sysfs_dir}}
                $bin block
+
+               # add each partition, on each device
                for j in $i/*; do
                        if [ -f $j/dev ]; then
-                               export DEVPATH="/"`echo $j |  \
-                                       cut --delimiter='/' --fields=3-`
+                               export DEVPATH=${j#${sysfs_dir}}
                                $bin block
                        fi
                done
        done
-       # TODO: add other device classes
+       # all other device classes
+       for i in ${sysfs_dir}/class/*; do
+               for j in $i/*; do
+                       if [ -f $j/dev ]; then
+                               export DEVPATH=${j#${sysfs_dir}}
+                               CLASS=`echo ${i#${sysfs_dir}} | \
+                                       cut --delimiter='/' --fields=3-`
+                               $bin $CLASS
+                       fi
+               done
+       done
        ;;
   stop)
        # be careful