diff --git a/build/warden_defconfig b/build/warden_defconfig index 29b2b1a..1ca9e8c 100644 --- a/build/warden_defconfig +++ b/build/warden_defconfig @@ -1324,6 +1324,16 @@ CONFIG_WIREGUARD=y CONFIG_NET_UDP_TUNNEL=y # VLAN: the MikroTik app configures tagged ports and the panel terminates them. CONFIG_VLAN_8021Q=y +# Bridging. Not in the vendor kernel, and its absence is why the panel's access +# point has to be its own subnet with its own DHCP pool rather than joining the +# LAN's broadcast domain (see the comment in ui-src/src/warden/router.c). With a +# bridge the panel can run an AP the way a UniFi AP does: wlan0 and the LAN port +# in one broadcast domain, addresses handed out by whatever router is already +# upstream. That is a capability this kernel adds, not one it restores. +CONFIG_BRIDGE=y +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_LLC=y +CONFIG_STP=y # Netfilter: S35iptables and router mode. Scoped to what the scripts actually # use -- filter + nat tables, MASQUERADE, and the state/limit matches -- rather # than the vendor kernel's full 124-symbol suite. diff --git a/docs/architecture.md b/docs/architecture.md index e9f05cd..58f0802 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -17,7 +17,7 @@ tested (or not) differently. Today: | HPMCU / RISC-V coproc | `flared/src/hpmcu.rs` | via devmem + firmware blob load | `WARDEN_HPMCU_FW` redirects the blob path only | env gate disables it | | NPU load | `ui-src/.../sysmon.c` | read `/proc/rknpu/load` | **none**, literal path | file absent -> "NPU absent" | | RGA (2D blit) | `ui-src/.../warden_rga.c` | `librga improcess` + dma-heap ioctl | compile-time `#if WARDEN_USE_RGA` | `#if` off -> LVGL software path | -| RS485 daemon | `warden-modbus/modbus_engine.c` | `open("/dev/ttyS4")` | recompile `-DRS485_PORT=` | (recompiled for a pty) | +| RS485 daemon | `apps/warden-modbus/modbus_engine.c` | `open("/dev/ttyS4")` | recompile `-DRS485_PORT=` | (recompiled for a pty) | | RS485 panel client | `ui-src/.../modbus.c` | `AF_UNIX` socket | `WARDEN_MODBUS_SOCK` env override | socket absent -> "unavailable" | | Relays / GPIO | `ui-src/.../relays.c` | `/sys/class/gpio` sysfs | **none**, literal paths | path absent -> "unavailable" | | Slot metadata | `flared/src/slotctl.rs` | `misc` partition + `/proc/cmdline` | `WARDEN_MISC_DEV`, `WARDEN_CMDLINE_FILE` env overrides | (redirected to scratch files) |