--- trunk/magellan-initscripts/etc/rc.d/init.d/rc 2007/02/07 08:07:43 425 +++ trunk/magellan-initscripts/etc/rc.d/init.d/rc 2007/03/04 13:24:34 428 @@ -1,5 +1,5 @@ #!/bin/bash -# $Header: /home/cvsd/magellan-cvs/magellan-src/magellan-initscripts/etc/rc.d/init.d/rc,v 1.12 2007-02-07 08:07:43 niro Exp $ +# $Header: /home/cvsd/magellan-cvs/magellan-src/magellan-initscripts/etc/rc.d/init.d/rc,v 1.13 2007-03-04 13:24:34 niro Exp $ source /etc/sysconfig/rc source $rc_functions @@ -30,6 +30,9 @@ { local opts + # tell modprobe.sh to be verbose to $CONSOLE + echo CONSOLE=${CONSOLE} > /dev/.udev_populate + # populate /dev with devices already found by the kernel if [ "$(kernel_version | sed 's:\.::g' | cut -d_ -f1)" -gt "2614" ] then @@ -48,6 +51,7 @@ /sbin/udevsettle --timeout=60 evaluate_retval + rm -f /dev/.udev_populate return 0 } @@ -56,12 +60,16 @@ # seed /dev with some things that we know we need echo -e ${COLOREDSTAR}" Seeding /dev with needed nodes ..." ( + [ ! -c /dev/console ] && mknod /dev/console c 5 1 + [ ! -c /dev/tty1 ] && mknod /dev/tty1 c 4 1 + [ ! -c /dev/null ] && mknod /dev/null c 1 3 + # copy over any persistant things if [[ -d /lib/udev/devices ]] then cp --preserve=all --recursive --update /lib/udev/devices/* /dev fi - + # not provided by sysfs but needed ln -snf /proc/self/fd /dev/fd ln -snf fd/0 /dev/stdin @@ -151,6 +159,9 @@ # load udev only with a 2.6 kernel if [[ $(kernel_major_version) = 2.6 ]] && [[ ${RC_USED_DEV} = udev ]] then + # check if /dev/console exists outside tmpfs + [ -c /dev/console ] ; need_redirect=$? + # create a ramdisk for populating udev echo -e ${COLOREDSTAR}"Mounting udev at /dev ..." # many video drivers needed exec access @@ -190,7 +201,13 @@ fi echo -e ${COLOREDSTAR}" Starting udevd daemon ..." - /sbin/udevd --daemon + if [ ${need_redirect} -eq 1 ] + then + # we need to open fds 0 1 2 + /sbin/udevd --daemon /dev/console 2>/dev/console + else + /sbin/udevd --daemon + fi evaluate_retval populate_udev