From 71d6cf93f41e9353bd4878d5fda61f14b988e252 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Thu, 22 Mar 2012 02:41:01 -0300 Subject: libre/linux-libre-tools --- libre/linux-libre-tools/PKGBUILD | 73 ++++++++++++++++++++++++++++++++ libre/linux-libre-tools/cpupower.conf | 28 ++++++++++++ libre/linux-libre-tools/cpupower.rc | 41 ++++++++++++++++++ libre/linux-libre-tools/cpupower.service | 10 +++++ 4 files changed, 152 insertions(+) create mode 100644 libre/linux-libre-tools/PKGBUILD create mode 100644 libre/linux-libre-tools/cpupower.conf create mode 100644 libre/linux-libre-tools/cpupower.rc create mode 100644 libre/linux-libre-tools/cpupower.service 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 +# Maintainer (Parabola): André Silva + +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 -- cgit v1.2.3-54-g00ecf