Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/scripts/ci-matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@
# 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.

"gk7205v200_lite_tiandy-tc-c321n", # Goke lite
"hi3518ev200_lite_switcam-hs303", # HiSilicon lite
"hi3516ev300_ultimate_rvi-1ncmw2028", # HiSilicon ultimate
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ Jooan A6M-U vB T23N SC1A4T ATBM6012B_USB NOR_8M **INI
Jooan Q3R-U T23N SC1346 ATBM6012B_USB NOR_8M **INIT** - in progress
JVS INGT10 GQS60EP T10A OV9750 - NOR_8M done
Lenovo Snowman 1080P HI3518EV200 SC2035 RTL8188EUS_USB NOR_16M in progress, LightSensor-no
Luckfox Pico Mini B RV1103 SC3336 RTL8812AU_USB NAND_128M build-ok, hardware-test-pending
LSC 3215672 T23N SC2331 ATBM6012B_USB NOR_8M **INIT** - progress
Meari Speed 6S SSC333 JXF37 RTL8188FU_USB NOR_16M video-yes, wifi-yes, motors-no
OpenIPC AIO Mario SSC338Q IMX335 RTL8812AU_USB NOR_16M done
Expand Down
34 changes: 34 additions & 0 deletions devices/rv1103_lite_luckfox-pico-mini-b/NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Luckfox Pico Mini B

Test profile for RV1103, SC3336, SPI NAND and a directly attached RTL8812AU USB
adapter. Hardware validation of this exact profile is pending.

The kernel image target is `rv1103g-luckfox-pico-mini-b-usb-host.img`, introduced
by OpenIPC/linux #68. It inherits the Mini NAND/camera configuration and disabled
Ethernet. The old Pico Plus host patch and `S22usbhost` PHY override are not used.
The NAND partition command line follows the existing RV1103 NAND test image.
The test artifacts include a separate `zboot.img` and a UBI rootfs image. Ensure
the booted kernel/DTB is updated as well as the rootfs; a rootfs-only update does
not test the new Mini B DTS. The packaged `kernel` UBI volume and the separate
`boot` partition are distinct in this layout.

Prerequisites before building against upstream repositories:

- OpenIPC/linux #68: Mini B USB host DTS.
- OpenIPC/realtek-wlan #10: Linux 5.10 compatibility on `rtl8812au_fpv`.
This profile is NAND-only: the SD-card persistent overlay from firmware #2411 is not used here.

For local testing, layer this directory over the local firmware tree and set a
Buildroot override file containing `LINUX_OVERRIDE_SRCDIR` and
`RTL8812AU_OPENIPC_OVERRIDE_SRCDIR` to the corresponding checked-out PR branches.
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.

configured on this profile; `mavfwd` runs out of memory on this board. Video and
tunnel startup remain enabled. If UART3 telemetry is wanted later, add the section
(`router: mavfwd`, `serial: ttyS3`) and enable UART3 in the Mini B DTS.

Validate the booted model, USB host role, `88XXau` module loading, camera/video,
adapter unplug/replug, and persistence across reboot. Record results before
marking the device supported. No USB hub compatibility is claimed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CONFIG_CMDLINE="user_debug=31 storagemedia=mtd androidboot.storagemedia=mtd androidboot.mode=normal rootwait earlycon=uart8250,mmio32,0xff4c0000 console=ttyFIQ0 mtdparts=spi-nand0:256K(env),256K@256K(idblock),512K(uboot),4M(boot),30M(oem),6M(userdata),85M(rootfs) ubi.mtd=6 root=/dev/mtdblock8 rootfstype=squashfs ro init=/init snd_soc_core.prealloc_buffer_size_kbytes=16 coherent_pool=0 rk_dma_heap_cma=24M"
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
# CONFIG_CMDLINE_EXTEND is not set
CONFIG_CMDLINE_FORCE=y
CONFIG_WLAN=y
CONFIG_WIRELESS_EXT=y
CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y
CONFIG_CFG80211_WEXT=y
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Luckfox Pico Mini B: SPI NAND, SC3336 and external RTL8812AU.
# Requires OpenIPC/linux #68 and OpenIPC/realtek-wlan #10.
# Architecture
BR2_arm=y
BR2_cortex_a7=y
BR2_ARM_FPU_NEON_VFPV4=y

# Toolchain
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-gnueabihf"
BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_10=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
# BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_TOOLCHAIN_EXTERNAL_OPENMP=y

# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/rv1106.generic.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(EXTERNAL_VENDOR)/board/rv1103/luckfox-pico-mini-b.nand.config"
BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
BR2_LINUX_KERNEL_XZ=y
BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="rv1103g-luckfox-pico-mini-b-usb-host.img"
BR2_LINUX_KERNEL_IMAGE_NAME="zboot.img"

# Filesystem
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config"
BR2_PACKAGE_MTD=y
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_ZLIB=y
BR2_PACKAGE_E2FSPROGS=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_TARGET_ROOTFS_UBI=y
BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048
BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG=y
BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/scripts/ubifs/ubinize_rockchip.cfg"
BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000

# OpenIPC
BR2_OPENIPC_SOC_VENDOR="rockchip"
BR2_OPENIPC_SOC_MODEL="rv1103"
BR2_OPENIPC_SOC_FAMILY="rv1106"
BR2_OPENIPC_VARIANT="lite"
BR2_OPENIPC_FLASH_SIZE="128"

# Packages
BR2_PACKAGE_ROCKCHIP_OSDRV_RV11XX=y
# BR2_PACKAGE_RTL8812AU is not set
BR2_PACKAGE_RTL8812AU_OPENIPC=y
BR2_PACKAGE_DROPBEAR_OPENIPC=y
BR2_PACKAGE_IPCTOOL=y
BR2_PACKAGE_LIBCURL_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set
BR2_PACKAGE_LIBEVENT_OPENIPC=y
BR2_PACKAGE_LIBOGG_OPENIPC=y
BR2_PACKAGE_MAJESTIC_FONTS=y
BR2_PACKAGE_MAJESTIC_WEBUI=y
BR2_PACKAGE_MAJESTIC=y
BR2_PACKAGE_MBEDTLS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y

BR2_PACKAGE_IW=y

BR2_PACKAGE_WIFIBROADCAST_NG=y
BR2_PACKAGE_FFMPEG_OPENIPC=y
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
wireless:
txpower: 1
channel: 161
width: 20
mlink: 1500
broadcast:
mcs_index: 2
tun_index: 1
fec_k: 8
fec_n: 12
stbc: 0
ldpc: 0
link_id: 7669206
Original file line number Diff line number Diff line change
@@ -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'


exit 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# USB host is selected by the Mini B DTS, without the old PHY override.
/etc/init.d/S22usbhost