diff options
author | Dirk von Suchodoletz | 2006-01-31 23:53:33 +0100 |
---|---|---|
committer | Dirk von Suchodoletz | 2006-01-31 23:53:33 +0100 |
commit | d42dc1661b493ccaf2ff1c31ef023989798ca1cc (patch) | |
tree | c0a72b4eb2dedc730b07c47de571a934bfcb29f5 /initrd | |
parent | Minor improvements ... (diff) | |
download | core-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-x | initrd/initrd-stuff/bin/hwautocfg | 28 | ||||
-rwxr-xr-x | initrd/initrd-stuff/init | 14 |
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." |