%global debug_package %{nil} %global nabu_build_stamp 2609011354 %global uname_r 6.17.0-senemos-%{nabu_build_stamp} Name: senemos-nabu-kernel-alpha Version: 6.17.0 Release: %{nabu_build_stamp}.alpha%{?dist} Summary: SENEMOS Linux 6.17 alpha kernel for Xiaomi Pad 5 License: GPL-2.0-only AND MIT URL: https://github.com/MCC45TR/nabu-linux-kernel ExclusiveArch: aarch64 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 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 Provides: senemos-nabu-kernel-alpha-build = %{nabu_build_stamp} Provides: nabu-iris-kernel = %{version}-%{release} %description Timestamped SENEMOS Linux 6.17 alpha channel for Xiaomi Pad 5. The kernel contains the Nabu camera graph and an idempotent SDSP FastRPC ownership handoff. Release UKIs retain quiet Plymouth startup; verbose boot is an explicit administrator choice and is never enabled merely by installing this package. %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 -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 -e %{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 -Eq '^CONFIG_(PM_DEBUG|DPM_WATCHDOG|PSTORE_FTRACE|FTRACE)=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 -Fq 'PDN_DONE timeout accepted' sound/soc/codecs/cs35l41.c grep -aFq 'cirrus,allow-missing-pdn-done' build/sound/soc/codecs/snd-soc-cs35l41.ko grep -aFq 'PDN_DONE timeout rejected' 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 grep -Fq 'qcom,vmids-retained-on-restart' drivers/misc/fastrpc.c grep -Fq 'qcom,vmids-retained-on-restart' arch/arm64/boot/dts/qcom/sm8150-xiaomi-nabu.dts grep -Fq 'SDSP reserved memory ownership was retained' drivers/misc/fastrpc.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/uki-version.d/%{uname_r} %{_prefix}/lib/modules/%{uname_r}/kernel/ %changelog * Tue Sep 01 2026 mcc45tr - 6.17.0-%{nabu_build_stamp}.alpha - Accept the expected retained SDSP ownership response only on the Nabu DT path. - Stop installing verbose UKI markers and disable release tracing overhead. * Sun Aug 30 2026 mcc45tr - 6.17.0-%{nabu_build_stamp}.alpha - Validate the CS35L41 missing-PDN acceptance branch in source and its property and rejection path in the module; debug-only acceptance text is optimized out. * Sat Aug 29 2026 mcc45tr - 6.17.0-%{nabu_build_stamp}.alpha - Make the SM8150 camera clock controller built-in and explicitly retain CCI. - Validate the complete camera clock, bus, sensor and media configuration. * Sat Aug 29 2026 mcc45tr - 6.17.0-%{nabu_build_stamp}.alpha - Use the kernel ABI, Istanbul build stamp and alpha channel as the complete dynamic RPM identity and remove the legacy epoch/revision counter. - Restrict the device kernel binary to AArch64 COPR chroots. * Sat Aug 29 2026 mcc45tr - 1:6.17.0-%{nabu_build_stamp}.5 - Let the first unified build replace the legacy non-install-only selector; CORE makes subsequent releases install-only by stable package name. * Sat Aug 29 2026 mcc45tr - 1:6.17.0-%{nabu_build_stamp}.4 - Keep the running version plus one replacement through DNF's native install-only policy; boot integration still exposes one canonical entry. * 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.