B8A audit, B8B Pronto remoteproc (fixed wcnss_mem 0x8b600000), B8C stock NV (fixes Pronto startup watchdog), B8D cfg80211/mac80211/wcn36xx -> phy0/wlan0, B8E wlan0 up + WPA2/CCMP test AP, B8F eMMC cache 857c9c30 with aurora-wifi autostart: 3/3 class-A cold boots, AP up 76-94 s after power-on, LTE unaffected. PSK, NV and PSK-bearing images are not published.
83 lines
5.9 KiB
Markdown
83 lines
5.9 KiB
Markdown
# B8D — минимальный Linux Wi-Fi stack: wcn36xx → phy0 → wlan0 (RAM test, wlan0 не поднимался)
|
||
|
||
Дата: 2026-10-03. Прогон c1: cold power-on с RESET → lk1st fastboot → `fastboot boot b8/b8d/out/aurora-b8d.img` (1c28d0a4…).
|
||
eMMC/B7C cache/MPSS/DT/NV/Iris не менялись. Без подключения к сетям, без scan, без AP/hostapd/DHCP/NAT.
|
||
|
||
## Сборка
|
||
|
||
Kernel: дерево `/home/q/aurora-kbuild/out-b8d` от out-b8b, фрагмент `linux/aurora-b8d.config`. Фактический diff `.config`
|
||
(`linux/ramboot-b8d.config.diff`): `WLAN, CFG80211, MAC80211, WLAN_VENDOR_ATH, WCN36XX = y` (явно);
|
||
`CFG80211_DEFAULT_PS, CFG80211_CRDA_SUPPORT, CFG80211_REQUIRE_SIGNED_REGDB, CFG80211_USE_KERNEL_REGDB_KEYS` (defaults);
|
||
`MAC80211_HAS_RC, MAC80211_RC_MINSTREL, RC_DEFAULT_MINSTREL, RC_DEFAULT="minstrel_ht"` (defaults); `CRYPTO_LIB_ARC4`,
|
||
`SYSTEM_DATA_VERIFICATION` (select); `WLAN_VENDOR_*` (только меню, без драйверов). CRYPTO AES/CCM/GCM/CMAC уже были.
|
||
RFKILL уже был `=y`. `QCOM_WCNSS_PIL`, `QCOM_WCNSS_CTRL` сохранены. Набор = JZ02 (там WCN36XX=m). Image.gz 98bdefc1…, image_size 0x1760000.
|
||
|
||
DTB = B8B без изменений (cc74b57d). initramfs = B8C (B7C + NV c6b71825) + `iw 6.17-r0`, `libnl-3`/`libnl-genl-3 3.11.0-r0`
|
||
(Alpine v3.24 aarch64; index C: == JZ02 `/lib/apk/db/installed`, бинарники sha256 == JZ02). Скрипт `b8/b8d/build-b8d.sh`.
|
||
|
||
## Результат c1
|
||
|
||
| Критерий PASS | Результат |
|
||
|---|---|
|
||
| LTE baseline | `START OK in 77.8s`, bearer, ping OK |
|
||
| /firmware + NV | wcnss.mdt загружен, NV-ошибок 0 |
|
||
| Pronto stable | running с t=135.5 до ручного stop t=595 (~7.7 мин), crash/watchdog/fatal = 0 на всех 6 замерах |
|
||
| wcn36xx probe | t=136.18 `wcn36xx: mac address: <MAC>` (через 24 мс после `WCNSS Version 1.5 1.2`); ошибок wcn36xx 0 |
|
||
| phy0 | `/sys/class/ieee80211/phy0` → `…/WCNSS_CTRL…/a204000.remoteproc:smd-edge:wcnss:wifi/ieee80211/phy0` |
|
||
| wlan0 | `wlan0` drv=wcn36xx, managed, DOWN (как и требовалось), `iw dev`: phy#0 / wlan0 / type managed |
|
||
| iw phy | см. ниже — реальные возможности, только 2.4 GHz |
|
||
| MAC | `<MAC>`, `addr_assign_type=0` (permanent, из DT `local-mac-address`) |
|
||
| rfkill | `rfkill0 phy0 wlan soft=0 hard=0` |
|
||
| LTE/bearer | ping wwan0 непрерывно ~8 мин: **491/491, без потерь**; после stop MM connected/LTE, BEARER_CONNECTED |
|
||
| watchdog/recovery | нет |
|
||
| eMMC writes | `w=0 s=0` |
|
||
|
||
**B8D = PASS.**
|
||
|
||
### iw phy (phy0)
|
||
|
||
- interface modes: IBSS, **managed**, **AP**, AP/VLAN, monitor; interface combinations не поддерживаются (одна vif).
|
||
- Band 1 (2.4 GHz) only: HT20/HT40, SGI20/40, RX Greenfield, L-SIG TXOP, MCS 0–7 (1×1), HT max 72 Mbps, AMPDU 64K;
|
||
каналы 1–11 (20 dBm), 12–14 `no IR` (regdomain world).
|
||
- ciphers: WEP40/104, TKIP, CCMP-128. WoWLAN magic packet / GTK rekey. Device supports SAE with AUTHENTICATE.
|
||
- 5 GHz band нет. **Не считать это независимым доказательством WCN3620**: wcn36xx решает про 5 GHz по compatible Iris из DT.
|
||
|
||
### rpmsg/SMD pronto
|
||
|
||
`WCNSS_CTRL` (qcom_wcnss_ctrl), `WLAN_CTRL` (без rpmsg-драйвера: wcn36xx открывает его через wcnss_ctrl), `APPS_RIVA_CTRL/DATA`,
|
||
`APPS_RIVA_BT_ACL/CMD`, `APPS_RIVA_ANT_CMD/DATA`, `APPS_FM`, `IPCRTR` (qrtr), `sys_mon` (sysmon). Как в B8C.
|
||
|
||
## Сравнение с JZ02 (read-only)
|
||
|
||
| | JZ02 | Aurora B8D |
|
||
|---|---|---|
|
||
| WCNSS FW | `Version 1.5 1.2` | `Version 1.5 1.2` |
|
||
| probe | `wcn36xx: mac address: <MAC>` сразу после WCNSS_CTRL | `wcn36xx: mac address: <MAC>` через 24 мс после WCNSS_CTRL |
|
||
| MAC источник | lk2nd DT, `02:` locally administered | то же (lk1st/lk2nd из eMMC serial <EMMC_SERIAL>) |
|
||
| regdb | `failed to load regulatory.db` | то же |
|
||
| FW WLAN/RF version | `WCN v2.0 RadioPhy vUnknown with 19.2MHz XO`, API 1.5.1.2 | **не получено** — печатается при ifup (wlan0 up), который в B8D запрещён |
|
||
| wlan0 | up, regdomain RU | down |
|
||
|
||
## Замечания / открытые вопросы
|
||
|
||
1. `cfg80211: failed to load regulatory.db` — regdomain world `00` (каналы 12–13 no-IR). Для AP в RU понадобится regulatory.db
|
||
(+ подписи; `REQUIRE_SIGNED_REGDB=y`) или явная настройка — вопрос следующего этапа.
|
||
2. Строка FW `WCN v2.0 … XO` (и подтверждение XO 19.2 MHz/Iris) появится только при `ip link set wlan0 up` — не делалось.
|
||
3. MAC: стабильный и детерминированный (из серийника eMMC), но locally administered `02:…`; стоковый Android использовал
|
||
`<MAC>` (источник не установлен — вероятно, стоковый prima/NV). Пока это не блокер.
|
||
4. rmtfs `writes_logged` 0→1 при работе WCNSS — третий раз подряд (B8B/B8C/B8D), только RAM-буфер, eMMC 0.
|
||
5. stop → `timeout waiting for ssctl service` (как B8B/B8C), WCNSS offline, LTE не задет.
|
||
|
||
## Цепочка после B8D
|
||
|
||
```
|
||
hardware → DT → remoteproc → wcnss.mdt → WCNSS_CTRL → NV → wcn36xx probe → phy0 → wlan0 (managed, down) PASS
|
||
→ ifup / FW start / scan / AP — не делалось (ждёт GO)
|
||
```
|
||
|
||
## Файлы
|
||
|
||
`c1/` — host-actions, pre/post (вкл. wifi/rfkill/iw reg/dmesg80211), start, iw-phy.txt, mon-1..6, stop, ping.log,
|
||
dmesg-pre-stop.full, dmesg.full, uart.log; `c1.console`. Скрипты `b8/b8d/build-b8d.sh`, `b8/b8d/b8d-boot.sh`;
|
||
`b8/b8d/dl/` (apk + APK-SHA256SUMS + APKINDEX); `b8/b8d/out/` (SHA256SUMS, config-b8d).
|
||
`linux/aurora-b8d.config`, `linux/ramboot-b8d.config.diff`.
|