TP-Link Archer MR200 v1.0 je sieťové zariadenie, ktoré je vybavené LTE modemom a klasickým domácim wifi routerom a switchom. Toto zariadenie ponúkal aj Slovenský mobilný a internetový operátor Orange s customized FirmWare (FW). Dnes som sa pokúsil FW od Orange preflashovať na FW OpenWRT. Priznám sa, že nie som vlastníkom tohto zariadenia, ale bol som požiadaný o zmenu FW.
Obsah
- Technické info
- Aktualizácia pôvodného FW
- Pokec o flashovani OpenWRT
- Príprava FW
- Výber a príprava TFTP servera
- Flash OpenWRT FW
- WAN rozhranie
- Záver
- Použitá literatúra
Technické info
Technické informácie o zariadení je možné nájsť na oficiálnej webovej stránke tp-linku. Ďalšie informácie sú na webovej stránke projektu OpenWRT, príp. niečo je aj na webe Orangeu. Keď som sa cez LAN port pripojil prvý krát do webovej administrácie routeru (doménove meno na prihlásenie je flybox.home) tak som zistil, že je tam verzia firmvéru:0.9.1 0.0 v004a.0 Build 170801 Rel.68010n. Pred nahratím OenWRT FW sa odporúča nahrať poslednú verziu FW od tp-linku, alebo od poskytovateľa, ktorý modem poskytol (v našom prípade Orange), pretože tak bude aktualizovaný aj LTE modem.
Poznámka: často si všímam, že keď niekto vidí zariadenie ako je na obrázku, tak to jednoducho nazve wifi router. Z časti má pravdu, ale okrem toho, že je to router, je to aj modem, switch, access point atď. Ja to radšej nazvem sieťové zariadenie a až v závislosti od nastavenia sa môže názov zariadenia bližšie špecifikovať. Ak som v blogu napísal namiesto „sieťové zariadenie“ len router, alebo modem, tak sa ospravedlňujem 🙂

Aktualizácia pôvodného FW
Takže najprv si pozrieme manuál na webe Orangeu a stiahneme aktualizačnú binárku. Na webe Orangeu sa zdá, že je binárka, ktorá ma koncovku bin. Keď som podľa návodu dal aktualizivať FW v zariadení, tak vyskočilo okno s chybovou hláškou, že súbor nebol akceptovaný. Problém je v tom, že to nie je binárka, ale zip s cestou k binárke. Čiže stiahnutý súbor prepíšeme na zip a skutočnú binárku nájdeme v
/archer-mr200v1-0-9-1-0-0-up-boot-build-180608-rel-52037n/storage/app/portals/typo3/orange/uploads/tx_oskdeviceinfo/archer-mr200v1-0-9-1-0-0-up-boot-build-180608-rel-52037n.bin
Keď som binárku rozbalil a aktualizoval podľa návodu, tak všetko prebehlo v poriadku. Zaujímavé je že na webe Orangeu to nie je opravené do teraz a už to je tam niekoľko rokov. Čiže teraz je aktuálna verzia firmvéru:0.9.1 0.0 v004a.0 Build 180608 Rel.52037n.

Pokec o flashovani OpenWRT
OpenWRT je možné nahrať do zariadení niekoľkými spôsobmi.
- Method 1: via OEM firmware
- Method 2: via Bootloader and an Ethernet port
- Method 3: via Bootloader and Serial port
- Method 4: via JTAG
Samozrejme, že najjednoduchšia je metóda 1. Pre zariadenie stiahneme potrebnú binárku „squashfs-factory.bin“ a cez web sa prihlásime do administrácie routera. Prejdeme na aktualizáciu a jednoduchým uploadom FW do zariadenia nahrajeme. Po reštarte zariadenia sa už prihlasujeme do OpenWRT.
Metóda 2 je o niečo zložitejšia a povieme si o nej neskôr, pretože túto metódu som musel použiť na flashovanie ja.
Ďalšie 2 metódy cez sériový port a JTAG sú o niečo zložitejšie, pretože zariadenie musíme fyzicky otvoriť, pripojiť drôty rovno na dosku a FW nahrajeme do RAM cez sériový port.
V mojom prípade musím použiť metódu 2 cez bootloader a ethernet port „režim obnovy TFTP“ (Trivial File Transfer Protocol).
„Na väčšine zariadení je zavádzač poskytnutý dodávateľom oddielom oddeleným od skutočného firmvéru. V prípade zlyhania procesu flash alebo v prípade nesprávnej konfigurácie je zavádzač zariadenia zvyčajne stále nedotknutý a plne funkčný. Ak má zavádzač zabudovaný „ režim obnovy TFTP “, umožňuje znovu získať kontrolu nad zariadením s poškodeným oddielom firmvéru povolením procesu obnovy flash (ktorý tiež resetuje vašu konfiguráciu na predvolené hodnoty zariadenia). „
Ak na PC z ktorého budeme FW flashovať, nastavíme TFTP server a router spustíme v režime obnovenia TFTP, tak router stiahne FW z TFTP servera automaticky. Ak zariadenie nedisponuje režimom obnovenia TFTP, tak FW musíme nahrať ručne pomocou príkazov.
Poznámka: Niektoré routery majú vstavaný TFTP server, takže PC z ktorého nahrávame FW musí byť nastavený ako TFTP klient. Ja však musím použiť TFTP server na PC z ktorého si zariadenie stiahne FW. Toto je všeobecný postup pre nahrávanie FW cez TFTP.
Príprava FW
Ako bolo spomenuté v predošlej kapitole, tak v súčasnej dobe na zariadenie TP-link archer MR200 v1.0 nie je možné nahrať FW OEM pomocou metódy 1, ale musím použiť „režim obnovy TFTP„. Najprv si musíme pripraviť FW. Táto metóda je nebezpečná, pretože v zariadení budeme prepisovať bootloader a ak bude bootloader nekorektný, tak router môžeme natrvalo zablokovať. Aj keď existuje spôsob ako sa dá zariadenie po bricknutí zotaviť, avšak toto je skôr pre profíkov a tým sa ďalej nebudem zaoberať.
Postup ako si pripravíme FW znie jednoducho a pre skúsenejších to aj jednoduché je. V kapitole „Aktualizácia pôvodného FW“ som z Orange webu stiahol FW, ktorý som aktualizoval. Ďalej budeme potrebovať OpenWRT binarku (v dobe pisania článku je aktuálny FW 21.02.3). Tu len skopírujem postup ako je potrebné upraviť WF. Toto je preložené z angličtiny pomocou google translátora.
- stiahnite si súbor sysupgrade pre tento model
- stiahnite si najnovší FW z oficiálnej stránky TP-Link
- orezať hlavičku TP-Link od začiatku stiahnutého FW (prvých 0x200 bajtov, ktoré treba preskočiť/ignorovať
- extrahujte bootloader zo skladového FW (prvých 0x20000 bajtov súboru skladového firmvéru po odstránení 0x200). POZNÁMKA: Bohužiaľ, nie je možné zaručiť, že všetky budúce verzie FW obsahujú bootloader. Ak máte pochybnosti, opýtajte sa
- môžete overiť, že ide o správny zavádzač, ak jeho obsah začína 0xFF000010 a obsahuje reťazec „U-Boot 1.1.3“ (alebo podobný)
- pripojte FW sysupgrade k extrahovanému súboru bootloadera
- premenujte ho na ArcherC2V1_tp_recovery.bin
- pripravte prostredie servera TFTP (v systéme Linux:
dnsmasq –port=0 –enable-tftp –tftp-root=$PWD/tftproot/ –tftp-no-blocksize –user=root –group=root –keep-in-foreground
, vložte tam súbor a spustite reláciu obnovenia TFTP bootloadera pomocou tlačidla WPS/Reset
Z tohto popisu vyplýva, že vezmi oficiálny tp-link FW (v našom prípade customized FW od Orangeu) a odrež zo začiatku 0x200 bajtov. To číslo je v hexadecimálnej sústave, čiže v desiatkovej sústave to je 512 bajtov. Potom vezmi extrahovaný bootloader a pripoj k nemu OpenWRT FW *.squashfs-sysupgrade.bin.
dd bs=512 obs=512 skip=1 count=256 if=ArcherMR200_stock_firmware.bin of=ArcherMR200_bootloader.bin
cat ArcherMR200_bootloader.bin openwrt-19.07.8-ramips-mt7620-tplink_archer-mr200-squashfs-sysupgrade.bin > ArcherC2V1_tp_recovery.bin
Ak je užívateľ neznalý a stiahne z Orangeu FW s príponou bin, tak sa domnieva, že je to FW, ktorý sa nahráva do routera. Vyššie som vysvetlil, že chlapci z Orange súbor bin zazipovali a dali mu príponu bin. Ak by sme pomocou príkazu dd vyextrahovali 512 bajtov zo zip súboru (ktorý sa tvárí na Orange webe ako binárka) a pripojili ju k OpenWRT FW, tak pravdepodobne by sme pri TFTP obnove zariadenie zničili. To znamená, že skutočnú binárku musíme rozbaliť a až potom z nej vyextrahujeme bootloader (512 bajtov). Ja som našťastie našiel v OpenWRT diskusii pripravenú binárku s bootloaderom extrahovaného s Orange customized FW a tak som nemal obavu, že sa môže niečo pokaziť. Odkaz na upravenú binárku.
Výber a príprava TFTP servera
Ak používame linuxovú distribúciu (v mojom prípade je to Linux Mint), tak by sme mali mať predinštalovaný dnsmasq, ktorý okrem DNS a DHCP dokáže aj TFTP. Okrem dnsmasq by sme mohli použiť ťiež atftp, atftpd, tftpd, alebo tftpd-hpa.
Ak neexistuje adresár, tak ho vytvorime a vložíme doň našu upravenú binárku, ktorá musí mať presný názov ArcherC2V1_tp_recovery.bin
sudo mkdir /srv/tftp
Môžeme nastaviť rekurzívne vlastníka a skupinu
sudo chown nobody:nogroup -R /srv/tftp
Teraz môžeme spustiť TFTP server (čiže dnsmasq) a skontrolujeme či počuva na porte 69
sudo dnsmasq --port=0 --enable-tftp --tftp-root=/srv/tftp/ --tftp-no-blocksize --user=root --group=root
sudo netstat -lunp|grep 69
Ak je všetko v poriadku, tak výstup druhého príkazu by mal vyzerať nejak takto
udp 0 0 0.0.0.0:69 0.0.0.0:* 11072/dnsmasq
udp 0 0 0.0.0.0:69 0.0.0.0:* 782/inetutils-inetd
udp6 0 0 :::69 :::* 11072/dnsmasq
Ešte musíme nastaviť na PC (kde beží TFTP server) statickú IP adresu 192.168.0.66/23. Áno, podľa manuálu je CIDR 23 a teda maska podsiete bude 255.255.254.0. PC prepojíme LAN káblom do LAN1 portu na routery. Teraz máme TFTP server pripravený.
Flash OpenWRT FW
Ak máme všetko pripravené, tak samostatné flashovanie je jednoduchá záležitosť. Router zapneme v režime obnovenia TFTP, to znamená, že router je odpojený od napájania. Na zadnej strane routeru podržíme tlačidlo WPS a následne router pripojíme na 230V. Tlačidlo WPS stále držíme až pokiaľ sa nerozsvieti na routery kontrolka WPS (potom tlačidlo uvoľníme). Teraz chvíľu počkáme až sa FW naflshuje (radovo desiatky sekúnd). Router sa reštartuje a na PC môžeme nastaviť znova IP adresu z DHCP. Prihlásiť sa do routera môžeme cez IP http://192.168.1.1 a mali by sme už vidieť OpenWRT rozhranie.
Poznámka: Na obrázku je už aktualizovaný OpenWRT verzia 21.02.3, ale pôvodný upravený OpenWRT, ktorý som flashoval je verzia 19.07.8 (preto je v url https).

Ak OpenWRT rozhranie nevidíme, tak skontrolujeme, či v url je http, alebo https (príp. vymažeme cookies). Staršie FW, (napr. ktorý som na flash použil ja) funguju na http (ale novšie už funguju na https). Ak to stále nefunguje, tak môžeme vyskúšať ping na IP adresu 192.168.1.1, alebo prihlsenie cez SSH. Ak nefunguje ping ani SSH, tak skontrolujeme akú resp. či vôbec nášmu PC bola pridelená IP adresa.
ssh root@192.168.1.1
root@192.168.1.1's password:
BusyBox v1.33.2 (2022-04-16 12:59:34 UTC) built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt 21.02.3, r16554-1d4dea6d4f
-----------------------------------------------------
root@OpenWrt:~#
Ak by to nefungovalo ani po reštarte, tak je možné, že sme s nášho routera spravili brick. Mne fungovali aj web administrácia aj SSH.
WAN rozhranie
Na TP-Link Archer MR200 môžeme ako WAN rozhranie použiť LTE modem, alebo si z jedného LAN portu vytvoríme WAN interface. Predvolený port pre WAN je port číslo 4 (na TP-linku má označenie LAN4/WAN). Ak použijeme WAN rozhranie s LTE modemom, tak zariadenie môžeme hneď plnohodnotne používať. Ak nechceme ako WAN použiť LTE modem (napr. nemáme SIM kartu), tak jeden z portov (LAN4/WAN) nakonfigurujeme ako WAN port.
Pred záverom ešte jedno dôležité upozornenie. TP-Link Archer MR200 má LTE modem oddelený od zvyšku zariadenia (funguje v oddelenej DMZ od OpenWRT). LTE modem nie je možné konfigurovať cez OpenWRT, pretože beží na samostatnom OS Android a konfiguruje sa na adrese.
http://192.168.225.1/settings.html

Záver
Tento návod je trocha zložitejší a nebezpečnejší, pretože zariadenie je možne nesprávnym flashovaním zničiť. Mne sa flash podaril a zariadenie funguje. Teraz si zariadenie môžeme nakonfigurovať podľa našich predstáv. Údajne je na tomto zariadení OpenWRT stabilnejší ako oficiálny TP-Link FW. Zariadenie už niekoľko dni testujem a nezaznamenal som nejaký väčší problém. Testujem na ňom VPN WireGuard, čo bol hlavný dôvod zmeny FW. Otestoval som WireGuard, kde som nastavil WAN cez LTE modem, ale skúsil som tiež iný spôsob, kde som jeden z LAN portov nakonfiguroval ako WAN.
Použitá literatúra
- TP-Link Archer MR200 v1
- Installing OpenWrt via TFTP
- Installing OpenWrt
- Setting up a TFTP server for TFTP Recovery/Install
- Diskusia na OpenWRT fóre
- Návod na aktualizáciu Orange FW