xm530: add anbiux A8B-3MP (IPC-RB-BLK530AI, ATBM6032 USB WiFi) - #130
xm530: add anbiux A8B-3MP (IPC-RB-BLK530AI, ATBM6032 USB WiFi)#130yatotoshka wants to merge 2 commits into
Conversation
PR Summary by QodoAdd Anbiux A8B-3MP XM530 profile and forkable firmware builds
AI Description
Diagram
High-Level Assessment
Files changed (7)
|
Code Review by Qodo
1. Remove unused MT7601U firmware
|
| BR2_PACKAGE_LIBEVENT_OPENIPC=y | ||
| BR2_PACKAGE_LIBOGG_OPENIPC=y | ||
| BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC=y | ||
| BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U=y |
There was a problem hiding this comment.
1. Remove unused mt7601u firmware 📘 Rule violation ⚙ Maintainability
5
The device defconfig enables MediaTek MT7601U firmware even though this board uses the AltoBeam ATBM6032 USB radio. This adds unrelated payload to an 8 MB image whose device-specific exclusions already prune other unused WiFi stacks for space.
Agent Prompt
## Issue description
The device defconfig selects MT7601U firmware that is not used by the board's ATBM6032 radio.
## Issue Context
The device is configured for `atbm60xx` over USB and uses `atbm603x-xm530-usb`; the extra MediaTek firmware conflicts with the requirement to keep device payload minimal, especially for the configured 8 MB flash.
## Fix Focus Areas
- devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[61-62]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y | ||
|
|
||
| # OpenIPC | ||
| BR2_OPENIPC_SOC_VENDOR="xiongmai" |
There was a problem hiding this comment.
2. New vendor breaks ci 🐞 Bug ≡ Correctness
Adding BR2_OPENIPC_SOC_VENDOR="xiongmai" creates a new build trait, but no Xiongmai target is added to SMOKE_TARGETS; ci-matrix.py --self-test therefore reports the uncovered vendor:xiongmai trait and exits before the build matrix is selected. Because every PR, nightly, and manual run executes that self-test, this device will not be built or published and its configured latest/...-nor.tgz upgrade URL will have no release artifact.
Agent Prompt
## Issue description
The new Xiongmai device introduces the `vendor:xiongmai` CI trait, but the smoke matrix contains no target with that trait. The mandatory matrix self-test consequently fails and prevents all builds from starting.
## Issue Context
Add `xm530_lite_anbiux-a8b-3mp` to `SMOKE_TARGETS` (or replace an existing smoke target only if all existing trait and shared-directory coverage remains intact), then run `python3 .github/scripts/ci-matrix.py --self-test`.
## Fix Focus Areas
- .github/scripts/ci-matrix.py[104-120]
- devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[38-38]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
adc174d to
eb208b1
Compare
The defconfig selects the atbm60xx driver (603x, USB) on top of xm530_lite, and drops the MT7601U firmware this radio does not use. The customizer sets wlandev to the atbm603x-xm530-usb case in firmware's /etc/wireless/usb and wifipdn to the PDN gpio (after which S40network applies the MAC and runs ifup), and points the upgrade url at this device's builder release. Depends on OpenIPC/firmware#2316: it provides the bring-up case, the depmod pass that makes the driver stack resolvable by modprobe, and the cfg80211 coexistence (the vendor rewrite ships as cfg80211_xm711.ko, atbm60xx uses the in-tree module). xm530_lite_anbiux-a8b-3mp joins SMOKE_TARGETS: the vendor:xiongmai trait must be covered or ci-matrix.py's self-test refuses to select a build matrix.
eb208b1 to
e8f06b6
Compare
|
Code review by qodo was updated up to the latest commit e8f06b6 |
builder.sh hardcoded the OpenIPC/firmware clone URL, so a device could
never be built against a fork carrying unmerged changes (e.g. the
xiongmai ATBM6032 USB WiFi branch). Route the clone through
${OPENIPC_FW_REPO:-https://github.com/OpenIPC/firmware.git} and expose
it as the firmware_repo input of build-one, next to firmware_ref.
|
Code review by qodo was updated up to the latest commit 826ab1d |
Problem
No XM530 device exists in builder. This camera (anbiux A8B-3MP, board
IPC-RB-BLK530AI-0235P-AB0 V1.03, XM530AI + SmartSens SC3335) carries an
AltoBeam ATBM6032 USB WiFi (007a:8888) with power-down on gpio 96; the stock
xm530_liteimage has neither the driver nor a bring-up path for it.What this change does
Device profile
xm530_lite_anbiux-a8b-3mp(commit e8f06b6):xm530_lite_anbiux-a8b-3mp_defconfig— a snapshot ofxm530_lite_defconfigplus
atbm60xx(603x, USB), and with the MT7601U firmware dropped (thisradio is not an MT7601U).
customizer.sh— on first boot setswlandev=atbm603x-xm530-usb(thebring-up case in firmware's
/etc/wireless/usb),wifipdn=96(the casereads the PDN gpio from the
wifipdnenv at run time), and the upgrade urlto this device's builder release, so the Web UI update keeps pulling this
device's image; reboots after 3 s.
xm530_lite.list— prunes the wifi stacks this radio does not use (xm711 +its compat shim, 8188fu) to leave room for the atbm60xx module in the 5M
rootfs.
ci-matrix.py— joinsSMOKE_TARGETS(thevendor:xiongmaitrait must becovered or the matrix self-test refuses to select a build matrix) and the
README device table gets its row.
Build support (commit 826ab1d):
builder.sh— the firmware clone is routed through${OPENIPC_FW_REPO:-https://github.com/OpenIPC/firmware.git}; with thevariable unset the behaviour is exactly as before.
build-one— newfirmware_repoinput next to the existingfirmware_ref,so a device that depends on unmerged firmware changes can be built against a
fork.
master until xm530: bring up the AltoBeam ATBM6032 USB WiFi chip firmware#2316 is merged; the input is what makes that
build possible (and is generally useful for any cross-repo bisect against a
fork).
Dependency
OpenIPC/firmware#2316 (rebased
on upstream master
317b443d, 2026-09-06; draft until its clean-build path isverified on-device): without it the image has no atbm60xx module, no
/etc/wireless/usbcase, and nodepmodpass over the merged target (thevendor
modules.depleavesdwc_otg/wifi_pdninvisible tomodprobe), sothe radio cannot load. It also makes the vendor
cfg80211rewrite coexist withthe in-tree one instead of over it. This profile keeps the atbm60xx selection
explicit in its defconfig snapshot and adds the per-device parts: first-boot
wlandev/wifipdn, the device upgrade url, and the prune list.Hardware tested on
XM530AI (marking 30WX1), board IPC-RB-BLK530AI-0235P-AB0 V1.03, SmartSens
SC3335, AltoBeam ATBM6032 USB WiFi (007a:8888), PDN on gpio 96, 128GB FAT32
(SDXC) card.
Evidence
Re-verified 2026-09-06 from a factory-clean state (env wiped) on the current
nightly (
master+4c34a66): the chip, PDN gpio 96 and the load order(dwc_otg → wifi_pdn → atbm603x) are proven on this camera — it is associated
and takes a DHCP lease:
The Web UI is reachable over both the Ethernet address (192.168.1.242) and the
Wi-Fi address (192.168.1.243).
Status: the camera currently loads the driver from a prebuilt blob (built from
the same atbm_60xx revision firmware#2316 pins) plus a local init script. The
profile's clean-build path (customizer
wlandev/wifipdn→S40network→ thewireless/usbcase) is what a build of this branch will verify end to end.How to build (before #2316 is merged)
build-onewithplatform=xm530_lite_anbiux-a8b-3mp,firmware_repo=https://github.com/yatotoshka/firmware.git,firmware_ref=xiongmai-atbm60xx-wifi→ publishesxm530_lite_anbiux-a8b-3mp-nor.tgz, the same name the customizer's upgrade urlpoints at.
Scope
processor_flavor_vendor-modelnaming and the minimal-file layout from the READMEOPENIPC_FW_REPOchange is a default-preserving override (unset → identical clone behaviour as before)