TP-Link: Naprawa Bootloadera i Instalacja Alternatywnego Oprogramowania (U-Boot)
Wszystkie opisane poniżej operacje zostały przetestowane i wykonane. Nie daję jednak żadnej gwarancji ich skuteczności. Wykonujesz je na własną odpowiedzialność. Autor nie ponosi odpowiedzialności za uszkodzony sprzęt, utratę danych czy przypalone kotlety.
Problemy z routerem TP-Link?
Jeśli masz jeden z poniższych problemów:
- Router TP-Link TP-XXXXX miga diodą YYYY i nie uruchamia się.
- Nie możesz połączyć się z routerem, nawet po przywróceniu ustawień fabrycznych.
- Router nie jest widoczny w sieci.
- Albo... brzydko pachnie.
Nie martw się (no, poza tym ostatnim przypadkiem). Większość problemów można rozwiązać przez nadpisanie oprogramowania routera. Ale co zrobić, jeśli router nie odpowiada na żadne połączenia?
Rozwiązaniem jest konsola szeregowa. W tym artykule pokażę, jak z niej skorzystać, bazując na przykładzie routera TP-Link MR3020.
Krok po kroku: Plan działania
- Rozbieramy router.
- Lokalizujemy złącza konsoli szeregowej.
- Lutujemy goldpiny.
- Nawiązujemy połączenie z routerem.
- Wgrywamy nowe oprogramowanie:
- Za pomocą serwera TFTP.
- Opcjonalnie wgrywamy zmodyfikowany bootloader.
- Profit!
Rozbieranie routera TP-Link MR3020
Najpierw musimy dostać się do wnętrza urządzenia. W przypadku MR3020 należy delikatnie podważyć obudowę od strony przeciwnej do diod sygnalizacyjnych. Uważaj, by nie uszkodzić plastikowych zatrzasków. Po zdjęciu obudowy zobaczysz płytę główną:
Na płytce znajdują się złącza konsoli szeregowej, które wyglądają tak:
Lutowanie goldpinów
Goldpiny można przylutować za pomocą standardowej lutownicy. Ważne: pady lutownicze na MR3020 mogą mieć problem z przyjmowaniem spoiwa. Przed lutowaniem odtłuść powierzchnię zarówno goldpinów, jak i padów.
Połączenie z konsolą szeregową
Aby nawiązać połączenie z routerem, potrzebujesz konwertera USB → RS232, obsługującego poziomy napięć TTL (np. z układem MAX232). Możesz kupić taki adapter za kilkanaście złotych. Oto przykład:
Podłączanie kabli
Podłącz przewody w następujący sposób:
- RX routera → TX adaptera
- TX routera → RX adaptera
- GND routera → GND adaptera
Uwaga: Aby połączenie było stabilne, podłącz rezystor 10 kΩ pomiędzy portem TX i VCC na routerze.
Konfiguracja programu do konsoli
Dane z konsoli możesz odczytać za pomocą programów takich jak screen lub Putty. W tym artykule użyjemy Putty, ponieważ jest prosty w konfiguracji i dostępny na wielu platformach.
Ustawienia Putty
- Port szeregowy: Sprawdź numer portu, wykonując polecenie
dmesg
. Najczęściej będzie to/dev/ttyUSBX
lub/dev/ttySX
. - Prędkość transmisji: Ustaw 115200 bps.
- Kontrola przepływu: Wyłącz kontrolę parzystości i płynności przepływu.
Twoje ustawienia powinny wyglądać tak:
Wgrywanie bootloadera przez TFTP
Konfiguracja serwera TFTP
Najprostszym narzędziem do tego celu jest dnsmasq. Zainstaluj go na swoim komputerze:
sudo apt-get install dnsmasq
Skonfiguruj dnsmasq:
port=0
interface=eth0
bind-interfaces
enable-tftp
tftp-root=/tmp/tftp
Skopiuj plik bootloadera (np. uboot.bin
) do katalogu /tmp/tftp
.
Ustawienia sieciowe
Przypisz adresy IP ręcznie:
ip link set eth0 up
ip addr add 192.168.1.2/24 dev eth0
Na routerze ustaw IP w konsoli:
hornet> setenv ipaddr 192.168.1.1
hornet> setenv serverip 192.168.1.2
hornet> printenv
Pobranie i zapis nowego bootloadera
Pobierz bootloader z serwera TFTP:
hornet> tftpboot 0x80800000 uboot.bin
Usuń stary bootloader (uważaj, nie odłączaj zasilania!):
hornet> erase 0x9F000000 +0x10000
Zapisz nowy bootloader:
hornet> cp.b 0x80800000 0x9F000000 0x10000
Testowanie nowego bootloadera
Zrestartuj router:
hornet> reset
Jeśli bootloader działa poprawnie, powinieneś zobaczyć następujący komunikat w konsoli:
HTTP server is starting for firmware update...
Przejdź do interfejsu WWW routera, aby wgrać nowe oprogramowanie:
Uwaga końcowa
Jeśli zdecydujesz się na modyfikowany bootloader, pamiętaj, że nie wspiera on oryginalnego oprogramowania TP-Link. Musisz używać alternatywnego firmware, np. OpenWRT, Gargoyle, czy DD-WRT.
Przydatne linki
Gratulacje! Twój router znów działa. Jeśli masz pytania, zostaw komentarz poniżej.