Instalacja OpenWrt na routerze TL-WR702N

zmodyfikowana płytka pcb routera tl-wr702n, posiadająca usb i lepszą pamięć

Ten przenośny micro router został wypuszczony w 2013 i bardzo szybko zdobył ogromne uznanie. Stało się to przez jego małe wymiary i spore możliwości, które posiada. Instalacja OpenWrt pozwoli nam na nieograniczone ilości zastosowań tego routerka. Model TL-WR702N posiada też odrobinę starszą siostrę: TL-WR703N. Porównajmy ich parametry:

ModelTL-WR702NTL-WR703N
ProcesorAtheros AR9331Atheros AR9331
FLASH2MB4MB
RAM16MB32MB
USBnietak

Jak widać różnią się one tylko rozmiarami pamięci i posiadaniem interfejsu USB.

Obecnie w sprzedaży nie ma już modelu TL-WR703N, a oba routery posiadają swoich następców. Model WR702N nadal można kupić nowego, jak i używanego za śmieszne pieniądze zaczynające się od 20zł.

Modyfikacja pamięci

Instalacja OpenWrt z interfejsem LuCI wymaga minimum 4MB pamięci FLASH oraz 32MB pamięci RAM, więc te dwa podzespoły będziemy musieli wymienić, aby zainstalować na nim nasz wymarzony system.

Pamięć RAM

Kompatybilnych pamięci RAM, jest znacznie dłuższa lista, której nie będę tu zamieszczać, a znajduje się ona na stronie OpenWrt poświęconej niniejszemu routerkowi: https://oldwiki.archive.openwrt.org/toh/tp-link/tl-wr703n .

Najłatwiejszym sposobem pozyskania kości, na której instalacja OpenWrt się uda, będzie znalezienie starej pamięci RAM DDR. Jeżeli będą na niej znajdować się układy kompatybilne fizycznie (obudowa TSOP66), to w większości przypadków będą one współgrały z naszym routerem.

Pamięć RAM wystarczy przelutować na nową, nie wymagane są inne czynności aby instalacja OpenWrt się udała.

Pamięć Flash

Kompatybilne pamięci FLASH (16MB) to:

  • Spansion S25FL127S
  • Macronix MX25L128
  • Winbond W25Q128

Z czego tą ostatnią bez problemu możemy kupić na allegro. Pamięci te mają 16MB co da nam spory zapas na instalowanie dodatkowych paczek.

Programowanie pamięci

Po uzyskaniu odpowiednich pamięci musimy jeszcze mieć coś, co pozwoli nam zaprogramować FLASH. Nie możemy po prostu wlutować pustej pamięci, bo… no właśnie, bo jest pusta. Musimy wgrać na nią bootloader i dopiero wtedy będzie możliwa instalacja OpenWrt. Do tego potrzebujemy programator pamięci flash. Bardzo tanio można kupić programator na układzie CH341, który w zupełności nam wystarczy.

programator CH341
Tani programator na kości CH341, dostępny na allegro za ~20zł

W zestawie z programatorem dostajemy adapterek, gdzie będziemy mogli wlutować pamięć SMD. Razem z urządzeniem dostajemy także sterownik i program do odczytywania i zapisywania pamięci, które możecie też pobrać poniżej: 

Najpierw musimy odczytać i zapisać stockowy firmware. Z niego odczytamy partycję ART, czyli Atheros Radio Test. W tym miejscu są zapisane unikatowe dane kalibracyjne dla interfejsu bezprzewodowego, bez których nie będzie on działał.

Podczas uruchomienia oprogramowania programatora ujrzymy error z krzaczkami. Nie przejmujemy się tym i klikamy Ok

oprogramowanie programatora CH341
Widok okna programu do programowania pamięci

Jeżeli zainstalowaliśmy sterowniki, to w dolnym prawym rogu status będzie jako podłączony. Po włożeniu pamięci do programatora klikamy Wykryj. Powinniśmy zobaczyć swój układ w polu Nazwa. Wybieramy Czytaj i po skończonym zgrywaniu danych zapisujemy je Plik->Zapisz.

Partycja ART znajduje się na ostatnich 64kB w pamięci. W naszym przypadku będzie to od adresu 0x001F0000 do jej końca, czyli 0x001FFFFF. Wycinamy to programem do edycji plików binarnych, np HxD. W nim wybieramy Edit->Select block… Start-offset dajemy 1F0000, Length 10000. Zaznaczony obszar kopiujemy, wklejamy do nowego pliku i zapisujemy. Plik powinien mieć wielkość równo 64kB.

modyfikacja pliku binarnego programem HxD
Widok okna programu HxD

Teraz możemy przystąpić do wgrania uboota do nowej pamięci. 

Repozytorium użytkownika pepe2k:

https://github.com/pepe2k/u-boot_mod/tree/master/original_u-boot_images

Gotowe obrazy:

http://projects.dymacz.pl/?dir=u-boot_mod

O wszystkich możliwościach tego bootloadera możemy się dowiedzieć z artykułu jego twórcy:

http://www.tech-blog.pl/2013/03/29/zmodyfikowany-u-boot-dla-routerow-tp-link-z-atheros-ar9331-z-trybem-aktualizacji-oprogramowania-przez-www-i-konsola-sieciowa-netconsole/

Wgrywamy go przez otworzenie pliku Plik->Otwórz i wybieramy Auto Programowanie. Po paru minutach wyświetli się nam informacja o udanym procesie.

Czynności przed instalacją OpenWrt

Po wgraniu uboota i wlutowaniu pamięci do routera będziemy musieli:

  • Wpisać adres MAC
  • Wgrać partycję ART
  • Wgrać OpenWrt

Zmiana adresu MAC

Najpierw zajmiemy się adresem MAC. Możemy podłączyć się szeregowo, bezpośrednio do płytki, ale nie musimy. W tym uboocie znajduje się NetConsole, czyli dostęp do konsoli bootloadera przez interfejs sieciowy. Szczegóły są w opisie, do którego link znajduje się wyżej. W skrócie:

  • Pobieramy program Hercules SETUP utility
  • Przytrzymujemy przycisk resetu w routerze i włączamy go do zasilania, trzymając go minimum 7 sekund
  • Łączymy się patchcordem z routerem
  • Ustawiamy adres komputera na 192.168.1.2/24
  • W Herculesie przechodzimy do zakładki UDP
  • IP ustawiamy na 192.168.1.1, porty na 6666
  • Klikamy Listen

Teraz mamy dostęp do konsoli. Na końcu każdej wprowadzonej linii musimy dopisać “<lf>”. Wysyłamy “?<lf>” w celu sprawdzenia czy dostaniemy odpowiedź, co będzie świadczyło o poprawnej konfiguracji. Teraz możemy ustawić nasz adres MAC:

setmac 11:22:33:44:55:66<lf>

Gdzie oczywiście musimy wpisać nasz faktyczny adres, który znajduje się na obudowie pod kodem kreskowym.

Wgranie partycji ART

Teraz w Herculesie wysyłamy komendę:

httpd<lf>

Co uruchomi serwer www, przez który będziemy mogli wgrać oprogramowanie. Gdy już to zrobimy, w przeglądarce wchodzimy na adres 192.168.1.1/art.html. Następnie wybieramy nasz wcześniej zapisany plik z partycją art i wgrywamy go.

Instalacja OpenWrt

Po wgraniu partycji ART, gdy dioda LED na routerze znowu zacznie pulsować zielonym światłem, wchodzimy na adres 192.168.1.1/index.html.

Na tej stronie zostanie przeprowadzona właściwa instalacja OpenWrt, którego obraz możemy pobrać z tego linku:

http://dl.eko.one.pl/luci/chaos_calmer/ar71xx/8M-16M/luci-15.05-ar71xx-generic-tl-wr703n-v1-8M-squashfs-factory.bin – zmodyfikowane oprogramowanie dla pamięci 8MB i większych.

https://archive.openwrt.org/barrier_breaker/14.07/ar71xx/generic/openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin – podstawowe oprogramowanie dla pamięci 4MB.

Gdy wszystko przebiegnie pomyślnie, router zresetuje się i dioda LED zamiga parę razy, po czym będzie świeciła ciągłym światłem. Jeżeli teraz odświeżymy stronę w przeglądarce pojawi się nam strona logowania do panelu konfiguracyjnego LuCI.

panel konfiguracyjny LuCI
Strona panelu konfiguracyjnego LuCi

Przechodzimy do zakładki Sieć->WiFi i sprawdzamy, czy działa interfejs bezprzewodowy. Jeżeli po uruchomieniu widzimy sieć WiFi o nazwie OpenWrt oznacza to, że partycja art została poprawnie wgrana. W przeciwnym wypadku, gdy nie widzimy naszej sieci lub nic nie mamy w tej zakładce musimy ponownie wyodrębnić partycję art i ją wgrać, zwracając uwagę na to, czy nie robimy jakichś błędów.


Interfejs USB

Model WR702n od WR703N oprócz rozmiarów pamięci różni się tym, że nie posiada gniazda USB A. PCB w obu przypadkach jest takie samo, brakuje tylko paru elementów obsługujących tą magistrale.

Lokalizacja brakujących elementów

W sieci znajduje się kompletny schemat tego routera, który został stworzony za pomocą inżynierii wstecznej:

http://squonk42.github.io/TL-WR703N/

Proces tworzenia tego schematu jest opisany na tej stronie, autor włożył w to bardzo dużo czasu i pracy.

Przyjrzyjmy się mu w okolicach portu USB:

wr703n schemat usb
Część schematu pokazująca obszar przy gnieździe USB

Porównując go z elementami na płytce, zauważymy, że brakuje nam C114, C113, C115, D1, D2, R102 i R101. C114 nie jest obowiązkowy, pełni on raczej funkcję ochronną i bez jego obecności nie stanie się nic poważnego. Podobnie jest w przypadku podwójnych diod D1 i D2, które również pełnią funkcję ochronną linii danych USB. Jeżeli nie posiadamy takowych, to możemy je pominąć. C113 i C115 filtrują zasilanie idące do urządzenia, dla pewności je wlutujemy. R102 i R101 to zworki 0om, które łączą szynę danych procesora z urządzeniem, w ich miejsce musimy wlutować kawałek cienkiego przewodu.

Spójrzmy teraz na okolice portu microUSB i zasilania:

wr703n schemat zasilania

Część schematu pokazująca obszar dystrybucji zasilania

Brakuje nam U6, R107, R108, R111 i R113. Układ U6 odpowiada za dystrybucję zasilania do zewnętrznego urządzenia USB i chroni przed zwarciem czy zbyt dużym obciążeniem. R107, R108 i R111 są elementami używanymi przez ten układ. Całość możemy ominąć wlutowywując zamiast R113 zworę. Zasilanie będzie wtedy szło bezpośrednio z jednego portu USB do drugiego. Gotowe modyfikacje będą wyglądały następująco:

top PCB wr703n
Góra PCB
wr702n dół PCB z zaznaczonymi elementami do wlutowania
Dół PCB

Konfiguracja USB w systemie

Logujemy się do routera przez ssh (wpierw musimy ustawić hasło w LuCI) i aktualizujemy paczki:

root@OpenWrt:~# opkg update

Żeby to zrobić nasz router musi mieć dostęp do internetu.

Nasz system powinien zawierać niezbędne paczki do obsługi usb, jeżeli ich nie posiadamy wpisujemy:

root@OpenWrt:~# opkg install kmod-usb-storage
root@OpenWrt:~# opkg install usbutils

Dla przykładu podłączamy pamięć USB z istniejącą  partycją z formatem plików NTFS. Teraz wpisujemy

root@OpenWrt:~# lsusb -l

Zobaczymy listę podłączonych urządzeń, powinno to wyglądać mniej więcej tak:

root@OpenWrt:~# lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M

Następnie sprawdzamy dostępne partycje:

root@OpenWrt:~# ls -l /dev/sd*
brw-r--r--    1 root     root        8,   0 Nov 25 15:09 /dev/sda
brw-r--r--    1 root     root        8,   1 Nov 25 15:09 /dev/sda1
brw-r--r--    1 root     root        8,   2 Nov 25 15:09 /dev/sda2

Jak widać, mamy dostępny dysk /dev/sda, który posiada partycje sda1 i sda2. Zamontujmy teraz partycję, w moim przypadku będzie to sda2:

root@OpenWrt:~# mount /dev/sda2 /mnt

Jeżeli wszystkie poprzednie czynności wykonaliśmy pomyślnie, powinniśmy mieć teraz dostęp do plików:

wr703n usb
Montowanie pendrive

Ostatnią czynnością będzie wykonanie otworu w obudowie na złącze. Proxxon idzie w ruch, chwila na wyrównanie pilnikiem i mamy gotowy otworek:

zmodyfikowana obudowa wr703n
Zmodyfikowana obudowa

Takim sposobem mamy urządzenie bazujące na linuxie z ogromnymi możliwościami. W sieci znajduje się wiele poradników dotyczących konfiguracji OpenWrt. W najbliższym czasie pokażę kolejne modyfikacje i ciekawe zastosowania tego routerka.

Dodaj komentarz

avatar
  Subskrybuj  
Powiadom o