%global debug_package %{nil} %global nabu_product_version 1.4.1.2 %global nabu_release %{nabu_product_version}-alpha.1 %global uname_r 6.17.0-nabu-senemos-v%{nabu_release} Name: senemos-nabu-kernel-alpha Epoch: 1 Version: 1.17.0 Release: 0.10.alpha.v1.4.1.2%{?dist} Summary: Source-built 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 Source0: linux-nabu-v%{nabu_release}.tar.zst Source1: 91-nabu-late-xhci.conf Source2: 90-nabu-late-xhci.conf 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 %description Experimental SENEMOS Linux 6.17 kernel channel for Xiaomi Pad 5, built from source inside COPR. Version v1.4.1.2 combines the reviewed Nabu v1.4.0.9 hardware line with the SM8150 Iris stateful V4L2 driver and opt-in persistent suspend diagnostics. It gates pre-freezer NVT and keyboard-cover wake events, keeps legacy VPU5 active across s2idle instead of aborting suspend with -EAGAIN, and relies on userspace DSP quiescing for the ADSP client process. It remains alpha until physical boot, decode, suspend, wake and rollback tests pass. %package -n senemos-nabu-kernel-alpha-fallback Summary: Linux 6.17 v%{nabu_product_version} 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-10.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 v%{nabu_product_version} into the protected SENEMOS6 fallback slot while the Linux 7.2 SENEMOS7 entry remains canonical. %package -n senemos-nabu-kernel-alpha-core Summary: Nabu v%{nabu_release} kernel image, configuration and device tree Requires(posttrans): kmod Requires(posttrans): coreutils 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. The DT exposes the SM8150 Iris1 video codec and reserves ramoops for persistent console and function-trace records. %package -n senemos-nabu-kernel-alpha-modules Summary: Nabu v%{nabu_release} 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 the SENEMOS Nabu v%{nabu_release} alpha kernel, including qcom-iris for stateful SM8150 V4L2 decode. %prep %autosetup -n linux-nabu-v%{nabu_release} %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 '-nabu-senemos-v%{nabu_release}' \ --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 'v%%s\n' '%{nabu_product_version}' > \ %{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 grep -Fxq 'CONFIG_LOCALVERSION="-nabu-senemos-v%{nabu_release}"' \ %{buildroot}/boot/config-%{uname_r} grep -Fxq 'CONFIG_VIDEO_QCOM_IRIS=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} modinfo -F vermagic \ %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/media/platform/qcom/iris/qcom-iris.ko | \ grep -Fq '%{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:1.17.0-0.10.alpha.v1.4.1.2 - Gate NVT and keyboard-cover wake events during suspend preparation. - Avoid the unsupported legacy VPU5 power-collapse callback during s2idle. - Defer canonical and protected-fallback UKI preparation to serialized maintenance. * Thu Aug 27 2026 SENEMOS Project - 1:1.17.0-0.5.alpha.v1.4.1.0 - Build the complete Linux kernel, Nabu DTB and modules from source in COPR. - Integrate SM8150 Iris1 V4L2 decode with its matching firmware contract. - Add opt-in persistent ftrace, PM debug and device-PM watchdog support. - Generate the SENEMOS6 v1.4.1.0 fallback UKI in verbose diagnostic mode.