X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=packages%2Fbase%2Fudev%2Finit_udev.sh;h=e3cf08e86e4d913b7a7ad920c6df1c5ecf6920ca;hb=029ff78113d34dc147be031354a4d87d8a1224b7;hp=75280856334103708a0ef9a0aaf41866d66e12c2;hpb=7aec53417f2a86067cbaa51fcfa5a26b62064ebd;p=hdw-linux%2Fhdw-linux.git diff --git a/packages/base/udev/init_udev.sh b/packages/base/udev/init_udev.sh index 7528085..e3cf08e 100644 --- a/packages/base/udev/init_udev.sh +++ b/packages/base/udev/init_udev.sh @@ -29,12 +29,16 @@ run_udev() { # all other devices for i in ${sysfs_dir}/class/*; do for j in $i/*; do + # cruel hack to not del /dev/null + if [ "$j" != "${sysfs_dir}/class/mem/null" -o \ + "$ACTION" != "remove" ] ; then if [ -f $j/dev ]; then export DEVPATH=${j#${sysfs_dir}} CLASS=`echo ${i#${sysfs_dir}} | \ cut --delimiter='/' --fields=3-` $bin $CLASS & fi + fi done done return 0 @@ -46,17 +50,11 @@ add_nodes() { ln -snf /proc/self/fd/1 $udev_root/stdout ln -snf /proc/self/fd/2 $udev_root/stderr ln -snf /proc/kcore $udev_root/core - mkdir $udev_root/pts - mount $udev_root/pts - mkdir $udev_root/shm - mount $udev_root/shm } # delete them when shutting down (not used right now) del_nodes() { - umount $udev_root/shm - umount $udev_root/pts - rm -rf $udev_root/{fd,stdin,stdout,stderr,core,pts,shm} + rm -rf $udev_root/{fd,stdin,stdout,stderr,core} } # main procedures @@ -65,15 +63,17 @@ case "$1" in start) echo -n "starting udev ..." - echo "/sbin/udev" > /proc/sys/kernel/hotplug if [ ! -d $sysfs_dir/block ] ; then echo "fatal: sysfs not mounted" exit 1 fi rm -f $udev_root/.udev.tdb + [ ! -c ${udev_root}/null ] && \ + mknod -m 0660 ${udev_root}/null c 1 3 export ACTION=add export UDEV_NO_SLEEP=1 - run_udev + #run_udev + /sbin/udevstart add_nodes $udevd & echo " done"