Compare commits

..

10 Commits
c9 ... a9

Author SHA1 Message Date
c9fe821615 Merge pull request 'Add kernel-headers subpackage' (#9) from metalefty/raspberrypi:a9 into a9
Reviewed-on: rpms/raspberrypi2#9
2024-09-24 13:37:29 +00:00
e0ac6af001 Add kernel-headers subpackage 2024-09-05 18:31:15 +09:00
7922b49d1c a9-kernel-tools-fix (#7)
Reviewed-on: rpms/raspberrypi2#7
Co-authored-by: Andrew Lukoshko <andrew.lukoshko@gmail.com>
Co-committed-by: Andrew Lukoshko <andrew.lukoshko@gmail.com>
2024-09-04 09:10:30 +00:00
Andrew Lukoshko
0d7acfc5f7 Merge pull request 'Add kernel-tools to optimize CPU clock (cpupower.service)' (#5) from metalefty/raspberrypi:a9 into a9
Reviewed-on: rpms/raspberrypi2#5
2024-06-24 11:58:09 +00:00
bf0795b47b Add kernel-tools to optimize CPU clock (cpupower.service) 2024-06-21 06:07:31 +00:00
Andrew Lukoshko
fc957b49f9 Merge pull request 'Add installonlypkg(kernel) to kernel and -devel subpackages and update to v6.6.31' (#2) from metalefty/raspberrypi:a9 into a9
Reviewed-on: rpms/raspberrypi2#2
2024-06-13 08:27:45 +00:00
176ca9d665 Update to v6.6.31 stable_20240529 2024-06-13 07:15:22 +00:00
5d99ce2b74 Add installonlypkg(kernel) to kernel and -devel subpackages
Resolves:	https://github.com/AlmaLinux/raspberry-pi/issues/39
See also:	https://src.fedoraproject.org/rpms/kernel/c/aba3940
2024-06-04 09:12:46 +00:00
Andrew Lukoshko
1168a780ef Merge pull request 'Update to 6.6.28 and Raspberry Pi 5 support' (#1) from metalefty/raspberrypi:a9 into a9
Reviewed-on: rpms/raspberrypi2#1
2024-05-31 09:28:17 +00:00
063e282cb8 Update to 6.6.28 and Raspberry Pi 5 support 2024-05-30 08:17:30 +00:00
9 changed files with 366 additions and 262511 deletions

View File

@ -1,3 +1,2 @@
62f4117436e8eaa59e4974300a4481174a4ef1af SOURCES/cb9500d6021e083a182ba168fe4424e3db2494cf.tar.gz 60c685b1ff49b11454c147944a6f4e9e24cd05db SOURCES/734829e3525e5baea62d1deedbe65eb60f4fb36b.tar.gz
30996d7c1c59ddbd495bd9eb37c8dfdb1a67c1c3 SOURCES/linux-6.1.tar.xz 3b0f152bca3eada3b0796fc95da0f025864a70c1 SOURCES/stable_20240529.tar.gz
7fb75dae049c3687780b214931dca33820ebddc9 SOURCES/patch-6.1.31.xz

View File

@ -1,118 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Pablo Greco <pgreco@centosproject.org>
Date: Fri, 7 Aug 2020 02:59:05 +0000
Subject: [PATCH 2/2] configs 2711
---
arch/arm/configs/bcm2711_defconfig | 35 +++++++++++++++++++++++++--
arch/arm64/configs/bcm2711_defconfig | 36 ++++++++++++++++++++++++++--
2 files changed, 67 insertions(+), 4 deletions(-)
diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig
index d31636c..28e0bbd 100644
--- a/arch/arm/configs/bcm2711_defconfig
+++ b/arch/arm/configs/bcm2711_defconfig
@@ -1556,8 +1556,6 @@ CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_DLM=m
CONFIG_SECURITY=y
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_LSM=""
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_DES=y
@@ -1595,3 +1593,38 @@ CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_UPROBE_EVENTS is not set
+
+# CentOS added
+CONFIG_AUDIT=y
+CONFIG_NETLABEL=y
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_PATH=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_CRYPTO_BLAKE2S=m
+CONFIG_CRYPTO_CURVE25519=m
+CONFIG_CRYPTO_CURVE25519_NEON=m
+CONFIG_CRYPTO_LIB_BLAKE2S=m
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_POLY1305=m
+CONFIG_CRYPTO_POLY1305_ARM=m
+# CONFIG_WIREGUARD_DEBUG is not set
+CONFIG_WIREGUARD=m
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_COMPRESS_XZ=y
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y
diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig
index 55e6082..b9acdbc 100644
--- a/arch/arm64/configs/bcm2711_defconfig
+++ b/arch/arm64/configs/bcm2711_defconfig
@@ -1573,8 +1573,6 @@ CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_DLM=m
CONFIG_SECURITY=y
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_LSM=""
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_AES=m
@@ -1614,3 +1612,39 @@ CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_UPROBE_EVENTS is not set
+
+# CentOS added
+CONFIG_AUDIT=y
+CONFIG_NETLABEL=y
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_PATH=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_CRYPTO_BLAKE2S=m
+CONFIG_CRYPTO_CURVE25519=m
+CONFIG_CRYPTO_LIB_BLAKE2S=m
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_POLY1305=m
+CONFIG_CRYPTO_POLY1305_NEON=m
+# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set
+# CONFIG_WIREGUARD_DEBUG is not set
+CONFIG_WIREGUARD=m
+CONFIG_BLK_DEV_RBD=m
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_COMPRESS_XZ=y
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y
--
2.39.0

View File

@ -1,31 +1,34 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From 8bdc23947dfc60f7c1e277dc4f87a8bc5fc645c6 Mon Sep 17 00:00:00 2001
From: Pablo Greco <pgreco@centosproject.org> From: Koichiro Iwao <meta@almalinux.org>
Date: Fri, 7 Aug 2020 02:59:05 +0000 Date: Tue, 28 May 2024 15:11:20 +0900
Subject: [PATCH 1/2] configs 2709 Subject: [PATCH 1/2] Apply config patch for Raspberry Pi (BCM2711)
The patch is originally provided by Pablo Greco <pgreco@centosproject.org>.
Signed-off-by: Koichiro Iwao <meta@almalinux.org>
--- ---
arch/arm/configs/bcm2709_defconfig | 40 ++++++++++++++++++++++++++++-- arch/arm64/configs/bcm2711_defconfig | 38 ++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-) 1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig
index 4b1f46c..537c622 100644 index e87791286ab4..6fda5b261683 100644
--- a/arch/arm/configs/bcm2709_defconfig --- a/arch/arm64/configs/bcm2711_defconfig
+++ b/arch/arm/configs/bcm2709_defconfig +++ b/arch/arm64/configs/bcm2711_defconfig
@@ -1530,8 +1530,6 @@ CONFIG_NLS_KOI8_R=m @@ -1622,8 +1622,6 @@ CONFIG_NLS_KOI8_U=m
CONFIG_NLS_KOI8_U=m
CONFIG_DLM=m CONFIG_DLM=m
CONFIG_KEY_DH_OPERATIONS=y
CONFIG_SECURITY=y CONFIG_SECURITY=y
-CONFIG_SECURITY_APPARMOR=y -CONFIG_SECURITY_APPARMOR=y
-CONFIG_LSM="" -CONFIG_LSM=""
CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_AES=m
@@ -1569,3 +1567,38 @@ CONFIG_IRQSOFF_TRACER=y @@ -1674,3 +1672,39 @@ CONFIG_SCHED_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_UPROBE_EVENTS is not set # CONFIG_UPROBE_EVENTS is not set
# CONFIG_STRICT_DEVMEM is not set
+ +
+# CentOS added +# CentOS/AlmaLinux added
+CONFIG_AUDIT=y +CONFIG_AUDIT=y
+CONFIG_NETLABEL=y +CONFIG_NETLABEL=y
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_AUDIT=m
@ -47,18 +50,19 @@ index 4b1f46c..537c622 100644
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m +CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_CRYPTO_BLAKE2S=m +CONFIG_CRYPTO_BLAKE2S=m
+CONFIG_CRYPTO_CURVE25519=m +CONFIG_CRYPTO_CURVE25519=m
+CONFIG_CRYPTO_CURVE25519_NEON=m
+CONFIG_CRYPTO_LIB_BLAKE2S=m +CONFIG_CRYPTO_LIB_BLAKE2S=m
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m +CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_CHACHA=m +CONFIG_CRYPTO_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_POLY1305=m
+CONFIG_CRYPTO_POLY1305_ARM=m +CONFIG_CRYPTO_POLY1305_NEON=m
+# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set
+# CONFIG_WIREGUARD_DEBUG is not set +# CONFIG_WIREGUARD_DEBUG is not set
+CONFIG_WIREGUARD=m +CONFIG_WIREGUARD=m
+CONFIG_BLK_DEV_RBD=m
+CONFIG_FW_LOADER_COMPRESS=y +CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_COMPRESS_XZ=y +CONFIG_FW_LOADER_COMPRESS_XZ=y
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y +CONFIG_FW_LOADER_COMPRESS_ZSTD=y
-- --
2.39.0 2.45.1

68
SOURCES/config_2712.patch Normal file
View File

@ -0,0 +1,68 @@
From 5ae1f73a82e6ba1203d031c5c82943865dce8174 Mon Sep 17 00:00:00 2001
From: Koichiro Iwao <meta@almalinux.org>
Date: Tue, 28 May 2024 15:14:02 +0900
Subject: [PATCH 2/2] Apply config patch for Raspberry Pi (BCM2712)
The patch is originally provided by Pablo Greco <pgreco@centosproject.org>.
Signed-off-by: Koichiro Iwao <meta@almalinux.org>
---
arch/arm64/configs/bcm2712_defconfig | 38 ++++++++++++++++++++++++++--
1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/configs/bcm2712_defconfig b/arch/arm64/configs/bcm2712_defconfig
index 79c4332581eb..7b63683ff687 100644
--- a/arch/arm64/configs/bcm2712_defconfig
+++ b/arch/arm64/configs/bcm2712_defconfig
@@ -1625,8 +1625,6 @@ CONFIG_NLS_KOI8_U=m
CONFIG_DLM=m
CONFIG_KEY_DH_OPERATIONS=y
CONFIG_SECURITY=y
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_LSM=""
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_AES=m
@@ -1677,3 +1675,39 @@ CONFIG_SCHED_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_UPROBE_EVENTS is not set
# CONFIG_STRICT_DEVMEM is not set
+
+# CentOS/AlmaLinux added
+CONFIG_AUDIT=y
+CONFIG_NETLABEL=y
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_PATH=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_CRYPTO_BLAKE2S=m
+CONFIG_CRYPTO_CURVE25519=m
+CONFIG_CRYPTO_LIB_BLAKE2S=m
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_POLY1305=m
+CONFIG_CRYPTO_POLY1305_NEON=m
+# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set
+# CONFIG_WIREGUARD_DEBUG is not set
+CONFIG_WIREGUARD=m
+CONFIG_BLK_DEV_RBD=m
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_COMPRESS_XZ=y
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y
--
2.45.1

3
SOURCES/cpupower.config Normal file
View 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
View 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

View 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
}

File diff suppressed because it is too large Load Diff

View File

@ -1,71 +1,66 @@
%global commit_firmware_long cb9500d6021e083a182ba168fe4424e3db2494cf %global commit_firmware_long 734829e3525e5baea62d1deedbe65eb60f4fb36b
%global commit_linux_long 4fc5a03ad1d2fb811d8652be67260312fa3125fc %global version_tag 20240529
ExclusiveArch: aarch64 armv7hl ExclusiveArch: aarch64
%undefine _debugsource_packages %undefine _debugsource_packages
%ifarch aarch64
%define Arch arm64 %define Arch arm64
%define build_image Image %define build_image Image.gz
%define armtarget 8 %define armtarget 8
%define with_rpi4 1
%else
%define Arch arm
%define build_image zImage
%define armtarget 7
%bcond_with rpi4
%endif
%if %{with rpi4}
%ifarch aarch64
%define local_version v8 %define local_version v8
%else
%define local_version v7l
%endif
%define bcmmodel 2711 %define bcmmodel 2711
%define ksuffix 4 %define extra_version 4
%else
%define local_version v7
%define bcmmodel 2709
%endif
%define extra_version 1
%define kversion 6.1 # 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.
%define rpisuffix 2
%define ksuffix 4
%define kversion 6.6
%define patchlevel 31 %define patchlevel 31
Name: raspberrypi2 # 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}
# kernel-headers
%define with_headers %{?_without_headers: 0} %{?!_without_headers: 1}
Name: raspberrypi%{rpisuffix}
Version: %{kversion}.%{patchlevel} Version: %{kversion}.%{patchlevel}
Release: %{local_version}.%{extra_version}%{?dist} Release: %{version_tag}.%{local_version}.%{extra_version}%{?dist}
Summary: Specific kernel and bootcode for Raspberry Pi Summary: Specific kernel and bootcode for Raspberry Pi
License: GPLv2 License: GPLv2
URL: https://github.com/raspberrypi/linux URL: https://github.com/raspberrypi/linux
Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%{kversion}.tar.xz Source0: https://github.com/raspberrypi/linux/archive/refs/tags/stable_%{version_tag}.tar.gz
Source1: https://github.com/raspberrypi/firmware/archive/%{commit_firmware_long}.tar.gz Source1: https://github.com/raspberrypi/firmware/archive/%{commit_firmware_long}.tar.gz
%if %{patchlevel} > 0 Patch100: config_2711.patch
Source2: https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz Patch101: config_2712.patch
%endif # Sources for kernel-tools
Source3: rpi-6.1.x.patch Source2000: cpupower.service
Source2001: cpupower.config
Source2002: kvm_stat.logrotate
BuildRequires: kmod, patch, bash, coreutils, tar BuildRequires: kmod, patch, bash, coreutils, tar
BuildRequires: bzip2, xz, findutils, gzip, m4, perl, perl-Carp, make, diffutils, gawk BuildRequires: bzip2, xz, findutils, gzip, m4, perl, perl-Carp, make, diffutils, gawk
BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, git BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc
BuildRequires: net-tools, hostname, bc BuildRequires: net-tools, hostname, bc
BuildRequires: elfutils-devel zlib-devel binutils-devel newt-devel python3-devel perl(ExtUtils::Embed) bison flex xz-devel BuildRequires: elfutils-devel zlib-devel binutils-devel newt-devel python3-devel perl(ExtUtils::Embed) bison flex xz-devel
BuildRequires: audit-libs-devel BuildRequires: audit-libs-devel
BuildRequires: pciutils-devel gettext ncurses-devel BuildRequires: pciutils-devel gettext ncurses-devel
BuildRequires: openssl-devel BuildRequires: openssl-devel
%if 0%{?rhel} == 7 %if %{with_tools}
BuildRequires: devtoolset-8-build # kernel-tools
BuildRequires: devtoolset-8-binutils BuildRequires: asciidoc
BuildRequires: devtoolset-8-gcc %endif
BuildRequires: devtoolset-8-make %if %{with_headers}
BuildRequires: rsync
%endif %endif
# Compile with SELinux but disable per default
Patch100: bcm2709_selinux_config.patch
Patch101: bcm2711_selinux_config.patch
%description %description
Specific kernel and bootcode for Raspberry Pi Specific kernel and bootcode for Raspberry Pi
@ -74,6 +69,7 @@ Specific kernel and bootcode for Raspberry Pi
Group: System Environment/Kernel Group: System Environment/Kernel
Summary: The Linux kernel Summary: The Linux kernel
Provides: kernel = %{version}-%{release} Provides: kernel = %{version}-%{release}
Provides: installonlypkg(kernel)
Requires: coreutils Requires: coreutils
#Requires: dracut #Requires: dracut
@ -83,12 +79,12 @@ Linux operating system. The kernel handles the basic functions
of the operating system: memory allocation, process allocation, device of the operating system: memory allocation, process allocation, device
input and output, etc. input and output, etc.
%package kernel%{?ksuffix}-devel %package kernel%{?ksuffix}-devel
Group: System Environment/Kernel Group: System Environment/Kernel
Summary: Development package for building kernel modules to match the kernel Summary: Development package for building kernel modules to match the kernel
Provides: kernel-devel = %{version}-%{release} Provides: kernel-devel = %{version}-%{release}
Provides: kernel-devel-uname-r = %{version}-%{release} Provides: kernel-devel-uname-r = %{version}-%{release}
Provides: installonlypkg(kernel)
Autoreq: no Autoreq: no
Requires(pre): findutils Requires(pre): findutils
Requires: findutils Requires: findutils
@ -98,7 +94,46 @@ Requires: perl-interpreter
This package provides kernel headers and makefiles sufficient to build modules This package provides kernel headers and makefiles sufficient to build modules
against the kernel package. 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: %{name}-kernel%{?ksuffix}-tools-libs = %{version}-%{release}
Obsoletes: kernel-tools < %{version}
Provides: kernel-tools = %{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
Obsoletes: kernel-tools-libs < %{version}
Provides: kernel-tools-libs = %{version}-%{release}
%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: %{name}-kernel%{?ksuffix}-tools = %{version}-%{release}
Provides: cpupowerutils-devel = 1:009-0.6.p1
Obsoletes: cpupowerutils-devel < 1:009-0.6.p1
Requires: %{name}-kernel%{?ksuffix}-tools-libs = %{version}-%{release}
Obsoletes: kernel-tools-libs-devel < %{version}
Provides: kernel-tools-libs-devel = %{version}-%{release}
%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 %package firmware
Summary: GPU firmware for the Raspberry Pi computer Summary: GPU firmware for the Raspberry Pi computer
License: Redistributable, with restrictions; see LICENSE.broadcom License: Redistributable, with restrictions; see LICENSE.broadcom
@ -110,30 +145,31 @@ Provides: grubby=8.40-10
%description firmware %description firmware
This package contains the GPU firmware for the Raspberry Pi BCM2835 SOC This package contains the GPU firmware for the Raspberry Pi BCM2835 SOC
including the kernel bootloader. including the kernel bootloader.
%endif
%if %{with_headers}
%package kernel%{?ksuffix}-headers
Obsoletes: kernel-headers < %{version}
Provides: kernel-headers = %{version}-%{release}
Obsoletes: glibc-kernheaders < 3.0-46
Provides: glibc-kernheaders = 3.0-46
Summary: Header files for the Linux kernel for use by glibc
%description kernel%{?ksuffix}-headers
Kernel-headers includes the C header files that specify the interface
between the Linux kernel and userspace libraries and programs. The
header files define structures and constants that are needed for
building most standard programs and are also needed for rebuilding the
glibc package.
%endif
%prep %prep
%if 0%{?rhel} == 7 %setup -q -n linux-stable_%{version_tag}
source scl_source enable devtoolset-8 || : %patch100 -p1
%endif %patch101 -p1
%setup -q -n linux-%{kversion}
git init
git config user.email "kernel-team@fedoraproject.org"
git config user.name "Fedora Kernel Team"
git config gc.auto 0
git add .
git commit -a -q -m "baseline"
%if %{patchlevel} > 0
xzcat %{SOURCE2} | patch -p1 -F1 -s
git commit -a -q -m "%{version}"
%endif
git am %{SOURCE3}
git am %{PATCH100}
git am %{PATCH101}
perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}/" Makefile perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}/" Makefile
perl -p -i -e "s/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=/" arch/%{Arch}/configs/bcm%{bcmmodel}_defconfig perl -p -i -e "s/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=/" arch/%{Arch}/configs/bcm2711_defconfig
perl -p -i -e "s/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=/" arch/%{Arch}/configs/bcm2712_defconfig
%if 0%{?rhel} >= 8 %if 0%{?rhel} >= 8
# Mangle /usr/bin/python shebangs to /usr/bin/python3 # Mangle /usr/bin/python shebangs to /usr/bin/python3
@ -146,34 +182,45 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" scripts/diffconfig scripts/blo
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" tools/ tools/perf/scripts/python/*.py tools/kvm/kvm_stat/kvm_stat scripts/clang-tools/*.py pathfix.py -pni "%{__python3} %{py3_shbang_opts}" tools/ tools/perf/scripts/python/*.py tools/kvm/kvm_stat/kvm_stat scripts/clang-tools/*.py
%endif %endif
# This Prevents scripts/setlocalversion from mucking with our version numbers.
touch .scmversion
git commit -a -q -m "modifs"
%build %build
%if 0%{?rhel} == 7 # 16K page-size kernel optimized (bcmmodel=2712) for RPi 5 is not built at the moment
source scl_source enable devtoolset-8 || : # to support both RPi 4 and 5.
%endif
export KERNEL=kernel%{armtarget} export KERNEL=kernel%{armtarget}
make bcm%{bcmmodel}_defconfig make bcm%{bcmmodel}_defconfig
%if %{with_up}
make %{?_smp_mflags} HOSTCFLAGS="%{?build_cflags}" HOSTLDFLAGS="%{?build_ldflags}" %{build_image} modules dtbs 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 %install
%if 0%{?rhel} == 7 %if %{with_up}
source scl_source enable devtoolset-8 || :
%endif
# kernel # kernel
mkdir -p %{buildroot}/boot/overlays/ mkdir -p %{buildroot}/boot/overlays/
mkdir -p %{buildroot}/usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays mkdir -p %{buildroot}/usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays
cp -p -v COPYING %{buildroot}/boot/COPYING.linux-%{kversion} cp -p -v COPYING %{buildroot}/boot/COPYING.linux-%{kversion}
cp -p -v arch/%{Arch}/boot/dts/overlays/README %{buildroot}/usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays
%ifarch aarch64 %ifarch aarch64
cp -p -v arch/%{Arch}/boot/dts/broadcom/*.dtb %{buildroot}/usr/share/%{name}-kernel/%{version}-%{release}/boot cp -p -v arch/%{Arch}/boot/dts/broadcom/*.dtb %{buildroot}/usr/share/%{name}-kernel/%{version}-%{release}/boot
%else %else
cp -p -v arch/%{Arch}/boot/dts/*.dtb %{buildroot}/usr/share/%{name}-kernel/%{version}-%{release}/boot cp -p -v arch/%{Arch}/boot/dts/*.dtb %{buildroot}/usr/share/%{name}-kernel/%{version}-%{release}/boot
%endif %endif
cp -p -v arch/%{Arch}/boot/dts/overlays/*.dtb* %{buildroot}/usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays cp -p -v arch/%{Arch}/boot/dts/overlays/*.dtb* %{buildroot}/usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays
cp -p -v arch/%{Arch}/boot/dts/overlays/README %{buildroot}/usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays
#scripts/mkknlimg arch/%{Arch}/boot/zImage %{buildroot}/boot/kernel-%{version}-%{release}.img
cp -p -v arch/%{Arch}/boot/%{build_image} %{buildroot}/boot/kernel-%{version}-%{release}.img cp -p -v arch/%{Arch}/boot/%{build_image} %{buildroot}/boot/kernel-%{version}-%{release}.img
make INSTALL_MOD_PATH=%{buildroot} modules_install make INSTALL_MOD_PATH=%{buildroot} modules_install
cat > %{buildroot}/boot/config-kernel-%{version}-%{release}.inc <<__EOF__ cat > %{buildroot}/boot/config-kernel-%{version}-%{release}.inc <<__EOF__
@ -220,10 +267,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 $DevelDir %{buildroot}/lib/modules/%{version}-%{release}/build --force
ln -T -s build %{buildroot}/lib/modules/%{version}-%{release}/source --force ln -T -s build %{buildroot}/lib/modules/%{version}-%{release}/source --force
# kernel-firmware %endif
#rm .config
#make INSTALL_FW_PATH=%{buildroot}/lib/firmware firmware_install
%if %{with_firmware}
# firmware # firmware
# precompiled GPU firmware and bootloader # precompiled GPU firmware and bootloader
pushd %{buildroot} pushd %{buildroot}
@ -234,7 +280,63 @@ tar -xf %{_sourcedir}/%{commit_firmware_long}.tar.gz \
firmware-%{commit_firmware_long}/boot/bootcode.bin \ firmware-%{commit_firmware_long}/boot/bootcode.bin \
--strip-components=1 --strip-components=1
popd 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_headers}
%{__make} ARCH=%{Arch} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
find %{buildroot}/usr/include \
\( -name .install -o -name .check -o \
-name ..install.cmd -o -name ..check.cmd \) -delete
%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} %files kernel%{?ksuffix}
%defattr(-,root,root,-) %defattr(-,root,root,-)
/lib/modules/%{version}-%{release} /lib/modules/%{version}-%{release}
@ -276,21 +378,84 @@ cp $(ls -1 /boot/config-kernel-*-*|sort -V|tail -1) /boot/config-kernel.inc
%files kernel%{?ksuffix}-devel %files kernel%{?ksuffix}-devel
%defattr(-,root,root) %defattr(-,root,root)
/usr/src/kernels/%{version}-%{release} /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-firmware %files kernel%{?ksuffix}-tools-libs
#%defattr(-,root,root) %{_libdir}/libcpupower.so.1
#/lib/firmware/* %{_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 %files firmware
%defattr(-,root,root,-) %defattr(-,root,root,-)
/boot/bootcode.bin /boot/bootcode.bin
/boot/fixup* /boot/fixup*
/boot/start* /boot/start*
%doc /boot/LICENCE.broadcom %doc /boot/LICENCE.broadcom
%endif
%if %{with_headers}
%files kernel%{?ksuffix}-headers
/usr/include/*
%exclude %{_includedir}/cpufreq.h
%exclude %{_includedir}/internal/
%exclude %{_includedir}/perf/
%endif
%changelog %changelog
* Thu Sep 05 2024 Koichiro Iwao <meta@almalinux.org> - 6.6.31-20240529.v8.4
- Add kernel-headers subpackage
* Fri Aug 30 2024 Andrew Lukoshko <alukoshko@almalinux.org> - 6.6.31-20240529.v8.3
- Fix kernel-tools dependencies
* 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
* Tue Jun 04 2024 Koichiro Iwao <meta@almalinux.org> - 6.6.28-20240423.v8.2
- Add installonlypkg(kernel) to kernel and -devel subpackages
Resolves: https://github.com/AlmaLinux/raspberry-pi/issues/39
See also: https://src.fedoraproject.org/rpms/kernel/c/aba3940
* Thu May 30 2024 Koichiro Iwao <meta@almalinux.org> - 6.6.28-20240423.v8.1
- Update to version v6.6.28
- Support both Raspberry Pi 4 and 5
- Refine package based on Linux for Raspberry Pi (raspberrypi/linux)
- Generate gzip compressed kernel image
- Drop armv7hl support
- Drop EL7 support
* Sun Jun 04 2023 Pablo Greco <pgreco@centosproject.org> - 6.1.31 * Sun Jun 04 2023 Pablo Greco <pgreco@centosproject.org> - 6.1.31
- Update to version v6.1.31 - Update to version v6.1.31