diff options
Diffstat (limited to 'community/linux-tools')
-rw-r--r-- | community/linux-tools/PKGBUILD | 168 | ||||
-rw-r--r-- | community/linux-tools/cpupower.default | 29 | ||||
-rw-r--r-- | community/linux-tools/cpupower.install | 13 | ||||
-rw-r--r-- | community/linux-tools/cpupower.service | 10 | ||||
-rw-r--r-- | community/linux-tools/cpupower.systemd | 32 | ||||
-rw-r--r-- | community/linux-tools/usbipd.service | 9 |
6 files changed, 261 insertions, 0 deletions
diff --git a/community/linux-tools/PKGBUILD b/community/linux-tools/PKGBUILD new file mode 100644 index 000000000..d9bab088c --- /dev/null +++ b/community/linux-tools/PKGBUILD @@ -0,0 +1,168 @@ +# $Id: PKGBUILD 93324 2013-07-01 22:56:17Z seblu $ +# Maintainer: Sébastien Luttringer + +pkgbase=linux-tools +pkgname=('linux-tools-meta' + 'libtraceevent' + 'perf' + 'cpupower' + 'x86_energy_perf_policy' + 'usbip') +pkgver=3.10 +pkgrel=1 +license=('GPL2') +arch=('i686' 'x86_64') +url='http://www.kernel.org' +options=('!strip') +# split packages need all package dependencies set manually in makedepends +# kernel source deps +makedepends=('asciidoc' 'xmlto') +# perf deps +makedepends+=('perl' 'python2' 'libnewt' 'elfutils' 'audit' 'libunwind') +# cpupower deps +makedepends+=('pciutils') +# usbip deps +makedepends+=('glib2' 'sysfsutils') +groups=("$pkgbase") +source=("http://ftp.kernel.org/pub/linux/kernel/v3.x/linux-$pkgver.tar.xz" +# "http://ftp.kernel.org/pub/linux/kernel/v3.x/patch-$pkgver.6.xz" + 'cpupower.default' + 'cpupower.systemd' + 'cpupower.service' + 'usbipd.service') +# http://www.kernel.org/pub/linux/kernel/v3.x/sha256sums.asc +sha256sums=('df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544' + '4fa509949d6863d001075fa3e8671eff2599c046d20c98bb4a70778595cd1c3f' + 'fbf6e0ce6eb0ef15703fe212958de6ca46e62188900b5e9f9272ed3cc9cfd54e' + 'a89284d0ecb556ca53a66d1c2087b5fd6d0a901ab2769cd3aebb93f4478905dc' + '2e187734d8aec58a3046d79883510d779aa93fb3ab20bd3132c1a607ebe5498f') + +prepare() { + # apply stable patching set + if [[ -e "$srcdir"/patch-* ]]; then + msg2 'Applying stable patch set' + patch -N -p1 -i "$srcdir"/patch-* + fi +} + +build() { + msg2 'Build libtraceevent' + pushd linux-$pkgver/tools/lib/traceevent + make + popd + + msg2 'Build perf' + pushd linux-$pkgver/tools/perf + make \ + WERROR=0 \ + DESTDIR="$pkgdir/usr" \ + perfexecdir='lib/perf' \ + PYTHON=python2 \ + NO_GTK2=1 \ + PERF_VERSION=$pkgver-$pkgrel \ + all man + popd + + msg2 'Build cpupower' + pushd linux-$pkgver/tools/power/cpupower + # we cannot use --as-needed + LDFLAGS=${LDFLAGS:+"$LDFLAGS,--no-as-needed"} + make VERSION=$pkgver-$pkgrel + popd + + msg2 'Build x86_energy_perf_policy' + pushd linux-$pkgver/tools/power/x86/x86_energy_perf_policy + make + popd + + msg2 'Build usbip' + pushd linux-$pkgver/drivers/staging/usbip/userspace + # fix missing man page + sed -i 's/usbip_bind_driver.8//' Makefile.am + ./autogen.sh + ./configure --prefix=/usr --sbindir=/usr/bin + make + popd +} + +package_linux-tools-meta() { + pkgdesc='Linux kernel tools meta package' + groups=() + depends=('libtraceevent' 'perf' 'cpupower' 'x86_energy_perf_policy' 'usbip') +} + +package_libtraceevent() { + pkgdesc='Linux kernel trace event library' + depends=('glibc') + + cd linux-$pkgver/tools/lib/traceevent + install -dm 755 "$pkgdir/usr/lib" + install -m 644 libtraceevent.a libtraceevent.so "$pkgdir/usr/lib" +} + +package_perf() { + pkgdesc='Linux kernel performance auditing tool' + depends=('perl' 'python2' 'libnewt' 'elfutils' 'audit' 'libunwind' 'binutils') + + cd linux-$pkgver/tools/perf + make \ + WERROR=0 \ + DESTDIR="$pkgdir/usr" \ + perfexecdir='lib/perf' \ + PYTHON=python2 \ + NO_GTK2=1 \ + PERF_VERSION=$pkgver-$pkgrel \ + install install-man + # move completion in new directory + cd "$pkgdir" + install -Dm644 usr/etc/bash_completion.d/perf usr/share/bash-completion/perf + rm -r usr/etc +} + +package_cpupower() { + pkgdesc='Linux kernel tool to examine and tune power saving related features of your processor' + backup=('etc/default/cpupower') + depends=('bash' 'pciutils') + conflicts=('cpufrequtils') + replaces=('cpufrequtils') + install=cpupower.install + + pushd linux-$pkgver/tools/power/cpupower + make \ + DESTDIR="$pkgdir" \ + sbindir='/usr/bin' \ + mandir='/usr/share/man' \ + docdir='/usr/share/doc/cpupower' \ + install install-man + popd + # install startup scripts + install -Dm 644 $pkgname.default "$pkgdir/etc/default/$pkgname" + install -Dm 644 $pkgname.service "$pkgdir/usr/lib/systemd/system/$pkgname.service" + install -Dm 755 $pkgname.systemd "$pkgdir/usr/lib/systemd/scripts/$pkgname" +} + +package_x86_energy_perf_policy() { + pkgdesc='Read or write MSR_IA32_ENERGY_PERF_BIAS' + depends=('glibc') + + cd linux-$pkgver/tools/power/x86/x86_energy_perf_policy + install -Dm 755 x86_energy_perf_policy "$pkgdir/usr/bin/x86_energy_perf_policy" + install -Dm 644 x86_energy_perf_policy.8 "$pkgdir/usr/share/man/man8/x86_energy_perf_policy.8" +} + +package_usbip() { + pkgdesc='An USB device sharing system over IP network' + depends=('glib2' 'sysfsutils') + options=('!libtool') + + pushd linux-$pkgver/drivers/staging/usbip/userspace + make install DESTDIR="$pkgdir" + popd + # module loading + install -Dm 644 /dev/null "$pkgdir/usr/lib/modules-load.d/$pkgname.conf" + printf 'usbip-core\nusbip-host\n' > "$pkgdir/usr/lib/modules-load.d/$pkgname.conf" + # systemd + install -Dm 644 usbipd.service "$pkgdir/usr/lib/systemd/system/usbipd.service" +} + +# vim:set ts=2 sw=2 et: diff --git a/community/linux-tools/cpupower.default b/community/linux-tools/cpupower.default new file mode 100644 index 000000000..b5c522ea1 --- /dev/null +++ b/community/linux-tools/cpupower.default @@ -0,0 +1,29 @@ +# 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. +# Do not set governor field if you use this one. +#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/community/linux-tools/cpupower.install b/community/linux-tools/cpupower.install new file mode 100644 index 000000000..10e07ae52 --- /dev/null +++ b/community/linux-tools/cpupower.install @@ -0,0 +1,13 @@ +#!/bin/sh + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + if [ "$(vercmp $2 3.7-4)" -le 0 ]; then + cat << EOF +===> cpupower startup config file moved to /etc/default/cpupower +EOF + fi +} + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/community/linux-tools/cpupower.service b/community/linux-tools/cpupower.service new file mode 100644 index 000000000..aaeba2b08 --- /dev/null +++ b/community/linux-tools/cpupower.service @@ -0,0 +1,10 @@ +[Unit] +Description=Apply cpupower configuration + +[Service] +Type=oneshot +ExecStart=/usr/lib/systemd/scripts/cpupower +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/community/linux-tools/cpupower.systemd b/community/linux-tools/cpupower.systemd new file mode 100644 index 000000000..51c645415 --- /dev/null +++ b/community/linux-tools/cpupower.systemd @@ -0,0 +1,32 @@ +#!/bin/bash + +. /etc/default/cpupower + +declare -i fail=0 + +# parse frequency options +declare -a params=() +params+=(${governor:+-g $governor}) +params+=(${min_freq:+-d $min_freq}) +params+=(${max_freq:+-u $max_freq}) +params+=(${freq:+-f $freq}) + +# apply frequency options +if ((${#params[@]} > 0)); then + cpupower frequency-set "${params[@]}" >/dev/null || fail=1 +fi + +# parse cpu options +declare -a params=() +params+=(${mc_scheduler:+-m $mc_scheduler}) +params+=(${smp_scheduler:+-s $smp_scheduler}) +params+=(${perf_bias:+-b $perf_bias}) + +# apply cpu options +if ((${#params[@]} > 0)); then + cpupower set "${params[@]}" >/dev/null || fail=1 +fi + +exit $fail + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/community/linux-tools/usbipd.service b/community/linux-tools/usbipd.service new file mode 100644 index 000000000..1807e94b1 --- /dev/null +++ b/community/linux-tools/usbipd.service @@ -0,0 +1,9 @@ +[Unit] +Description=USB/IP server +After=network.target + +[Service] +ExecStart=/usr/bin/usbipd + +[Install] +WantedBy=multi-user.target |