#!/bin/sh export TEXTDOMAIN=slint . gettext.sh # Remove extra whitespace crunch() { while read line ; do echo $line done } echo gettext "******* Welcome to the network supplemental disk! *******" echo echo # main loop: while [ 0 ]; do gettext "-- Press [enter] to automatically probe for all network cards, or switch to a different console and use 'modprobe' to load the modules manually. -- To skip probing some modules (in case of hangs), enter them after an S: S eepro100 ne2k-pci -- To probe only certain modules, enter them after a P like this: P 3c503 3c505 3c507 -- To get a list of network modules, enter an L. -- To skip the automatic probe entirely, enter a Q now." echo echo # Clear "card found" flag: rm -f /cardfound gettext "network> " read INPUT; echo if [ "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "L" \ -o "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "l" ]; then gettext "Available network modules:" echo for file in /lib/modules/`uname -r`/kernel/drivers/net/* /lib/modules/`uname -r`/kernel/arch/i386/kernel/* /lib/modules/`uname -r`/kernel/drivers/pnp/* ; do if [ -r $file ]; then OUTPUT=`basename $file .gz` OUTPUT=`basename $OUTPUT .o` echo -n "$OUTPUT " fi done echo echo continue fi if [ ! "$INPUT" = "q" -a ! "$INPUT" = "Q" \ -a ! "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "P" \ -a ! "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "p" ]; then gettext "Probing for PCI/EISA network cards:" echo for card in \ 3c59x acenic de4x5 dgrs eepro100 e1000 e1000e e100 epic100 hp100 ne2k-pci olympic pcnet32 rcpci 8139too 8139cp tulip via-rhine r8169 atl1e sktr yellowfin tg3 dl2k ns83820 \ ; do SKIP="" if [ "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "S" \ -o "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "s" ]; then for nogood in `echo $INPUT | crunch | cut -f 2- -d ' '` ; do if [ "$card" = "$nogood" ]; then SKIP=$card fi done fi if [ "$SKIP" = "" ]; then eval_gettext "Probing for card using the \$card module..." echo modprobe $card 2> /dev/null grep -q eth0 /proc/net/dev if [ $? = 0 ]; then echo eval_gettext "SUCCESS: found card using \$card protocol -- modules loaded." echo echo "$card" > /cardfound echo break else modprobe -r $card 2> /dev/null fi else eval_gettext "Skipping module \$card..." echo fi done echo if [ ! -r /cardfound ]; then # Don't probe for com20020... it loads on any machine with or without the card. gettext "Probing for MCA, ISA, and other PCI network cards:" echo # removed because it needs an irq parameter: arlan # tainted, no autoprobe: (arcnet) com90io com90xx for card in depca ibmtr 3c501 3c503 3c505 3c507 3c509 3c515 ac3200 \ acenic at1700 cosa cs89x0 de4x5 de600 \ de620 e2100 eepro eexpress es3210 eth16i ewrk3 fmv18x forcedeth hostess_sv11 \ hp-plus hp lne390 ne3210 ni5010 ni52 ni65 sb1000 sealevel smc-ultra \ sis900 smc-ultra32 smc9194 wd ; do SKIP="" if [ "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "S" \ -o "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "s" ]; then for nogood in `echo $INPUT | crunch | cut -f 2- -d ' '` ; do if [ "$card" = "$nogood" ]; then SKIP=$card fi done fi if [ "$SKIP" = "" ]; then eval_gettext "Probing for card using the \$card module..." echo modprobe $card 2> /dev/null grep -q eth0 /proc/net/dev if [ $? = 0 ]; then echo eval_gettext "SUCCESS: found card using \$card protocol -- modules loaded." echo echo "$card" > /cardfound echo break else modprobe -r $card 2> /dev/null fi else eval_gettext "Skipping module \$card..." echo fi done echo fi if [ ! -r /cardfound ]; then gettext "Sorry, but no network card was detected. Some cards (like non-PCI NE2000s) must be supplied with the I/O address to use. If you have an NE2000, you can switch to another console (Alt-F2), log in, and load it with a command like this: modprobe ne io=0x360" echo echo fi elif [ "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "P" \ -o "`echo $INPUT | crunch | cut -f 1 -d ' '`" = "p" ]; then gettext "Probing for a custom list of modules:" echo for card in `echo $INPUT | crunch | cut -f 2- -d ' '` ; do eval_gettext "Probing for card using the \$card module..." echo modprobe $card 2> /dev/null grep -q eth0 /proc/net/dev if [ $? = 0 ]; then echo eval_gettext "SUCCESS: found card using \$card protocol -- modules loaded." echo echo "$card" > /cardfound echo break else modprobe -r $card 2> /dev/null fi done echo else gettext "Skipping automatic module probe." echo echo fi # end main loop break done