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. 😊