diff options
author | Dirk von Suchodoletz | 2006-12-16 01:13:02 +0100 |
---|---|---|
committer | Dirk von Suchodoletz | 2006-12-16 01:13:02 +0100 |
commit | 0e41494e29e20161d0e7846b79d16324b99b323f (patch) | |
tree | 93a052fac7dd27114146d07130908fd0901a444a /initramfs/initrd-stuff | |
parent | Use a temp dir to download the prerequired packages. If we can't create (diff) | |
download | core-0e41494e29e20161d0e7846b79d16324b99b323f.tar.gz core-0e41494e29e20161d0e7846b79d16324b99b323f.tar.xz core-0e41494e29e20161d0e7846b79d16324b99b323f.zip |
Enabled busybox udev service (see #99 too). Integrated for genereal use
if present in InitRamFS...
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@551 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initramfs/initrd-stuff')
-rwxr-xr-x | initramfs/initrd-stuff/bin/hwautocfg | 16 | ||||
-rw-r--r-- | initramfs/initrd-stuff/etc/functions | 24 | ||||
-rwxr-xr-x | initramfs/initrd-stuff/init | 8 |
3 files changed, 43 insertions, 5 deletions
diff --git a/initramfs/initrd-stuff/bin/hwautocfg b/initramfs/initrd-stuff/bin/hwautocfg index 9bdb4bc6..de275307 100755 --- a/initramfs/initrd-stuff/bin/hwautocfg +++ b/initramfs/initrd-stuff/bin/hwautocfg @@ -3,7 +3,7 @@ # universal (distro independent) hardware autoconfiguration script for # OpenSLX linux diskless clients, using hwconfig from knoppix as base tool # -# Dirk von Suchodoletz <dvs@OpenSLX.com>, 14-12-2006 +# Dirk von Suchodoletz <dvs@OpenSLX.com>, 16-12-2006 # # (c) 2003 - 2006 - RZ Universitaet Freiburg # (c) 2006 - OpenSLX.org Project @@ -301,6 +301,7 @@ for DRIVER in ohci-hcd uhci-hcd ehci-hcd ohci1394; do modprobe ${MODPRV} ${DRIVER} DRIVERLIST="${DRIVERLIST} ${DRIVER}"; } done +[ -x /bin/mdev ] && mdev -s & # load usbhid (for USB keyboard/mouse) or remove usbcore module if USB # is not present if [ -n "$USB" ] ; then @@ -343,7 +344,9 @@ modprobe ${MODPRV} snd-mixer-oss # rerun the knoppix hardware autodetection tool for USB and ide devices # like dvd or harddisk - wait a few seconds so hopefully the ide driver # is initialized -test -f /proc/bus/usb/devices || mount -n -t usbfs usbfs /proc/bus/usb +[ -x /bin/mdev ] && mdev -s & +test -f /proc/bus/usb/devices || \ + mount -n -t usbfs usbfs /proc/bus/usb 2>/dev/null [ -n "$IDE" ] && modprobe -q ide_generic 2>/dev/null usleep 10 && hwsetup -v > /tmp/hwsetup.info # remaining drivers listed in /tmp/hwsetup.info @@ -385,6 +388,7 @@ if strinfile "SCSI" /tmp/hwsetup.info ; then echo -e 'KERNEL=="sg*",\t\tNAME="%k", GROUP="disk", MODE="666"' \ >> /tmp/scanner-udev fi +[ -x /bin/mdev ] && mdev -s & # fixme - psmouse entladen, falls nicht vorhanden # configure some variables from configuration file - wait for dhcp or ldap @@ -467,6 +471,13 @@ if strinstr "/var/X11R6" "$link" ; then [ -e "/mnt/$i" ] && { ln -sf $i /mnt/var/X11R6/bin/X; break; } done fi +# if any new device appeared up to now +if [ -x /bin/mdev ] ; then + mdev -s & + testmkd /dev/input + mknod /dev/input/mice c 13 63 2>/dev/null +fi + # wait for completion of Xorg configuration waitfor /tmp/xready 20000 cp /etc/xorg.conf ${D_XF86CONFFILE} @@ -474,6 +485,7 @@ cp /etc/xorg.conf ${D_XF86CONFFILE} # do not finish until tmp is setup properly [ -n "$part44" ] && waitfor /tmp/tmpready 20000 + # script run timer [ $DEBUGLEVEL -eq 8 ] && echo "** HW setup finished at $(sysup)" diff --git a/initramfs/initrd-stuff/etc/functions b/initramfs/initrd-stuff/etc/functions index b27dfc66..aa0a8225 100644 --- a/initramfs/initrd-stuff/etc/functions +++ b/initramfs/initrd-stuff/etc/functions @@ -32,6 +32,7 @@ udev_hotplug () { : } + ############################################################################# # generate events with the sysfs trigger trigger_device_events () { @@ -61,6 +62,29 @@ trigger_device_events () { } ############################################################################# +# mini udev of busybox or distro specific udev_hotplug +runudev () { +if [ -x /bin/mdev ] ; then + # simple shell daemon which runs for 100 seconds and stops if hwautocfg is + # completed + #miniudev () { + # local maxwait=100 + # local count=0 + # while [ ! -e /tmp/hwcfg ] ; do + mdev -s + # sleep 1 + # count=`expr $count + 1` + # [ $count -gt $maxwait ] && return 0 + # done + #} + #miniudev & +else + udev_hotplug +fi +echo "Started udev" +} + +############################################################################# # produce error message and if $2 is empty run (debug) shell error () { local e_msg="$1" diff --git a/initramfs/initrd-stuff/init b/initramfs/initrd-stuff/init index fec140c7..f29f10ba 100755 --- a/initramfs/initrd-stuff/init +++ b/initramfs/initrd-stuff/init @@ -65,8 +65,8 @@ NFSRO="nfs" preinit [ -x /bin/preinit.local ] && /bin/preinit.local -# start device auto discovery service - distro specific function -udev_hotplug +# start device auto discovery service - busybox or distro specific function +runudev # switch off the several configuration methods, will be switched on # according to kernel commandline settings @@ -301,6 +301,7 @@ fi if [ -n "${nbdmod}" ] ; then # load block device driver if needed modprobe ${MODPRV} ${nbdmod} || error "$init_errnbd" + [ -x /bin/mdev ] && mdev -s [ -z "$nbdrfst" ] && nbdrfst=ext2 nbdhost=$(checkip $nbdhost) echo "Diskless client using ${nbdmod} on $nbdhost:$nbdport with $nbdrfst" @@ -311,7 +312,7 @@ if [ -n "${nbdmod}" ] ; then # network block device present in standard kernel nbd) RDEV=/dev/nbd0 - waitfor "${RDEV}" 30000 || error "$init_nbddev" + waitfor "${RDEV}" 20000 || error "$init_nbddev" while ! nbd-client $nbdhost $nbdport ${RDEV} ; do usleep 10 done @@ -342,6 +343,7 @@ if [ -n "${nbdmod}" ] ; then modprobe ${MODPRV} cowloop || { error "$init_loadcow" nonfatal COWLOOP=""; } + [ -x /bin/mdev ] && mdev -s fi if [ -n "${COWLOOP}" ] ; then if [ -n "${UNIONFS}" ] ; then |