From e745eb4abe41f734a255a0f182a8a7d8d63feb78 Mon Sep 17 00:00:00 2001 From: zhangyu Date: Sat, 13 Dec 2025 14:19:27 +0800 Subject: [PATCH] rpi-rt:fix file errors in devel package --- raspberrypi-kernel-rt.spec | 179 +++++++++++++++++++------------------ 1 file changed, 90 insertions(+), 89 deletions(-) diff --git a/raspberrypi-kernel-rt.spec b/raspberrypi-kernel-rt.spec index b3d432df..b4ba6e01 100644 --- a/raspberrypi-kernel-rt.spec +++ b/raspberrypi-kernel-rt.spec @@ -2,13 +2,15 @@ %global KernelVer %{version}-%{release}.raspi.%{_target_cpu} -%global hulkrelease 124.0.0 +%global hulkrelease 128.0.0 + +%global __brp_python_bytecompile %{nil} %global debug_package %{nil} Name: raspberrypi-kernel-rt Version: 6.6.0 -Release: %{hulkrelease}.rt47.4 +Release: %{hulkrelease}.rt47.5 Summary: Linux Kernel License: GPLv2 URL: http://www.kernel.org/ @@ -44,6 +46,17 @@ ExclusiveOS: Linux %description The Linux Kernel preempt-rt image for RaspberryPi. +%package headers +Summary: Header files for the Linux kernel for use by glibc +Obsoletes: glibc-kernheaders < 3.0-46 +Provides: glibc-kernheaders = 3.0-46 +Provides: kernel-headers = %{version}-%{release} + +%description headers +raspberrypi-Kernel-rt-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. %package devel Summary: Development package for building kernel modules to match the %{KernelVer} raspberrypi-kernel-rt AutoReqProv: no @@ -57,10 +70,9 @@ against the %{KernelVer} raspberrypi-kernel-rt package. %prep %setup -q -n kernel-%{version} -c -mv kernel linux-%{version} -cp -a linux-%{version} linux-%{KernelVer} +mv kernel linux-%{KernelVer}-v8 -cd linux-%{KernelVer} +cd linux-%{KernelVer}-v8 %patch0000 -p1 %patch0001 -p1 %patch0002 -p1 @@ -68,29 +80,56 @@ cd linux-%{KernelVer} find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null find . -name .gitignore -exec rm -f {} \; >/dev/null +cp -a ../linux-%{KernelVer}-v8 ../linux-%{KernelVer}-2712 + %build -cd linux-%{KernelVer} +cd linux-%{KernelVer}-v8 perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.raspi.%{_target_cpu}/" Makefile make ARCH=%{Arch} %{?_smp_mflags} bcm2711_defconfig +make ARCH=%{Arch} %{?_smp_mflags} KERNELRELEASE=%{KernelVer}-v8 -make ARCH=%{Arch} %{?_smp_mflags} KERNELRELEASE=%{KernelVer} +cd ../linux-%{KernelVer}-2712 +perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.raspi.%{_target_cpu}/" Makefile +make ARCH=%{Arch} %{?_smp_mflags} bcm2712_defconfig +make ARCH=%{Arch} %{?_smp_mflags} KERNELRELEASE=%{KernelVer}-2712 %install -cd linux-%{KernelVer} + ## install linux -make ARCH=%{Arch} INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=%{KernelVer} -rm -rf $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/source $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build + mkdir -p $RPM_BUILD_ROOT/boot -TargetImage=$(make -s image_name) -TargetImage=${TargetImage%.*} -install -m 755 $TargetImage $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer} -install -m 644 .config $RPM_BUILD_ROOT/boot/config-%{KernelVer} -install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-%{KernelVer} +rpi_version=("v8" "2712") +for rpi in "${rpi_version[@]}"; do + pushd linux-%{KernelVer}-$rpi + kernel_ver=%{KernelVer}-$rpi + TargetImage=$(make -s image_name) + make ARCH=%{Arch} INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$kernel_ver + + install -m 755 $TargetImage $RPM_BUILD_ROOT/boot/vmlinuz-$kernel_ver + install -m 644 .config $RPM_BUILD_ROOT/boot/config-$kernel_ver + install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-$kernel_ver + + rm -rf $RPM_BUILD_ROOT/lib/modules/$kernel_ver/source $RPM_BUILD_ROOT/lib/modules/$kernel_ver/build + + %define ksrcpath $RPM_BUILD_ROOT/usr/src/kernels/$kernel_ver + install -d %{ksrcpath} + make run-command LD=ld.bfd KBUILD_BUILD_VERSION=%{release} KBUILD_RUN_COMMAND="./scripts/package/install-extmod-build %{ksrcpath}" + + pushd $RPM_BUILD_ROOT/lib/modules/$kernel_ver + ln -sf /usr/src/kernels/$kernel_ver build + ln -sf build source + popd + popd +done + +pushd linux-%{KernelVer}-2712 +make ARCH=%{Arch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install +find $RPM_BUILD_ROOT/usr/include -name "\.*" -exec rm -rf {} \; mkdir -p $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/overlays install -m 644 $(find arch/%{Arch}/boot/dts/broadcom/ -name "*.dtb") $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/ @@ -99,69 +138,6 @@ if ls arch/%{Arch}/boot/dts/overlays/*.dtb > /dev/null 2>&1; then install -m 644 $(find arch/%{Arch}/boot/dts/overlays/ -name "*.dtb") $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/overlays/ fi install -m 644 arch/%{Arch}/boot/dts/overlays/README $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/overlays/ - -mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build - -############ to do collect devel file ######### -# 1. Makefile And Kconfig, .config sysmbol -# 2. scrpits dir -# 3. .h file -find -type f \( -name "Makefile*" -o -name "Kconfig*" \) -exec cp --parents {} $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build \; -for f in Module.symvers System.map Module.markers .config;do - test -f $f || continue - cp $f $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build -done - -cp -a scripts $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build -if [ -d arch/%{Arch}/scripts ]; then - cp -a arch/%{Arch}/scripts $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/arch/%{_arch} || : -fi -if [ -f arch/%{Arch}/*lds ]; then - cp -a arch/%{Arch}/*lds $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/arch/%{_arch}/ || : -fi -find $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/scripts/ -name "*.o" -exec rm -rf {} \; - -if [ -d arch/%{Arch}/include ]; then - cp -a --parents arch/%{Arch}/include $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/ -fi -cp -a include $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include - -if [ -f arch/%{Arch}/kernel/module.lds ]; then - cp -a --parents arch/%{Arch}/kernel/module.lds $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/ -fi - -# module.lds is moved to scripts by commit 596b0474d3d9 in linux 5.10. -if [ -f scripts/module.lds ]; then - cp -a --parents scripts/module.lds $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/ -fi - -%ifarch aarch64 - cp -a --parents arch/arm/include/asm $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/ -%endif - -# copy objtool for raspberrypi-kernel-devel (needed for building external modules) -if grep -q CONFIG_STACK_VALIDATION=y .config; then - mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/tools/objtool - cp -a tools/objtool/objtool $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/tools/objtool -fi - -# Make sure the Makefile and version.h have a matching timestamp so that -# external modules can be built -touch -r $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/Makefile $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/generated/uapi/linux/version.h -touch -r $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/.config $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/generated/autoconf.h -# for make prepare -if [ ! -f $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/config/auto.conf ];then - cp .config $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/config/auto.conf -fi - -mkdir -p %{buildroot}/usr/src/kernels -mv $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build $RPM_BUILD_ROOT/usr/src/kernels/%{KernelVer} - -find $RPM_BUILD_ROOT/usr/src/kernels/%{KernelVer} -name ".*.cmd" -exec rm -f {} \; - -pushd $RPM_BUILD_ROOT/lib/modules/%{KernelVer} -ln -sf /usr/src/kernels/%{KernelVer} build -ln -sf build source popd %postun @@ -188,14 +164,15 @@ else fi fi if [ "$version_old" != "0" ]; then - if [ -f /boot/vmlinuz-$version_old ] && [ -d /boot/dtb-$version_old ] && [ -d /lib/modules/$version_old ]; then + if [ -f /boot/vmlinuz-$version_old-v8 ] && [ -d /boot/dtb-$version_old ] && [ -d /lib/modules/$version_old-v8 ] && [ -f /boot/vmlinuz-$version_old-2712 ] && [ -d /lib/modules/$version_old-2712 ]; then ls /boot/dtb-$version_old/overlays/*.dtbo > /dev/null 2>&1 if [ "$?" == "0" ]; then ls /boot/dtb-$version_old/*.dtb > /dev/null 2>&1 if [ "$?" == "0" ]; then - rm -rf /boot/*.dtb /boot/overlays /boot/kernel8.img + rm -rf /boot/*.dtb /boot/overlays /boot/kernel8.img /boot/kernel_2712.img mkdir /boot/overlays - install -m 755 /boot/vmlinuz-$version_old /boot/kernel8.img + install -m 755 /boot/vmlinuz-$version_old-v8 /boot/kernel8.img + install -m 755 /boot/vmlinuz-$version_old-2712 /boot/kernel_2712.img for file in `ls /boot/dtb-$version_old/*.dtb 2>/dev/null` do if [ -f $file ]; then @@ -219,9 +196,10 @@ if [ "$version_old" != "0" ]; then fi %posttrans -rm -rf /boot/*.dtb /boot/overlays /boot/kernel8.img +rm -rf /boot/*.dtb /boot/overlays /boot/kernel8.img /boot/kernel_2712.img mkdir -p /boot/overlays -install -m 755 /boot/vmlinuz-%{KernelVer} /boot/kernel8.img +install -m 755 /boot/vmlinuz-%{KernelVer}-v8 /boot/kernel8.img +install -m 755 /boot/vmlinuz-%{KernelVer}-2712 /boot/kernel_2712.img for file in `ls /boot/dtb-%{KernelVer}/*.dtb 2>/dev/null` do if [ -f $file ]; then @@ -241,10 +219,16 @@ then fi if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] then - (cd /usr/src/kernels/%{KernelVer} && + (pushd /usr/src/kernels/%{KernelVer}-v8 && + /usr/bin/find . -type f | while read f; do + hardlink -c /usr/src/kernels/*.oe*.*/$f $f + done && + popd && + pushd /usr/src/kernels/%{KernelVer}-2712 && /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*.oe*.*/$f $f - done) + done && + popd) fi %files @@ -254,17 +238,33 @@ fi /boot/System.map-* /boot/vmlinuz-* /boot/dtb-* -/lib/modules/%{KernelVer} +/lib/modules/%{KernelVer}-v8 +/lib/modules/%{KernelVer}-2712 +%exclude /lib/modules/%{KernelVer}-v8/source +%exclude /lib/modules/%{KernelVer}-v8/build +%exclude /lib/modules/%{KernelVer}-2712/source +%exclude /lib/modules/%{KernelVer}-2712/build + +%files headers +%defattr (-, root, root) +/usr/include/* +%exclude %{_includedir}/cpufreq.h +%exclude %{_includedir}/cpuidle.h %files devel %defattr (-, root, root) %doc -/lib/modules/%{KernelVer}/source -/lib/modules/%{KernelVer}/build -/usr/src/kernels/%{KernelVer} +/lib/modules/%{KernelVer}-v8/source +/lib/modules/%{KernelVer}-v8/build +/lib/modules/%{KernelVer}-2712/source +/lib/modules/%{KernelVer}-2712/build +/usr/src/kernels/%{KernelVer}-* %changelog +* Fri Dec 12 2025 zhangyu - 6.6.0.128.0.5 +- - update Rpi:preempt-RT to openEuler 6.6.0.128.5.0 + * Fri Dec 05 2025 zhangyu - 6.6.0.124.0.4 - - update Rpi:preempt-RT to openEuler 6.6.0.124.4.0 @@ -2899,3 +2899,4 @@ fi * Mon Aug 9 2021 Yafen Fang - 5.10.0-5.1.0.1 - package init based on openEuler 5.10.0-5.1.0 + -- Gitee