version 0.6 of power-settings
authortanner <tanner@mach.kyb.local>
Fri, 7 May 2010 18:24:24 +0000 (20:24 +0200)
committertanner <tanner@mach.kyb.local>
Fri, 7 May 2010 18:24:24 +0000 (20:24 +0200)
17 files changed:
kernel-power-settings/config/boot [new file with mode: 0644]
kernel-power-settings/config/default
kernel-power-settings/config/ideal
kernel-power-settings/config/lv
kernel-power-settings/config/ulv
kernel-power-settings/config/xlv
kernel-power-settings/debian/changelog
kernel-power-settings/debian/control
kernel-power-settings/debian/kernel-power-settings.install
kernel-power-settings/debian/kernel-power-settings.postinst
kernel-power-settings/debian/kernel-power-settings.postrm
kernel-power-settings/kernel-config
kernel-power-settings/kernel-load
kernel-power-settings/kernel-power
kernel-power-settings/kernel-power-shutdown [new file with mode: 0644]
kernel-power-settings/kernel-power.conf
kernel-power-settings/pre-mount

diff --git a/kernel-power-settings/config/boot b/kernel-power-settings/config/boot
new file mode 100644 (file)
index 0000000..b4405b4
--- /dev/null
@@ -0,0 +1,9 @@
+# boot options for kernel-power-settings
+
+# fsck of /home partition before mounting?
+# 0=never, 1=if necessary, force=always check
+FSCK_HOME=0
+
+# start USB networking and sshd early during boot
+# 0=off, 1=on
+EARLY_SSH=0
index f4eac8b..35f0362 100644 (file)
@@ -10,8 +10,3 @@ SAMPLING_RATE=300000
 SMARTREFLEX_VDD1=0
 SMARTREFLEX_VDD2=0
 IGNORE_NICE_LOAD=0
-# start USB networking and sshd early during boot
-EARLYSSH=0
-# fsck of /home partition before mounting?
-# 1=if necessary, force=always check
-FSCK_HOME=0
\ No newline at end of file
index 7bb1ff5..ec0578a 100644 (file)
@@ -9,9 +9,4 @@ UP_THRESHOLD=75
 SAMPLING_RATE=150000
 SMARTREFLEX_VDD1=0
 SMARTREFLEX_VDD2=0
-IGNORE_NICE_LOAD=0
-# start USB networking and sshd early during boot
-EARLYSSH=0
-# fsck of /home partition before mounting?
-# 1=if necessary, force=always check
-FSCK_HOME=0
\ No newline at end of file
+IGNORE_NICE_LOAD=1
index 50003df..74681f7 100644 (file)
@@ -10,8 +10,3 @@ SAMPLING_RATE=150000
 SMARTREFLEX_VDD1=0
 SMARTREFLEX_VDD2=0
 IGNORE_NICE_LOAD=0
-# start USB networking and sshd early during boot
-EARLYSSH=0
-# fsck of /home partition before mounting?
-# 1=if necessary, force=always check
-FSCK_HOME=0
\ No newline at end of file
index a6287b2..db05ac1 100644 (file)
@@ -10,8 +10,3 @@ SAMPLING_RATE=150000
 SMARTREFLEX_VDD1=0
 SMARTREFLEX_VDD2=0
 IGNORE_NICE_LOAD=0
-# start USB networking and sshd early during boot
-EARLYSSH=0
-# fsck of /home partition before mounting?
-# 1=if necessary, force=always check
-FSCK_HOME=0
\ No newline at end of file
index d69b95d..2c0ec1d 100644 (file)
@@ -10,8 +10,3 @@ SAMPLING_RATE=150000
 SMARTREFLEX_VDD1=0
 SMARTREFLEX_VDD2=0
 IGNORE_NICE_LOAD=0
-# start USB networking and sshd early during boot
-EARLYSSH=0
-# fsck of /home partition before mounting?
-# 1=if necessary, force=always check
-FSCK_HOME=0
\ No newline at end of file
index 930e45b..4a852a1 100644 (file)
@@ -1,3 +1,16 @@
+kernel-power-settings (0.6) fremantle; urgency=low
+
+  * bugfix (typos): dsprate was not set, shifted frequencies in show and save
+  * new commands limits and unlock, rename setdefault to default and require filename for save
+  * cleaned up script, check for valid commands
+  * move and rename EARLY_SSH and FSCK_HOME to independent /etc/default/kernel-boot file, add to backup
+  * fix upstart scripts and safety mechanism
+  * config/ideal: enable ignore_nice_load
+  * postinst: install default boot config
+  * postrm: purge configuration files 
+
+ -- Thomas Tanner <maemo@tannerlab.com>  Fri,  7 May 2010 18:58:57 +0200
+
 kernel-power-settings (0.5) fremantle; urgency=low
 
    * fix important typos in default configs
index 0e62053..c77a8ac 100644 (file)
@@ -9,10 +9,26 @@ Standards-Version: 3.8.0
 Package: kernel-power-settings
 Section: user/system
 Architecture: armel
-Depends: kernel-power-flasher, sudo
+Depends: kernel-power-flasher (>= 2.6.28-maemo25), sudo
+XB-Maemo-Display-Name: Enhanced Linux kernel for power users (settings)
 Description: Tools for the customization of kernel settings
  of the enhanced Maemo 5 kernel 2.6.28.10.
  .
+ Installing this package will automatically also install the
+ required power user kernel. By default, this package has no effect.
+ .
+ The command /usr/sbin/kernel-config can be used to load, save and
+ show CPU frequency, voltage and DSP settings.
+ It can also set defaults which are loaded during boot.
+ Different profiles can be stored in user directory.
+ .
+ This package contains boot options to enable file system checks
+ of /home before mounting or to start a SSH server with USB networking.
+ Kernel modules specified in /etc/modules are loaded during boot.
+ The boot scripts contain safety mechanisms to temporarily disable them
+ after a crash for recovery.
+ .
+ For more details please visit http://wiki.maemo.org/Kernel_Power
 XB-Maemo-Icon-26:
  iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
  d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
index b7608a5..d00e91a 100644 (file)
@@ -1,8 +1,9 @@
 kernel-load /usr/sbin
 kernel-config /usr/sbin
 pre-mount /etc/kernel-power
-kernel-power /etc/event.d
 kernel-modules /etc/event.d
+kernel-power /etc/event.d
+kernel-power-shutdown /etc/event.d
 kernel-power.sudoers /etc/sudoers.d
 kernel-power.conf /etc/osso-backup/applications
 config/* /usr/share/kernel-power-settings
index 7ffd03d..662e747 100644 (file)
@@ -8,10 +8,14 @@ cd /etc
 test -f lastboot && rm lastboot
 test -f lastreboot && rm lastreboot
 
+# install premount hook
 if ! grep -q "# KERNEL-POWER-HOOK" /etc/default/mount-opts; then
        echo "test -x /etc/kernel-power/pre-mount && /etc/kernel-power/pre-mount # KERNEL-POWER-HOOK" >> /etc/default/mount-opts
 fi
 
+bootcfg=/etc/default/kernel-boot
+test -f $bootcfg || cp /usr/share/kernel-power-settings/boot $bootcfg
+
 #DEBHELPER#
 
 exit 0
index 3f12692..f8e8555 100644 (file)
@@ -5,6 +5,13 @@ if grep -q "# KERNEL-POWER-HOOK" /etc/default/mount-opts; then
     mv /etc/default/mount-opts.tmp /etc/default/mount-opts
 fi
 
+case "$1" in
+purge)
+    rm -f /etc/default/kernel-power /etc/default/kernel-boot
+    rm -rf /etc/kernel-power
+    ;;
+esac
+
 #DEBHELPER#
 
 exit 0
index 31b0853..4dad46c 100755 (executable)
@@ -2,16 +2,18 @@
 # kernel configuration script for power user kernel
 # (c) Copyright 2010 by Thomas Tanner <maemo@tannerlab.com>
 # licensed under GPLv3
-# version 0.1 (2. May 2010)
+# version 0.2 (7. May 2010)
 
 if test $# -eq 0; then
     echo "$0 command [options]"
     echo "commands:"
     echo "  show        - show current settings"
     echo "  load <file> - load settings from file"
-    echo "  save <file> - save settings to file (abs. path or filename in /home/user/.kernel, none=defaults)"
-    echo "  setdefault <file> - set file as default settings"
-    echo "  lock [freq [volt] [dsp]] - un/lock CPU at frequency with specific settings"
+    echo "  save <file> - save settings to file (abs. path or filename in /home/user/.kernel)"
+    echo "  default [<file>] - set file or the current settings as default settings"
+    echo "  limits min max - set the frequency limits ('-' keeps the current setting)"
+    echo "  lock freq [volt] [dsp] - lock CPU at frequency with specific settings"
+    echo "  unlock       - unlock CPU frequency"
     echo "filenames: absolute path or filename in search path or none=defaults"
     echo "search path: .,/home/user/.kernel,/usr/share/kernel-power-settings/"
     exit 1
@@ -29,6 +31,10 @@ echo ondemand > $cfr/scaling_governor
 if test -f $cfd/avoid_frequencies -a -f $pwr/vdd1_opps_vsel -a -f $pwr/dsp_opps_rate; then :
 else
     echo This kernel version `uname -r` is not supported
+    echo Please make sure that kernel-power is installed and running.
+    echo If you have just installed the kernel, you need to shutdown and boot to activate it.
+    echo To reinstall the power user kernel run:
+    echo \'apt-get install --reinstall kernel-power kernel-power-flasher\'
     exit 1
 fi
 
@@ -40,29 +46,38 @@ vsel=`cat $pwr/vdd1_opps_vsel`
 rate=`cat $pwr/dsp_opps_rate` 
 
 cmd=$1
+test "$cmd" = setdefault && cmd=default # old name
+case " show load save default limits lock unlock " in
+*" $cmd "*) ;;
+*)  echo "invalid command $cmd";  exit 1 ;;
+esac
 arg=
 shift
-if test "$cmd" = lock && test -z "$1"; then
+if test "$cmd" = unlock; then
     echo 'unlocking frequency. reset to defaults'
     cmd=loaddef
-    arg=
+fi
+if test "$cmd" = default && test $# -eq 0; then
+    echo 'saving current settings as defaults'
+    arg=/etc/default/kernel-power
+    cmd=savedef
 fi
 
 popvsel() { curvsel=$1; shift; vsel="$*"; }
 poprate() { currate=$1; shift; rate="$*"; }
 
 case $cmd in
-show|save)
+show|save|savedef)
     minfreq=$((`cat $cfr/scaling_min_freq`/1000))
     maxfreq=$((`cat $cfr/scaling_max_freq`/1000))
     test $maxfreq = 599 && maxfreq=600
     avoid=`cat $cfd/avoid_frequencies`
     freqs=
-    for f in $allfreq; do
+    for f in 0 $allfreq; do
         popvsel $vsel
         poprate $rate
         case " $avoid " in *" $f "*) ;;
-        *) freqs="$freqs$((f/1000)):$curvsel,$currate "
+        *) freqs="$freqs$((f/1000)):$curvsel,$currate " ;;
         esac
     done
     if test $cmd = show; then
@@ -82,8 +97,11 @@ show|save)
         echo -n ", up threshold=" `cat $cfd/up_threshold`
         echo ", sampling rate=" `cat $cfd/sampling_rate`
     else
-        arg=$1
-        test -z "$arg" && arg=/etc/default/kernel-power
+        test $cmd = save && arg=$1
+       if test -z "$arg"; then
+           echo "filename argument is mssing"
+           exit 1
+       fi
         if test `basename $arg` = $arg; then
            u=/home/user/.kernel
            arg=$u/$arg
@@ -94,7 +112,7 @@ show|save)
            touch $arg
            chown user.users $arg
        fi
-        test $arg = /etc/default/kernel-power && test -L $arg && rm -f $arg
+        rm -f $arg
         echo "saving to $arg"
         echo "# kernel configuration file generated by $0" > $arg
         echo "MINFREQ=$minfreq" >> $arg
@@ -163,8 +181,6 @@ load|loaddef)
         test -z "$volt" && test -z "$dsp" && continue
         tvsel=
         trate=
-        cpvsel() { tvsel="$tvsel $1"; }
-        cprate() { trate="$trate $1"; }
         for fr in 0 $allfreq; do
             if test $fr = $freq; then
                 popvsel $vsel
@@ -204,7 +220,7 @@ load|loaddef)
     #echo $avoid
     echo $avoid > $cfd/avoid_frequencies
     echo $vsel > $pwr/vdd1_opps_vsel
-    echo $rates > $pwr/dsp_opps_rate
+    echo $rate > $pwr/dsp_opps_rate
     test $maxfreq = 600 && maxfreq=599
     echo $((minfreq*1000)) > $cfr/scaling_min_freq
     echo $((maxfreq*1000)) > $cfr/scaling_max_freq
@@ -215,7 +231,7 @@ load|loaddef)
     test -n "$SAMPLING_RATE" && echo $SAMPLING_RATE > $cfd/sampling_rate
     echo "successfully loaded."
     ;;
-setdefault)
+default)
     arg=$1
     if test -z "$arg"; then
         echo "filename missing"
@@ -234,6 +250,32 @@ setdefault)
     esac
     echo "defaults set to $arg"
     ;;
+limits)
+    minfreq=$1
+    maxfreq=$2
+    if test "x$minfreq" = x -o "x$maxfreq" = x; then
+        echo "frequency limit arguments missing"
+        exit 1
+    fi
+    test "x$minfreq" = "x-" && minfreq=$((`cat $cfr/scaling_min_freq`/1000))
+    test "x$maxfreq" = "x-" && maxfreq=$((`cat $cfr/scaling_max_freq`/1000))
+    limits="$minfreq,$maxfreq"
+    minfreq=$((minfreq*1000))
+    maxfreq=$((maxfreq*1000))
+    case " $allfreq " in *" $minfreq "*) ;;
+    *) echo "invalid lower limit $1"; exit 1; ;;
+    esac
+    case " $allfreq " in *" $maxfreq "*) ;;
+    *) echo "invalid upper limit $2"; exit 1; ;;
+    esac
+    if test $minfreq -gt $maxfreq; then
+       echo "minimum must not be greater than maximum: $limits"
+       exit 1
+    fi
+    echo $minfreq > $cfr/scaling_min_freq
+    echo $maxfreq > $cfr/scaling_max_freq
+    echo "the limits were set to [$limits]"
+    ;;
 lock)
     arg=$1
     altfreq=
@@ -247,8 +289,7 @@ lock)
     freq=$((arg*1000))
     ifreq=
     i=0
-    allfreq="0 $allfreq"
-    for f in $allfreq; do
+    for f in 0 $allfreq; do
         i=$((i+1))
         test $f = $freq || continue
         ifreq=$i
@@ -289,8 +330,5 @@ lock)
     echo locking frequency $freq
     echo $freq > $cfr/scaling_setspeed
     ;;
-*)
-    echo "invalid command $cmd"
-    exit 1
 esac
 exit 0
index d17095d..189efa6 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
-echo "warning: this script is obsolete. calling kernel-config"
+echo "warning: this command is deprecated. executing: kernel-config load $1"
 /usr/sbin/kernel-config load $1
 exit $?
index 35dad78..b53ef03 100644 (file)
@@ -10,23 +10,18 @@ script
         touch /etc/kernel-power/.notloaded
         exit 1
     fi
-    test -f /etc/default/kernel-power || exit 1
     touch /etc/kernel-power/.loaded
-    STATE=`/sbin/getbootstate`
-    if test $STATE = USER; then
-        source /etc/default/kernel-power
-        if test "$EARLYSSH" = 1 && test -x /etc/init.d/ssh; then
+    if test -f /etc/default/kernel-boot && test `/sbin/getbootstate` = USER; then
+        source /etc/default/kernel-boot
+        if test "$EARLY_SSH" = 1 && test -x /etc/init.d/ssh; then
             /sbin/modprobe g_nokia
+           sleep 1
             /sbin/ifup usb0
             /etc/init.d/ssh start
         fi
     fi
+    test -f /etc/default/kernel-power || exit 1
     test -x /usr/sbin/kernel-config || exit 1
     /usr/sbin/kernel-config load
     exit 0
 end script
-
-post-stop script
-    rm -f /etc/kernel-power/.loaded
-    rm -f /etc/kernel-power/.notloaded
-end script
diff --git a/kernel-power-settings/kernel-power-shutdown b/kernel-power-settings/kernel-power-shutdown
new file mode 100644 (file)
index 0000000..74e0585
--- /dev/null
@@ -0,0 +1,7 @@
+start on starting shutdown
+service
+console none
+script
+    rm -f /etc/kernel-power/.loaded
+    rm -f /etc/kernel-power/.notloaded
+end script
index def4acf..be33984 100644 (file)
@@ -6,5 +6,8 @@
                <location type="file" category="settings">
                        /etc/default/kernel-power
                </location>
+               <location type="file" category="settings">
+                       /etc/default/kernel-boot
+               </location>
        </locations>
 </backup-configuration>
index f932132..6a2931e 100755 (executable)
@@ -22,7 +22,7 @@ if test -f $fforce; then
        exit 0
     fi
 else
-    cfg=/etc/default/kernel-power
+    cfg=/etc/default/kernel-boot
     test -f $cfg || exit 0
     FSCK_HOME=0
     source $cfg