Kiedyś popełniłem wpis jak sprawdzić IP. Minęło trochę czasu i sposobów na sprawdzenie adresu IP komputera znalazło się nieco więcej. Niektóre przydatne, inne zabawne. Tak naprawdę są to sposoby na sprawdzanie z jakim adresem IP wychodzimy do internetu.
Zabawny sposób na sprawdzenie IP – pomoże nam kozioł (trzeba kliknąć kozła).
Polski sposób na sprawdzenie adresu IP – pomoże nam Wirtualna Polska podająca twojeip.
I to by było na tyle. Kiedyś, wiele lat temu, gdy powstawał szkic tego wpisu, działały sposoby na sprawdzanie adresu IP przez zapytanie DNS. Albo mniej lub bardziej zabawne strony, które podają adres IP w wersji audio. Coraz mniej tego zostało. Co więcej, nawet zapytania w wyszukiwarkach zwracają średnio adekwatne wyniki. Samych serwisów jest coraz mniej i coraz częściej są obwieszone reklamami jak choinki. No cóż, chyba sprawdzanie IP przestaje być potrzebne…
W ramach pewnego projektu, o którym może usłyszycie wkrótce, kupiłem za jakieś śmieszne pieniądze rzędu 20 zł router Tenda W311R+. Miał nieco stary firmware, więc postanowiłem zaktualizować. Nie wszystko poszło dobrze i skończyło się tzw. cegłą. Na szczęście znalazłem opis, jak zrobić debrick routera Tenda W311R+.
Sytuacja jest nieco zabawna, więc opiszę jak doszło do sceglenia. Otóż producent routerów Tenda ma niefajną tendencję do paru rzeczy nie ułatwiających znalezienia właściwego oprogramowania. Po pierwsze, produkują routery o bardzo podobnych nazwach. Po drugie, oprogramowanie do zupełnie różnych modeli potrafi mieć tę sam numer wersji. Po trzecie, w ramach jednego modelu routera istnieją różne wersje hardware. Dopiski w informacji o oprogramowaniu w stylu to oprogramowanie wymaga wersji sprzętu 3.0 są normą. No i na koniec wspomniana Tenda W311R+ to sprzęt sprzed dekady, więc nie do końca wszystko jest dostępne, a strony działają czy przekierowują, nazwijmy to, różnie.
W każdym razie podłączyłem się do routera kabelkiem i zmieniłem firmware V5.07.15_en_02 na znaleziony V5.07.47_en_02. Flashowanie przebiegło poprawnie, router się zrestartował. Ku mojemu zdziwieniu, po restarcie okazało się, że mocno zmieniła się szata graficzna. Jeszcze bardziej zdziwiłem się, gdy spostrzegłem, że wersja sprzętu zmieniła się z 1.0 na 3.0. Ups! Niemniej sprzęt działał. Tzn. ethernet działał. WiFi nie bardzo. Szybko poszukałem innego oprogramowania, wgrałem i…
No teraz to dopiero się pomyliłem. Router po restarcie nie wstał. Dioda się zapalała, ale żadnej odpowiedzi. Odłączanie zasilania i reset oczywiście nie pomogły. Cegła jak się patrzy.
Skoro sprzęt jest zepsuty i bardziej zepsuty nie będzie, to należy go oczywiście rozebrać i poszukać złącza JTAG. Niestety, po otwarciu obudowy okazało się, że nie tylko nie ma JTAG, ale nawet niczego co by go przypominało od biedy. Bebechy wyglądają solidnie, ale minimalistycznie.
Filmy YouTube
Zacząłem szukać w internecie czy jest gdzieś opisane, jak zrobić debrick routera Tenda W311R+ i nie wyglądało to dobrze. Opisu nie znalazłem ani jednego. Za to znalazłem dwa interesujące filmy na YouTube, które z tytułu się zgadzały. Obejrzałem pierwszy z nich. Niestety nie był po angielsku. I działy się tam dantejskie sceny. Autor bowiem zwiera śrubokrętem nóżki chipa podczas włączania, co rzekomo powoduje uruchomienie trybu serwisowego chipsetu Broadcom. Dokładniej Broadcom – CFE miniWeb Server. Rozumiecie, nie dedykowana zworka, nie oznaczone miejsce na płytce drukowanej, tylko weź śrubokręt i zewrzyj odpowiednie nóżki chipa. Oczywiście chip nie jest czytelnie opisany.
Znalazłem też drugi film, tym razem z niezbyt zrozumiałym angielskim. Przedstawiał dokładnie tę samą procedurę. Ponieważ – jak wspomniałem – router był zepsuty, więc stwierdziłem, że w najgorszym razie będą jeszcze iskry[1], dymek i nieprzyjemny zapach – mówi się trudno.
Zlokalizowałem chip, upewniłem się, że powinny to być te dwie nóżki i zacząłem nierówną walkę. Ponieważ oba filmy są niezbyt zrozumiałe i niezbyt czytelne. Jakość wideo też pozostawia sporo do życzenia, dodatkowo autorzy uznali za niezbędne zmniejszenie pola widzenia przez zamieszczenie podglądu ekranu komputera. Opiszę więc w formie tekstowej, co trzeba zrobić, żeby wprowadzić router w tryb serwisowy. Nie jestem pewien, czy działa za każdym razem – próbowałem wielokrotnie i w końcu się udało. Postaram się więc jak najdokładniej opisać, co wydaje mi się, że zrobiłem, nim zadziałało. Ani za efekty ani żadne szkody wynikłe z zastosowania poniższego sposobu nie odpowiadam. W moim przypadku debrick routera W311R+ zakończył się powodzeniem.
Instrukcja
odłącz zasilanie od routera
podłącz kabel ethernet do portu LAN położonemu najbliżej gniazda zasilania[2]
ustaw statyczny adres IP 192.168.1.2/24 na komputerze
uruchom na komputerze ping na adres 192.168.1.1[3]
naciśnij i trzymaj przycisk reset
podłącz zasilanie, cały czas trzymając reset
zewrzyj odpowiednie, dolne skrajne wewnętrzne, nóżki chipa (zaznaczone czerwoną kropką i strzałką na screenshocie poniżej) i trzymaj zwarte
zwolnij przycisk reset
po chwili ponownie zewrzyj na chwilę nóżki chipa
jeśli router uruchomił się w trybie serwisowym, adres 192.168.1.1 zacznie odpowiadać na ping
wejdź przeglądarką na http://192.168.1.1, z poziomu WWW, gdzie możesz wgrać prawidłowe oprogramowanie
Wnętrze routera Tenda W311R+ z zaznaczonym miejscem zwarcia Źródło: fot. włąsna
Najśmieszniejsze w tym wszystkim jest to, że jeden z filmów jest sprzed roku. Drugi sprzed dwóch lat. Sam sprzęt jest sprzed dekady i z różnych względów niekoniecznie polecam korzystanie z niego w 2023. Uważni czytelnicy pamiętają być może wpis o routerze Pentagram Cerberus P6361, bo pod taką marką także były sprzedawane produkty Tenda w Polsce.
Póki co router zreanimowany do firmware bez WiFi. Szukam właściwego firmware dla niego…
[1] No dobra, bądźmy poważni. Przy tak niskich napięciach raczej na iskry szans nie ma. [2] Nie wiem czy jest to konieczne, teoretycznie porty powinny być takie same. Niemniej nie zaszkodzi, a na pewno zadziałało mi właśnie w tym porcie. [3] Taki adres będzie miał router w trybie serwisowym
Niezbyt często używam pl-znaków w konsoli łącząc się po SSH, ale jest parę miejsc, gdzie ich potrzebuję. Po dłuższym czasie zauważyłem, że na nowym komputerze mam problem z pl-znakami. Występował tylko przy połączeniu się z tego macOS przy pomocy SSH do Linuksa. Nic krytycznego, bo w zasadzie nie potrzebuję się tam łączyć z macOS, z innych Linuksów działało, ale byłoby miło, gdyby działało wszędzie. W końcu znalazłem chwilę i postanowiłem się zająć sprawą.
Krótko o środowisku: na workstacji macOS Ventura 13.4 z zsh 5.9 oraz iTerm2 3.4.19. Dla pamięci opis sprawdzania ustawień krok po kroku.
ustawienia iTerm
Upewniamy się, że iTerm korzysta z kodowania UTF-8. W tym celu należy wybrać settings -> profiles -> terminal Upewniamy się, że character encoding jest ustawione na UTF-8.
zmienne środowiskowe
Sprawdzamy ustawienia zmiennych środowiskowych na macOS. W tym celu należy wpisać echo $LANG i sprawdzić wartość zmiennej LANG. Powinna być jakaś z UTF-8, na przykład pl_PL.UTF-8.
Jeśli jest inaczej, można dopisać odpowiednią wartość w pliku .zshrc[1] export LANG=pl_PL.UTF-8
Jeśli wykonujemy zmianę, należy uruchomić nowy terminal, aby została zastosowana.
kodowanie w powłoce
Sprawdzamy na macOS, jakie kodowanie mamy ustawione w terminalu. Wpisujemy locale i weryfikujemy zawartość zmiennych LC_CTYPE oraz LANG. Powinny zawierać kodowanie UTF-8. Jeśli tak nie jest, można ustawić odpowiednie zmienne w sposób opisany w poprzedniem akapicie.
ustawienia systemu zdalnego
Należy sprawdzić, czy na serwerze zdalnym locale ustawione są na wersję z UTF-8. W tym celu wpisujemy locale. Jeśli tak nie jest, to w Debianie i Ubuntu polecenie dpkg-reconfigure locales umożliwi zarówno wygenerowanie odpowiednich locali, jak i ustawienie domyślnych.
Przy powyższych ustawieniach pl-znaki powinny wyświetlać się poprawnie.
Dla zupełnej transparentności: tym razem nie ma odnośników do stron, których używałem przy rozwiązywaniu problemu. Posiłkowałem się bowiem chatGPT z niewyszukanym promptem macos problem utf-8 iterm how to solve. Całkiem sprawnie sobie poradził.
[1] Jeżeli z jakiegoś powodu korzytamy z bash, nie zsh, to właściwym plikiem będzie .bash_profile