uzbek-plus/logs/b8/b8e/B8E-RESULT.md
q dddc11e57b B8: Wi-Fi (WCNSS/Pronto + wcn36xx + hostapd test AP) and persistent B8F cache
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.
2026-10-02 22:55:20 +03:00

69 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).