From d2ee71f66291000210aa019657c70fdcfacee400 Mon Sep 17 00:00:00 2001 From: lipingEmmaSiguyi <1477412247@qq.com> Date: Tue, 13 May 2025 21:39:03 +0800 Subject: [PATCH] kernel: Split extra modules into kernel-extra-modules subpackage This commit introduces the following changes: Generates dedicated filelists: modules-core.list for kernel-core modules-extra.list for kernel-extra-modules Adds kernel-extra-modules subpackage definitions in the .spec file. Motivation: Allow optional installation of niche/third-party drivers Align with upstream modular packaging practices --- extra-modules_aarch64.list | 0 extra-modules_x86_64.list | 59 +++++++++++++++++++++++++++++++++++++ kernel.spec | 60 +++++++++++++++++++++++++++++++++++++- 3 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 extra-modules_aarch64.list create mode 100644 extra-modules_x86_64.list diff --git a/extra-modules_aarch64.list b/extra-modules_aarch64.list new file mode 100644 index 00000000..e69de29b diff --git a/extra-modules_x86_64.list b/extra-modules_x86_64.list new file mode 100644 index 00000000..7764c18d --- /dev/null +++ b/extra-modules_x86_64.list @@ -0,0 +1,59 @@ +drivers/bluetooth/btmtk.ko +drivers/hid/i2c-hid/i2c-hid-acpi.ko +drivers/hid/i2c-hid/i2c-hid.ko +drivers/net/wireless/marvell/mwl8k.ko +drivers/net/wireless/mediatek/mt76/mt7603/mt7603e.ko +drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common.ko +drivers/net/wireless/mediatek/mt76/mt7615/mt7615e.ko +drivers/net/wireless/mediatek/mt76/mt7615/mt7663s.ko +drivers/net/wireless/mediatek/mt76/mt7615/mt7663u.ko +drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common.ko +drivers/net/wireless/mediatek/mt76/mt76-connac-lib.ko +drivers/net/wireless/mediatek/mt76/mt76-sdio.ko +drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0e.ko +drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2e.ko +drivers/net/wireless/mediatek/mt76/mt7915/mt7915e.ko +drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common.ko +drivers/net/wireless/mediatek/mt76/mt7921/mt7921e.ko +drivers/net/wireless/mediatek/mt76/mt7921/mt7921s.ko +drivers/net/wireless/mediatek/mt76/mt7921/mt7921u.ko +drivers/net/wireless/mediatek/mt76/mt792x-lib.ko +drivers/net/wireless/mediatek/mt76/mt792x-usb.ko +drivers/net/wireless/mediatek/mt76/mt7996/mt7996e.ko +drivers/net/wireless/realtek/rtw88/rtw88_8723de.ko +drivers/net/wireless/realtek/rtw88/rtw88_8723d.ko +drivers/net/wireless/realtek/rtw88/rtw88_8723ds.ko +drivers/net/wireless/realtek/rtw88/rtw88_8723du.ko +drivers/net/wireless/realtek/rtw88/rtw88_8821ce.ko +drivers/net/wireless/realtek/rtw88/rtw88_8821c.ko +drivers/net/wireless/realtek/rtw88/rtw88_8821cs.ko +drivers/net/wireless/realtek/rtw88/rtw88_8821cu.ko +drivers/net/wireless/realtek/rtw88/rtw88_8822be.ko +drivers/net/wireless/realtek/rtw88/rtw88_8822b.ko +drivers/net/wireless/realtek/rtw88/rtw88_8822bs.ko +drivers/net/wireless/realtek/rtw88/rtw88_8822bu.ko +drivers/net/wireless/realtek/rtw88/rtw88_8822ce.ko +drivers/net/wireless/realtek/rtw88/rtw88_8822c.ko +drivers/net/wireless/realtek/rtw88/rtw88_8822cs.ko +drivers/net/wireless/realtek/rtw88/rtw88_8822cu.ko +drivers/net/wireless/realtek/rtw88/rtw88_core.ko +drivers/net/wireless/realtek/rtw88/rtw88_pci.ko +drivers/net/wireless/realtek/rtw88/rtw88_sdio.ko +drivers/net/wireless/realtek/rtw88/rtw88_usb.ko +drivers/net/wireless/realtek/rtw89/rtw89_8851be.ko +drivers/net/wireless/realtek/rtw89/rtw89_8851b.ko +drivers/net/wireless/realtek/rtw89/rtw89_8852ae.ko +drivers/net/wireless/realtek/rtw89/rtw89_8852a.ko +drivers/net/wireless/realtek/rtw89/rtw89_8852be.ko +drivers/net/wireless/realtek/rtw89/rtw89_8852b.ko +drivers/net/wireless/realtek/rtw89/rtw89_8852ce.ko +drivers/net/wireless/realtek/rtw89/rtw89_8852c.ko +drivers/net/wireless/realtek/rtw89/rtw89_core.ko +drivers/net/wireless/realtek/rtw89/rtw89_pci.ko +drivers/pinctrl/intel/pinctrl-alderlake.ko +drivers/pinctrl/intel/pinctrl-elkhartlake.ko +drivers/pinctrl/intel/pinctrl-jasperlake.ko +drivers/pinctrl/intel/pinctrl-lakefield.ko +drivers/pinctrl/intel/pinctrl-lynxpoint.ko +drivers/pinctrl/intel/pinctrl-meteorlake.ko +drivers/pinctrl/intel/pinctrl-tigerlake.ko diff --git a/kernel.spec b/kernel.spec index 6b8b867e..0a394232 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ rm -f test_openEuler_sign.ko test_openEuler_sign.ko.sig %global upstream_sublevel 0 %global devel_release 90 %global maintenance_release .0.0 -%global pkg_release .93 +%global pkg_release .94 %global openeuler_lts 1 %global openeuler_major 2403 @@ -114,6 +114,8 @@ Source25: Module.kabi_ext2_x86_64 %endif Source200: mkgrub-menu-aarch64.sh +Source300: extra-modules_x86_64.list +Source301: extra-modules_aarch64.list Source2000: cpupower.service Source2001: cpupower.config @@ -237,6 +239,15 @@ Obsoletes: %{name}-tools-libs-devel This package contains the development files for the tools/ directory from the kernel source. +%ifarch x86_64 aarch64 +%package extra-modules +Summary: Extra kernel modules to match the kernel +AutoReqProv: no +Provides: kernel-extra-modules = %{version}-%{release} +%description extra-modules +This package contains optional modules that may be dynamically loaded but not needed for base system operation. +%endif + %if %{with_perf} %package -n perf Summary: Performance monitoring for the Linux kernel @@ -625,8 +636,31 @@ install -m 755 %{SOURCE200} $RPM_BUILD_ROOT%{_sbindir}/mkgrub-menu-%{version}-%{ # deal with module, if not kdump %{make} ARCH=%{Arch} INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=%{KernelVer} mod-fw= ######## to collect ko to module.filelist about netwoking. block. drm. modesetting ############### +# 1. Generates extra-module.list by: +# - Processing predefined extra-modules_%{_target_cpu}.list +# 2. Creates core-module.list by comparing installed modules with extra modules +# Final output: Generates kernel-modules-filelist (core) and kernel-extra-modules-filelist +# for RPM package specification, while ensuring proper path mapping to /lib/modules/%{KernelVer}/ + pushd $RPM_BUILD_ROOT/lib/modules/%{KernelVer} +%ifnarch x86_64 aarch64 find -type f -name "*.ko" >modnames +%else +sed 's!^!kernel/!; s!\.ko$!!' %{_sourcedir}/extra-modules_%{_target_cpu}.list > modules-extra.list + +find -type f -name "*.ko" | sort >modnames + +grep -vFf modules-extra.list modnames > modules-core.list || true + +sed -e 's!^\.\/kernel/!/lib/modules/%{KernelVer}/kernel/!; s!\.ko$!.ko.xz!' \ + modules-core.list > %{_builddir}/%{name}-%{version}/kernel-modules-filelist + +if [ -s modules-extra.list ]; then + sed 's!^kernel/!!; s!$!.ko.xz!; s!^!/lib/modules/%{KernelVer}/kernel/!' modules-extra.list > %{_builddir}/%{name}-%{version}/kernel-extra-modules-filelist +else + echo "%ghost /nonexistent/dummy/file" > %{_builddir}/%{name}-%{version}/kernel-extra-modules-filelist +fi +%endif # mark modules executable so that strip-to-file can strip them xargs --no-run-if-empty chmod u+x < modnames @@ -667,6 +701,9 @@ grep -E -v \ modinfo && exit 1 rm -f modinfo modnames drivers.undef +%ifarch x86_64 aarch64 +rm -f modules-extra.list modules-core.list modules.list +%endif for i in alias alias.bin builtin.bin ccwmap dep dep.bin ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols symbols.bin usbmap do @@ -970,7 +1007,11 @@ fi /sbin/ldconfig %systemd_postun cpupower.service +%ifnarch x86_64 aarch64 %files +%else +%files -f kernel-modules-filelist +%endif %defattr (-, root, root) %doc /boot/config-* @@ -983,11 +1024,21 @@ fi %ghost /boot/initramfs-%{KernelVer}.img /boot/.vmlinuz-*.hmac /etc/ld.so.conf.d/* +%ifnarch x86_64 aarch64 /lib/modules/%{KernelVer}/ +%else +/lib/modules/%{KernelVer}/vdso/ +/lib/modules/%{KernelVer}/modules.* +%endif %exclude /lib/modules/%{KernelVer}/source %exclude /lib/modules/%{KernelVer}/build %{_sbindir}/mkgrub-menu*.sh +%ifarch x86_64 aarch64 +%files extra-modules -f kernel-extra-modules-filelist +%defattr(-,root,root) +%endif + %files devel %defattr (-, root, root) %doc @@ -1087,6 +1138,13 @@ fi %endif %changelog +* Thu May 15 2025 Li Ping <1477412247@qq.com> - 6.6.0-90.0.0.94 +- Split kernel modules into kernel-extra-modules subpackage +- Prioritizes core kmod (networking/drm/block/modesetting) in main kernel package +- All extra modules and their dependencies are isolated to kernel-extra-modules +- Added module-filelist generation scripts for both packages +- Updated post-install scripts to handle extra modules dependency + * Wed May 14 2025 Li Nan - 6.6.0-90.0.0.93 - !16277 Revert DP HPD module to fix the problem - !16192 drivers/yunsilicon: fix query/modify pkt_dst_info return error -- Gitee