* add linux-tools
This commit is contained in:
parent
36ec4b7d32
commit
3d86e75b35
274
linux-tools/PKGBUILD
Normal file
274
linux-tools/PKGBUILD
Normal file
@ -0,0 +1,274 @@
|
||||
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
|
||||
# Maintainer: Sébastien Luttringer
|
||||
|
||||
pkgbase=linux-tools
|
||||
pkgname=(
|
||||
'bpf'
|
||||
'cgroup_event_listener'
|
||||
'cpupower'
|
||||
'hyperv'
|
||||
'libtraceevent'
|
||||
'linux-tools-meta'
|
||||
'perf'
|
||||
# 'python-perf'
|
||||
'tmon'
|
||||
'usbip'
|
||||
)
|
||||
pkgver=5.7
|
||||
pkgrel=1
|
||||
license=('GPL2')
|
||||
arch=(x86_64 powerpc64le)
|
||||
url='https://www.kernel.org'
|
||||
options=('!strip')
|
||||
makedepends=('git')
|
||||
# split packages need all package dependencies set manually in makedepends
|
||||
# kernel source deps
|
||||
makedepends+=('asciidoc' 'xmlto')
|
||||
# perf deps
|
||||
makedepends+=('perl' 'python' 'slang' 'elfutils' 'libunwind' 'numactl' 'audit' 'gtk2')
|
||||
# cpupower deps
|
||||
makedepends+=('pciutils')
|
||||
# usbip deps
|
||||
makedepends+=('glib2' 'sysfsutils' 'udev')
|
||||
# tmon deps
|
||||
makedepends+=('ncurses')
|
||||
# bpf deps
|
||||
makedepends+=('python-docutils')
|
||||
groups=("$pkgbase")
|
||||
source=("git+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git#tag=v${pkgver//_/-}"
|
||||
# "https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-$pkgver.1.xz"
|
||||
'cpupower.default'
|
||||
'cpupower.systemd'
|
||||
'cpupower.service'
|
||||
'usbipd.service'
|
||||
'hv_fcopy_daemon.service'
|
||||
'hv_kvp_daemon.service'
|
||||
'hv_vss_daemon.service')
|
||||
sha256sums=('SKIP'
|
||||
'4fa509949d6863d001075fa3e8671eff2599c046d20c98bb4a70778595cd1c3f'
|
||||
'd2e8e5e8b22c6089a91f573aa1c59e442a1f3b67a2c9f047abe3b57d3d6558cc'
|
||||
'fa2560630576464739ede14c9292249f4007f36a684bc378add174fc88394550'
|
||||
'2e187734d8aec58a3046d79883510d779aa93fb3ab20bd3132c1a607ebe5498f'
|
||||
'16855c197d2334f820cb190312a5a7fffe9165189db01344a957e582e39e17d8'
|
||||
'b1315cb77a35454e1af9172f821a52e2a0cb18561be05a340d21cf337b01ae61'
|
||||
'2d5e2f8d40b6f19bf2e1dead57ca105d72098fb0b418c09ff2e0cb91089710af')
|
||||
|
||||
prepare() {
|
||||
cd linux
|
||||
|
||||
# apply patch from the source array (should be a pacman feature)
|
||||
local src
|
||||
for src in "${source[@]}"; do
|
||||
src="${src%%::*}"
|
||||
src="${src##*/}"
|
||||
src="${src%.xz}"
|
||||
[[ $src = *.patch || $src = patch-* ]] || continue
|
||||
echo ":: Applying patch $src"
|
||||
patch -p1 -N -i "$srcdir/$src"
|
||||
done
|
||||
}
|
||||
|
||||
build() {
|
||||
echo ':: libtraceevent'
|
||||
pushd linux/tools/lib/traceevent
|
||||
make
|
||||
popd
|
||||
|
||||
echo ':: perf'
|
||||
pushd linux/tools/perf
|
||||
make -f Makefile.perf \
|
||||
prefix=/usr \
|
||||
lib=lib/perf \
|
||||
perfexecdir=lib/perf \
|
||||
NO_SDT=1 \
|
||||
PYTHON=python \
|
||||
PYTHON_CONFIG=python-config \
|
||||
PERF_VERSION=$pkgver-$pkgrel \
|
||||
DESTDIR="$pkgdir"
|
||||
popd
|
||||
|
||||
echo ':: cpupower'
|
||||
pushd linux/tools/power/cpupower
|
||||
make VERSION=$pkgver-$pkgrel
|
||||
popd
|
||||
|
||||
echo ':: usbip'
|
||||
pushd linux/tools/usb/usbip
|
||||
# Fix gcc compilation
|
||||
sed -i 's,-Wall -Werror -Wextra,-fcommon,' configure.ac
|
||||
./autogen.sh
|
||||
./configure --prefix=/usr --sbindir=/usr/bin
|
||||
make
|
||||
popd
|
||||
|
||||
echo ':: tmon'
|
||||
pushd linux/tools/thermal/tmon
|
||||
make
|
||||
popd
|
||||
|
||||
echo ':: cgroup_event_listener'
|
||||
pushd linux/tools/cgroup
|
||||
make
|
||||
popd
|
||||
|
||||
echo ':: hv'
|
||||
pushd linux/tools/hv
|
||||
CFLAGS+=' -DKVP_SCRIPTS_PATH=\"/usr/lib/hyperv/kvp_scripts/\"' make
|
||||
popd
|
||||
|
||||
echo ':: bpf'
|
||||
pushd linux/tools/bpf
|
||||
# doesn't compile when we don't first compile bpftool in its own directory and
|
||||
# man pages require to be also launch from the subdirectory
|
||||
make -C bpftool all doc
|
||||
# runqslower, require kernel binary path to build, skip it
|
||||
make -W runqslower
|
||||
popd
|
||||
}
|
||||
|
||||
package_linux-tools-meta() {
|
||||
pkgdesc='Linux kernel tools meta package'
|
||||
groups=()
|
||||
depends=(
|
||||
'bpf'
|
||||
'cgroup_event_listener'
|
||||
'cpupower'
|
||||
'hyperv'
|
||||
'libtraceevent'
|
||||
'perf'
|
||||
# 'python-perf'
|
||||
'tmon'
|
||||
'usbip'
|
||||
)
|
||||
conflicts=(
|
||||
'acpidump'
|
||||
)
|
||||
}
|
||||
|
||||
package_libtraceevent() {
|
||||
pkgdesc='Linux kernel trace event library'
|
||||
depends=('glibc')
|
||||
|
||||
cd linux/tools/lib/traceevent
|
||||
install -dm 755 "$pkgdir/usr/lib"
|
||||
install -m 644 libtraceevent.so "$pkgdir/usr/lib"
|
||||
}
|
||||
|
||||
package_perf() {
|
||||
pkgdesc='Linux kernel performance auditing tool'
|
||||
depends=('glibc' 'perl' 'python' 'slang' 'elfutils' 'libunwind' 'binutils'
|
||||
'numactl' 'audit' 'coreutils' 'glib2' 'xz' 'zlib' 'libelf' 'bash')
|
||||
optdepends=('gtk2: support GTK2 browser for perf report')
|
||||
|
||||
cd linux/tools/perf
|
||||
make -f Makefile.perf \
|
||||
prefix=/usr \
|
||||
lib=lib/perf \
|
||||
perfexecdir=lib/perf \
|
||||
NO_SDT=1 \
|
||||
PYTHON=python \
|
||||
PYTHON_CONFIG=python-config \
|
||||
PERF_VERSION=$pkgver-$pkgrel \
|
||||
DESTDIR="$pkgdir" \
|
||||
install
|
||||
cd "$pkgdir"
|
||||
# add linker search path
|
||||
mkdir "$pkgdir/etc/ld.so.conf.d"
|
||||
echo '/usr/lib/perf' > "$pkgdir/etc/ld.so.conf.d/$pkgname.conf"
|
||||
# move completion in new directory
|
||||
install -Dm644 etc/bash_completion.d/perf usr/share/bash-completion/completions/perf
|
||||
rm -r etc/bash_completion.d
|
||||
# no exec on usr/share
|
||||
find usr/share -type f -exec chmod a-x {} \;
|
||||
}
|
||||
|
||||
#package_python-perf(){
|
||||
# pkgdesc='Linux kernel performance auditing tool (python bindings)'
|
||||
# depends=('python')
|
||||
#
|
||||
# cd linux/tools/perf
|
||||
#
|
||||
# make install-python_ext PYTHON=python DESTDIR="$pkgdir"
|
||||
#}
|
||||
|
||||
|
||||
package_cpupower() {
|
||||
pkgdesc='Linux kernel tool to examine and tune power saving related features of your processor'
|
||||
backup=('etc/default/cpupower')
|
||||
depends=('glibc' 'bash' 'pciutils')
|
||||
conflicts=('cpufrequtils')
|
||||
replaces=('cpufrequtils')
|
||||
install=cpupower.install
|
||||
|
||||
pushd linux/tools/power/cpupower
|
||||
make \
|
||||
DESTDIR="$pkgdir" \
|
||||
sbindir='/usr/bin' \
|
||||
libdir='/usr/lib' \
|
||||
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_usbip() {
|
||||
pkgdesc='An USB device sharing system over IP network'
|
||||
depends=('glibc' 'glib2' 'sysfsutils' 'systemd-libs')
|
||||
|
||||
pushd linux/tools/usb/usbip
|
||||
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"
|
||||
}
|
||||
|
||||
package_tmon() {
|
||||
pkgdesc='Monitoring and Testing Tool for Linux kernel thermal subsystem'
|
||||
depends=('glibc' 'ncurses')
|
||||
|
||||
cd linux/tools/thermal/tmon
|
||||
make install INSTALL_ROOT="$pkgdir"
|
||||
}
|
||||
|
||||
package_cgroup_event_listener() {
|
||||
pkgdesc='Simple listener of cgroup events'
|
||||
depends=('glibc')
|
||||
|
||||
cd linux/tools/cgroup
|
||||
install -Dm755 cgroup_event_listener "$pkgdir/usr/bin/cgroup_event_listener"
|
||||
}
|
||||
|
||||
package_hyperv() {
|
||||
pkgdesc='Hyper-V tools'
|
||||
depends=('glibc')
|
||||
|
||||
cd linux/tools/hv
|
||||
for _p in hv_fcopy_daemon hv_kvp_daemon hv_vss_daemon; do
|
||||
install -Dm755 "$_p" "$pkgdir/usr/bin/$_p"
|
||||
install -Dm644 "$srcdir/$_p.service" "$pkgdir/usr/lib/systemd/system/$_p.service"
|
||||
done
|
||||
install -dm755 "$pkgdir/usr/lib/hyperv/kvp_scripts"
|
||||
}
|
||||
|
||||
package_bpf() {
|
||||
pkgdesc='BPF tools'
|
||||
depends=('glibc')
|
||||
|
||||
cd linux/tools/bpf
|
||||
# skip runsqlower until disabled in build
|
||||
make -W runqslower_install install prefix=/usr DESTDIR="$pkgdir"
|
||||
# fix bpftool hard written path
|
||||
mv "$pkgdir"/usr/sbin/bpftool "$pkgdir"/usr/bin/bpftool
|
||||
rmdir "$pkgdir"/usr/sbin
|
||||
# install man pages
|
||||
make -C bpftool doc-install prefix=/usr/share DESTDIR="$pkgdir"
|
||||
}
|
||||
|
||||
# vim:set ts=2 sw=2 et:
|
29
linux-tools/cpupower.default
Normal file
29
linux-tools/cpupower.default
Normal file
@ -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:
|
13
linux-tools/cpupower.install
Normal file
13
linux-tools/cpupower.install
Normal file
@ -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:
|
11
linux-tools/cpupower.service
Normal file
11
linux-tools/cpupower.service
Normal file
@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Apply cpupower configuration
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
EnvironmentFile=/etc/default/cpupower
|
||||
ExecStart=/usr/lib/systemd/scripts/cpupower
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
30
linux-tools/cpupower.systemd
Normal file
30
linux-tools/cpupower.systemd
Normal file
@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
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:
|
9
linux-tools/hv_fcopy_daemon.service
Normal file
9
linux-tools/hv_fcopy_daemon.service
Normal file
@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Hyper-V file copy service (FCOPY)
|
||||
ConditionPathExists=/dev/vmbus/hv_fcopy
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/hv_fcopy_daemon -n
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
9
linux-tools/hv_kvp_daemon.service
Normal file
9
linux-tools/hv_kvp_daemon.service
Normal file
@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Hyper-V key-value pair (KVP)
|
||||
ConditionPathExists=/dev/vmbus/hv_kvp
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/hv_kvp_daemon -n
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
9
linux-tools/hv_vss_daemon.service
Normal file
9
linux-tools/hv_vss_daemon.service
Normal file
@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Hyper-V volume shadow copy service (VSS)
|
||||
ConditionPathExists=/dev/vmbus/hv_vss
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/hv_vss_daemon -n
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
9
linux-tools/usbipd.service
Normal file
9
linux-tools/usbipd.service
Normal file
@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=USB/IP server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/usbipd
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Loading…
x
Reference in New Issue
Block a user