%global debug_package %{nil} %global nabu_build_stamp 2608291516 %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}.3%{?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.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: nabu-kernel-maintenance-api >= 3 Requires(posttrans): coreutils Requires(postun): kmod Obsoletes: senemos-nabu-kernel-alpha-fallback < %{epoch}:%{version}-%{release} Provides: senemos-nabu-kernel-alpha-build = %{nabu_build_stamp} Provides: nabu-iris-kernel = %{epoch}:%{version}-%{release} %description Experimental timestamped SENEMOS Linux 6.17 kernel channel for Xiaomi Pad 5. Build %{nabu_build_stamp} adds the complete safe Nabu camera probe candidate: SM8150 CAMSS and CCI, the camera clock controller, OV13B10 OF support, rear and front sensor graphs, read-only calibration EEPROMs, and the V4L2 bridge for both rear PMIC flash LEDs. Camera probe and capture, EEPROM reads, flash, charging, audio, suspend, power-button wake and rollback remain physical acceptance gates. %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} %setup -q -c -T tar --zstd -xf %{SOURCE0} --strip-components=1 %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 test -s %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/i2c/busses/i2c-qcom-cci.ko test -s %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/misc/eeprom/at24.ko test -s %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/media/v4l2-core/v4l2-flash-led-class.ko test -s %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/input/touchscreen/nt36523/nt36523_ts.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_EEPROM_AT24=m' %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_V4L2_FLASH_LED_CLASS=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_TOUCHSCREEN_NT36523_SPI=m' %{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 'belling,bl24sa64' build/arch/arm64/boot/dts/qcom/sm8150-xiaomi-nabu.dtb grep -aFq 'puya,p24c64f' build/arch/arm64/boot/dts/qcom/sm8150-xiaomi-nabu.dtb grep -aFq 'flash-leds' 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 '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/pending.d temporary=$(mktemp /var/lib/nabu-kernel-maintenance/pending.d/.alpha.XXXXXX) printf '%%s\n' '%{uname_r}' > "$temporary" chmod 0644 "$temporary" mv -f "$temporary" /var/lib/nabu-kernel-maintenance/pending.d/alpha %postun 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 /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} %{_prefix}/lib/modules/%{uname_r}/kernel/ %changelog * Sat Aug 29 2026 mcc45tr - 1:6.17.0-%{nabu_build_stamp}.3 - Preserve the currently running legacy split payload during the one-time migration; DNF must never bypass its running-kernel protection. - Do not advertise Fedora install-only kernel capabilities from the unified RPM. * Sat Aug 29 2026 mcc45tr - 1:6.17.0-%{nabu_build_stamp}.2 - Derive the timestamped RPM and uname identity once from the SRPM builder's Europe/Istanbul clock. * Sat Aug 29 2026 mcc45tr - 1:6.17.0-%{nabu_build_stamp}.2 - Merge selector, image, DTB and modules into one alpha kernel RPM. - Replace all prior alpha core, modules and fallback packages during migration. * Sat Aug 29 2026 mcc45tr - 1:6.17.0-%{nabu_build_stamp}.1 - Upgrade core and modules in place and obsolete prior versions of this family. - Retire the fallback selector and install-only capability. - Queue one exact alpha UKI job; perform no UKI work in the RPM transaction. * Sat Aug 29 2026 mcc45tr - 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. - Expose both camera calibration EEPROMs read-only through AT24/nvmem. - Connect both rear PMIC flash LEDs through the V4L2 flash bridge. - Add OV13B10 Device Tree matching and complete camera payload checks. * Fri Aug 28 2026 mcc45tr - 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.