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.
genkernel_fork/generic/initrd.scripts

87 lines
1.6 KiB

#!/bin/ash
. /etc/initrd.defaults
backup() {
echo -ne "\033[0G\033[0K"
}
parse_opt() {
case "$1" in
*\=*)
echo "$1" | cut -f2 -d=
;;
esac
}
modules_scan() {
local MODS
[ -d /etc/modules/${1} ] || touch /etc/modules/${1}
MODS=`cat /etc/modules/${1}`
for x in ${MODS}
do
MLOAD=`echo ${MLIST} | sed -e "s/.*${x}.*/${x}/"`
if [ "${MLIST}" = "${x}" ] # Only module to no-load
then
echo -e "${BOLD} ::${NORMAL} Skipping ${x}..."
elif [ "${MLOAD}" = "${MLIST}" ] # == No change == No specified no-load
then
echo -ne "${BOLD} ::${NORMAL} Scanning for ${x}..."
modprobe ${x} -n
backup
echo -ne "${NORMAL}"
else
echo -e "${BOLD} ::${NORMAL} Skipping ${x}..."
fi
done
}
findcdmount() {
if [ "$#" -gt "0" ]
then
for x in $*
do
echo -e "${GOOD}>>${NORMAL} Attempting to mount CD:- ${x}"
mount -r ${x} /newroot/mnt/cdrom > /dev/null 2>&1
if [ "$?" = '0' ]
then
REAL_ROOT="${x}"
break
## FIXME: I need a proper identifier present on all LiveCDs to work across
## all architectures.
# # Check for a LiveCD
# if [ -e /newroot/mnt/cdrom/.gentoo_LiveCD ]
# then
# REAL_ROOT="${x}"
# break
# else
# umount /newroot/mnt/cdrom
# fi
fi
done
if [ "${REAL_ROOT}" != "" ]
then
echo -e "${GOOD}>>${NORMAL} CD medium found on ${x}"
fi
fi
}
kill_devfsd() {
killall devfsd > /dev/null 2>&1
}
runUdev() {
mount -t tmpfs -o size=100k udev /dev
mkdir /dev/pts
mkdir /dev/shm
/sbin/udevstart
ln -snf /proc/self/fd /dev/fd
ln -snf /proc/self/fd/0 /dev/stdin
ln -snf /proc/self/fd/1 /dev/stdout
ln -snf /proc/self/fd/2 /dev/stderr
ln -snf /proc/kcore /dev/core
}