summaryrefslogtreecommitdiffstats
path: root/initrd
diff options
context:
space:
mode:
authorDirk von Suchodoletz2006-01-31 23:53:33 +0100
committerDirk von Suchodoletz2006-01-31 23:53:33 +0100
commitd42dc1661b493ccaf2ff1c31ef023989798ca1cc (patch)
treec0a72b4eb2dedc730b07c47de571a934bfcb29f5 /initrd
parentMinor improvements ... (diff)
downloadcore-d42dc1661b493ccaf2ff1c31ef023989798ca1cc.tar.gz
core-d42dc1661b493ccaf2ff1c31ef023989798ca1cc.tar.xz
core-d42dc1661b493ccaf2ff1c31ef023989798ca1cc.zip
Improved hardware detection, added SCSI/SATA drivers in hw detection
(incomplete list), checked with more systems ... git-svn-id: http://svn.openslx.org/svn/openslx/dxs/ld4@52 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initrd')
-rwxr-xr-xinitrd/initrd-stuff/bin/hwautocfg28
-rwxr-xr-xinitrd/initrd-stuff/init14
2 files changed, 27 insertions, 15 deletions
diff --git a/initrd/initrd-stuff/bin/hwautocfg b/initrd/initrd-stuff/bin/hwautocfg
index e3fe242d..6f78c125 100755
--- a/initrd/initrd-stuff/bin/hwautocfg
+++ b/initrd/initrd-stuff/bin/hwautocfg
@@ -315,23 +315,29 @@ waitfor /tmp/hwrun1 50000 || \
Please check that\n hwsetup is properly installed and executable."
# "drivers" (pseudo, placeholder strings, ...) to exclude from loading
-DRIVERLIST="disabled unknown ignore pcspkr synaptics keybdev"
+DRIVERLIST=" disabled unknown ignore pcspkr synaptics keybdev"
# driver blacklist (real modules which fail to load)
DRIVERLIST=${DRIVERLIST}" hw_random"
# load ide drivers first, takes a while to initialize
for DRIVER in cmd64x hpt366 piix slc90e66 cs5520 it821x rz1000 \
triflex aec62xx cs5530 ns87415 sc1200 trm290 alim15x3 \
- cy82c693 opti621 serverworks via82cxxx amd74xx generic \
- pdc202xx_new siimage atiixp hpt34x pdc202xx_old sis5513; do
- strinfile ${DRIVER} /tmp/hwsetup.info && {
+ cy82c693 opti621 serverworks via82cxxx amd74xx pdc202xx_new \
+ siimage atiixp hpt34x pdc202xx_old sis5513; do
+ strinfile " ${DRIVER}" /tmp/hwsetup.info && {
IDE="yes"
modprobe ${MODPRV} ${DRIVER} &
DRIVERLIST="${DRIVERLIST} ${DRIVER}"; }
done
+# check for IDE/SCSI (SATA) - incomplete list
+for DRIVER in ata_piix sata_via; do
+ strinfile " ${DRIVER}" /tmp/hwsetup.info && {
+ SCSIIDE="yes"
+ modprobe ${MODPRV} ${DRIVER} &
+ DRIVERLIST="${DRIVERLIST} ${DRIVER}"; }
+done
# check for USB, pcmcia and ieee1394 hardware drivers
-for DRIVER in ohci-hcd uhci-hcd ehci-hcd \
- ohci1394; do
- strinfile ${DRIVER} /tmp/hwsetup.info && {
+for DRIVER in ohci-hcd uhci-hcd ehci-hcd ohci1394; do
+ strinfile " ${DRIVER}" /tmp/hwsetup.info && {
USB="yes"
modprobe ${MODPRV} ${DRIVER}
DRIVERLIST="${DRIVERLIST} ${DRIVER}"; }
@@ -340,7 +346,7 @@ done
[ -z "$USB" ] && rmmod usbcore
# remove unneeded network card modules
for DRIVER in ${NWMODULES}; do
- strinfile ${DRIVER} /tmp/hwsetup.info || {
+ strinfile " ${DRIVER}" /tmp/hwsetup.info || {
rmmod ${DRIVER}
DRIVERLIST="${DRIVERLIST} ${DRIVER}"; }
done
@@ -379,9 +385,13 @@ done
# check if USB mouse and/or keyboard is connected
strinfile "genericwheelusb" /tmp/hwsetup.info && modprobe ${MODPRV} usbhid
# fixme - usb keyboard??
-if [ -n "IDE" ] ; then
+if [ -n "$IDE" ] ; then
strinfile "CDROM" /tmp/hwsetup.info && modprobe ${MODPRV} ide_cd
strinfile "HD" /tmp/hwsetup.info && modprobe ${MODPRV} ide_disk &
+fi
+if [ -n "$SCSIIDE" ] ; then
+ strinfile "CDROM" /tmp/hwsetup.info && modprobe ${MODPRV} sr_mod sg
+ strinfile "HD" /tmp/hwsetup.info && modprobe ${MODPRV} sd_mod &
fi )
# cdrom/dvd und plattenkonfig. ergaenzen. Module sind hier geladen und
# devices sind klar
diff --git a/initrd/initrd-stuff/init b/initrd/initrd-stuff/init
index e10f52ad..56d3cb0f 100755
--- a/initrd/initrd-stuff/init
+++ b/initrd/initrd-stuff/init
@@ -383,16 +383,18 @@ and list the modules loaded until\n now."
waitfor /tmp/svcfg 20000 || error " For some reason the software config \
of this client did not finish in\n time. You might check the process list \
and list the modules loaded until\n now."
+# close runlevel script for stuff to execute during early bootup
+d_mkbootld close
# IP configuration is made and should not be updated automatically, udevd
# should be killed if started within init
killall -9 dhcpcd dhclient pump 2>/dev/null
# unmount the bind mounted modules directory
-umount -n /lib/modules/${KERNEL} 2>/dev/null || {
- usleep 40 && umount -n /lib/modules/${KERNEL} || \
- error "Unmount of the kernel modules directory failed for some reason."
-}
-# close runlevel script for stuff to execute during early bootup
-d_mkbootld close
+for i in 0 40 100 200 300 500 800 1000 1200; do
+ usleep $i && umount -n /lib/modules/${KERNEL} 2>/dev/null && break
+ error " Waited $i ticks to unmount kernel module directory ..." nonfatal
+done
+[ $i -gt 1000 ] && error " Unmount of the kernel modules directory \
+failed for some reason. Some\n modprobe still active!?"
# check for inittab file
test -f /mnt/etc/inittab || error " The file /etc/inittab does not exist or \
is no regular one. It is needed\n for the bootup procedure to follow."