summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Dienstbier2015-07-12 15:47:52 +0200
committerMatthias Dienstbier2015-07-12 15:47:52 +0200
commit5124a38051185759d2292362d396b0ddc66f5d91 (patch)
tree883e2ce12307aa08b76fa3ca38d0ac49cf82747e
downloadaur-5124a38051185759d2292362d396b0ddc66f5d91.tar.gz
Initial import
-rw-r--r--.SRCINFO24
-rw-r--r--PKGBUILD39
-rw-r--r--phc-k8.default4
-rw-r--r--phc-k8.install30
-rw-r--r--phc-k8.sh80
-rw-r--r--phc-k8.sleep7
-rw-r--r--phc-k8.system-sleep5
7 files changed, 189 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..31534b42edc5
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,24 @@
+pkgbase = phc-k8
+ pkgdesc = frequency driver for AMD CPUs with undervolting feature
+ pkgver = 0.4.6
+ pkgrel = 1
+ url = http://www.linux-phc.org
+ install = phc-k8.install
+ arch = any
+ license = GPL
+ provides = linux-phc
+ backup = etc/default/phc-k8
+ backup = etc/modprobe.d/phc-k8.conf
+ source = phc-k8-0.4.6.tar.gz::http://www.linux-phc.org/forum/download/file.php?id=165
+ source = phc-k8.default
+ source = phc-k8.sh
+ source = phc-k8.sleep
+ source = phc-k8.system-sleep
+ sha256sums = 33c6041f314cfe25b7cded4b71736a3986781c505209c1af766723a12d37b53b
+ sha256sums = 352a97272390ed428cc1ebb886ebb044e7b54c145aa7a4c0d96862ad7a7fd46a
+ sha256sums = 8b4638f406249bf3e54604bfd282af6886be1c817045d586471383ea3b251fbf
+ sha256sums = 8619514df4b931705f713d61c1288b6e6960d578067523604b75960dcbc6e778
+ sha256sums = 74ae72d992d0205babd6c9428e637ca407fb26461bfc68da7f331945126b810a
+
+pkgname = phc-k8
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..1f35ed2100d9
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,39 @@
+# Contributor: fs4000 <matthias_dienstbier[at]yahoo[dot]de>
+
+pkgname=phc-k8
+pkgver=0.4.6
+pkgrel=1
+pkgdesc="frequency driver for AMD CPUs with undervolting feature"
+url="http://www.linux-phc.org"
+arch=('any')
+license=('GPL')
+provides=('linux-phc')
+backup=(etc/default/phc-k8 etc/modprobe.d/phc-k8.conf)
+install=phc-k8.install
+source=(phc-k8-$pkgver.tar.gz::$url/forum/download/file.php?id=165
+ phc-k8.{default,sh,sleep,system-sleep})
+sha256sums=('33c6041f314cfe25b7cded4b71736a3986781c505209c1af766723a12d37b53b'
+ '352a97272390ed428cc1ebb886ebb044e7b54c145aa7a4c0d96862ad7a7fd46a'
+ '8b4638f406249bf3e54604bfd282af6886be1c817045d586471383ea3b251fbf'
+ '8619514df4b931705f713d61c1288b6e6960d578067523604b75960dcbc6e778'
+ '74ae72d992d0205babd6c9428e637ca407fb26461bfc68da7f331945126b810a')
+
+prepare() {
+ cd phc-k8_v$pkgver
+ sed -e 's,lib/modules/$(KERNELVERSION)/updates/kernel/arch/x86/kernel/cpu/cpufreq,usr/lib/modules/$(KERNELVERSION)/extramodules,'\
+ -e 's,^\tinstall -m 644 -o root -g root phc-k8.modprobe,#\tinstall -m 644 -o root -g root phc-k8.modprobe,' -i Makefile
+ sed -i 's,/sbin/modprobe phc-k8 |,/sbin/modprobe phc-k8 \&\& /usr/bin/phc-k8 set |,' phc-k8.modprobe
+}
+
+package() {
+ install -Dm644 phc-k8.default "$pkgdir/etc/default/phc-k8"
+ install -Dm755 phc-k8.sh "$pkgdir/usr/bin/phc-k8"
+ install -Dm755 phc-k8.sleep "$pkgdir/usr/lib/pm-utils/sleep.d/00phc-k8"
+ install -Dm755 phc-k8.system-sleep "$pkgdir/usr/lib/systemd/system-sleep/phc-k8"
+
+ cd phc-k8_v$pkgver
+ install -Dm644 phc-k8.modprobe "$pkgdir/etc/modprobe.d/phc-k8.conf"
+ install -d "$pkgdir/usr/src/phc-k8/" "$pkgdir/usr/share/doc/phc-k8/"
+ install -m644 Changelog README "$pkgdir/usr/share/doc/phc-k8/"
+ install -m644 Makefile mperf.? phc-k8.? "$pkgdir/usr/src/phc-k8/"
+}
diff --git a/phc-k8.default b/phc-k8.default
new file mode 100644
index 000000000000..44de4a53988a
--- /dev/null
+++ b/phc-k8.default
@@ -0,0 +1,4 @@
+# configuration for phc-k8
+
+# voltage IDs to be set for all CPUs
+VIDS=""
diff --git a/phc-k8.install b/phc-k8.install
new file mode 100644
index 000000000000..b167ea823c85
--- /dev/null
+++ b/phc-k8.install
@@ -0,0 +1,30 @@
+post_install() {
+ cat << EOF
+Run "phc-k8 setup" to build the module for current kernel.
+You can enter the desired voltage IDs in /etc/default/phc-k8.
+Booting with nophc kernel parameter skips setting of VIDs in case of failure.
+EOF
+}
+
+post_upgrade() {
+ rm -f var/log/phc-k8.log
+}
+
+post_remove() {
+ echo Removing built modules ...
+ rm -rf usr/src/phc-k8/
+ cd usr/lib/modules/
+ for i in *; do
+ if [ -f "$i/extramodules/phc-k8.ko" ]; then
+ rm -f "$i"/extramodules/{mperf,phc-k8}.ko
+ [ -d "$i/kernel" ] && depmod "$i"
+ elif [ -f "$i/phc-k8.ko" ]; then
+ rm -f "$i"/{mperf,phc-k8}.ko
+ rmdir -p --ignore-fail-on-non-empty "$i"
+ elif [ -d "$i/updates/kernel/arch/x86/kernel/cpu/cpufreq" ]; then
+ rm -f "$i"/updates/kernel/arch/x86/kernel/cpu/cpufreq/{mperf,phc-k8}.ko
+ rmdir -p --ignore-fail-on-non-empty "$i/updates/kernel/arch/x86/kernel/cpu/cpufreq"
+ [ -d "$i/kernel" ] && depmod "$i"
+ fi
+ done
+}
diff --git a/phc-k8.sh b/phc-k8.sh
new file mode 100644
index 000000000000..734c76c5f92e
--- /dev/null
+++ b/phc-k8.sh
@@ -0,0 +1,80 @@
+#!/bin/bash -e
+shopt -s nullglob
+
+case "$1" in
+start)
+ . /etc/default/phc-k8
+ if [ -z "$VIDS" ]; then
+ echo '=> Please edit /etc/default/phc-k8'
+ exit 1
+ fi
+ echo ':: Setting PHC VIDs'
+ for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
+ echo $VIDS > "$i"
+ done
+ ;;
+stop)
+ echo ':: Resetting default PHC VIDs'
+ for i in /sys/devices/system/cpu/cpu*/cpufreq; do
+ [ -e "$i/phc_default_vids" -a -e "$i/phc_vids" ] && cp "$i"/phc_{default_,}vids
+ done
+ ;;
+status)
+ check_off () {
+ for i in /sys/devices/system/cpu/cpu*/cpufreq; do
+ [ "$(< $i/phc_vids)" = "$(< $i/phc_default_vids)" ] || return;
+ done
+ }
+ check_on () {
+ for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
+ [[ "$(< $i)" =~ "$VIDS" ]] || return;
+ done
+ }
+ echo -n 'PHC status: '
+ . /etc/default/phc-k8
+ if check_off; then
+ echo 'inactive'
+ elif check_on; then
+ echo 'active'
+ else
+ echo 'unknown'
+ fi
+ ;;
+setup)
+ echo ':: Removing old phc-k8 modules'
+ echo
+ for i in /usr/lib/modules/*; do
+ if [ -f "$i/phc-k8.ko" -a ! -f "$i/version" ]; then
+ rm -f "$i"/{mperf,phc-k8}.ko
+ rmdir --ignore-fail-on-non-empty "$i"
+ elif [ -d "$i/updates/kernel/arch/x86/kernel/cpu/cpufreq" -a ! -d "$i/kernel" ]; then
+ rm -f "$i"/updates/kernel/arch/x86/kernel/cpu/cpufreq/{mperf,phc-k8}.ko
+ rmdir -p --ignore-fail-on-non-empty "$i/updates/kernel/arch/x86/kernel/cpu/cpufreq"
+ fi
+ done
+ echo ':: Compiling new phc-k8 module'
+ echo
+ cd /usr/src/phc-k8/
+ make
+ echo
+ echo ':: Installing new phc-k8 module'
+ echo
+ make install
+ echo
+ echo ':: Cleaning up'
+ echo
+ make clean
+ ;;
+set)
+ . /etc/default/phc-k8
+ [ -z "$VIDS" ] && exit
+ for i in $(< /proc/cmdline); do
+ [ $i = nophc ] && exit
+ done
+ for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
+ echo $VIDS > "$i"
+ done
+ ;;
+*)
+ echo "usage: $0 {start|stop|status|setup|set}"
+esac
diff --git a/phc-k8.sleep b/phc-k8.sleep
new file mode 100644
index 000000000000..154d711d0b39
--- /dev/null
+++ b/phc-k8.sleep
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+case $1 in
+ resume|thaw)
+ . /usr/bin/phc-k8 set
+ ;;
+esac
diff --git a/phc-k8.system-sleep b/phc-k8.system-sleep
new file mode 100644
index 000000000000..191fc74536f9
--- /dev/null
+++ b/phc-k8.system-sleep
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+if [ "$1" = post ]; then
+ . /usr/bin/phc-k8 set
+fi