Field Notes

Bringing mainline Linux to the NanoPi

The six-build engineering account: PCIe, BE200 support, firmware, boot configuration, patching and thermal limits.

Mainline is not missing this board. It is missing exactly the pieces a sensor needs, and the old image was welded to the vendor kernel at every joint.

The M.2 slot does not exist upstream

PCIe on the Zero2 comes only from an out-of-tree Armbian patch. If that patch fails to apply the card silently is not there, and a failed patch is only a warning. The build now decompiles the device tree and fails unless the PCIe node reads okay.

No Armbian config enables the BE200 driver

CONFIG_IWLMLD has no default, and from 6.18 the BE200 sits behind it. Without the symbol the log says no config was found for the PCI device, which reads like a broken card rather than a missing kernel option.

Firmware has a narrow accepted range

The 7.3 driver loads core-named files from c102 to c107. The 6.18 kernel tops out at c99, so no amount of firmware makes that branch work, which is why the build refuses it outright instead of producing a dead image.

This kernel branch is not one the board supports

The board file only recognises two branches, so a 7.3 image inherits the vendor device-tree name and a console on the wrong UART. That is a board that boots to silence. The image supplies its own boot glue and then checks the result.

User patches do not override core patches

The patcher keys on filename and reads the core directory last, so core wins. An Armbian patch for an unrelated Orange Pi board, space-indented against a tab-indented file, killed the kernel build until a corrected copy could be forced over it.

Nothing upstream watched the temperature

The vendor kernel throttles at 95 °C and cuts power at 120 °C. Mainline has no thermal zone for this SoC at all, so until v1.0.11 the board ran its top operating point at any temperature. The image now carries three kernel patches that add the RK3528 TSADC driver, its device-tree node and a soc-thermal zone, and the build fails if any of the three is missing.

This account describes the documented image build. Read the current NanoPi setup and thermal measurements before choosing hardware.