]> err.no Git - systemd/commitdiff
[PATCH] LFS init script update
authormbuesch@freenet.de <mbuesch@freenet.de>
Sat, 24 Jan 2004 06:54:55 +0000 (22:54 -0800)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 04:13:18 +0000 (21:13 -0700)
etc/init.d/udev.init.lfs

index 08c81733e1a020264a9cf85938f59185138fb4c3..c7383690813f877e159a1a54cf0b420c6b1bf461 100644 (file)
@@ -2,83 +2,75 @@
 #
 # LinuxFromScratch udev init script
 #  derived from original RedHat udev init script
-#  2003 by Michael Buesch <mbuesch@freenet.de>
+#  2003, 2004 by Michael Buesch <mbuesch@freenet.de>
 #
 
 source /etc/sysconfig/rc
 source $rc_functions
+source /etc/udev/udev.conf
 
-udev_dir="/udev"
 sysfs_dir="/sys"
 bin="/sbin/udev"
 
+
+run_udev ()
+{
+       # handle block devices and their partitions
+       for i in ${sysfs_dir}/block/*; do
+               # 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=${j#${sysfs_dir}}
+                               $bin block &
+                       fi
+               done
+       done
+       # 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
+       return 0
+}
+
 case "$1" in
        start)
                echo "Creating initial udev device nodes ..."
-               if [ ! -d $udev_dir ]; then
-                       mkdir $udev_dir
-                       if [ $? -ne 0 ]; then
-                               print_status failure
-                               exit 1
-                       fi
-               fi
                if [ ! -d $sysfs_dir ]; then
                        echo "sysfs_dir $sysfs_dir does not exist!"
                        print_status failure
                        exit 1
                fi
+               if [ ! -d $udev_root ]; then
+                       mkdir $udev_root
+                       if [ $? -ne 0 ]; then
+                               print_status failure
+                               exit 1
+                       fi
+               fi
+
                # propogate /udev from /sys - we only need this while we do not
                # have initramfs and an early user-space with which to do early
                # device bring up
-               clean_exit="yes"
                export ACTION=add
-               # add block devices and their partitions
-               for i in ${sysfs_dir}/block/*; do
-                       # 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=${j#${sysfs_dir}}
-                                       $bin block
-                                       if [ $? -ne 0 ]; then
-                                               echo "Warning: $DEVPATH failed."
-                                               clean_exit="no"
-                                       fi
-                               fi
-                       done
-               done
-               # 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
-                                       if [ $? -ne 0 ]; then
-                                               echo "Warning: $DEVPATH failed."
-                                               clean_exit="no"
-                                       fi
-                               fi
-                       done
-               done
-               if [ $clean_exit = "yes" ]; then
-                       print_status success
-               else
-                       print_status warning
-               fi
+               run_udev
+               evaluate_retval
                ;;
        stop)
                echo "Removing udev device nodes ..."
-               # be careful
-               if [ $udev_dir -a "$udev_dir" != "/" ]; then
-                       # clear out /udev
-                       rm -rf ${udev_dir}/*
-                       evaluate_retval
-               fi
+               export ACTION=remove
+               run_udev
+               evaluate_retval
                ;;
        reload)
                # nothing to do here