Flash systemu turris do NOR

Jé, a znáte ten pocit, když se rozhodnete dělat něco jiného a v tom si uvědomíte, že máte řešení na problém, kterému jste nemohli přijít na kloub? Myslím, že se tomu říká nějak od h… No, k věci:

Uvědomil jsem si, že by mohlo jít kromě přímého zápisu na file systém přimountovaného mtdblock3 také zapsat přímo celý filesystém na MTD. Vývojáři Turrisu nám to dokonce usnadnili tím, že je u repozitářů vystaven i squashfs image filesystému. Vlastně nevím, proč mě tohle nenapadlo jako první, ale taktně to přejděme. Opět, abych nešířil plané naděje, jsem postup vyzkoušel (s trochou opatrnosti i na vlastním Turrisu), jenže tentokrát s úspěchem.

Takže naprosto jednoduše takto:

wget https://repo.turris.cz/turris/medkit/medkit.squashfs
mtd write medkit.squashfs "NOR (RO) NAND FW backup"

Případně jde místo toho dlouhého labelu použít /dev/mtd3, kde by ten medkit měl bydlet. Teoreticky jde použít i low-level přístup pomocí dd, ale zrovna tady si myslím, že mtd není od věci, dd aka Disk Destroyer může při nesprávném použití způsobit střelné zranění v noze.

Při dalším factory resetu by už měl Turris do NAND paměti nahrát aktuální verzi recovery systému a instalace dodatečných balíčků by mohla proběhnout rychleji a bez méně tření. Píšu mohla, protože, jak jsem psal výše, uvedete tím Turris do nějakého stavu, který se běžně netestuje, a pokud tento krok budete automatizovat a náhodou se stane, že se jako medkit dostane ven něco, co bude nějak nepěkně rozbité, už se bez té karty neobejdete. Takže k postupu nedávám žádné záruky a děláte to na vlastní nebezpečí, ano? :slight_smile:

K tomu samotnému spuštění flashování z běžícího systému - teoreticky by to šlo tak, že upravíte environment U-Bootu pomocí uboot-envtools, ale protože po factory resetu máte stejně systém bez připojení do internetu, kde je potřeba proklikat Foris nebo nastavit heslo a funkční konfiguraci nahrát do systému jinak, asi nemá smysl to tu rozepisovat - kdo je schopen naskriptovat si toto, ten nejspíš bude umět pohrát si i s tím U-Bootem.

5 Likes