Instalace OpenWrt 12.09 na TP-Link TL-WR841ND (v8.x)

O routeru TP-Link TL-WR841ND

Tuta stránku jsem připravil pro každého, kdo má doma vynikající router TP-Link TL-WR841 a chce ho vylepšit tím, že si na něj nainstaluje volně dostupný firmware OpenWrt.

V první řadě bych Vám rád napsal, proč jsem se pro tento router rozhodl:

  • V žebříčcích prodejnosti se tento router objevuje na nejvyšších místech, důvodem je jednoznačně skvělý poměr kvalita/cena. Ta se pohybuje kolem 600Kč a za tyto peníze získáte kvalitní wifi router s vestavěným firewallem.
  • Pokud jste stejně jako já zákazníkem UPC a koupíte jimi nabízený router s modemem Technicolor TC 7200, zjistíte, že firewall routeru Technicolor má své mouchy. Ideálním řešením je pak přepnutí tohoto routeru do režimu Bridge a zapojení vlastního, kvalitnějšího, routeru. Jako ideální volba se pak nabízí právě router TL-WR841ND.
  • Router TL-WR841ND má opravdu dost silný výkon signálu WiFi, ten stačí k pokrytí většiho (i panelového) bytu. Podpora norem b/g/n je ideální, můžete navíc využívat šíření WiFi po dvou kanálech současně, rychlost přenosů se tak podstatně zrychlí (na mém 40mbps připojení od UPC stahuji po WiFi právě touto rychlostí).
  • Pro mne rozhodující byla podpora ze strany tvůrců alternativního firmware, tedy programového vybavení routeru. Router chci používat víc let a pokud výrobce přestane vydávat aktualizace firmware, může se stát router snadnou kořistí k napadnutí zvenčí. Je také důležité možné rozšíření vlastností routeru o další funkce. Router TL-WR841ND umožňuje instalaci jak OpenWrt, tak DD-Wrt. Po instalaci OpenWrt nebo DD-Wrt můžete router využívat jako opakovač WiFi, WiFi navíc nemusí sloužit jen k šíření sítě po bytě, ale např. můžete přes WiFi přijímat Internet a ten si pak opět přes WiFi nebo po kabelech rozvést do dalších zařízení.

OpenWrt nebo DD-Wrt?

S originálním firmwarem vydržite bez problému jakýkoliv router provozovat roky, pokud se ale rozhodnete o vylepšení, můžete si vybrat jeden ze dvou volně dostupných balíků OpenWrt a DD-Wrt.

  • OpenWrt je podle mého názoru méně uzavřený systém, můžete si snadno doinstalovat balíčky s programovým vybavením, které potřebujete. U OpenWrt uživatelé uvádějí vyšší výkon, ten nezatěžuje zbytečně náročné grafické prostředí. Určitě ale budete občas víc tápat, protože ne všecho jde v OpenWrt jednoduše naklikat přes webové rozhraní. I to ale OpenWrt má a základní nastavení umožňuje stoprocentně provést aniž byste se museli na dálku přihlašovat k terminálu.
  • Mnoho uživatelů nedá dopustit na DD-Wrt. Jedná se o uživatelsky velmi příjemný firmware, který vychází z OpenWrt. Vše se dá snadno naklikat. Problém je v tom, že ne každá varianta DD-Wrt vše podporuje a doinstalování dalších je pak téměř nemožné. Po instalaci budete mít zřejmě o malinko nižší rychlost sítě, než když jste měli originální firmware.

To, co zde uvádím o OpenWrt a DD-Wrt je jen můj osobní názor, ke kterému jsem dospěl na základě zkušeností s oběma systémy.

Důležité je si uvědomit, že instalací alternativního firmware Vám podle výrobce končí záruka na výrobek. Navíc Vás v každém návodu (tedy i já zde) musí upozornit, že vše, co s routerem děláte, děláte na vlastní nebezpečí. Určitě se toho ale nebojte, existuje vždy možnost, jak se k originálnímu firmware vrátit.

Instalace OpenWrt

Popis instalace je velice dobře uvedený na stránce OpenWrt věnované romuto fouteru. Ta se pro jednotlivé routery nebude lišit:

  • Z archivu OpenWrt si do počítače stáhněte firmware určený k flashování z originálního firmware dodávaného výrobcem. Uvádím zde popis instalace na router TP-Link TL-WR841ND v8, proto vede odkaz na tento firmware. Pokud máte router jiný, stahujte firmware s označením tohoto routeru a slovem factory na konci.
  • V nabídce webového rozhraní routeru (nejspíš na http://192.168.1.1/) zvolte upgrade firmware, tedy:
    • System Tools
    • Firmware Upgrade
    • Browse, vyberete Vámi stažený soubor
    • stisknete tlačítko Upgrade a potvrdíte
    Pak už stačí jen trpělivě čekat až se aktualizace dokončí. Dojde k odpojení routeru od počítače, dokončení instalace poznáte na tom, že se Vám opět aktivuje síťové připojení v počítači.
  • Zkuste znova přistoupit na webové rozhraní routeru na http://192.168.1.1/, objeví se stránka přihlášení do webového rozhraní routeru.

Webové rozhraní OpenWrt

  • Protože ale ještě nemáte heslo nepřihlašujte se, v první řadě je lepší si ho nastavit:
    • Stáhněte si program vzdáleného terminálu, ideální je program PuTTY
    • Spusťte si PuTTY a zvolte připojení k počítači 192.168.1.1 přes rozhraní telnet:

Nastavení přihlášení přes Telnet

  • Stiskněte tlačítko Open
  • Objeví se Vám okno s příkazovým řádkem OpenWrt

Nastavení hesla do OpenWrt přes terminál

  • Zadejte příkaz passwd root a potvrďte, zadejte Vaše heslo pro přihlášení a pak pro kontrolu ještě jednou zopakujte (PuTTY umožňuje vkládání textu z obsahu schránky Windows přes pravé tlačítko myši, to je ideální pro vkládání příkazů i hesel do terminálu, aktivujte v: Category/Window/Selection/Action of mouse buttons/Compromise (Middle extends, Right pastes), Default selection mode: Normal; to co označíte levým tlačítkem myši se do schránky kopíruje, pravým se obsah schránky vkládá).
  • Od terminálu se odpojíte příkazem exit
  • Teď se už můžete pomocí jména root a nového hesla přihlásit k webovému rozhraní OpenWrt na Vašem routeru.

Návrat z OpenWrt k originálnímu firmware

Pokud se chcete vrátit k firmware, který Vám dodal TP-Link, není ni jednoduššího, než ho nahrát zpět. Problém je ale v tom, že originální firmware obsahuje blok se zaváděcí hlavičkou a tu OpenWrt nechává beze změny. Výsledkem by tedy byl totální výtuh routeru a z něj by Vám pomohlo jen připojení modemu přes sériový port (popis níže).

Abyste se podobným problémům vyhnuli, doporučuji nainstalovat firmware oříznutý o zaváděcí hlavičku. Stáhněte si tedy firmware dodávaný výrobcem a oříznutí proveďte pomocí skriptu v Perlu, např. uprava.pl:

#!/usr/bin/perl
my $origfilename = $ARGV[0];
my $newfilename = $ARGV[1];
my $bootblocksize = 131584;
my $origfilesize = (-s $origfilename);
my $newfilesize = $origfilesize - $bootblocksize;
open (my $origfp, '<', $origfilename);
binmode ($origfp);
seek ($origfp, $bootblocksize, 0);
read ($origfp, $newfirmware, $origfilesize);
close ($origfp);

open (my $newfp, '>', $newfilename);
binmode ($newfp);
print $newfp $newfirmware;
close ($newfp);


Jako paramtery se zadávají jméno originálného firmware a jméno nové, doporučuji např. uprava.pl wr841nv8_en_3_13_33_up_boot(130506).bin firmware.bin. Upravený originální firmware pro v8 je ke stažení zde.

Přechod s upraveným originálním firmwarem zpět z OpenWrt je jednoduchý, ve webovém rozhraní zvolte:

  • System
  • Backup / Flash firmware
  • V části Flash new firmware image, vyhledejte upravený firmware s tiskněte tlačítko Flash image...
  • Natažení spusťte tlačítkem Proceed

Pak už opět jen čekejte, až se router objeví v síti, tedy přidělí Vám adresu a budete se moci přihlásit k webovému rozhraní Vašeho původního firmware.

Když se něco pokazí ...

Existuje možnost návratu routeru, který úplně ztratil schopnost komunikace po síti. U mne se to projevilo naprostým „vytuhnutím“ routeru hned při startu. Na routeru jen svítila kontrolka napájení, jinak nereagoval. Obnovení firmware ani v tomto případě není složité, připravte si ale mikropájku a cca 130Kč (69Kč+59Kč poštovné) na převodník sériového rozrhraní do TTL. Jedná se o PL2303HX USB - TTL převodník a ten si můžete velice levně zakoupit např. v Robotstore.cz.

  • Rozeberte router TL-WR841ND (v8.x), na spodní straně sundejte dvě gumové nožičky, ty co jsou blíž k anténám. Pod nimi jsou šroubky na křížový šroubovák, pak už router jen opatrně rozdělte, jakobyste otevírali mušli. Uvidíte desku s plošnými spoji a vyvedeným sériovým portem, ten je ve tvaru, který vidíte na obrázku, lěží v blízkosti tlačítka WPS/Reset. Na vývody je nutné připojit převodník podle schéma:

Zapojení sériového rozhraní routeru TL-WR841ND (v8.x) přes USB k počítači

  • Vývody sériového portu jsou opravdu titěrně malé, takže buďte opatrní. Pokud budete i v budoucnosti laborovat, doporučuji sériový port vyvést ven ze skříňky přístroje:

Sériový výstup na krabici přístroje routeru TL-WR841ND (v8.x) přes USB k počítači

  • Do počítače si nainstalujte ovladače převodníku, ty si stáhnete na stránce jeho výrobce.
  • Připojte USB převodník do USB portu Vašeho počítače, ověřte v ovládacích panelech Windows na jakém sériovém portu zařízení pracuje (Ovládací panely/Správce zařízení/Porty (COM a LPT)), u mě je to port COM14. V nastavení zařízení nastavte Nastavení portu/Bity za sekundu rychlost komunikace 115200.
  • Spusťte PuTTY (stažení a nastavení uvedeno výše),zvolte Serial a zadejte jméno Vašeho COM portu, určete také rychlost komunikace 115200 (jinak uvidíte místo toho, co máte vidět, jen rozsypaný čaj). Připojte se pomocí tlačítka Open

Nastavení přihlášení přes k routeru přes seriový port

  • Nastává okamžik pravdy, zapněte router. Pokud bude vše v pořádku, objeví se informace o startu routeru. Váš úkol je jediný, v okamžiku kdy se objeví

    Autobooting in 1 seconds

    , zadat a potvrdit příkaz

    tpl

    Je na to opravdu málo času, takže hodně pomůže nakopírování tpl[enter] do chránky a rychlé vkládání při bootu routeru přes pravé tlačítko myši. V okamžiku, kdy se router zastaví na

    wasp>

    , máte vyhráno.

Zde zastavit příkazem tpl

  • Stáhněte a nainstalujte si TFTP server
  • Propojte síťovým kabelem LAN1 rozhraní routeru s Vaším počítačem. Nastavte si pevnou IP adresu siťové karty v počítači na 192.168.0.2/255.255.255.0
  • Spusťte TFTP server, systém zřejmě požádá o povolení přístupu programu na siť, povolte.
  • Do stejné složky, v jaké je Váš TFTP program instalovaný, nakopírujte oříznutý originání firmware (postup k jeho získání najdete výše).
  • Do Putty, připojeného k routeru přes seriové rozhraní postupně zadejte příkazy:

    setenv ipaddr 192.168.0.1
    setenv serverip 192.168.0.2
    tftpboot 0x80000000 firmware.bin
    erase 0x9f020000 +0x3c0000
    cp.b 0x80000000 0x9f020000 0x3c0000
    bootm 0x9f020000


    Tím postupně nastavíte IP adresy pro načtení firmware z Vašeho počítače, jeho načtení, výmaz paměti routeru, uložení firmware a restart routeru.
  • Pokud bude vše v pořádku, načte se originální firmware, router se na chvilku odpojí od počítače, pak mu přidělí IP adresu a Vy ho najdete na webovém rozhraní http://192.168.0.1/

Tento postup mi router po chybné aktualizaci firmware zachránil, určitě tedy případně poslouží i Vám.