From b925d3aed9053ba8f813519a9db3ea9139dbcd38 Mon Sep 17 00:00:00 2001 From: kkbin505 <19462942@qq.com> Date: Wed, 14 Oct 2026 02:25:32 +0000 Subject: [PATCH] rv1103: add Luckfox Pico Mini B device profile (NAND, SC3336, RTL8812AU) 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 Claude-Session: https://claude.ai/code/session_01LUgGwhWgAFEH2WaWWVxcUd --- .github/scripts/ci-matrix.py | 1 + README.md | 1 + .../rv1103_lite_luckfox-pico-mini-b/NOTES.md | 34 ++++++++ .../rv1103/luckfox-pico-mini-b.nand.config | 9 ++ .../rv1103_lite_luckfox-pico-mini-b_defconfig | 82 +++++++++++++++++++ .../general/overlay/etc/wfb.yaml | 13 +++ .../overlay/usr/share/openipc/customizer.sh | 4 + .../general/scripts/excludes/rv1103_lite.list | 2 + 8 files changed, 146 insertions(+) create mode 100644 devices/rv1103_lite_luckfox-pico-mini-b/NOTES.md create mode 100644 devices/rv1103_lite_luckfox-pico-mini-b/br-ext-chip-rockchip/board/rv1103/luckfox-pico-mini-b.nand.config create mode 100644 devices/rv1103_lite_luckfox-pico-mini-b/br-ext-chip-rockchip/configs/rv1103_lite_luckfox-pico-mini-b_defconfig create mode 100644 devices/rv1103_lite_luckfox-pico-mini-b/general/overlay/etc/wfb.yaml create mode 100755 devices/rv1103_lite_luckfox-pico-mini-b/general/overlay/usr/share/openipc/customizer.sh create mode 100644 devices/rv1103_lite_luckfox-pico-mini-b/general/scripts/excludes/rv1103_lite.list diff --git a/.github/scripts/ci-matrix.py b/.github/scripts/ci-matrix.py index 80c49d1b3..932cf7e9d 100644 --- a/.github/scripts/ci-matrix.py +++ b/.github/scripts/ci-matrix.py @@ -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 "gk7205v200_lite_tiandy-tc-c321n", # Goke lite "hi3518ev200_lite_switcam-hs303", # HiSilicon lite "hi3516ev300_ultimate_rvi-1ncmw2028", # HiSilicon ultimate diff --git a/README.md b/README.md index c46878081..a5b93601c 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/devices/rv1103_lite_luckfox-pico-mini-b/NOTES.md b/devices/rv1103_lite_luckfox-pico-mini-b/NOTES.md new file mode 100644 index 000000000..75f8ca99e --- /dev/null +++ b/devices/rv1103_lite_luckfox-pico-mini-b/NOTES.md @@ -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 +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. diff --git a/devices/rv1103_lite_luckfox-pico-mini-b/br-ext-chip-rockchip/board/rv1103/luckfox-pico-mini-b.nand.config b/devices/rv1103_lite_luckfox-pico-mini-b/br-ext-chip-rockchip/board/rv1103/luckfox-pico-mini-b.nand.config new file mode 100644 index 000000000..ae5879da3 --- /dev/null +++ b/devices/rv1103_lite_luckfox-pico-mini-b/br-ext-chip-rockchip/board/rv1103/luckfox-pico-mini-b.nand.config @@ -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 diff --git a/devices/rv1103_lite_luckfox-pico-mini-b/br-ext-chip-rockchip/configs/rv1103_lite_luckfox-pico-mini-b_defconfig b/devices/rv1103_lite_luckfox-pico-mini-b/br-ext-chip-rockchip/configs/rv1103_lite_luckfox-pico-mini-b_defconfig new file mode 100644 index 000000000..61904da4c --- /dev/null +++ b/devices/rv1103_lite_luckfox-pico-mini-b/br-ext-chip-rockchip/configs/rv1103_lite_luckfox-pico-mini-b_defconfig @@ -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 diff --git a/devices/rv1103_lite_luckfox-pico-mini-b/general/overlay/etc/wfb.yaml b/devices/rv1103_lite_luckfox-pico-mini-b/general/overlay/etc/wfb.yaml new file mode 100644 index 000000000..0298bfb94 --- /dev/null +++ b/devices/rv1103_lite_luckfox-pico-mini-b/general/overlay/etc/wfb.yaml @@ -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 diff --git a/devices/rv1103_lite_luckfox-pico-mini-b/general/overlay/usr/share/openipc/customizer.sh b/devices/rv1103_lite_luckfox-pico-mini-b/general/overlay/usr/share/openipc/customizer.sh new file mode 100755 index 000000000..eb2d1efc5 --- /dev/null +++ b/devices/rv1103_lite_luckfox-pico-mini-b/general/overlay/usr/share/openipc/customizer.sh @@ -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' + +exit 0 diff --git a/devices/rv1103_lite_luckfox-pico-mini-b/general/scripts/excludes/rv1103_lite.list b/devices/rv1103_lite_luckfox-pico-mini-b/general/scripts/excludes/rv1103_lite.list new file mode 100644 index 000000000..16f779b55 --- /dev/null +++ b/devices/rv1103_lite_luckfox-pico-mini-b/general/scripts/excludes/rv1103_lite.list @@ -0,0 +1,2 @@ +# USB host is selected by the Mini B DTS, without the old PHY override. +/etc/init.d/S22usbhost