summaryrefslogtreecommitdiffstats
path: root/initramfs/initrd-stuff
diff options
context:
space:
mode:
authorDirk von Suchodoletz2006-12-16 01:13:02 +0100
committerDirk von Suchodoletz2006-12-16 01:13:02 +0100
commit0e41494e29e20161d0e7846b79d16324b99b323f (patch)
tree93a052fac7dd27114146d07130908fd0901a444a /initramfs/initrd-stuff
parentUse a temp dir to download the prerequired packages. If we can't create (diff)
downloadcore-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-xinitramfs/initrd-stuff/bin/hwautocfg16
-rw-r--r--initramfs/initrd-stuff/etc/functions24
-rwxr-xr-xinitramfs/initrd-stuff/init8
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