summaryrefslogtreecommitdiff
path: root/community/linux-tools
diff options
context:
space:
mode:
Diffstat (limited to 'community/linux-tools')
-rw-r--r--community/linux-tools/PKGBUILD167
-rw-r--r--community/linux-tools/cpupower.default29
-rw-r--r--community/linux-tools/cpupower.install13
-rw-r--r--community/linux-tools/cpupower.service10
-rw-r--r--community/linux-tools/cpupower.systemd32
-rw-r--r--community/linux-tools/usbipd.service9
6 files changed, 260 insertions, 0 deletions
diff --git a/community/linux-tools/PKGBUILD b/community/linux-tools/PKGBUILD
new file mode 100644
index 000000000..ed20a3b54
--- /dev/null
+++ b/community/linux-tools/PKGBUILD
@@ -0,0 +1,167 @@
+# $Id: PKGBUILD 95399 2013-08-11 10:33:42Z seblu $
+# Maintainer: Sébastien Luttringer
+
+pkgbase=linux-tools
+pkgname=('linux-tools-meta'
+ 'libtraceevent'
+ 'perf'
+ 'cpupower'
+ 'x86_energy_perf_policy'
+ 'usbip')
+pkgver=3.10
+pkgrel=2
+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.5.xz"
+ 'cpupower.default'
+ 'cpupower.systemd'
+ 'cpupower.service'
+ 'usbipd.service')
+# http://www.kernel.org/pub/linux/kernel/v3.x/sha256sums.asc
+sha256sums=('df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544'
+ 'c96b69a10ef5ade798dcaa1867df156ccc9e173225d5aa427d00c6e89246e035'
+ '4fa509949d6863d001075fa3e8671eff2599c046d20c98bb4a70778595cd1c3f'
+ 'fbf6e0ce6eb0ef15703fe212958de6ca46e62188900b5e9f9272ed3cc9cfd54e'
+ 'a89284d0ecb556ca53a66d1c2087b5fd6d0a901ab2769cd3aebb93f4478905dc'
+ '2e187734d8aec58a3046d79883510d779aa93fb3ab20bd3132c1a607ebe5498f')
+
+prepare() {
+ # apply stable patching set
+ cd linux-$pkgver
+ patch -N -p1 -i "$srcdir/patch-$pkgver.5"
+}
+
+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