config_cpu: set ondemand governor only if available
[grml-autoconfig.git] / autoconfig.functions
index 577e3b0..23574ef 100755 (executable)
@@ -821,26 +821,6 @@ fi
 }
 # }}}
 
-# {{{ Collect partitions from /proc/partitions first for enabling DMA
-check_partitions(){
-partitions=""
-IDEDISKS=""
-while read major minor blocks partition relax; do
-  partition="${partition##*/}"
-  [ -z "$partition" -o ! -e "/dev/$partition" ] && continue
-  case "$partition" in
-    hd?) IDEDISKS="$IDEDISKS $partition";;                # IDE  Harddisk, entire disk
-    sd?) ;;                                               # SCSI Harddisk, entire disk
-#    [hs]d*) partitions="$partitions /dev/$partition";;    # IDE or SCSI disk partition
-    [hs]d*|ub*) partitions="$partitions /dev/$partition";;    # IDE, USB or SCSI disk partition
-  esac
-done <<EOT
-$(awk 'BEGIN{old="__start"}{if($0==old){exit}else{old=$0;if($4&&$4!="name"){print $0}}}' /proc/partitions)
-EOT
-}
-check_partitions >/dev/null 2>&1 # avoid output "check_partitions:3: read-only file system"
-# }}}
-
 # {{{ Start brltty
 config_brltty() {
   if checkbootparam 'brltty' ; then
@@ -849,27 +829,6 @@ config_brltty() {
 }
 # }}}
 
-# {{{ Enable DMA for all IDE drives now if not disabled
-# Notice: Already done by linuxrc, but make sure it's done also on harddisk-installed systems
-config_dma(){
-if checkbootparam 'nodma'; then
-  ewarn "Skipping DMA accelleration as requested on boot commandline." ; eend 0
-else
-  for d in $(cd /proc/ide 2>>$DEBUG && echo hd[a-z]); do
-    if test -d /proc/ide/$d; then
-      if egrep -q 'using_dma[ \t]+0' /proc/ide/$d/settings 2>>$DEBUG; then
-        MODEL="$(cat /proc/ide/$d/model 2>>$DEBUG)"
-        test -z "$MODEL" && MODEL="[GENERIC IDE DEVICE]"
-        einfo "Enabling DMA acceleration for: ${WHITE}$d        ${YELLOW}[${MODEL}]${NORMAL}"
-        echo "using_dma:1" >/proc/ide/$d/settings
-        eend 0
-      fi
-    fi
-  done
-fi
-}
-# }}}
-
 # {{{ Start creating /etc/fstab with HD partitions and USB SCSI devices now
 config_fstab(){
 
@@ -1069,22 +1028,22 @@ if [ -x /etc/init.d/loadcpufreq ] ; then
       fi
    fi
 
-   rm -f $LOADCPUFREQ
+   rm -f "$LOADCPUFREQ"
 
    if [ -z "$SKIP_CPU_GOVERNOR" ] ; then
-     if grep -vq ondemand /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors; then
-       einfo "Loading cpufreq_ondemand"
-       modprobe cpufreq_ondemand
-       eend $?
+     if [ -r /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors ] ; then
+       if ! grep -q ondemand /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors ; then
+         einfo "Ondemand governor not available for CPU(s), not modifying governor configuration"
+       else
+         einfo "Setting ondemand governor"
+         RC=0
+         for file in $(find /sys/devices/system/cpu/ -name scaling_governor 2>/dev/null) ; do
+           echo ondemand > $file || RC=1
+         done
+         eend $RC
+       fi
      fi
-
-     einfo "Setting ondemand governor"
-     RC=0
-     for file in $(find /sys/devices/system/cpu/ -name scaling_governor 2>/dev/null) ; do
-       echo ondemand > $file || RC=1
-     done
-     eend $RC
-   fi # cpu-governor
+   fi
 
    eoutdent
 fi
@@ -1466,7 +1425,13 @@ get_remote_file() {
        --read-timeout=10 ${SOURCE} -O ${TARGET} && return 0 || return 1
   }
   einfo "Trying to get ${WHITE}${TARGET}${NORMAL}"
-  counter=10
+
+  if checkbootparam 'getfile.retries' ; then
+    local counter="$(getbootparam 'getfile.retries' 2>>$DEBUG)"
+  else
+    local counter=10
+  fi
+
   while ! getconfig && [[ "$counter" != 0 ]] ; do
     echo -n "Sleeping for 1 second and trying to get config again... "
     counter=$(( counter-1 ))
@@ -1621,7 +1586,7 @@ DCSMP="/mnt/grml"
 # autoconfig, see issue673
 GRMLCFG="$(getbootparam 'autoconfig' 2>>$DEBUG)"
 [ -n "$GRMLCFG" ] || GRMLCFG="GRMLCFG"
-if checkbootparam 'noautoconfig' || checkbootparam 'forensic' ; then
+if checkbootparam 'noautoconfig' ; then
   DCSDIR="${LIVECD_PATH}" # set default so it works for "scripts" boot option as expected
   ewarn "Skipping running automount of device(s) labeled $GRMLCFG as requested." ; eend 0
 else
@@ -1918,9 +1883,8 @@ fi
 config_swraid(){
   [ -n "$INSTALLED" ] && return 0
 
-  # notice: checkbootparam "forensic" is just for users who don't know how to really use the bootoption
   if checkbootparam 'noraid'   || checkbootparam 'noswraid' || \
-     checkbootparam 'forensic' || checkbootparam 'raid=noautodetect' ; then
+     checkbootparam 'raid=noautodetect' ; then
      ewarn "Skipping SW-RAID code as requested on boot commandline." ; eend 0
   else
     [ -e /proc/mdstat ] || modprobe md_mod
@@ -2232,6 +2196,7 @@ fi # checkbootparam "BOOT_IMAGE=debian2hd
 }
 # }}}
 
+# {{{ virtualbox shared folders
 config_virtualbox_shared_folders() {
 if $VIRTUALBOX ; then
   einfo "VirtualBox detected, trying to set up Shared Folders."
@@ -2321,6 +2286,7 @@ if $VIRTUALBOX ; then
   fi
 fi
 }
+# }}}
 
 # {{{ Support customization
 config_distri(){