Sanitized research log, build/reproducibility docs, DTS, kernel configs, patches, initramfs sources, bootchain migration plans and test logs. B5 direct boot PASS; B6 modem lifecycle in progress. No dumps, NV/EFS, vendor firmware or device identifiers included.
6.8 KiB
uzbek-plus — Project Aurora: mainline ARM64 Linux на LTE-модеме JZ08AU (MSM8916)
Плата JZ08AU-XPA-7J-R3 («Aurora»): Qualcomm MSM8916, 512 MiB RAM, eMMC 3.64 GiB, LTE-модем, Wi-Fi, дисплей. Стоковая прошивка — Android 4.4 (ядро 3.10). Здесь — журнал и воспроизводимые материалы перевода платы на mainline Linux 7.2.7 arm64, который загружается автономно с eMMC и поднимает LTE через ModemManager.
Это не прошивка «скачай и залей». Всё, что касается записи во flash, делалось на одном конкретном экземпляре, по одной стадии, с backup и readback-сверкой. Перед любой записью сделайте и проверьте полный backup СВОЕГО устройства (см. docs/QUICKSTART.md). Никогда не прошивайте NV/EFS-разделы (
modemst1,modemst2,fsg,fsc,persist) с другого устройства — там калибровки RF и идентификаторы конкретного модема.
Статус (2026-09-30)
| Подсистема | Статус |
|---|---|
| ARM64 Linux (7.2.7, PSCI, 4 CPU) | PASS |
| eMMC (HS200, строго read-only в Linux) | PASS |
| USB NCM (gadget, 172.16.42.1/24) | PASS |
MPSS (modem remoteproc, rmtfs -r) |
PASS |
| QMI (rpmsg wwan ctrl) | PASS |
| BAM-DMUX (wwan0) | PASS |
| LTE registration | PASS |
| LTE Internet (DNS/ICMP/HTTP/HTTPS) | PASS |
| Direct boot с eMMC без хоста (B5) | PASS / CLOSED |
| B6 — автоматический lifecycle модема | IN PROGRESS (см. ниже) |
| Wi-Fi (WCNSS) | TODO |
| Router stack (NAT/firewall/VPN) | TODO |
| Дисплей в Linux | TODO |
| Батарея / зарядка | TODO |
Рабочая цепочка загрузки (baseline B5)
Power → stock SBL1 → DB410c TZ (TZ.BF.3.0) → qhypstub → lk1st (aboot, autoboot)
→ cache: ext2 + extlinux/extlinux.conf → golden mm1 (Image.gz + DTB + initramfs) → ARM64 Linux
Fallback: extlinux не найден / не парсится / не грузится → Android boot image из раздела boot (emmc1 rescue)
Текущее содержимое flash на референсной плате (sha256, первые 8 hex):
| раздел | содержимое | sha256 |
|---|---|---|
| sbl1, rpm, DDR, sec | stock (не менялись) | sbl1 6a661ec9, rpm 5a9b857b |
| GPT | stock + tz 512K→1M, tzbak перенесён в свободный промежуток @LBA 305184 | primary 6e850a5d, backup 795952a1 |
| tz | DB410c TZ.BF.3.0-00714, дополнен нулями до 1 MiB | 8481892f |
| hyp | qhypstub, до 512 KiB | 1a963047 |
| aboot | lk1st (lk2nd 23.1) autoboot, подписан qtestsign, до 1 MiB | 3b8cd266 |
| boot | emmc1 rescue image (+ нули до 16 MiB) | e9579f33 |
| cache | ext2 + extlinux + точный golden mm1 | 409bbb11 |
| recovery | lk2nd 23.1 (fastboot) | 0dfa60a0 |
| modem, NV/EFS, persist, system, userdata | не менялись (Linux монтирует modem FAT только RO) | — |
Golden mm1 (Android boot image, для fastboot boot): aurora-mm1.img sha256 38c960ef…, ядро 7.2.7-aurora-bam1 #5.
Все хэши целиком: b5a/SHA256SUMS, b5b/SHA256SUMS, bootchain-migration/SHA256SUMS, linux/*/SHA256SUMS, docs/BLOBS.md.
B6 — lifecycle модема (IN PROGRESS)
RAM-only контроллер b6/aurora-modem start|stop|status (rmtfs -r -P -s → MPSS → QMI → SIM → online → регистрация →
ModemManager → bearer → только /32-маршруты; стоп: disconnect → detach → wwan down → MM stop → BAM-DMUX idle → MPSS stop → rmtfs последним).
Полные циклы start→data→stop проходят чисто (0 ошибок BAM-DMUX/remoteproc, 0 записей eMMC, NV не меняются), но повторная
регистрация в сети после перезапуска MPSS в одном boot чередуется PASS/FAIL (limited / registration-denied).
Гипотеза (не доказана): с rmtfs -r модем при каждом старте теряет EFS-контекст NAS. Подробности — NOTES.md, сессия 28.
Структура репозитория
| путь | что |
|---|---|
| NOTES.md | подробный журнал всех сессий (sanitized) |
| docs/QUICKSTART.md | порядок действий для второго устройства |
| docs/RECOVERY.md | аппаратный EDL, откаты |
| docs/BUILD.md | как пересобрать lk1st/lk2nd, ядро, DTB, initramfs, boot image, cache-образ |
| docs/BLOBS.md | проприетарные/device-specific файлы, которых нет в репозитории: имя, sha256, назначение, где взять свой |
linux/ |
DTS, фрагменты и полные kernel config, патч, init/скрипты initramfs, списки пакетов + APK sha256 |
lk2nd-build/, b5a/ |
запись сборки lk2nd/lk1st, config.h diff, скрипты записи/отката B5a |
b5b/ |
генератор ext2/extlinux-образа cache, эмулятор сканирования lk2nd (исходники + результаты) |
bootchain-migration/ |
preflight, write plan, редактор/валидатор GPT |
b6/ |
контроллер lifecycle модема (RAM-only прототип) и харнесс тестов |
tools/ |
утилиты: UART-логгер, Sahara probe, распаковка boot.img, sanitizer публикации |
logs/ |
sanitized логи: UART, QMI, ModemManager, EDL, результаты тестов |
android/ |
снимок стокового Android (getprop, gpio, input, leds, …), sanitized |
Что намеренно не опубликовано
Полные дампы eMMC и разделов, NV/EFS (modemst1/2, fsg, fsc), persist, userdata, файлы прошивки модема,
стоковые SBL1/RPM/TZ/aboot/boot/recovery/system, Firehose-программер, DB410c TZ, собранные бинарники.
Идентификаторы (IMEI, IMSI, ICCID, eMMC CID/serial, Sahara serial, MAC, номера сот, cookies) заменены на <PLACEHOLDER>.
Как это сделано — tools/publish-sanitize.py; значения идентификаторов в репозиторий не попадают.