Package: cpufrequtils
Version: 002-2.1
Tags: patch
Here is the complete patch of my NMU relative to version 002-2.
Friendly,
--
Petter Reinholdtsen
diff -u cpufrequtils-002/po/de.po cpufrequtils-002/po/de.po
--- cpufrequtils-002/po/de.po
+++ cpufrequtils-002/po/de.po
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: cpufrequtils 0.1-pre2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-10-04 19:52+0200\n"
+"POT-Creation-Date: 2007-05-25 14:53+0200\n"
"PO-Revision-Date: 2004-11-03 22:21+0100\n"
"Last-Translator: <[EMAIL PROTECTED]>\n"
"Language-Team: NONE\n"
diff -u cpufrequtils-002/po/fr.po cpufrequtils-002/po/fr.po
--- cpufrequtils-002/po/fr.po
+++ cpufrequtils-002/po/fr.po
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: cpufrequtils 0.1-pre2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-10-04 19:52+0200\n"
+"POT-Creation-Date: 2007-05-25 14:53+0200\n"
"PO-Revision-Date: 2004-11-17 15:53+1000\n"
"Last-Translator: Bruno Ducrot <[EMAIL PROTECTED]>\n"
"Language-Team: NONE\n"
diff -u cpufrequtils-002/po/it.po cpufrequtils-002/po/it.po
--- cpufrequtils-002/po/it.po
+++ cpufrequtils-002/po/it.po
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: cpufrequtils 0.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-10-04 19:52+0200\n"
+"POT-Creation-Date: 2007-05-25 14:53+0200\n"
"PO-Revision-Date: 2005-05-04 20:00+0100\n"
"Last-Translator: Mattia Dongili <[EMAIL PROTECTED]>\n"
"Language-Team: NONE\n"
diff -u cpufrequtils-002/debian/changelog cpufrequtils-002/debian/changelog
--- cpufrequtils-002/debian/changelog
+++ cpufrequtils-002/debian/changelog
@@ -1,3 +1,29 @@
+cpufrequtils (002-2.1) unstable; urgency=low
+
+ * Non-maintainer upload with maintainers approval.
+ * Add init.d/loadcpufreq to detect and load the needed kernel
+ modules. Based on code from powernowd in Ubuntu, combined into
+ one script and slightly modified to prefer acpi-cpufreq over
+ speedstep-centrino with kernels 2.6.20->. (Closes: #423991)
+ * Improve wording in README.Debian. Based on suggestion from Pete
+ Boyd. (Closes: #412184)
+ * Make init.d script accept the same speed values in
+ default/cpufrequtils as cpufreq-set. Patch from Bernd Feige.
+ (Closes: #392572)
+ * Move default values for init.d/cpufrequtils into the script, and
+ drop /etc/default/cpufrequtils as a conffile to ease
+ autoconfiguration and upgrades when the default values changes.
+ * Add hidden boolean debconf value cpufrequtils/active-on-boot to
+ enable the ondemand governor during installation. Add lintian
+ overrides to ignore lintian warnings about hidden debconf
+ questions.
+ * Add provides line to the LSB header in init.d/cpufrequtils to keep
+ lintian and insserv happy.
+ * Remove runlevels from the LSB header default-stop, as the init.d
+ script do not stop anything.
+
+ -- Petter Reinholdtsen <[EMAIL PROTECTED]> Fri, 25 May 2007 14:52:20 +0200
+
cpufrequtils (002-2) unstable; urgency=low
* Be Sarge's sed compliant, thanks to Peter Palfrader. (Closes: #378482)
diff -u cpufrequtils-002/debian/control cpufrequtils-002/debian/control
--- cpufrequtils-002/debian/control
+++ cpufrequtils-002/debian/control
@@ -8,7 +8,7 @@
Package: cpufrequtils
Architecture: any
Section: admin
-Depends: ${shlibs:Depends}, lsb-base (>= 3.0)
+Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base (>= 3.0)
Description: utilities to deal with the cpufreq Linux kernel feature
This package contains two utilities for inspecting and setting the
cpu frequency through both the sysfs and procfs CPUFreq kernel
diff -u cpufrequtils-002/debian/cpufrequtils.README.Debian cpufrequtils-002/debian/cpufrequtils.README.Debian
--- cpufrequtils-002/debian/cpufrequtils.README.Debian
+++ cpufrequtils-002/debian/cpufrequtils.README.Debian
@@ -1,8 +1,8 @@
README for Debian package of Cpufrequtils
=========================================
-This package provides very useful tools to get informations and set
-values about the CPUFreq Linux kernel features.
+This package provides very useful tools to get information about the CPUFreq
+Linux kernel features (with cpufreq-info) and set values for it (with cpufreq-set).
This package provides the ability to set a chosen governor (different from
the one configured at kernel compile time) at boot time by setting the governor
name in /etc/default/cpufrequtils. By editing that file you can also set limits
reverted:
--- cpufrequtils-002/debian/cpufrequtils.default
+++ cpufrequtils-002.orig/debian/cpufrequtils.default
@@ -1,22 +0,0 @@
-# Which governor to use. Must be one of the governors listed in:
-# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
-#
-# and which limits to set. Both MIN_SPEED and MAX_SPEED must be values
-# listed in:
-# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
-# a value of 0 for any of the two variables will disabling the use of
-# that limit variable.
-#
-# WARNING: the correct kernel module must already be loaded or compiled in.
-#
-# Set ENABLE to "true" to let the script run at boot time.
-#
-# eg: ENABLE="true"
-# GOVERNOR="ondemand"
-# MAX_SPEED=1000
-# MIN_SPEED=500
-
-ENABLE="false"
-GOVERNOR="ondemand"
-MAX_SPEED=0
-MIN_SPEED=0
diff -u cpufrequtils-002/debian/cpufrequtils.init cpufrequtils-002/debian/cpufrequtils.init
--- cpufrequtils-002/debian/cpufrequtils.init
+++ cpufrequtils-002/debian/cpufrequtils.init
@@ -1,9 +1,10 @@
#!/bin/sh
### BEGIN INIT INFO
+# Provides: cpufrequtils
# Required-Start: $local_fs
# Required-Stop:
# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
+# Default-Stop:
# Short-Description: set CPUFreq kernel parameters
# Description: utilities to deal with CPUFreq Linux
# kernel support
@@ -20,6 +21,29 @@
# use lsb-base
. /lib/lsb/init-functions
+# Which governor to use. Must be one of the governors listed in:
+# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
+#
+# and which limits to set. Both MIN_SPEED and MAX_SPEED must be values
+# listed in:
+# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
+# a value of 0 for any of the two variables will disabling the use of
+# that limit variable.
+#
+# WARNING: the correct kernel module must already be loaded or compiled in.
+#
+# Set ENABLE to "true" to let the script run at boot time.
+#
+# eg: ENABLE="true"
+# GOVERNOR="ondemand"
+# MAX_SPEED=1000
+# MIN_SPEED=500
+
+ENABLE="false"
+GOVERNOR="ondemand"
+MAX_SPEED=0
+MIN_SPEED=0
+
[ -x $CPUFREQ_SET ] || exit 0
if [ -f /etc/default/cpufrequtils ] ; then
@@ -31,11 +55,11 @@
# if not enabled then exit gracefully
[ "$ENABLE" = "true" ] || exit 0
-if [ $MAX_SPEED -gt 0 ] ; then
+if [ $MAX_SPEED != '0' ] ; then
CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --max $MAX_SPEED"
fi
-if [ $MIN_SPEED -gt 0 ] ; then
+if [ $MIN_SPEED != '0' ] ; then
CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --min $MIN_SPEED"
fi
diff -u cpufrequtils-002/debian/cpufrequtils.postinst cpufrequtils-002/debian/cpufrequtils.postinst
--- cpufrequtils-002/debian/cpufrequtils.postinst
+++ cpufrequtils-002/debian/cpufrequtils.postinst
@@ -24,10 +24,33 @@
# `abort-remove' or `abort-deconfigure'.
# Source debconf library.
-#. /usr/share/debconf/confmodule
+. /usr/share/debconf/confmodule
case "$1" in
configure)
+ # Remove unedited conffiles, as the defaults values are in the
+ # script now. This make automatic configuration easier.
+ deffile=/etc/default/cpufrequtils
+ if [ -f $deffile ]; then
+ case $(md5sum $deffile|sed 's/ .*//') in
+ a5a78170cb0fb90c5ae08fd397741f9d) # from version 002-2
+ rm $deffile
+ ;;
+ *)
+ ;;
+ esac
+ fi
+
+ # If the config file is missing (or removed above because it
+ # was the old default file), check debconf to see if the
+ # init.d script should be enabled. This hidden debconf
+ # question allow preseeding during installation.
+ if [ ! -f $deffile ] ; then
+ db_get cpufrequtils/enable
+ if [ true = "$RET" ] ; then
+ echo 'ENABLE="true"' > $deffile
+ fi
+ fi
# setup startup links
# D-DEVEL didn't approve rcS.d/S37 (just after sysfs has been mounted)
diff -u cpufrequtils-002/debian/rules cpufrequtils-002/debian/rules
--- cpufrequtils-002/debian/rules
+++ cpufrequtils-002/debian/rules
@@ -90,6 +90,10 @@
dh_installexamples
dh_installman
dh_installinit -n
+ dh_installinit --name loadcpufreq -r --no-start -u"start 05 2 3 4 5 ."
+ dh_installdebconf
+ install -D -m644 debian/lintian.overrides \
+ debian/cpufrequtils/usr/share/lintian/overrides/cpufrequtils
dh_link
dh_strip
dh_compress
only in patch2:
unchanged:
--- cpufrequtils-002.orig/debian/lintian.overrides
+++ cpufrequtils-002/debian/lintian.overrides
@@ -0,0 +1,2 @@
+cpufrequtils source: not-using-po-debconf
+cpufrequtils: no-debconf-config
only in patch2:
unchanged:
--- cpufrequtils-002.orig/debian/cpufrequtils.templates
+++ cpufrequtils-002/debian/cpufrequtils.templates
@@ -0,0 +1,6 @@
+Template: cpufrequtils/enable
+Type: boolean
+Default: false
+Description: Enable cpufreq governor at install time?
+ This is an internal (hidden) debconf question. It should not be translated.
+
only in patch2:
unchanged:
--- cpufrequtils-002.orig/debian/cpufrequtils.loadcpufreq.init
+++ cpufrequtils-002/debian/cpufrequtils.loadcpufreq.init
@@ -0,0 +1,242 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: loadcpufreq
+# Required-Start: $local_fs
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop:
+# Short-Description: Load kernel modules needed to enable cpufreq scaling
+# Description: Make it possible to save power by reducing
+# the CPU speed when there is little to do.
+### END INIT INFO
+# License: GNU General Public License.
+#
+# Based on scripts found in the powernowd package version
+# 0.97-1ubuntu6 on Ubuntu.
+#
+# This script is an interim solution until the default Debian packages
+# will load the proper kernel modules at boot time. Track #396117,
+# #342014 and #367307 to see status on this.
+# <URL:http://0pointer.de/blog/projects/dmi-based-module-autoloading.html>
+# claim the later kernels support autoloading of these modules, so I
+# guess In the future this script can be dropped. [pere 2007-05-12]
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+NAME=loadcpufreq
+
+# Get lsb functions
+. /lib/lsb/init-functions
+. /etc/default/rcS
+
+[ -f /etc/default/loadcpufreq ] && . /etc/default/loadcpufreq
+
+set -e
+
+load_detected_cpufreq_modules() {
+ if /usr/sbin/laptop-detect; then LAPTOP=1; fi
+ CPUINFO=/proc/cpuinfo
+ IOPORTS=/proc/ioports
+
+ if [ ! -f $CPUINFO ] ; then
+ echo $CPUINFO not detected... >2
+ return
+ fi
+
+ MODEL_NAME=$(grep '^model name' "$CPUINFO" | head -1 | sed -e 's/^.*: //;')
+ CPU=$(grep -E '^cpud[^:]+:' "$CPUINFO" | head -1 | sed -e 's/^.*: //;')
+ VENDOR_ID=$(grep -E '^vendor_id[^:]+:' "$CPUINFO" | head -1 | sed -e 's/^.*: //;')
+ CPU_FAMILY=$(sed -e '/^cpu family/ {s/.*: //;p;Q};d' $CPUINFO)
+
+ MODULE=
+ MODULE_FALLBACK=acpi-cpufreq
+
+ # Two modules for PIII-M depending the chipset.
+ # modprobe speedstep-ich$EXT || modprobe speestep-smi$EXT
+ # would be another way
+ if [ -f $IOPORTS ] && grep -q 'Intel .*ICH' $IOPORTS ; then
+ PIII_MODULE=speedstep-ich
+ else
+ PIII_MODULE=speedstep-smi
+ fi
+
+ case "$VENDOR_ID" in
+ GenuineIntel*)
+ # If the CPU has the est flag, it supports enhanced
+ # speedstep and should use the speedstep-centrino driver
+ if [ "$(grep est $CPUINFO)" ]; then
+ case "$(uname -3)" in
+ 2.6.2[0-9]*)
+ # Prefer acpi-cpufreq for kernels after 2.6.20
+ MODULE=acpi-cpufreq
+ ;;
+ *)
+ MODULE=speedstep-centrino
+ ;;
+ esac
+ elif [ $CPU_FAMILY = 15 ]; then
+ # Right. Check if it's a P4 without est.
+ # Could be speedstep-ich, or could be p4-clockmod.
+ MODULE=speedstep-ich;
+ # Disabled for now - the latency tends to be bad
+ # enough to make it fairly pointless.
+ # echo "FREQDRIVER=p4-clockmod" >/etc/default/powernowd
+ # to override this
+# if [ $LAPTOP = "1" ]; then
+# MODULE_FALLBACK=p4-clockmod;
+# fi
+ else
+ # So it doesn't have Enhanced Speedstep, and it's not a
+ # P4. It could be a Speedstep PIII, or it may be
+ # unsupported. There's no terribly good programmatic way
+ # of telling.
+ case "$MODEL_NAME" in
+ Intel\(R\)\ Pentium\(R\)\ III\ Mobile\ CPU*)
+ MODULE=$PIII_MODULE
+ ;;
+
+ # JD: says this works with cpufreq_userspace
+
+ Mobile\ Intel\(R\)\ Pentium\(R\)\ III\ CPU\ -\ M*)
+ MODULE=$PIII_MODULE
+ ;;
+
+ # https://bugzilla.ubuntu.com/show_bug.cgi?id=4262
+ # UNCONFIRMED
+ Pentium\ III\ \(Coppermine\)*)
+ MODULE=$PIII_MODULE
+ ;;
+ esac
+ fi
+ ;;
+ AuthenticAMD*)
+# Hurrah. This is nice and easy.
+ case $CPU_FAMILY in
+ 5)
+ # K6
+ MODULE=powernow-k6
+ ;;
+ 6)
+ # K7
+ MODULE=powernow-k7
+ ;;
+ 15)
+ # K8
+ MODULE=powernow-k8
+ ;;
+ esac
+ ;;
+ CentaurHauls*)
+ # VIA
+ if [ $CPU_FAMILY == 6 ]; then
+ MODULE=longhaul;
+ fi
+ ;;
+ GenuineTMx86*)
+ # Transmeta
+ if [ "$(grep longrun $CPUINFO)" ]; then
+ MODULE=longrun
+ fi
+ ;;
+ esac
+}
+
+load_modules() {
+ #stop the kernel printk'ing at all while we load.
+ PRINTK=$(cat /proc/sys/kernel/printk)
+ [ "$VERBOSE" = no ] && echo "1 1 1 1" > /proc/sys/kernel/printk
+
+ #build a list of current modules so we don't load a module twice
+ LIST=$(/sbin/lsmod|awk '!/Module/ {print $1}')
+
+ #get list of available modules
+ LOC="/lib/modules/$(uname -r)/kernel/drivers/cpufreq"
+ if [ -d $LOC ]; then
+ MODAVAIL=$( ( find $LOC -type f -name "*.o" -printf "basename %f .o\n"; \
+ find $LOC -type f -name "*.ko" -printf "basename %f .ko\n" ) | /bin/sh)
+ else
+ MODAVAIL=""
+ fi
+
+
+ #echo "Loading cpufreq modules:"
+ for mod in $MODAVAIL; do
+ # echo " $mod"
+ echo $LIST| grep -q -w "$mod" || modprobe $mod >/dev/null || /bin/true
+ done
+
+ #cpufreq is built in on powerpc; just return
+ if [ "$(uname -m)" = "ppc" ]; then
+ echo "$PRINTK" > /proc/sys/kernel/printk
+ return 0
+ fi
+
+
+ #new style detection system
+ if [ ! "$FREQDRIVER" = "" ]; then
+ modprobe "$FREQDRIVER"
+ else
+ load_detected_cpufreq_modules
+ if [ ! -z "$MODULE" ] || [ ! -z "$MODULE_FALLBACK" ] ; then
+ if [ ! -z "$MODULE" ] && modprobe "$MODULE" ; then
+ :
+ else
+ modprobe "$MODULE_FALLBACK"
+ fi
+ fi
+ fi
+
+ if [ "$USE_OLD_DETECT" = "fish" ]; then
+ # now lets load the driver
+ if [ ! $FREQDRIVER = "" ]; then
+ modprobe $FREQDRIVER||true
+ fi
+ if [ "$(uname -m)" = "x86_64" ]; then
+ modprobe powernow-k8 >/dev/null 2>&1||true
+ fi
+
+ if [ ! -f /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then
+ modprobe acpi > /dev/null 2>&1|| true
+ fi
+ fi
+ echo "$PRINTK" > /proc/sys/kernel/printk
+}
+
+check_kernel() {
+ CPUFREQ=/sys/devices/system/cpu/cpu0/cpufreq
+
+ if [ -f "$CPUFREQ/scaling_governor" ] && \
+ [ -f "$CPUFREQ/scaling_available_governors" ] && \
+ grep -q userspace "$CPUFREQ/scaling_available_governors"
+ then
+ return 0
+ else
+ return 1
+ fi
+}
+
+case "$1" in
+ start)
+ log_begin_msg "Loading cpufreq kernel modules... "
+ [ -f /proc/modules ] && load_modules
+ if check_kernel ; then
+ log_end_msg 0
+ else
+ log_end_msg 1
+ fi
+ ;;
+ stop)
+ ;;
+ restart|force-reload)
+ $0 stop
+ sleep 1
+ $0 start
+ #echo "$NAME."
+ ;;
+ *)
+ N=/etc/init.d/$NAME
+ log_success_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0