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

56 lines
3.6 KiB
Markdown

# 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.