4 KiB
B12R — Wi-Fi → LTE router inside Alpine (2026-10-04) — RAM VALIDATED
Pieces
- Kernel
7.2.7-aurora-b12(/home/q/aurora-kbuild/out-b12, Image 1e8837fc): b10b5 production config + NETFILTER/NF_TABLES/NFT_NAT/NFT_MASQ/CONNTRACK/ NFT_REJECT/NFT_FIB_IPV4/NFT_LOG/LIMIT (+NET_INGRESS/EGRESS/CRC32C pulled in); same tree src-b10b5 (LBC supervisor v4 unchanged). Fragment linux/aurora-b12.config. - p27 (Alpine): nftables 1.1.6-r1, dnsmasq 2.92_p2-r0 (+ libnftnl, libmnl, jansson, readline) from a local repo;
/usr/sbin/aurora-router up|down|status,/etc/aurora/router.conf, OpenRCaurora-router(need aurora-modem aurora-wifi; waits for START OK + AP ENABLED). Not in any runlevel yet. - RAM image
b12/b12r/out/aurora-b12r.img228ebdc3 = kernel b12 + DTB e47762d1 + B9C cmdline + B12Q initramfs.
Design (runtime only, state in /run/aurora-router)
LAN wlan0 192.168.77.1/24, DHCP .100–.199 1h, dnsmasq bound to wlan0 only (upstream = bearer DNS); default route dev wwan0 added only if absent and removed on down;
ip_forward=1; nft table inet aurora_router: input — mgmt usb0 + lo accepted, wlan0 only DHCP/DNS/ping to 192.168.77.1 (everything else incl. 172.16.42.1 dropped),
wwan0 only established/related + ICMP errors; forward policy drop — wlan0→wwan0 accept, wwan0→wlan0 established only, wlan0↔usb0 drop; postrouting masquerade LAN→wwan0.
RAM test normal1 (2026-10-04)
- Alpine on p27, PID1 Alpine init, kernel 7.2.7-aurora-b12, modem START OK 74.7 s, AP 78 s,
nft list tablesOK. - Bug found + fixed: busybox
ip route show defaultprints all routes → default route not added; nowip route | grep ^default. - Board itself: default via wwan0,
nslookup ya.ru 192.168.77.1OK, apk update via https://mirror.yandex.ru/mirrors/alpine/v3.24 OK (28553 pkgs). - Operator note: Beeline currently answers foreign hosts with RST (8.8.8.8, dl-cdn/Fastly, neverssl) with and without our nft table → operator-side whitelisting, not the router. Russian hosts (ya.ru, mirror.yandex.ru) work.
- Phone client (): DHCPACK 192.168.77.199, ya.ru opened; forward LAN→WAN 8941 pkts/4.7 MB, WAN→LAN 14149 pkts/16.2 MB, masquerade 147 flows.
- Isolation: phone → http://172.16.42.1 → 10 packets dropped by
ip daddr != 192.168.77.1(lan_in); http://172.16.42.2 never reached the board (forward wlan0→usb0 counter 0 — rule present but not exercised by traffic). LTE→LAN default-deny counter 0 (CGNAT; not testable from outside). - eMMC writes only p27. RAM used 55 MB.
Persistent candidate (NOT written)
b12/b12r/cache/cache-extlinux-b12r.img e85d862e (B12Q recipe, kernel b12, label b12r). Emulator: S14 boots (kernel 1e8837fc 25159688 B, dtb e47762d1,
ramdisk 9ade7cff), S13 = live B12Q identical, F1/F3 revert. Write b12/b12r/B12R-write.sh (expects live B12Q 59272cd3), rollback b12/b12r/B12R-rollback.sh → B12Q.
After the write + first boot: rc-update add aurora-router default (p27 only) to make the router start on boot.
Open
- DONE: apk repositories → mirror.yandex.ru (see end of file).
- No IPv6 for LAN; no MSS clamp (NFT_RT off; MTU 1500 both sides); dnsmasq runs as root; DNS query logging off.
Persistent (2026-10-04, GO)
- HW EDL
B12R-write.sh: B12R_CACHE_WRITE_VERIFIED — cache e85d862e (readback match), backup W/pre-cache.bin = B12Q 59272cd3, all other partitions unchanged. - cold1 (no RESET): kernel 7.2.7-aurora-b12 #7, stage0 fsck clean + switch_root (1/3), BOOT OK 5.5 s, / = p27, modem START OK 77.0 s, ping 4/4, AP 81.5 s, DISPLAY READY, charger CHARGING fault none, RW only disk flag + p27, writes only p27.
- Then
rc-update add aurora-router default(p27) + start → ROUTER UP OK, default dev wwan0, table inet aurora_router. Autostart on the next boot not yet observed. - (driver cold message still printed the old hash label "B12R 59272cd3" — cosmetic.)
- 2026-10-04: /etc/apk/repositories on p27 switched to https://mirror.yandex.ru/mirrors/alpine/v3.24/{main,community} (old file kept as /etc/apk/repositories.dl-cdn); apk update OK (28553 pkgs).