summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/init.d/udev25
1 files changed, 16 insertions, 9 deletions
diff --git a/etc/init.d/udev b/etc/init.d/udev
index 99f06c2963..5c09afd205 100644
--- a/etc/init.d/udev
+++ b/etc/init.d/udev
@@ -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