Xiaomi AX3200 kísérletezés OpenWrt Snapshot-tal

Sziasztok! Dilemmában vagyok hogy vegyek e az AX3200 mellé egy tartalék routert, akár egy másik AX3200-at(olcsó most), akár egy Xiaomi AX3000T-t az Alzáról, ez is elég olcsó most(bár ez még elég új itthon, kevés vele a tapasztalat openwrt-sítés terén, lehetnek szívások).

Az OpenWrt következő 24.x kiadása már a 6.x-os kernelre épül, és a Xiaomi AX3200 esetében egy kis átpartícionálás szükséges hogy a 6.x kerneles openwrt-t(ami jelenleg még snapshot) fel lehessen tenni. Ki akarom próbálni a 6.x kerneles snapshotot kíváncsiságból, majd vissza akarok állni a 23.05.5-re. Azt tudom ha snapshottal próbálkozom akkor fennáll a téglásodás veszélye, valahonnan meg lehet tudni hogy az aktuális AX3200 snapshot egyáltalán bebootol e ? Van olyan fórum ahol leírják az ezzel kapcsolatos tapasztalatokat ?

Van most kb ~30k spórolt pénzem, és gondolkodom hogy a téglásodási kockázat miatt esetleg vennék belőle egy tartalék routert, de lehet felesleges lenne mert csak ott porosodna a szekrényben, m.2 nvme ssd-n is gondolkodom (wd sn580 1TB), arch linux alatt már lecseréltem a sata ssd-t egy ilyenre és gyorsabb lett, a macOS alá(hackintosh is ugyanez a gép) is akarok tenni nvme-t, a várható jelentős gyorsulás érdekében.

Van két régebbi routerem ami nem annyira világbajnok lefedettségben mint az AX3200, egy Archer C7 és egy Asus AC57U, ezek mind openwert képesek, AC57U padavan is. Szóval be tudnék állítani tartalékot ha az AX3200-at tégláznám, de a lefedettség nem lenne acélos, és anyám pampogna miatta. Autista vagyok anyagilag eléggé korlátoz a család, szóval most van a kevés alkalmak egyike mikor ilyen viszonylag szemmel látható összeget el tudnék költeni, szóval a kérdés hogy modern tartalék router vagy m.2 nvme ?

Szóval, elméletileg annyit kellene csinálnom hogy fogom a snapshot factory image-ot és felmásolom az AX3200-ra a /tmp-be majd:

mount -o remount,ro /
mount -o remount,ro /overlay
cd /tmp
dd if=factory.bin bs=1M count=4 | mtd write - kernel
dd if=factory.bin bs=1M skip=4 | mtd -r write - ubi

és elvileg ezzel felmászik a snapshot, ez lenne az átpartícionálás a snapshot felrakásával egyidejűleg.

Ezzel kapcsolatban még vannak tisztázatlan kérdéseim. Mielőtt felraknám a snapshotot érdemes a jelenleg fenn levő 23.05.5-öt resetelnem ?

Ha ezzel a módszerrel felkerül a snapshot, tesztelem pár napig, vissza tudom úgy rakni a stabil openwrt-t hogy a 23.05.5 sysupgrade image-t a /tmp -be másolom és sysupgrade -n módszerrel felrakom ? Lehet ebből téglásdás ? Gondolok itt a megváltoztatott partíció kiosztásra.

Van egy másik (TFTP-s) módszer a 6.x kerneles snapshotra áttérésre:

Or, flash the 2nd u-boot via mtd and upload the firmware
to the 2nd u-boot using tftp:
1. prepare a tftp server at 192.168.1.254 to serve the
   sysupgrade image:
   openwrt-mediatek-mt7622-xiaomi_redmi-router-ax6s-squashfs-sysupgrade.itb
2. upload the ubi-loader.itb to OpenWrt /tmp, and flash it to
   the old kernel partition:
   mtd -r write openwrt-mediatek-mt7622-xiaomi_redmi-router-ax6s-ubi-loader.itb
3. The router should reboot and flash the sysupgrade image via TFTP.

Ez biztonságosabb mint a fentebbi kézzel átpartícionálós ? Tudom használni a jounin féle windowsos TFTPD64-et ehhez a műveletehez ? Ezt szoktam meg, grafikusan mutatja ahogy a router leszippantja a fw image-t, és azt is egyből ha valami hiba van. Archer C7-en ezzel cserélgettem a gyárit és az openwrt-t.

Kipróbáljam a 6.x kerneles snapshotot szerintetek vagy hagyjam a fenébe mert túl nagy a kockázat és inkább várjam meg a 24.x stabil kiadás megjelenését és majd akkor ráérek próbálkozni ?

Ha felrakom a mostani snapshotot, a 24.x megjelenésekor már nem kell átpartícionálással bohóckodni hanem simán sysupgrade image-val rá tudok majd frissíteni a 23.x-re ? Vagy addig változhat még valami a partícionálást illetően ?

Hozzászólások

En felkeszulnek arra hogy a legkorultekintobben is soft-brickelheto, nekem egy sima upgrade 22.03.2-rol 22.03.7-re bootloopba kuldte.

Nem tudom hogy az eredeti flashelest hogy csinaltad, nekem serial port + tftpd kettos kellett, ugyanigy unbrickeltem.

Szerkesztve: 2024. 10. 07., h – 07:38

Nem sorosporton keresztül csinláltam hanem a gyári fw-nek van egy exploitja és azt kihaszálva az openwrt oldal leírását követve(de még kellett egy kis módosítás) ssh hozzáférést szereztem és úgy tettem fel az openwrt-t.

Azt olvastam hogy vannak újabb példányok amin kicsit más a bootloader és hiába lett feltéve látszólag jól az openwrt néhány újraindítás(állítólag 15) után bootloopba kerül. Ellenőriztem az enyém nem tartozik az érintett példányok közé. Ezeknél a példányoknál meg kell ismételni az openwrt flashelést(brick esetén) és más paramétereket adni a bootloadernek, ekkor már nem kerülhetnek bootloopba.

Ellenőrizni kell hogy 2021-es vagy 2022-es e az uboot:

root@OpenWrt:~# strings /dev/mtd2 | grep ^U-Boot

Ha 2022-es akkor módosítani kell az indítási paramétereket hogy a többszöri újraindításba ne haljon bele:

nvram set boot_fw1="run boot_rd_img;bootm"
nvram set flag_try_sys1_failed=8
nvram set flag_try_sys2_failed=8
nvram set flag_boot_rootfs=0
nvram set flag_boot_success=1
nvram set flag_last_success=1
nvram commit

Az enyém 2021-es uboot, így nem érintett.

Akkor meggondolandó hogy bele merjek e fogni snapshot kísérletezésbe, vagy ha belefogok akkor egy más által már kipróbált (biztosan működő) snapshot image-val teszek legfeljebb próbát. Egyelőre nem kísérletezek. Rendeltem már egy nvme-t, arra költöm a pénzt inkább. Te kipróbáltad a 6.x kerneles snapshotot ?

Sajnos nem értek a soroportos mókoláshoz, így ha brickelődne akkor valakit meg kellene kérjek az újraélesztésre.

15 bootnal joval tobb volt, es 2021 ez is:

U-Boot 2014.04-rc1 (Aug 07 2021 - 08:08:31)

Akkor flasheltem amikor 22.03.2 volt az aktualis, most amikor frissitettem 23.05 szeriara gondoltam nem art elotte a latest 22.03-ra frissiteni, hat artott :D

Nem probaltam snapshotot, nincs olyan feature amire varok.

Soros port jo moka, viszonylag olcson kapni USB-TTL adaptert hozza. En egy Raspberry Pi 3-at hasznaltam flashelni, mivel van rajta soros pin es ethernet is igy kepes a teljes procedurat onmagaban vegigvinni.

Ez azért nagy előny a TP-Link routereknél, hogy ott a gyári rendszer webadmin felületén be lehet adni az OpenWRT imaget frissítésként és ha nem lett rossz image megadva akkor problémamentesen lecserélődik a firmware. Egy ideje már nem volt szükségem új routerre, de gondolom ez nem változott a támogatott TP-Link routereknél. 

Tp linkeknél TFTP-t használok fw cserélgetésre, ha tudja. Volt olyan ami nem tudta -1043nd volt első generációs- (olyan régi gyári fw volt rajta) webfelületről betallóztam az openwrt-t, felflashelte, de nem indult újra, bepánikoltam hogy ez tégla lesz, egy kihúz/bedug szerencsére megoldotta, bootolt az openwrt. Frissebb gyári fw-t tettem vissza rá, abban már volt TFTP, meg kellett vágni a gyári fw-t hogy openwrt alól felmenjen téglásodás veszélye nélkül, aztán a gyári felületről mégegyszer ráfrissíteni a gyári rendszerre hogy a bootolader is frissüljön. Szóval TP linkkel sem mindig egyszerű az élet.

Az archer c7-emen TFTP-vel cserélgetem a gyárit és az openwrt-t, biztosabbnak tartom mint a webfelületről.

Szerkesztve: 2024. 10. 09., sze – 17:40

Gondolkodtam és azzal a módszerrel amivel felrakható stabil kiadás(23.05) alól a snapshot,

mount -o remount,ro /
mount -o remount,ro /overlay
cd /tmp
dd if=factory.bin bs=1M count=4 | mtd write - kernel
dd if=factory.bin bs=1M skip=4 | mtd -r write - ubi

snapshot alól is visszarakható a stabil kiadás szerintem, csak a dd paraméterein kell változtatni a stabil(23.05) factory image partíciókiosztásának megfelelően.

Illetve egyes újabb példányoknál esetleg lehet hogy a partíció eltolás mizériát is figyelembe kell venni a dd paramétereinek kalkulálásakor:

Known Issue #1: It is reported that some newer AX3200/AX6S can only flash factory image and is impossible to use a sysupgrade image. Personal investigation shows that the mtd partitions are offset with -0x20000. So kernel/root partition and ubi volume and written into the wrong position, thus bricks the device.

Check Issue #1 There is a simple way to check if router has mtd partitions offset issue:

  • run hexdump /dev/mtd8 | head output returns a value that starts with 0000000 0dd0 edfe

  • run fw_printenv | grep -e ^flag_try -e ^boot_fw output returns like
    boot_fw0=run boot_rd_img;bootm
    boot_fw1=run boot_rd_img;bootm
    flag_try_sys1_failed=0
    flag_try_sys2_failed=0

If match both it should be safe to sysupgrade.
If boot_fw1=run boot_rd_img2;bootm you can temporary fix by add fw_setenv boot_fw1 'run boot_rd_img;bootm' at startup
Otherwise, it will be needed to use UART flash method to recover vendor firmware and then flash OpenWrt factory image from it.

 

Gyári mediatek driverekkel forgatott, 2024.09.13-ai snapshot AX3200-ra, készítője által tesztelt, elvileg működnie kell.

Fordítási instrukciók a készítőtől, ha valaki frissebb snapshotot forgatna magának gyári mtk driverekkel AX3200-ra.

Ha már így elmesélted bajodat, akkor hozzátenném, hogy 1TB-os SSD-t már ne vegyél.