Skip to content

rv1103: add Luckfox Pico Mini B device profile (NAND, SC3336, RTL8812AU) - #200

Draft
kkbin505 wants to merge 2 commits into
OpenIPC:masterfrom
kkbin505:feat/rv1103-mini-b
Draft

kkbin505 wants to merge 2 commits into
OpenIPC:masterfrom
kkbin505:feat/rv1103-mini-b

Conversation

@kkbin505

@kkbin505 kkbin505 commented Oct 14, 2026 •

Copy link
Copy Markdown

Split out of OpenIPC/firmware#2411, following the review feedback there: custom configuration profiles belong in builder, and firmware keeps only the generic changes. That PR will be reduced to the generic parts (SD-card overlay in /init).

What this adds

devices/rv1103_lite_luckfox-pico-mini-b:

  • SPI NAND layout and kernel cmdline
  • defconfig selecting RTL8812AU, iw and wifibroadcast
  • Mini B USB-host kernel image target
  • wfb.yaml without a telemetry: section, so telemetry is not configured (mavfwd was tried on this board and runs out of memory)
  • customizer.sh pointing sysupgrade at the -nand.tgz image
  • registered as the Rockchip smoke target in ci-matrix.py (--self-test passes)

Dependencies

Status

Draft. A local build of an earlier revision of this profile succeeded (NAND and NOR images, zboot.img); this exact revision has not been rebuilt and nothing has been validated on hardware yet (USB host role, 88XXau loading, video, replug, persistence). No result is claimed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LUgGwhWgAFEH2WaWWVxcUd

Device profile split out of OpenIPC/firmware#2411 per review: custom
configuration profiles belong in builder, firmware keeps only generic changes.

Adds rv1103_lite_luckfox-pico-mini-b: SPI NAND layout and kernel cmdline,
RTL8812AU + iw + wifibroadcast selected in the defconfig, no telemetry
section in wfb.yaml (mavfwd runs out of memory on this board), and the Mini B
USB-host kernel image target. Registers the device as the Rockchip smoke
target in ci-matrix.py.

Hardware validation is pending.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LUgGwhWgAFEH2WaWWVxcUd

@openipc-ai openipc-ai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for splitting this out of firmware #2411. I also looked at the two upstream dependencies: OpenIPC/linux #68 and OpenIPC/realtek-wlan #10 both look correct to me. (#ifdef CONFIG_TXPWR_LIMIT is the right fix, because drv_conf.h defines the macro with no value. The proc_ops shim produces the same code as before on kernels older than 5.6.) Three things need changing here, plus one CI issue outside this diff.

CI cache will keep the old driver after realtek-wlan #10 merges (not in this diff). The "Refresh moving-ref package downloads" step in .github/workflows/master.yml only clears cached downloads whose names end in -(HEAD|master|main|dist). rtl8812au-openipc is pinned to the branch rtl8812au_fpv, and its download is in the monthly builder-dl cache because the wfbng targets use it. So once #10 merges, CI would still build the pre-fix source until the cache key rolls over the next month, and this board would still fail. The same applies to the branch-named kernel download (rockchip-rv1106.tar.gz) once it gets cached. That regex needs widening (in this PR or a separate one) before the device comes out of NOT_BUILT.

# directories. --self-test enforces that cover rather than the list, so these can
# be re-picked freely while it holds.
SMOKE_TARGETS = [
"rv1103_lite_luckfox-pico-mini-b", # Rockchip lite, SPI NAND

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This board can't build until OpenIPC/linux #68 and OpenIPC/realtek-wlan #10 merge. Both are still drafts. Without #68, rv1103g-luckfox-pico-mini-b-usb-host.img doesn't exist on rockchip-rv1106; without #10, rtl8812au_fpv doesn't compile against 5.10. Having a defconfig is enough to put the device in the nightly, and listing it here also builds it on every PR that touches master.yml, so both go red.

Please drop it from SMOKE_TARGETS and add it to NOT_BUILT until both upstream PRs land. Both changes are needed, because the self-test rejects a SMOKE target that isn't built.

@@ -0,0 +1,4 @@
#!/bin/sh
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/rv1103_lite_luckfox-pico-mini-b-nand.tgz'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-update can't work with the -nand.tgz archive. For rockchip, repack puts only rootfs.ubi in the NAND archive. sysupgrade always uses the NOR-style package ("the updater uses the NOR package for updating NAND") and looks for /tmp/zboot.img.rv1103 + /tmp/rootfs.squashfs.rv1103. It would stop with File /tmp/zboot.img.rv1103 not found.

The defconfig enables squashfs, so the build also produces the NOR package; point this at that one:

Suggested change
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/rv1103_lite_luckfox-pico-mini-b-nand.tgz'
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/rv1103_lite_luckfox-pico-mini-b-nor.tgz'

Pass its absolute path as `BR2_PACKAGE_OVERRIDE_FILE` when running
`make BOARD=rv1103_lite_luckfox-pico-mini-b`.

`general/overlay/etc/wfb.yaml` has no `telemetry:` section, so telemetry (`mavfwd`) is not

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving out the telemetry: section doesn't disable telemetry. The wifibroadcast init calls start_telemetry on every start, whatever the config says. That starts the extra wfb_rx/wfb_tx pair on 14550/14551 (load_wfb 144 16 ...). Because $router is empty, it then falls into the else branch and starts msposd with -m /dev/, -r "" and -z "".

So every boot spawns a broken msposd plus two wfb processes, on the same board where mavfwd was dropped for running out of memory. Telemetry needs to be properly disabled: either an explicit opt-out that wifibroadcast honours (a firmware change), or a device-side override. After that, this paragraph needs updating.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants