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.
69 lines
6.3 KiB
Markdown
69 lines
6.3 KiB
Markdown
# B8E — wlan0 up (B8E-1) + тестовый WPA2 AP (B8E-2), RAM only
|
||
|
||
Дата: 2026-10-03. Выполнено на живой RAM-загрузке B8D (aurora-b8d.img 1c28d0a4, LTE START OK). WCNSS запускался в этой загрузке
|
||
второй раз (после B8D stop) — поэтому `phy#1`/`wiphy 1` вместо phy0 (новый probe wcn36xx). eMMC/B7C cache не трогались:
|
||
`/sys/block/mmcblk0/stat` writes 0 / sectors 0. Все бинарники и конфиги — только в `/tmp` (tmpfs).
|
||
|
||
## B8E-1 — `ip link set wlan0 up`
|
||
|
||
| | Результат |
|
||
|---|---|
|
||
| WCNSS start | t=809.3 → up 809.4 → `WCNSS Version 1.5 1.2` 809.9 → `wcn36xx: mac address: <MAC>` 809.93 |
|
||
| ip link up | rc=0, `wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP>`, `iw dev`: type managed, **txpower 20.00 dBm** (было 0.00 при down) |
|
||
| FW/RF | `wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO' and CRM version 'CNSS-PR-1-4-2-c4-00084'`; `firmware API 1.5.1.2, 41 stations, 2 bssids` — **идентично JZ02** |
|
||
| стабильность | Pronto running, crash/watchdog/fatal/wcn36xx-err = 0 через ~60 с и ~145 с после up; LTE ping 5/5 ×2; eMMC 0 |
|
||
|
||
**B8E-1 = PASS.** XO 19.2 MHz подтверждён прошивкой (это исключает WCN3680/3660B с 48 MHz XO в upstream-данных);
|
||
строка `RadioPhy vUnknown` модель Iris сама не называет → WCN3620 = наиболее вероятный, совпадает с JZ02, формально не доказан.
|
||
|
||
## B8E-2 — тестовый AP
|
||
|
||
Пакеты: Alpine v3.24 aarch64 `hostapd 2.11-r4`, `libssl3`/`libcrypto3 3.5.9-r0`, `libnl3 3.11.0-r0` — все apk проверены:
|
||
`C:` из APKINDEX == sha1 control-сегмента, `datahash` из .PKGINFO == sha256 data-сегмента. RAM-бандл `b8/b8e/bundle/` (SHA256SUMS),
|
||
на плате `/tmp/b8e`, `LD_LIBRARY_PATH`. Конфиг: SSID `aurora-b8e`, ch 6, hw_mode g, 802.11n HT20, WMM, WPA2-PSK, CCMP only, без country
|
||
(regdomain world). Пароль — одноразовый тестовый (только в `bundle/hostapd-b8e.conf`, при публикации вырезать).
|
||
Без DHCP/NAT/bridge; на wlan0 только статический 192.168.50.1/24 для проверки канала; на телефоне вручную 192.168.50.2.
|
||
|
||
| Критерий | Результат |
|
||
|---|---|
|
||
| AP поднят | `wlan0: AP-ENABLED`, `iw dev`: type AP, ssid aurora-b8e, ch 6 (2437 MHz) 20 MHz, 20 dBm. Единственное предупреждение `VLAN: SET_VLAN_NAME_TYPE_CMD failed` (VLAN не используется) |
|
||
| SSID виден | телефон нашёл и подключился |
|
||
| WPA2/CCMP | `AP-STA-CONNECTED` → `pairwise key handshake completed (RSN)` → `EAPOL-4WAY-HS-COMPLETED`, `authorized: yes` (оба подключения) |
|
||
| данные по каналу | ping AP→телефон есть ответы (min 2 ms); HTTP с телефона на busybox httpd 192.168.50.1: 200/304, «открывается сразу, обновляется быстро» |
|
||
| соединение держится | сессия 1: 351 с, завершена **телефоном** (deauth reason 3 — уходил к другому AP, подтверждено пользователем); сессия 2 (новый случайный MAC телефона): 436 с до остановки AP, 5 контрольных замеров без разрывов, tx failed 0, сигнал −26…−34 dBm, tx до MCS7 65 Mbit/s |
|
||
| Pronto/LTE | Pronto running всё время, crash 0; LTE ping wwan0 OK на всех замерах, MM connected, BEARER_CONNECTED |
|
||
| eMMC | writes 0 |
|
||
|
||
**B8E-2 = PASS** по заданным критериям.
|
||
|
||
## Найденная особенность: доставка кадров спящему клиенту
|
||
|
||
Ping AP→телефон (2 мин, экран включён): 65/120, avg 2.8 с, max 10.8 с; ответы приходят пачками с RTT, уменьшающимся ровно на 1000 мс
|
||
(10856, 9856, 6855, …) → кадры для клиента в power save копятся и уходят, только когда клиент просыпается сам.
|
||
В wcn36xx (7.2.7) нет `set_tim` и нет `AP_LINK_PS`; шаблон beacon с TIM отдаётся в FW только при BSS_CHANGED_BEACON →
|
||
вероятно, TIM-бит для PS-станции не выставляется (гипотеза, не доказана). JZ02 использует такой же hostapd-конфиг (ch 6, HT, WPA2/CCMP,
|
||
+country RU, SHORT-GI-20, ap_isolate) — без обходного пути.
|
||
Практически: трафик, инициированный клиентом (HTTP), работает быстро. Риск для роутера — входящие без запроса пакеты (push, долгие
|
||
idle-TCP) к спящему клиенту. Не блокер для B8F; отметить для B9 (возможны: `ap_max_inactivity`/`skip_inactivity_poll`, проверка
|
||
`dtim_period`, или патч wcn36xx set_tim — отдельной задачей).
|
||
|
||
## Прочее
|
||
|
||
- regulatory.db отсутствует → world `00` (ch 12–13 no-IR). JZ02 ставит `country_code=RU` + `ieee80211d=1`; без regdb это не меняет
|
||
реальный regdomain ядра — решать при B8F/B9.
|
||
- MAC AP: `<MAC>` (lk DT, из eMMC serial) — стабилен.
|
||
- После теста: hostapd и httpd остановлены, адрес снят, `wlan0` managed/UP, Pronto running. Плата — RAM-загрузка B8D.
|
||
|
||
## Цепочка
|
||
|
||
```
|
||
hardware → DT → remoteproc → wcnss.mdt → WCNSS_CTRL → NV → wcn36xx → phy → wlan0 up (FW 19.2 MHz XO)
|
||
→ hostapd AP WPA2/CCMP → телефон подключён, данные ходят, сессия держится PASS
|
||
→ persistent cache + автозапуск (B8F) — ждёт GO
|
||
```
|
||
|
||
## Файлы
|
||
|
||
`e1/` — e1-up.txt, mon-1/2; `e2/` — ap-start, mon-1..4, hold.txt, ping-phone.log, hostapd.log (ключи [REMOVED]), httpd.log,
|
||
dmesg.full, stop.txt. Скрипты: `b8/b8e/e1-up.sh`, `b8/b8e/e1-mon.sh`, `b8/b8e/bundle/{ap-start,ap-mon,ap-stop}.sh`;
|
||
пакеты `b8/b8e/dl/` (APK-SHA256SUMS, APKINDEX).
|