X-Git-Url: http://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=cd3c764511497208938ee95d12225ca8df31536a;hp=8c534acaa77c3407946f1b77806b2c692a69a45c;hb=b04d499bbcaaebb4167def16ac650ed27355fef8;hpb=51fe1eadb286e606342a2f79ee046b73a247324f diff --git a/autoconfig.functions b/autoconfig.functions index 8c534ac..cd3c764 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -4,7 +4,7 @@ # Authors: grml-team (grml.org), (c) Klaus Knopper , (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Son Sep 30 14:15:11 CEST 2007 [mika] +# Latest change: Son Jän 20 19:51:41 CET 2008 [mika] ################################################################################ # {{{ path, variables, signals, umask, zsh @@ -116,26 +116,27 @@ fi # {{{ debug config_debug(){ - if checkbootparam "debug"; then - BOOTDEBUG="yes" - fi - if stringinstring "BOOT_IMAGE=debug " "$CMDLINE" ; then - BOOTDEBUG="yes" - fi + checkbootparam "debug" && BOOTDEBUG="yes" + stringinstring "BOOT_IMAGE=debug " "$CMDLINE" && BOOTDEBUG="yes" + rundebugshell(){ if [ -n "$BOOTDEBUG" ]; then - einfo "Starting intermediate shell stage $stage as requested by \"debug\" option." - eindent - if [ -r /etc/grml/screenrc ] ; then - einfo "Starting GNU screen to be able to use a full featured shell environment." - einfo "Just exit the shells (and therefore screen) to continue boot process..." - /bin/zsh -c "screen -c /etc/grml/screenrc" - else - einfo "Notice that the shell does not provide job handling: ctrl-z, bg and fg won't work!" - einfo "Just exit the shell to continue boot process..." - /bin/zsh - fi - eoutdent + einfo "Starting intermediate shell stage $stage as requested by \"debug\" option." + if [ grep -q "debug=noscreen" "$CMDLINE" ] ; then + /bin/zsh + else + eindent + if [ -r /etc/grml/screenrc ] ; then + einfo "Starting GNU screen to be able to use a full featured shell environment." + einfo "Just exit the shells (and therefore screen) to continue boot process..." + /bin/zsh -c "screen -c /etc/grml/screenrc" + else + einfo "Notice that the shell does not provide job handling: ctrl-z, bg and fg won't work!" + einfo "Just exit the shell to continue boot process..." + /bin/zsh + fi + eoutdent + fi fi } } @@ -143,16 +144,16 @@ config_debug(){ # {{{ log config_log(){ -if checkbootparam "log"; then - export DEBUG="/tmp/grml.log.`date +%Y%m%d`" - touch $DEBUG - einfo "Bootparameter log found. Log files: ${DEBUG} and /var/log/boot." - eindent - einfo "Starting bootlogd." - bootlogd -r -c 1>>$DEBUG 2>&1 ; eend $? - eoutdent +if checkbootparam "log" || checkbootparam "debug" ; then + export DEBUG="/tmp/grml.log.`date +%Y%m%d`" + touch $DEBUG + einfo "Bootparameter log found. Log files: ${DEBUG} and /var/log/boot" + eindent + einfo "Starting bootlogd." # known to be *very* unreliable :( + bootlogd -r -c 1>>$DEBUG 2>&1 ; eend $? + eoutdent else - DEBUG="/dev/null" + DEBUG="/dev/null" fi } # }}} @@ -283,22 +284,31 @@ config_language(){ fi # we have to set up all consoles, therefore loop it over all ttys: - NUM_CONSOLES=`fgconsole --next-available` - NUM_CONSOLES=`expr ${NUM_CONSOLES} - 1` + NUM_CONSOLES=$(fgconsole --next-available) + NUM_CONSOLES=$(expr ${NUM_CONSOLES} - 1) [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6 + CUR_CONSOLE=$(fgconsole) + if [ -n "$CHARMAP" ] ; then einfo "Running consolechars for ${CHARMAP}" for vc in `seq 0 ${NUM_CONSOLES}` ; do consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$? done + [ -n "$CUR_CONSOLE" ] && chvt $CUR_CONSOLE eend $RC fi - if [ -n "$CONSOLEFONT" ] ; then - einfo "Running consolechars using ${CONSOLEFONT}" - for vc in `seq 0 ${NUM_CONSOLES}` ; do - consolechars --tty=/dev/tty${vc} -f $CONSOLEFONT || consolechars --tty=/dev/tty${vc} -d - done - eend $? + + if checkbootparam noconsolefont ; then + ewarn "Skipping setting console font as requested on boot commandline." ; eend 0 + else + if [ -n "$CONSOLEFONT" ] ; then + einfo "Running consolechars using ${CONSOLEFONT}" + for vc in `seq 0 ${NUM_CONSOLES}` ; do + consolechars --tty=/dev/tty${vc} -f $CONSOLEFONT ; RC=$? + done + [ -n "$CUR_CONSOLE" ] && chvt $CUR_CONSOLE + eend $? + fi fi eoutdent @@ -386,12 +396,17 @@ if checkbootparam novmware ; then else if [ -z "$INSTALLED" ] ; then if vmware-detect || stringinstring "BOOT_IMAGE=vmware " "$CMDLINE" ; then - if ! checkbootparam qemu ; then + if ! checkbootparam qemu ; then if [ -r /etc/X11/xorg.conf.vmware ] ; then einfo "VMware: Copying /etc/X11/xorg.conf.vmware to /etc/X11/xorg.conf" cp /etc/X11/xorg.conf.vmware /etc/X11/xorg.conf ; eend $? fi fi + elif [ -r /proc/acpi/battery/BAT0/info -a -r /etc/X11/xorg.conf.virtualbox ] ; then + if grep -q 'OEM info: innotek' /proc/acpi/battery/BAT0/info ; then + einfo 'Virtual Box: Copying /etc/X11/xorg.conf.virtualbox to /etc/X11/xorg.conf' + cp /etc/X11/xorg.conf.virtualbox /etc/X11/xorg.conf ; eend $? + fi fi fi fi @@ -426,13 +441,6 @@ fi } # }}} -# update_progress {{{ -update_progress(){ - # be sure we are non-blocking - (echo "$1" > /etc/sysconfig/progress) & -} -# }}} - # {{{ timezone config_timezone(){ # don't touch the files if running from harddisk: @@ -701,18 +709,20 @@ if checkbootparam "blacklist" ; then einfo "Bootoption blacklist found." BLACK="$(getbootparam 'blacklist' 2>>$DEBUG)" if [ -n "$BLACK" ] ; then - einfo "Blacklisting module ${BLACK} via /etc/modprobe.d/grml." - echo "# begin entry generated by config_blacklist of grml-autoconfig" >> /etc/modprobe.d/grml - echo "blacklist $BLACK" >> /etc/modprobe.d/grml - echo "alias $BLACK off" >> /etc/modprobe.d/grml - echo "# end entry generated by config_blacklist of grml-autoconfig" >> /etc/modprobe.d/grml ; eend $? + for module in $(echo ${BLACK//,/ }) ; do + einfo "Blacklisting module ${module} via /etc/modprobe.d/grml." + echo "# begin entry generated by config_blacklist of grml-autoconfig" >> /etc/modprobe.d/grml + echo "blacklist $module" >> /etc/modprobe.d/grml + echo "alias $module off" >> /etc/modprobe.d/grml + echo "# end entry generated by config_blacklist of grml-autoconfig" >> /etc/modprobe.d/grml ; eend $? + done else eerror "No given module for blacklist found. Blacklisting will not work therefore." fi else - ewarn "Backlisting via bootoption does not work on harddisk installations." ; eend 1 + ewarn "Backlisting via bootoption is not intended for use on harddisk installations." ; eend 1 eindent - einfo "Please blacklist the module(s) via /etc/modprobe.d/blacklist." + einfo "Please blacklist the module(s) manually using the 'blacklist' script." eoutdent fi fi @@ -744,7 +754,7 @@ if [ -d /proc/acpi ]; then else ewarn "(none)" ; eend 1 fi - if ! [ -S /var/run/acpid.socket ] ; then + if ! ps x | grep -q /usr/sbin/acpid ; then if ! [ -r /var/run/dbus/pid ] ; then einfo "Starting acpi daemon." /etc/init.d/acpid start 1>>$DEBUG 2>&1 ; eend $? @@ -1503,7 +1513,15 @@ else amixer set Front ${VOL}% 1>/dev/null fi fi - ERROR=$(aumix -w $VOL -v $VOL -p $VOL -m $VOL 2>&1) ; RC=$? + # by default assume '0' as volume for microphone: + if checkbootparam micvol ; then + MICVOL="$(getbootparam 'micvol' 2>>$DEBUG)" + else + MICVOL=0 + fi + + # finally set the volumes: + ERROR=$(aumix -w $VOL -v $VOL -p $VOL -m $MICVOL 2>&1) ; RC=$? if [ -n "$ERROR" ] ; then eindent eerror "Problem setting mixer volumes: $ERROR (no soundcard?)"