%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} adds the first complete Nabu camera probe candidate: SM8150 CAMSS and CCI, the SM8150 camera clock controller, OV13B10 OF support, and rear/front sensor graphs with reviewed three-rail power sequences. Camera probe and capture, 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 Nabu OV13B10/OV8856 camera graph. This alpha build enables sensor probing, but successful probe and capture still require physical validation before promotion. %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_I2C_QCOM_CCI=m' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_SM_CAMCC_8150=y' %{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 'qcom,sm8150-camss' build/arch/arm64/boot/dts/qcom/sm8150-xiaomi-nabu.dtb grep -aFq 'ovti,ov13b10' build/arch/arm64/boot/dts/qcom/sm8150-xiaomi-nabu.dtb grep -aFq 'ovti,ov8856' 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}' modinfo -F alias \ %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/media/i2c/ov13b10.ko | \ grep -Fxq 'of:N*T*Covti,ov13b10' 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 * Sat Aug 29 2026 SENEMOS Project - 1:6.17.0-%{nabu_build_stamp} - Enable the SM8150 CAMSS, CCI and camera clock-controller path. - Add Nabu OV13B10 and OV8856 graphs and power sequencing. - Add OV13B10 Device Tree matching and camera payload checks. * 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.