Olipahan yhden sortin seikkailu tämäkin, mutta koska onnistuin siinä, kirjoitan prosessin muistiin. Hoidin homman Macillä, mutta ohjeet soveltuvat myös muille käyttiksille.

Pohjimmiltaan homma menee näin:

  • asenna sarjaportin kautta väliaikainen firmware tftp-protokollalla
  • liitä reititin internetiin, jotta voit päivittää siihen apuohjelmia
  • lataa loput tiedostot omalta koneeltasi reitittimeen ja päivitä firmis
  • buuttaa ja valmista tuli

Lähdetään siitä, että hommaan tarvitaan verkkokortti, ethernet-piuha ja USB-serial-mokkula, jollaisen saa parilla eurolla Aliexpressistä: FT232RL

Ruuvaa Zyxelin neljä takapaneelin ruuvia irti ja väännä takakansi pois paikoiltaan. Sen pitäisi olla melko helppoa.

Kytke FT232RL kiinni tietokoneeseen ja vaihda jumpperin jännitteeksi 3,3 volttia. Ainakin minun tikkuni oli kaupasta tullessaan 1,8 voltissa.

Sitten kytke piuhat, mutta ei tämän ohjeen mukaan vaan tämän eli

  • ground (maa)
  • ei pinniä
  • TX+
  • RX+
  • ei kytketä

Minä asensin sarjayhteyttä varten minicomin, brew install minicom. Säädin sen käyttämään oikeaa porttia, joka minun Macissäni oli /dev/cu.usbserial-A50285BI mutta joka on helppo selvittää ls -l /dev/cu* -komennolla – sarjaporttilaitteita kun harvoin on nykyisissä koneissa kovin montaa. Minicomin asetuksista säädetään oikea portti, buutataan reititin ja katsotaan että alkaako ruudulle ilmestyä tekstiä. Jos ei, kannattaa käydä läpi FT232RL:n pinnit ja piuhat vielä kertaalleen. Jätä minicom auki päätteeseen, siihen palataan myöhemmin.

Lataa mtk_uarbtboot-työkalun uusin versio. ARM-Maceille se on tällä hetkellä https://github.com/981213/mtk_uartboot/releases/download/v0.1.1/mtk_uartboot-v0.1.1-aarch64-apple-darwin.tar.gz

Pura gzipattu tar-paketti, eli käynnistä Pääte ja kirjoita:

cd ~/Downloads
tar zxfv mtk_uartboot-v0.1.1-aarch64-apple-darwin.tar.gz

Sen jälkeen lataa tiedostot, joista osan syötät reitittimelle tftp:n avulla ja osan scp:llä. Tätä kirjoittaessani uusin OpenWRT:n versio on 24.10.0, joten URLit ja tiedostopolut ovat sen mukaiset. Mikäli käytät jotain toista versiota, muista vaihtaa versionumerot siten että ne täsmäävät kaikissa tiedostoissa.

Lataa seuraavat tiedostot:

Nimeä tiedostot uusiksi niin, että poistat niistä OpenWRT:n versionumeron. Se sujuu näppärästi vaikkapa Finderin Nimeä uudelleen… -toiminnolla. (Nimenmuutos tehdään siksi, että myöhemmin voit kopioida ja liittää asennuslitanian ilman että siitä tarvitsee enää muutella tiedostonimiä.) Varmista, että mtk_uartboot ja kaikki ladatut tiedostot ovat samassa hakemistossa. Se helpottaa elämää.

Lopputuloksena pitäisi siis olla tiedostot nimeltä

mt7986-ram-ddr4-bl2.bin
openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-initramfs-recovery.itb 
openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-bl31-uboot.fip
openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-initramfs-factory.ubi
openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-preloader.bin
openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-squashfs-sysupgrade.itb
kmod-mtd-rw_6.6.73.2021.02.28~e8776739-r1_aarch64_cortex-a53.ipk

Sitten asennetaan ensimmäinen tiedosto: ./mtk_uartboot --serial /dev/cu.usbserial-A50285BI --aarch64 -p mt7986-ram-ddr4-bl2.bin -f openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-bl31-uboot.fip

(Minä olin tätä ennen minicom-yhteydellä ajanut pari komentoa, mutta en ole varma, oliko niille tarve.)

Eli kirjauduin minicom-päätteessä sisään käyttämällä admin-tunnusta ja ajoin komennot :

zycli fwidcheck off
zycli modelcheck off

Tämän jälkeen pitäisi saada tftp-palvelimella ladattua reitittimeen uusi firmis. Käytin apuna Transfer-ohjelmaa, jota saa testata ilmaiseksi parin päivän ajan. Säädä siihen oikea hakemisto, siis se jossa nuo äsken ladatut tiedostot ovat.

Kytkeydy reittimen kakkos-lan-porttiin (ainakaan minulla ykkönen ei toiminut). Säädä Järjestelmäasetukset > Verkko -kohdasta verkkosovittimen ip-osoitteeksi 192.168.1.254, koska sieltä reititin yrittää ladata tftp:llä tiedostot. Jos kaikki meni oikein, pian näet terminaali-ikkunassa tekstiä vipeltämässä ja sen jälkeen pääset kirjautumaan reitittimeen ilman salasanaa.

Nyt vaikein on jo ohi! Enää pitää saada ladattua reitittimeen loput tiedostot ja asentaa ne. Minulla tuli tässä pulmia, koska scp ei toiminut, reitttimessä kun ei ollut sftp-pakettia asennettuna. Tässä vaiheessa siis kirjaudu sisään reitittimen Luci-käyttöliittymään osoitteessa http://192.168.1.1 käyttäjänä root ja ilman salasanaa. Jos olet kytkenyt reitittimen wan-porttiin nettipiuhan, pääset System > Software -kohdasta ensin päivittämään indeksit (Update lists…) ja sen jälkeen saat sftp-server-paketin asennettua.

Tämän jälkeen voit kopioida omalta koneelta kaikki nuo aiemmin ladatut tiedostot palvelimelle eli mene oikeaan hakemistoon ja scp * root@192.168.1.1:/tmp/

Ota ssh-yhteys palvelimeen ja sitten tarvitaan enää tämä rimpsu:

cd /tmp
opkg install kmod-mtd-rw*_aarch64_cortex-a53.ipk
insmod mtd-rw.ko i_want_a_brick=1
ubidetach -p /dev/mtd5; ubiformat /dev/mtd5 -y; ubiattach -p /dev/mtd5
ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
ubimkvol /dev/ubi0 -n 2 -N recovery -s 10MiB
ubiupdatevol /dev/ubi0_2 openwrt-mediatek-filogic*-ubootmod-initramfs-recovery.itb
mtd write openwrt-mediatek-filogic-*-ubootmod-preloader.bin bl2
mtd write openwrt-mediatek-filogic-*-ubootmod-bl31-uboot.fip fip
sysupgrade -n openwrt-mediatek-filogic-*ubootmod-squashfs-sysupgrade.itb

Nyt reititin boottaa ja OpenWRT on pysyvästi asennettu.

Lähteet: https://hack-gpon.org/zyxel/, https://openwrt.org/toh/hwdata/zyxel/zyxel_ex5601-t0, https://forum.openwrt.org/t/adding-openwrt-support-for-zyxel-ex5601-t0/155914/325?u=injectmeneer