%global debug_package %{nil} %global nabu_build_stamp %(tr -d '\n' < %{_sourcedir}/nabu-build-stamp) %global uname_r 6.17.0-senemos-%{nabu_build_stamp} Name: senemos-nabu-kernel-alpha Epoch: 1 Version: 6.17.0 Release: %{nabu_build_stamp}%{?dist} Summary: Timestamped SENEMOS Linux 6.17 test kernel for Xiaomi Pad 5 License: GPL-2.0-only AND MIT URL: https://github.com/MCC45TR/nabu-linux-kernel Source0: linux-nabu-6.17.0-senemos-%{nabu_build_stamp}.tar.zst Source1: 91-nabu-late-xhci.conf Source2: 90-nabu-late-xhci.conf Source3: nabu-build-stamp BuildRequires: bc BuildRequires: bison BuildRequires: clang BuildRequires: dwarves BuildRequires: elfutils-libelf-devel BuildRequires: flex BuildRequires: kmod BuildRequires: lld BuildRequires: llvm BuildRequires: make BuildRequires: openssl-devel BuildRequires: perl BuildRequires: python3 BuildRequires: zstd Requires: senemos-nabu-kernel-alpha-core = %{epoch}:%{version}-%{release} Requires: senemos-nabu-kernel-alpha-modules = %{epoch}:%{version}-%{release} Requires: nabu-kernel-maintenance >= 1.2.0-1 Conflicts: senemos-nabu-kernel Conflicts: senemos-nabu-kernel-alpha-fallback Provides: senemos-nabu-kernel-alpha-build = %{nabu_build_stamp} %description Experimental timestamped SENEMOS Linux 6.17 kernel channel for Xiaomi Pad 5. Build %{nabu_build_stamp} consolidates the completed 6.17 camera foundation, pogo/HID, RTC, NFT, charging, flash LED and audio source work with the NVT, keyboard-cover and Iris suspend fixes. Camera probing remains disabled and the charging, flash, audio, suspend, power-button wake and rollback paths remain physical acceptance gates. %package -n senemos-nabu-kernel-alpha-fallback Summary: Linux %{uname_r} fallback for the Nabu 7.2 channel Requires: senemos-nabu-kernel-alpha-core = %{epoch}:%{version}-%{release} Requires: senemos-nabu-kernel-alpha-modules = %{epoch}:%{version}-%{release} Requires(posttrans): nabu-boot-integration >= 2.0.0-13.test Requires(posttrans): nabu-kernel-maintenance >= 1.2.0-1 Conflicts: senemos-nabu-kernel-alpha Provides: nabu-kernel-fallback = %{epoch}:%{version}-%{release} %description -n senemos-nabu-kernel-alpha-fallback Fileless selector that installs timestamped build %{nabu_build_stamp} into the protected SENEMOS6 fallback slot while Linux 7.2 remains canonical. The matching UKI name is SENEMOS6-%{nabu_build_stamp}.efi. %package -n senemos-nabu-kernel-alpha-core Summary: Nabu %{uname_r} kernel image, configuration and device tree Requires(posttrans): kmod Requires(posttrans): nabu-boot-integration >= 2.0.0-13.test Provides: installonlypkg(kernel) Provides: kernel-uname-r Provides: kernel-nabu-alpha-core-uname-r Provides: kernel-nabu-core-uname-r Provides: nabu-iris-kernel = %{epoch}:%{version}-%{release} %description -n senemos-nabu-kernel-alpha-core Source-built Linux image and Nabu DTB using the timestamped SENEMOS ABI. The DT exposes Iris video decode and the reviewed Nabu hardware graph while camera sensor probing remains disabled pending physical validation. %package -n senemos-nabu-kernel-alpha-modules Summary: Nabu %{uname_r} loadable kernel modules Requires: senemos-nabu-kernel-alpha-core = %{epoch}:%{version}-%{release} Provides: installonlypkg(kernel) Provides: kernel-modules-uname-r %description -n senemos-nabu-kernel-alpha-modules Loadable modules for %{uname_r}, including qcom-iris, Qualcomm remoteproc, CAMSS camera foundation, OV13B10, OV8856 and the Nabu power and audio drivers. %prep [[ '%{nabu_build_stamp}' =~ ^[0-9]{10}$ ]] || { printf 'Invalid Nabu kernel build stamp: %s\n' '%{nabu_build_stamp}' >&2 exit 1 } grep -Fxq '%{nabu_build_stamp}' %{SOURCE3} %autosetup -n linux-nabu-6.17.0-senemos-%{nabu_build_stamp} %build export ARCH=arm64 export LLVM=1 export LLVM_IAS=1 export KBUILD_BUILD_USER=senemos export KBUILD_BUILD_HOST=copr mkdir -p build make O=build defconfig scripts/kconfig/merge_config.sh -m -O build build/.config arch/arm64/configs/sm8150.config scripts/config --file build/.config \ --set-str LOCALVERSION '-senemos-%{nabu_build_stamp}' \ --disable LOCALVERSION_AUTO make O=build olddefconfig make O=build %{?_smp_mflags} Image qcom/sm8150-xiaomi-nabu.dtb modules %install export ARCH=arm64 export LLVM=1 export LLVM_IAS=1 install -Dm0755 build/arch/arm64/boot/Image %{buildroot}/boot/vmlinuz-%{uname_r} install -Dm0644 build/System.map %{buildroot}/boot/System.map-%{uname_r} install -Dm0644 build/.config %{buildroot}/boot/config-%{uname_r} install -Dm0644 build/arch/arm64/boot/dts/qcom/sm8150-xiaomi-nabu.dtb \ %{buildroot}%{_prefix}/lib/modules/%{uname_r}/dtb/qcom/sm8150-xiaomi-nabu.dtb make O=build modules_install INSTALL_MOD_PATH=%{buildroot}%{_prefix} INSTALL_MOD_STRIP=1 DEPMOD=/bin/true rm -f %{buildroot}%{_prefix}/lib/modules/%{uname_r}/build rm -f %{buildroot}%{_prefix}/lib/modules/%{uname_r}/source /usr/sbin/depmod -b %{buildroot}%{_prefix} %{uname_r} install -Dm0644 /dev/null \ %{buildroot}%{_prefix}/lib/senemos-nabu/verbose-uki.d/%{uname_r} install -d -m0755 %{buildroot}%{_prefix}/lib/senemos-nabu/uki-version.d printf '%%s\n' '%{nabu_build_stamp}' > \ %{buildroot}%{_prefix}/lib/senemos-nabu/uki-version.d/%{uname_r} install -Dm0644 %{SOURCE1} %{buildroot}%{_prefix}/lib/dracut/dracut.conf.d/90-nabu-omit-early-xhci.conf install -Dm0644 %{SOURCE2} %{buildroot}%{_prefix}/lib/modules-load.d/90-nabu-late-xhci.conf %check test -s %{buildroot}/boot/vmlinuz-%{uname_r} test -s %{buildroot}%{_prefix}/lib/modules/%{uname_r}/dtb/qcom/sm8150-xiaomi-nabu.dtb test -s %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/media/platform/qcom/iris/qcom-iris.ko test -s %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/media/platform/qcom/camss/qcom-camss.ko test -s %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/media/i2c/ov13b10.ko test -s %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/media/i2c/ov8856.ko grep -Fxq 'CONFIG_LOCALVERSION="-senemos-%{nabu_build_stamp}"' \ %{buildroot}/boot/config-%{uname_r} test "$(make O=build -s kernelrelease)" = '%{uname_r}' grep -Fxq 'CONFIG_VIDEO_QCOM_IRIS=m' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_VIDEO_QCOM_CAMSS=m' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_VIDEO_OV13B10=m' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_VIDEO_OV8856=m' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_PM_DEBUG=y' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_PM_SLEEP_DEBUG=y' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_DPM_WATCHDOG=y' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_PSTORE_FTRACE=y' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_FUNCTION_TRACER=y' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_INPUT_XIAOMI_NABU_TABLET_MODE=y' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_INPUT_XIAOMI_NABU_KEYBOARD=y' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_HID_XIAOMI=m' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_NFT_FIB_INET=m' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_RTC_DRV_PM8XXX=y' %{buildroot}/boot/config-%{uname_r} grep -Fxq '# CONFIG_RTC_DRV_EFI is not set' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_RTC_HCTOSYS_DEVICE="rtc0"' %{buildroot}/boot/config-%{uname_r} grep -aFq 'xiaomi,nabu-keyboard' build/arch/arm64/boot/dts/qcom/sm8150-xiaomi-nabu.dtb grep -aFq 'cirrus,allow-missing-pdn-done' build/arch/arm64/boot/dts/qcom/sm8150-xiaomi-nabu.dtb grep -aFq 'input NTC %s, all populated protections enabled' \ %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/power/supply/ln8000_charger.ko grep -aFq 'PDN_DONE timeout accepted' build/sound/soc/codecs/snd-soc-cs35l41.ko grep -Fq 'system suspend prepare: gate pre-freeze gestures' drivers/input/touchscreen/nt36523/nt36xxx.c grep -Fq 'if (core->iris_platform_data->legacy_vpu5)' drivers/media/platform/qcom/iris/iris_probe.c modinfo -F vermagic \ %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/media/platform/qcom/iris/qcom-iris.ko | \ grep -Fq '%{uname_r}' grep -Fxq '%{nabu_build_stamp}' \ %{buildroot}%{_prefix}/lib/senemos-nabu/uki-version.d/%{uname_r} %posttrans install -d -m0755 /var/lib/nabu-kernel-maintenance printf '%%s\n' '%{uname_r}' > /var/lib/nabu-kernel-maintenance/pending-kernel %posttrans -n senemos-nabu-kernel-alpha-fallback install -d -m0755 /var/lib/nabu-kernel-maintenance printf '%%s\n' '%{uname_r}' > /var/lib/nabu-kernel-maintenance/pending-fallback-kernel %postun -n senemos-nabu-kernel-alpha-core if [ "$1" -eq 0 ]; then /usr/sbin/depmod -a || : fi %files %{_prefix}/lib/dracut/dracut.conf.d/90-nabu-omit-early-xhci.conf %{_prefix}/lib/modules-load.d/90-nabu-late-xhci.conf %files -n senemos-nabu-kernel-alpha-fallback %files -n senemos-nabu-kernel-alpha-core /boot/vmlinuz-%{uname_r} /boot/System.map-%{uname_r} /boot/config-%{uname_r} %{_prefix}/lib/modules/%{uname_r}/dtb/qcom/sm8150-xiaomi-nabu.dtb %{_prefix}/lib/modules/%{uname_r}/modules.* %{_prefix}/lib/senemos-nabu/verbose-uki.d/%{uname_r} %{_prefix}/lib/senemos-nabu/uki-version.d/%{uname_r} %files -n senemos-nabu-kernel-alpha-modules %{_prefix}/lib/modules/%{uname_r}/kernel/ %changelog * Fri Aug 28 2026 SENEMOS Project - 1:6.17.0-%{nabu_build_stamp} - Restore timestamped RPM, uname and SENEMOS6 EFI identities. - Consolidate all completed 6.17 timestamp source work with suspend fixes. - Preserve deferred canonical and fallback UKI maintenance.