summaryrefslogtreecommitdiff
path: root/libre/linux-libre-tools
diff options
context:
space:
mode:
Diffstat (limited to 'libre/linux-libre-tools')
-rw-r--r--libre/linux-libre-tools/PKGBUILD73
-rw-r--r--libre/linux-libre-tools/cpupower.conf28
-rw-r--r--libre/linux-libre-tools/cpupower.rc41
-rw-r--r--libre/linux-libre-tools/cpupower.service10
4 files changed, 152 insertions, 0 deletions
diff --git a/libre/linux-libre-tools/PKGBUILD b/libre/linux-libre-tools/PKGBUILD
new file mode 100644
index 000000000..286fb97fb
--- /dev/null
+++ b/libre/linux-libre-tools/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id$
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgbase=linux-libre-tools
+pkgname=('perf-libre' 'cpupower-libre')
+pkgver=3.3
+kernver=${pkgver}
+pkgrel=1
+license=('GPL2')
+arch=('i686' 'x86_64')
+url='http://www.kernel.org'
+options=('!strip')
+makedepends=('asciidoc' 'xmlto')
+# split packages need all package dependencies set manually in makedepends
+makedepends+=('python2-libre' 'libnewt' 'elfutils' 'pciutils')
+source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/$kernver-gnu/linux-libre-$kernver-gnu.tar.xz"
+ 'cpupower.rc'
+ 'cpupower.conf'
+ 'cpupower.service')
+md5sums=('5487da14ca81715a469c7594d39722fa'
+ '26af384ca282bc0dc38ff65acc7bb4b9'
+ '18d5aa9e4c6bb23bb02bf65e155e0f0e'
+ '20870541e88109d2f153be3c58a277f1')
+
+build() {
+ msg2 'Build perf'
+ cd linux-$kernver/tools/perf
+ make PYTHON=python2 DESTDIR="${pkgdir}/usr" perfexecdir="lib/$pkgname" \
+ PERF_VERSION=$pkgver-$pkgrel all man
+
+ msg2 'Build cpupower'
+ # we cannot use --as-needed
+ LDFLAGS=${LDFLAGS:+"$LDFLAGS,--no-as-needed"}
+ cd "$srcdir/linux-$kernver/tools/power/cpupower"
+ make VERSION=$pkgver-$pkgrel
+}
+
+package_perf-libre() {
+ pkgdesc='Linux-libre kernel performance auditing tool'
+ depends=('python2-libre' 'libnewt' 'elfutils')
+ replaces=('perf')
+ conflicts=('perf')
+ provides=("perf=$pkgver")
+
+ cd linux-${kernver}/tools/perf
+ make PYTHON=python2 DESTDIR="${pkgdir}/usr" perfexecdir="lib/$pkgname" \
+ PERF_VERSION=$pkgver install install-man
+}
+
+package_cpupower-libre() {
+ pkgdesc='Linux-libre kernel tool to examine and tune power saving related features of your processor'
+ backup=('etc/conf.d/cpupower')
+ depends=('pciutils')
+ replaces=('cpupower')
+ conflicts=('cpupower' 'cpufrequtils')
+ provides=("cpupower=$pkgver")
+
+ # install rc.d script
+ install -D -m 755 cpupower.rc "$pkgdir/etc/rc.d/cpupower"
+ install -D -m 644 cpupower.conf "$pkgdir/etc/conf.d/cpupower"
+ install -D -m 644 cpupower.service "$pkgdir/lib/systemd/system/cpupower.service"
+
+ cd linux-$kernver/tools/power/cpupower
+ make \
+ DESTDIR="$pkgdir" \
+ INSTALL='/bin/install -c' \
+ mandir='/usr/share/man' \
+ docdir='/usr/share/doc/cpupower' \
+ install install-man
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/linux-libre-tools/cpupower.conf b/libre/linux-libre-tools/cpupower.conf
new file mode 100644
index 000000000..f4e9cc4c8
--- /dev/null
+++ b/libre/linux-libre-tools/cpupower.conf
@@ -0,0 +1,28 @@
+# Define CPUs governor
+# valid governors: ondemand, performance, powersave, conservative, userspace.
+#governor='ondemand'
+
+# Limit frequency range
+# Valid suffixes: Hz, kHz (default), MHz, GHz, THz
+#min_freq="2.25GHz"
+#max_freq="3GHz"
+
+# Specific frequency to be set.
+# Requires userspace governor to be available and loaded.
+#freq=
+
+# Utilizes cores in one processor package/socket first before processes are
+# scheduled to other processor packages/sockets.
+# See man (1) CPUPOWER-SET for additional details.
+#mc_scheduler=
+
+# Utilizes thread siblings of one processor core first before processes are
+# scheduled to other cores. See man (1) CPUPOWER-SET for additional details.
+#smp_scheduler=
+
+# Sets a register on supported Intel processore which allows software to convey
+# its policy for the relative importance of performance versus energy savings to
+# the processor. See man (1) CPUPOWER-SET for additional details.
+#perf_bias=
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/linux-libre-tools/cpupower.rc b/libre/linux-libre-tools/cpupower.rc
new file mode 100644
index 000000000..9b0bcddb7
--- /dev/null
+++ b/libre/linux-libre-tools/cpupower.rc
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[[ -f /etc/conf.d/cpupower ]] && . /etc/conf.d/cpupower
+
+case "$1" in
+ start|restart)
+ stat_busy "Setting cpupower rules"
+ declare -i fail=0
+
+ # frequency-set options
+ declare -a params=()
+ params+=(${governor:+-g $governor})
+ params+=(${min_freq:+-d $min_freq})
+ params+=(${max_freq:+-u $max_freq})
+ params+=(${freq:+-f $freq})
+ if ((${#params[@]} > 0)); then
+ cpupower frequency-set "${params[@]}" >/dev/null || fail=1
+ fi
+
+ # set options
+ declare -a params=()
+ params+=(${mc_scheduler:+-m $mc_scheduler})
+ params+=(${smp_scheduler:+-s $smp_scheduler})
+ params+=(${perf_bias:+-b $perf_bias})
+ if ((${#params[@]} > 0)); then
+ cpupower set "${params[@]}" >/dev/null || fail=1
+ fi
+
+ # print failure if any
+ (($fail > 0)) && stat_fail && exit 1 || stat_done
+ ;;
+ *)
+ echo "usage: $0 {start|restart}"
+esac
+
+true
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/linux-libre-tools/cpupower.service b/libre/linux-libre-tools/cpupower.service
new file mode 100644
index 000000000..f77cfdc97
--- /dev/null
+++ b/libre/linux-libre-tools/cpupower.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Apply cpupower configuration
+
+[Service]
+Type=oneshot
+ExecStart=/etc/rc.d/cpupower start
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target