# {{{ support hardware synthesizer via speakup
config_hwspeak(){
- if checkbootparam hwspeak ; then
+ if checkbootparam speakup.synth ; then
+ einfo "Bootoption speakup.synth found."
+ eindent
+
+ module="$(getbootparam speakup.synth 2>>$DEBUG)"
+ if [ -z "$module" ] ; then
+ eerror "Sorry, no speakup module specified for bootoption speakup.synth."
+ flitewrapper "Sorry, no speakup module specified for bootoption speakup.synth."
+ else
+ einfo "Trying to load $module"
+ modprobe "speakup_${module}"
+ eend $?
+ fi
+
+ if [ -d /proc/speakup/ ] || grep -q speakup /proc/modules ; then
+ einfo "Kernel should support speakup now." ; eend 0
+ flitewrapper "Kernel should support speakup now."
+ else
+ eerror "Kernel or hardware do not seem to support speakup. Skipping hwspeak." ; eend 1
+ flitewrapper "Kernel or hardware do not seem to support speakup. Sorry."
+ fi
+
+ eoutdent
+
+ # hwspeak:
+ elif checkbootparam hwspeak ; then
einfo "Bootoption hwspeak found."
if [ ! -d /proc/speakup/ ] && ! grep -q speakup /proc/modules ; then
- ewarn" Kernel does not support hardware speakup - trying to load kernel modules:" ; eend 0
+ ewarn "Kernel does not support hardware speakup - trying to load kernel modules:" ; eend 0
eindent
- for module in $(find "/lib/modules/${KERNEL}/extra/speakup/" -name \*.ko | \
- sed 's#.*speakup/##g ; s#.ko$##g' | \
- grep -ve speakup_soft -ve speakup_dummy | sort -u) ; do
- einfo "Trying to load $module"
- modprobe $module
- eend $?
- done
+ if ! [ -d "/lib/modules/${KERNEL}/extra/speakup/" ] ; then
+ eerror "Kernel does not provide speakup modules, sorry." ; eend 1
+ else
+ for module in $(find "/lib/modules/${KERNEL}/extra/speakup/" -name \*.ko | \
+ sed 's#.*speakup/##g ; s#.ko$##g' | \
+ grep -ve speakup_soft -ve speakup_dummy | sort -u) ; do
+ einfo "Trying to load $module"
+ modprobe $module
+ eend $?
+ done
+ fi
eoutdent
fi
# finally check if we have a password we can use:
if [ -n "$SSH_PASSWD" ] ; then
- echo "grml:$SSH_PASSWD" | chpasswd -m
+ # chpasswd sucks, seriously.
+ if chpasswd --help 2>&1 | grep -q -- '-m,' ; then
+ echo "grml:$SSH_PASSWD" | chpasswd -m
+ else
+ echo "grml:$SSH_PASSWD" | chpasswd
+ fi
fi
einfo 'Starting secure shell server in background.'
CONFIG="$(/bin/ls -1d /mnt/grml/[Cc][Oo][Nn][Ff][Ii][Gg].[Tt][Bb][Zz] 2>>$DEBUG)"
if checkbootparam config ; then
FILENAME="$(getbootparam 'config' 2>>$DEBUG)"
- if [ -e /mnt/grml/${FILENAME} ] ; then
+ if [ -e /mnt/grml/"${FILENAME}" ] ; then
einfo "Using /mnt/grml/$FILENAME instead of config.tbz"
- CONFIG="/mnt/grml/$FILENAME"
+ CONFIG="/mnt/grml/${FILENAME}"
fi
+ else
+ FILENAME="$(basename $CONFIG)"
fi
if [ -n "$CONFIG" ]; then
einfo "Found file ${WHITE}${CONFIG}${NORMAL} - trying to extract it."
cd /
unp $CONFIG $EXTRACTOPTIONS ; eend $?
else
- ewarn "Sorry, could not find file $FILENAME on device $MOUNTDEVICE $MESSAGE label GRMLCFG." ; eend 1
+ ewarn "Sorry, could not find file ${FILENAME} on device ${MOUNTDEVICE} ${MESSAGE}." ; eend 1
fi
SCRIPT=''
else
einfo "Could not mount $MOUNTDEVICE to /mnt/grml - sorry." ; eend 1
fi # mount $MOUNTDEVICE
+
grep -q '/mnt/grml' /proc/mounts && umount /mnt/grml
}
# We do need the following fix so floppy disk is available to blkid in any case :-/
if [ -r /dev/fd0 ] ; then
einfo "Floppy device detected. Trying to access floppy disk."
- # dd if=/dev/fd0 of=/dev/null bs=512 count=1 1>>$DEBUG 2>&1
if timeout 4 dd if=/dev/fd0 of=/dev/null bs=512 count=1 1>>$DEBUG 2>&1 ; then
blkid /dev/fd0 1>>$DEBUG 2>&1
fi