X-Git-Url: https://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=5442b8c841dcdf5bf236d8ae99f7257af291d5e5;hp=e7a827a0b0affe01ea8961b067897701ebdcb896;hb=0ef13567e419e2ed045200a313d4d23ba8e13332;hpb=c94499d8033d16b68226be1c82b10fa6df700832 diff --git a/autoconfig.functions b/autoconfig.functions index e7a827a..5442b8c 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: Don Sep 06 23:57:02 CEST 2007 [mika] +# Latest change: Mon Jän 14 21:34:16 CET 2008 [mika] ################################################################################ # {{{ path, variables, signals, umask, zsh @@ -270,12 +270,8 @@ config_language(){ # activate unicode console if running within utf8 environment if [ -r /etc/default/locale ] ; then if grep -q "LANG=.*UTF" /etc/default/locale ; then - if checkgrmlsmall && [ -z "$INSTALLED" ] ; then - ewarn "Not runnning unicode_start: grml-small with reduced language support detected." ; eend 0 - else - einfo "Setting up unicode environment." - unicode_start 2>>$DEBUG ; eend $? - fi + einfo "Setting up unicode environment." + unicode_start 2>>$DEBUG ; eend $? fi fi @@ -287,22 +283,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 @@ -390,12 +395,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 @@ -430,13 +440,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: @@ -597,19 +600,19 @@ if [ -n "$TESTCD" ]; then [ -d /live/image/GRML ] && TESTCD_PATH=/live/image/GRML if [ -n "$TESTCD_PATH" ] ; then - ( cd "$TESTCD_PATH" ; rm -f /tmp/md5sum.log ; md5sum -c md5sums 2>&1 | tee /tmp/md5sum.log ) + ( cd "$TESTCD_PATH" ; rm -f /tmp/md5sum.log ; md5sum -c md5sums 2>&1 | tee /tmp/md5sum.log ; RC=$? ) else echo "${RED} *** Error: Could not find md5sum file. ***" fi - if [ "$?" = "0" ]; then - echo " ${GREEN}Everything looks OK${NORMAL}" - else - echo "${RED} *** CHECKSUM FAILED FOR THESE FILES: ***" - egrep -v '(^md5sum:|OK$)' /tmp/md5sum.log - echo "${RED} *** DATA ON YOUR CD MEDIUM IS POSSIBLY INCOMPLETE OR DAMAGED, ***${NORMAL}" - echo "${RED} *** OR YOUR COMPUTER HAS BAD RAM. ***${NORMAL}" - echo -n "${CYAN}Hit return to contine, or press the reset button to quit.${NORMAL}" + if [ "$RC" = "0" ]; then + einfo "Everything looks OK" ; eend 0 + else + eerror 'Checksum failed for theses files:' ; eend 1 + egrep -v '(^md5sum:|OK$)' /tmp/md5sum.log + eerror 'Data on the grml medium is possibly incomplete/damaged or...' + eerror '... RAM of your computer is broken.' ; eend 1 + einfon "Hit return to continue, or press the reset button to quit." read a fi @@ -705,18 +708,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 @@ -748,10 +753,10 @@ 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 >>$DEBUG ; eend $? + /etc/init.d/acpid start 1>>$DEBUG 2>&1 ; eend $? else eerror "acpid error: it seems you are running d-bus/hal, but acpid needs to be started before d-bus." eerror "Solution: please activate acpid via /etc/runlevel.conf" @@ -1507,7 +1512,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?)"