Files
matrix-screen-controller/核桃派软件源代码/kernel/README.md
T

3.6 KiB

AXP313A / cpufreq candidate kernel

The production application version is intentionally unchanged. This directory describes the separately named 6.1.31-matrix-axp313a1 kernel used to repair the WalnutPi ZeroW PMIC binding.

Source inputs are fixed to:

  • WalnutPi Linux branch 6.1.31, commit 30ff3fd5cf45417622b447a12e7a947402ffe34d.
  • Upstream MFD commit 75c8cb2f4cb218aaf4ea68cab08d6dbc96eeae15.
  • Upstream regulator commit 60fd7eb89670d2636ac3156881acbd103c6eba6a.
  • Upstream identifier fix 4628b804555773daa982d9578d89fe04fcdde374.

The build used the official GitHub archive named walnutpi-linux-6.1.31-30ff3fd5.tar.gz; its measured SHA-256 is 8659bb3d64313c4693c3605374167a8145186e5c9d43eb771a52a7359699302f. The fixed archive is registered at 发布更新相关/其他依赖/kernel-source/walnutpi-linux-6.1.31-30ff3fd5/ so the kernel can be rebuilt without network access. It is a build input and is never copied into an IMG or OTA.

The exact production files accepted by the browser and real HUB75 GPIO tests are registered at 发布更新相关/其他依赖/aarch64-kernel/6.1.31-matrix-axp313a1/. Future IMG exports install this precompiled payload and do not rebuild the kernel unless patches, DTS, or kernel configuration change.

scripts/build_axp313a_kernel.sh accepts an already extracted source tree and a copy of the running board's /boot/config-6.1.31. It never downloads dependencies. The three verbatim upstream patches, the WalnutPi 6.1 reconciliation patch, and the board DTS patches are verified against patches/SHA256SUMS before use. WalnutPi's branch already contains a partial AXP313A backport, so the reconciliation patch asserts that baseline and completes the three pinned upstream changes using the vendor kernel's older power-off API. The follow-up DTS patch keeps the bootloader's DLDO1 VCC-IO rail explicitly always-on at 3.3V; DCDC3 remains at the measured bootloader value of 1.10V so the candidate does not raise a non-CPU rail. The final local build-only patch replaces a vendor UWE5622 Makefile's output-tree-relative include lookup with Kbuild's $(srctree) path. It is required only so the unchanged board configuration can be built in the isolated O= directory; it does not change driver logic. A second mechanical build-only patch applies the same $(srctree) correction to the five Realtek module directories identified in the first config audit. A third patch covers the separately enabled RTL8192EU directory. A fourth covers the enabled CONFIG_88XXAU=m/RTL8812AU directory found by auditing every vendor entry in the wireless parent Makefile, rather than only symbols prefixed RTL. Its PHYDM include root is fixed in a separate final patch so each discovered build assumption remains independently auditable. These patches do not change C source, feature selection, or runtime paths. The RTL88x2CS CONFIG_RTL8822C branch has one additional TopDIR include fixed to $(srctree) after the full module build reached that otherwise output-tree-relative file.

The install path is deliberately separate from the vendor kernel:

  • /boot/Image-matrix-axp313a1
  • /boot/sun50i-h616-walnutpi-1b-matrix-axp313a1.dtb
  • /boot/sun50i-h616-walnutpi-1b-emmc-matrix-axp313a1.dtb
  • /lib/modules/6.1.31-matrix-axp313a1

The managed boot script consumes /boot/matrix-kernel-good once before each candidate boot. Only matrix-axp313a-health.service recreates it after the kernel, AXP313A, cpufreq, application, and HUB75 checks pass. If the candidate fails and reboots, the absent marker selects the original Image and original DTB. Original boot files are retained as .matrix-original copies.