Merge pull request 'Add kernel-tools to optimize CPU clock (cpupower.service)' (#6) from metalefty/raspberrypi:a8 into a8
Reviewed-on: #6
This commit is contained in:
commit
0ac0faed1a
3
SOURCES/cpupower.config
Normal file
3
SOURCES/cpupower.config
Normal file
@ -0,0 +1,3 @@
|
||||
# See 'cpupower help' and cpupower(1) for more info
|
||||
CPUPOWER_START_OPTS="frequency-set -g ondemand"
|
||||
CPUPOWER_STOP_OPTS="frequency-set -g powersave"
|
13
SOURCES/cpupower.service
Normal file
13
SOURCES/cpupower.service
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=Configure CPU power related settings
|
||||
After=syslog.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
EnvironmentFile=/etc/sysconfig/cpupower
|
||||
ExecStart=/usr/bin/cpupower $CPUPOWER_START_OPTS
|
||||
ExecStop=/usr/bin/cpupower $CPUPOWER_STOP_OPTS
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
11
SOURCES/kvm_stat.logrotate
Normal file
11
SOURCES/kvm_stat.logrotate
Normal file
@ -0,0 +1,11 @@
|
||||
/var/log/kvm_stat.csv {
|
||||
size 10M
|
||||
missingok
|
||||
compress
|
||||
maxage 30
|
||||
rotate 5
|
||||
nodateext
|
||||
postrotate
|
||||
/usr/bin/systemctl try-restart kvm_stat.service
|
||||
endscript
|
||||
}
|
@ -11,7 +11,7 @@ ExclusiveArch: aarch64
|
||||
|
||||
%define local_version v8
|
||||
%define bcmmodel 2711
|
||||
%define extra_version 1
|
||||
%define extra_version 2
|
||||
|
||||
# This originally implies Kernel 4.x for RPi 2 and is not appropriate now.
|
||||
# Be careful to change this not to disturb the seamless package update.
|
||||
@ -21,6 +21,13 @@ ExclusiveArch: aarch64
|
||||
%define kversion 6.6
|
||||
%define patchlevel 31
|
||||
|
||||
# standard kernel
|
||||
%define with_up %{?_without_up: 0} %{?!_without_up: 1}
|
||||
# tools
|
||||
%define with_tools %{?_without_tools: 0} %{?!_without_tools: 1}
|
||||
# firmware
|
||||
%define with_firmware %{?_without_firmware: 0} %{?!_without_firmware: 1}
|
||||
|
||||
Name: raspberrypi%{rpisuffix}
|
||||
Version: %{kversion}.%{patchlevel}
|
||||
Release: %{version_tag}.%{local_version}.%{extra_version}%{?dist}
|
||||
@ -32,6 +39,10 @@ Source0: https://github.com/raspberrypi/linux/archive/refs/tags/stable_%{
|
||||
Source1: https://github.com/raspberrypi/firmware/archive/%{commit_firmware_long}.tar.gz
|
||||
Patch100: config_2711.patch
|
||||
Patch101: config_2712.patch
|
||||
# Sources for kernel-tools
|
||||
Source2000: cpupower.service
|
||||
Source2001: cpupower.config
|
||||
Source2002: kvm_stat.logrotate
|
||||
|
||||
BuildRequires: kmod, patch, bash, coreutils, tar
|
||||
BuildRequires: bzip2, xz, findutils, gzip, m4, perl, perl-Carp, make, diffutils, gawk
|
||||
@ -41,6 +52,10 @@ BuildRequires: elfutils-devel zlib-devel binutils-devel newt-devel python3-devel
|
||||
BuildRequires: audit-libs-devel
|
||||
BuildRequires: pciutils-devel gettext ncurses-devel
|
||||
BuildRequires: openssl-devel
|
||||
%if %{with_tools}
|
||||
# kernel-tools
|
||||
BuildRequires: asciidoc
|
||||
%endif
|
||||
|
||||
%description
|
||||
Specific kernel and bootcode for Raspberry Pi
|
||||
@ -74,7 +89,42 @@ Requires: perl-interpreter
|
||||
This package provides kernel headers and makefiles sufficient to build modules
|
||||
against the kernel package.
|
||||
|
||||
%if %{with_tools}
|
||||
%package kernel%{?ksuffix}-tools
|
||||
Summary: Assortment of tools for the Linux kernel
|
||||
Provides: cpupowerutils = 1:009-0.6.p1
|
||||
Obsoletes: cpupowerutils < 1:009-0.6.p1
|
||||
Provides: cpufreq-utils = 1:009-0.6.p1
|
||||
Provides: cpufrequtils = 1:009-0.6.p1
|
||||
Obsoletes: cpufreq-utils < 1:009-0.6.p1
|
||||
Obsoletes: cpufrequtils < 1:009-0.6.p1
|
||||
Obsoletes: cpuspeed < 1:1.5-16
|
||||
Requires: kernel-tools-libs = %{version}-%{release}
|
||||
%define __requires_exclude ^%{_bindir}/python
|
||||
%description kernel%{?ksuffix}-tools
|
||||
This package contains the tools/ directory from the kernel source
|
||||
and the supporting documentation.
|
||||
|
||||
%package kernel%{?ksuffix}-tools-libs
|
||||
Summary: Libraries for the kernels-tools
|
||||
Provides: kernel-tools-libs
|
||||
%description kernel%{?ksuffix}-tools-libs
|
||||
This package contains the libraries built from the tools/ directory
|
||||
from the kernel source.
|
||||
|
||||
%package kernel%{?ksuffix}-tools-libs-devel
|
||||
Summary: Assortment of tools for the Linux kernel
|
||||
Requires: kernel%{?ksuffix}-tools = %{version}-%{release}
|
||||
Provides: cpupowerutils-devel = 1:009-0.6.p1
|
||||
Obsoletes: cpupowerutils-devel < 1:009-0.6.p1
|
||||
Requires: kernel-tools-libs = %{version}-%{release}
|
||||
Provides: kernel-tools-libs-devel
|
||||
%description kernel%{?ksuffix}-tools-libs-devel
|
||||
This package contains the development files for the tools/ directory from
|
||||
the kernel source.
|
||||
%endif
|
||||
|
||||
%if %{with_firmware}
|
||||
%package firmware
|
||||
Summary: GPU firmware for the Raspberry Pi computer
|
||||
License: Redistributable, with restrictions; see LICENSE.broadcom
|
||||
@ -86,7 +136,7 @@ Provides: grubby=8.40-10
|
||||
%description firmware
|
||||
This package contains the GPU firmware for the Raspberry Pi BCM2835 SOC
|
||||
including the kernel bootloader.
|
||||
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%setup -q -n linux-stable_%{version_tag}
|
||||
@ -112,9 +162,29 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" tools/ tools/perf/scripts/pyth
|
||||
# to support both RPi 4 and 5.
|
||||
export KERNEL=kernel%{armtarget}
|
||||
make bcm%{bcmmodel}_defconfig
|
||||
%if %{with_up}
|
||||
make %{?_smp_mflags} HOSTCFLAGS="%{?build_cflags}" HOSTLDFLAGS="%{?build_ldflags}" %{build_image} modules dtbs
|
||||
%endif
|
||||
|
||||
# kernel-tools
|
||||
%if %{with_tools}
|
||||
make %{?_smp_mflags} -C tools/power/cpupower CPUFREQ_BENCH=false DEBUG=false
|
||||
pushd tools/thermal/tmon/
|
||||
make %{?_smp_mflags} HOSTCFLAGS="%{?build_cflags}" HOSTLDFLAGS="%{?build_ldflags}"
|
||||
popd
|
||||
pushd tools/iio/
|
||||
make %{?_smp_mflags} HOSTCFLAGS="%{?build_cflags}" HOSTLDFLAGS="%{?build_ldflags}"
|
||||
popd
|
||||
pushd tools/gpio/
|
||||
make %{?_smp_mflags} HOSTCFLAGS="%{?build_cflags}" HOSTLDFLAGS="%{?build_ldflags}"
|
||||
popd
|
||||
pushd tools/mm/
|
||||
make %{?_smp_mflags} HOSTCFLAGS="%{?build_cflags}" HOSTLDFLAGS="%{?build_ldflags}" slabinfo page_owner_sort
|
||||
popd
|
||||
%endif
|
||||
|
||||
%install
|
||||
%if %{with_up}
|
||||
# kernel
|
||||
mkdir -p %{buildroot}/boot/overlays/
|
||||
mkdir -p %{buildroot}/usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays
|
||||
@ -172,6 +242,9 @@ touch -r %{buildroot}$DevelDir/Makefile %{buildroot}$DevelDir/include/linux/vers
|
||||
ln -T -s $DevelDir %{buildroot}/lib/modules/%{version}-%{release}/build --force
|
||||
ln -T -s build %{buildroot}/lib/modules/%{version}-%{release}/source --force
|
||||
|
||||
%endif
|
||||
|
||||
%if %{with_firmware}
|
||||
# firmware
|
||||
# precompiled GPU firmware and bootloader
|
||||
pushd %{buildroot}
|
||||
@ -182,7 +255,55 @@ tar -xf %{_sourcedir}/%{commit_firmware_long}.tar.gz \
|
||||
firmware-%{commit_firmware_long}/boot/bootcode.bin \
|
||||
--strip-components=1
|
||||
popd
|
||||
%endif
|
||||
|
||||
%if %{with_tools}
|
||||
# kernel-tools
|
||||
make -C tools/power/cpupower DESTDIR=$RPM_BUILD_ROOT libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install
|
||||
rm -f %{buildroot}%{_libdir}/*.{a,la}
|
||||
%find_lang cpupower
|
||||
|
||||
install -D -m644 %{SOURCE2000} %{buildroot}%{_unitdir}/cpupower.service
|
||||
install -D -m644 %{SOURCE2001} %{buildroot}%{_sysconfdir}/sysconfig/cpupower
|
||||
pushd tools/thermal/tmon
|
||||
make INSTALL_ROOT=%{buildroot} install
|
||||
popd
|
||||
pushd tools/iio
|
||||
make DESTDIR=%{buildroot} install
|
||||
popd
|
||||
pushd tools/gpio
|
||||
make DESTDIR=%{buildroot} install
|
||||
popd
|
||||
install -m644 -D %{SOURCE2002} %{buildroot}%{_sysconfdir}/logrotate.d/kvm_stat
|
||||
pushd tools/kvm/kvm_stat
|
||||
%{__make} INSTALL_ROOT=%{buildroot} install-tools
|
||||
%{__make} INSTALL_ROOT=%{buildroot} install-man
|
||||
install -m644 -D kvm_stat.service %{buildroot}%{_unitdir}/kvm_stat.service
|
||||
popd
|
||||
pushd tools/mm/
|
||||
install -m755 slabinfo %{buildroot}%{_bindir}/slabinfo
|
||||
install -m755 page_owner_sort %{buildroot}%{_bindir}/page_owner_sort
|
||||
popd
|
||||
%endif
|
||||
|
||||
%if %{with_tools}
|
||||
%post kernel%{?ksuffix}-tools
|
||||
%systemd_post cpupower.service
|
||||
|
||||
%preun kernel%{?ksuffix}-tools
|
||||
%systemd_preun cpupower.service
|
||||
|
||||
%postun kernel%{?ksuffix}-tools
|
||||
%systemd_postun cpupower.service
|
||||
|
||||
%post kernel%{?ksuffix}-tools-libs
|
||||
/sbin/ldconfig
|
||||
|
||||
%postun kernel%{?ksuffix}-tools-libs
|
||||
/sbin/ldconfig
|
||||
%endif
|
||||
|
||||
%if %{with_up}
|
||||
%files kernel%{?ksuffix}
|
||||
%defattr(-,root,root,-)
|
||||
/lib/modules/%{version}-%{release}
|
||||
@ -224,16 +345,54 @@ cp $(ls -1 /boot/config-kernel-*-*|sort -V|tail -1) /boot/config-kernel.inc
|
||||
%files kernel%{?ksuffix}-devel
|
||||
%defattr(-,root,root)
|
||||
/usr/src/kernels/%{version}-%{release}
|
||||
%endif
|
||||
|
||||
%if %{with_tools}
|
||||
%files kernel%{?ksuffix}-tools -f cpupower.lang
|
||||
%{_bindir}/cpupower
|
||||
%{_datadir}/bash-completion/completions/cpupower
|
||||
%{_unitdir}/cpupower.service
|
||||
%{_mandir}/man[1-8]/cpupower*
|
||||
%config(noreplace) %{_sysconfdir}/sysconfig/cpupower
|
||||
%{_bindir}/tmon
|
||||
%{_bindir}/iio_event_monitor
|
||||
%{_bindir}/iio_generic_buffer
|
||||
%{_bindir}/lsiio
|
||||
%{_bindir}/lsgpio
|
||||
%{_bindir}/gpio-hammer
|
||||
%{_bindir}/gpio-event-mon
|
||||
%{_bindir}/gpio-watch
|
||||
%{_mandir}/man1/kvm_stat*
|
||||
%{_bindir}/kvm_stat
|
||||
%{_unitdir}/kvm_stat.service
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/kvm_stat
|
||||
%{_bindir}/page_owner_sort
|
||||
%{_bindir}/slabinfo
|
||||
|
||||
%files kernel%{?ksuffix}-tools-libs
|
||||
%{_libdir}/libcpupower.so.1
|
||||
%{_libdir}/libcpupower.so.0.0.1
|
||||
|
||||
%files kernel%{?ksuffix}-tools-libs-devel
|
||||
%{_libdir}/libcpupower.so
|
||||
%{_includedir}/cpufreq.h
|
||||
%{_includedir}/cpuidle.h
|
||||
%{_includedir}/powercap.h
|
||||
%endif
|
||||
|
||||
%if %{with_firmware}
|
||||
%files firmware
|
||||
%defattr(-,root,root,-)
|
||||
/boot/bootcode.bin
|
||||
/boot/fixup*
|
||||
/boot/start*
|
||||
%doc /boot/LICENCE.broadcom
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Jun 20 2024 Koichiro Iwao <meta@almalinux.org> - 6.6.31-20240529.v8.2
|
||||
- Add kernel-tools to optimize CPU clock (cpupower.service)
|
||||
|
||||
* Mon Jun 10 2024 Koichiro Iwao <meta@almalinux.org> - 6.6.31-20240529.v8.1
|
||||
- Update to v6.6.31 stable_20240529
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user