X-Git-Url: http://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=13fd9f4dfd68f8cce080d7a70f26a4a02c089cc4;hp=07c33444152b8016d92fdafe151e6c52c807d8a1;hb=84f02a7ce07e4976c07521d8b1de5b364f3becc6;hpb=b5997c2a11f6dbf369e0e538862202992ebe88a2 diff --git a/autoconfig.functions b/autoconfig.functions index 07c3344..13fd9f4 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: Mit Jul 04 12:02:35 CEST 2007 [mika] +# Latest change: Die Sep 04 13:58:35 CEST 2007 [mika] ################################################################################ # {{{ path, variables, signals, umask, zsh @@ -96,7 +96,7 @@ CMDLINE="$(cat /proc/cmdline)" # {{{ Check if we are running from the grml-CD or HD INSTALLED="" -[ -e /GRML/etc/grml_cd ] || INSTALLED="yes" +[ -e /etc/grml_cd ] || INSTALLED="yes" # testcd TESTCD="" @@ -444,11 +444,13 @@ update_progress(){ config_timezone(){ # don't touch the files if running from harddisk: if [ -z "$INSTALLED" ]; then - einfo "Setting timezone." - KTZ="$(getbootparam tz 2>>$DEBUG)" - [ -f "/usr/share/zoneinfo/$KTZ" ] && TZ="$KTZ" - rm -f /etc/localtime - cp "/usr/share/zoneinfo/$TZ" /etc/localtime && eend 0 + KTZ="$(getbootparam tz 2>>$DEBUG)" + if [ -n "$KTZ" ] ; then + einfo "Setting timezone." + [ -f "/usr/share/zoneinfo/$KTZ" ] && TZ="$KTZ" + rm -f /etc/localtime + cp "/usr/share/zoneinfo/$TZ" /etc/localtime ; eend $? + fi fi } # }}} @@ -588,21 +590,33 @@ config_fix_passwd(){ # {{{ CD Checker config_testcd(){ if [ -n "$TESTCD" ]; then - einfo "Checking CD data integrity as requested by '${WHITE}testcd${NORMAL}' boot option." - einfo "Reading files and checking against GRML/md5sums, this may take a while..." - echo -n "${RED}" - ( cd /cdrom/GRML/ ; rm -f /tmp/md5sum.log ; md5sum -c md5sums 2>&1 | tee /tmp/md5sum.log ) - 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} " - read a - fi - eend 0 + einfo "Checking CD data integrity as requested by '${WHITE}testcd${NORMAL}' boot option." + einfo "Reading files and checking against GRML/md5sums, this may take a while..." + echo -n "${RED}" + + # /linuxrc grml version: + [ -d /cdrom/GRML ] && TESTCD_PATH=/cdrom/GRML + # live-initramfs version: + [ -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 ) + 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}" + read a + fi + + eend 0 fi } # }}} @@ -700,7 +714,7 @@ if checkbootparam "blacklist" ; then echo "alias $BLACK off" >> /etc/modprobe.d/grml echo "# end entry generated by config_blacklist of grml-autoconfig" >> /etc/modprobe.d/grml ; eend $? else - eerror "No given module for blacklist found. Blacklisting will not work therefor." + 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 @@ -716,9 +730,11 @@ fi config_acpi_apm(){ if [ -d /proc/acpi ]; then if checkbootparam "noacpi"; then - ewarn "Skipping ACPI Bios detection as requested on boot commandline." ; eend 0 + ewarn "Skipping ACPI Bios detection as requested via noacpi on boot commandline." ; eend 0 + elif checkbootparam "nogrmlacpi" ; then + ewarn "Skipping ACPI Bios detection as requested via nogrmlacpi on boot commandline." ; eend 0 else - einfo "ACPI Bios found, activating modules: " + einfo "ACPI Bios found, activating modules (disable via bootoption noacpi / nogrmlacpi): " eindent found="" for a in /lib/modules/$KERNEL/kernel/drivers/acpi/*; do @@ -994,12 +1010,12 @@ fi config_fstab(){ NOSWAP="yes" # we do not use swap by default! -if checkbootparam "swap" -o checkbootparam "anyswap" ; then +if checkbootparam "swap" || checkbootparam "anyswap" ; then NOSWAP='' checkbootparam "anyswap" && export ANYSWAP='yes' || export ANYSWAP="" fi -if checkbootparam "nofstab" -o checkbootparam "forensic" ; then +if checkbootparam "nofstab" || checkbootparam "forensic" ; then ewarn "Skipping /etc/fstab creation as requested on boot commandline." ; eend 0 else einfo "Scanning for harddisk partitions and creating /etc/fstab. (Disable this via boot option: nofstab)" @@ -1169,6 +1185,10 @@ else sleep 1 eend 0 done + if [ -n "$INSTALLED" ] ; then + ewarn 'If you want to disable automatic DHCP requests set CONFIG_DHCP=no in /etc/grml/autoconfig.' + eend 0 + fi fi } # }}} @@ -1251,7 +1271,7 @@ else # Disclaimer: sorry for the tons of if/then/else... but this makes sure we use: # * it only if we have the according kernel modules available - # * cpufreq only on laptops (check via /usr/sbin/laptop-detect) + # * cpufreq only on laptops (check via /usr/sbin/laptop-detect) and not inside Virtual Box # * current version of /etc/init.d/loadcpufreq from Debian (to stay in sync) # -> parse output of the initscript and output it according to our look'n'feel # * our own cpufreq-detect.sh if /etc/init.d/loadcpufreq isn't present @@ -1259,6 +1279,13 @@ else ewarn "Skipping cpufreq setup as module dependencies are not fulfilled." ; eend 1 else if /usr/sbin/laptop-detect 1>/dev/null 2>&1 ; then + # Virtual Box supports ACPI and laptop-detect returns with '0', so check for it: + if [ -r /proc/acpi/battery/BAT0/info ] ; then + if grep -q 'OEM info: innotek' /proc/acpi/battery/BAT0/info ; then + einfo 'Virtual Box detected, skipping cpufreq setup.' ; eend 0 + return 0 + fi + fi einfo "Detected Laptop - trying to use cpu frequency scaling:" eindent if [ -x /etc/init.d/loadcpufreq ] ; then @@ -1459,6 +1486,11 @@ if ! [ -x /usr/bin/aumix ] ; then eerror "aumix binary not available. Can not set sound volumes therefore." ; eend 1 else + if ! [ -r /proc/asound/cards ] ; then + ewarn "No soundcard present, skipping mixer settings therefore." ; eend 0 + return + fi + if checkbootparam vol ; then VOL="$(getbootparam 'vol' 2>>$DEBUG)" if [ -z "$VOL" ] ; then @@ -1497,7 +1529,7 @@ else ERROR=$(aumix -w $VOL -v $VOL -p $VOL -m $VOL 2>&1) ; RC=$? if [ -n "$ERROR" ] ; then eindent - eerror "Problem setting mixer volumes: $ERROR" + eerror "Problem setting mixer volumes: $ERROR (no soundcard?)" eoutdent fi eend $RC @@ -1513,11 +1545,10 @@ if checkbootparam "nomodem"; then ewarn "Skipping check for AC97 modem controller as requested on boot commandline." ; eend 0 else if [ -x /etc/init.d/sl-modem-daemon ] ; then - if lspci | grep Intel | grep -q "AC'97 Modem Controller" ; then - einfo "AC97 modem controller detected. Starting sl-modem-daemon in background." - /etc/init.d/sl-modem-daemon start >>$DEBUG & - eend 0 - fi + if lspci | grep Intel | grep -q "AC'97 Modem Controller" ; then + einfo "AC97 modem controller detected. Start it running 'Start sl-modem-daemon'." + eend 0 + fi fi fi } @@ -1741,7 +1772,7 @@ fi } config_automount(){ -if checkbootparam noautoconfig -o checkbootparam forensic ; then +if checkbootparam noautoconfig || checkbootparam forensic ; then ewarn "Skipping running automount of device(s) labeled GRMLCFG as requested." ; eend 0 else if [ -z "$INSTALLED" ] ; then @@ -2022,8 +2053,8 @@ fi config_swraid(){ if [ -z "$INSTALLED" ] ; then # notice: checkbootparam "forensic" is just for users who don't know how to really use the bootoption - if checkbootparam 'noraid' -o checkbootparam 'noswraid' -o \ - checkbootparam 'forensic' -o checkbootparam 'raid=noautodetect' ; then + if checkbootparam 'noraid' || checkbootparam 'noswraid' -o \ + checkbootparam 'forensic' || checkbootparam 'raid=noautodetect' ; then ewarn "Skipping SW-RAID code as requested on boot commandline." ; eend 0 else if ! [ -x /sbin/mdadm ] ; then @@ -2160,6 +2191,19 @@ fi } # }}} +# {{{ check for broken ipw3945 driver which causes problems (especially on hd install) +config_ipw3945() { + if grep -q ipw3945 /proc/modules ; then + if ! iwconfig 2>/dev/null| grep -qe 'IEEE 802' -qe 'unassociated' ; then + ewarn "Broken ipw3945 network interface found, reloading module." + rmmod ipw3945 + modprobe ipw3945 + eend $? + fi + fi +} +# }}} + # {{{ disable console blanking config_blanking(){ if checkbootparam "noblank" ; then @@ -2337,4 +2381,4 @@ config_keyboard(){ # }}} ## END OF FILE ################################################################# -# vim:foldmethod=marker expandtab ai ft=zsh +# vim:foldmethod=marker expandtab ai ft=zsh shiftwidth=3