Build fails the ZMK compat check: xiao_ble needs its ZMK board variant #1
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Firmware builds fine, then the job is failed deliberately by upstream's guard rail:
The build itself succeeds — same log, before the check:
So this is purely a migration prompt, not a broken build. Upstream's
build-user-config.ymlrunsCheck if building a board without explicit ZMK compatwithif: always()and exits 1 when the board lacksCONFIG_ZMK_BOARD_COMPAT=ywhile a ZMK variant ofthat board exists.
Cause
build.yamlselects the plain board:and
config/west.ymlrides upstream unpinned:so ZMK's Zephyr 4.1 board-variant change arrived automatically. Under hardware model v2 the board
needs its ZMK variant qualifier rather than the bare
xiao_ble.Options
build.yamlto the ZMK variant ofxiao_blefor all four entries(
totem_left,totem_right,totem_dongle,settings_reset). Correct fix, keeps us onmain.Exact qualifier per the blog post above.
revision:to a release predating the change; seepinning your ZMK version.
Related
ma3s7r0/zmk-sofle#1is the same root cause — riding ZMKmain— with a different symptom: thatrepo defines its own
eyelash_sofle_*boards, which current Zephyr no longer resolves at all, so itfails earlier, at Kconfig generation. Worth deciding pin-vs-migrate once for both repos.
Unrelated to the Forgejo migration (
ma3s7r0/nix-config#78): CI on git.cl12.de is working — thisrun scheduled on the errata runner, started the
zmkfirmware/zmk-build-arm:stabletoolchaincontainer, ran west and cmake, and linked working firmware.
Fixed by selecting the ZMK variant of the board in
build.yaml:app/boards/seeed/xiao_ble/board.ymlin zmk extends the stock Zephyr board with a variant namedzmk, qualified onnrf52840— so the target isxiao_ble/nrf52840/zmk, shortened toxiao_ble//zmksince the board has only one SoC. Building the plain board got Zephyr's versionwithout ZMK's defaults, which is what the compat check was rejecting.
All four matrix entries now build green, and the run publishes a
firmwareartifact(1,442,816 bytes). Unlike the sofle repos, this one stays on zmk
main— it uses an in-tree board,so there is no HWMv1 board definition holding it back.
Ref: zmk.dev/blog/2025/12/09/zephyr-4-1#zmk-board-variant