You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
3.3 KiB
190 lines
3.3 KiB
21 years ago
|
#!/bin/sh
|
||
|
# Daniel Robbins <drobbins@gentoo.org>
|
||
|
# Copyright 2003 Gentoo Technologies, Inc.
|
||
|
# Distributed under the GPL
|
||
|
|
||
|
PATH=/usr/sbin:/usr/bin:/sbin:/bin
|
||
|
BACK_UP="\033[1K\033[0G"
|
||
|
HILITE="\033[1m"
|
||
|
NORMAL="\033[0m"
|
||
|
WARN="\033[1m"
|
||
|
BAD="\033[1m"
|
||
|
#mount -o remount,rw /
|
||
|
mount /proc
|
||
|
INITRD="true"
|
||
|
SCSI="yes"
|
||
|
CDCACHE="no"
|
||
|
IDEBUG="no"
|
||
|
FIREWIRE="no"
|
||
|
ATARAID="no"
|
||
|
PCMCIA="no"
|
||
|
DETECT="no"
|
||
|
USB="yes"
|
||
|
KEYMAP="no"
|
||
|
if [ ! -e /dev/.devfsd ]
|
||
|
then
|
||
|
#mount devfs
|
||
|
mount -t devfs devfs /dev
|
||
|
fi
|
||
|
|
||
|
CMDLINE="`cat /proc/cmdline`"
|
||
|
for x in $CMDLINE
|
||
|
do
|
||
|
if [ "$x" = "doscsi" ]
|
||
|
then
|
||
|
SCSI="yes"
|
||
|
elif [ "$x" = "cdcache" ]
|
||
|
then
|
||
|
CDCACHE="yes"
|
||
|
elif [ "$x" = "idebug" ]
|
||
|
then
|
||
|
IDEBUG="yes"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
for x in $CMDLINE
|
||
|
do
|
||
|
if [ "$x" = "dofirewire" ]
|
||
|
then
|
||
|
FIREWIRE="yes"
|
||
|
fi
|
||
|
done
|
||
|
for x in $CMDLINE
|
||
|
do
|
||
|
if [ "$x" = "nousb" ]
|
||
|
then
|
||
|
USB="no"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
for x in $CMDLINE
|
||
|
do
|
||
|
if [ "$x" = "doataraid" ]
|
||
|
then
|
||
|
ATARAID="yes"
|
||
|
fi
|
||
|
done
|
||
|
for x in $CMDLINE
|
||
|
do
|
||
|
if [ "$x" = "dopcmcia" ]
|
||
|
then
|
||
|
PCMCIA="yes"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
for x in $CMDLINE
|
||
|
do
|
||
|
if [ "$x" = "dokeymap" ]
|
||
|
then
|
||
|
KEYMAP="yes"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
blurb() {
|
||
|
echo -ne ${HILITE}${1}
|
||
|
}
|
||
|
|
||
|
backup() {
|
||
|
echo -ne "\033[0G\033[0K"
|
||
|
}
|
||
|
if [ -e /dev/.devfsd ]
|
||
|
then
|
||
|
RAM_DEVICE="rd"
|
||
|
else
|
||
|
RAM_DEVICE="ram0"
|
||
|
fi
|
||
|
|
||
|
|
||
|
# Create the new root FS
|
||
|
|
||
|
mounted=""
|
||
|
|
||
|
initmsg() {
|
||
|
echo -e "${HILITE}${*}${NORMAL}"
|
||
|
}
|
||
|
|
||
|
getkeymap() {
|
||
|
local mykeymap
|
||
|
echo -ne ${HILITE}
|
||
|
cat /keymaps/key.lst
|
||
|
echo -ne ${NORMAL}
|
||
|
read -p "Keymap selection: " mykeymap
|
||
|
if [ -e /keymaps/${mykeymap}.map ]
|
||
|
then
|
||
|
echo -e "${HILITE}---- Loading ${mykeymap} keymap${NORMAL}"
|
||
|
loadkmap < /keymaps/${mykeymap}.map
|
||
|
elif [ "$mykeymap" = "" ]
|
||
|
then
|
||
|
#default keymap is "us"
|
||
|
echo -e "${HILITE}---- Loading default (US) keymap${NORMAL}"
|
||
|
loadkmap < /keymaps/us.map
|
||
|
else
|
||
|
getkeymap
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
modules_scan() {
|
||
|
local type
|
||
|
type=${1}; shift
|
||
|
for x in "$@"
|
||
|
do
|
||
|
blurb "---- Scanning for ${x}..."
|
||
|
insmod.static -f /modules/${type}/${x}.o > /dev/null 2>&1
|
||
|
if [ $? -eq 0 ]
|
||
|
then
|
||
|
backup
|
||
|
echo -e "${GOOD}---- Detected ${x} hardware${NORMAL}"
|
||
|
else
|
||
|
backup
|
||
|
echo -ne "${NORMAL}"
|
||
|
fi
|
||
|
done
|
||
|
}
|
||
|
echo "${GOOD} Initial RAMDISK Loading Starting..."
|
||
|
# Mount the CD
|
||
|
|
||
|
if [ "$SCSI" = "yes" ]
|
||
|
then
|
||
|
DEVICE=SCSI
|
||
|
echo -e "${HILITE} ---- Beginning storage detection${NORMAL}"
|
||
|
# This next "%% %%" gets sed tweaked:
|
||
|
modules_scan storage %%STORAGE_MODULES%%
|
||
|
fi
|
||
|
|
||
|
if [ "$FIREWIRE" = "yes" ]
|
||
|
then
|
||
|
DEVICE=FIREWIRE
|
||
|
echo -e "${HILITE} ---- Beginning firewire detection${NORMAL}"
|
||
|
# This next "%% %%" gets sed tweaked:
|
||
|
modules_scan firewire %%FIREWIRE_MODULES%%
|
||
|
fi
|
||
|
if [ "$ATARAID" = "yes" ]
|
||
|
then
|
||
|
DEVICE=ATARAID
|
||
|
echo -e "${HILITE} ---- Beginning ata detection${NORMAL}"
|
||
|
# This next "%% %%" gets sed tweaked:
|
||
|
modules_scan ataraid %%ATARAID_MODULES%%
|
||
|
fi
|
||
|
|
||
|
if [ "$PCMCIA" = "yes" ]
|
||
|
then
|
||
|
DEVICE=PCMCIA
|
||
|
echo -e "${HILITE} ---- Beginning pcmcia detection${NORMAL}"
|
||
|
# This next "%% %%" gets sed tweaked:
|
||
|
modules_scan %%PCMCIA_MODULES%%
|
||
|
fi
|
||
|
if [ "$USB" = "yes" ]
|
||
|
then
|
||
|
DEVICE=USB
|
||
|
echo -e "${HILITE} ---- Beginning usb detection${NORMAL}"
|
||
|
# This next "%% %%" gets sed tweaked:
|
||
|
modules_scan usb %%USB_MODULES%%
|
||
|
fi
|
||
|
|
||
|
if [ "$KEYMAP" = "yes" ]
|
||
|
then
|
||
|
getkeymap
|
||
|
fi
|
||
|
|
||
|
exit
|