MR3040 to nowy produkt w ofercie firmy TP-LINK, dedykowany głównie osobom w częstym ruchu. Urządzenie jest swego rodzaju szwajcarskim scyzorykiem wśród routerów – pozwala na pracę w niemal dowolnym trybie (klient, AP, router) oraz co najważniejsze – posiada własne zasilanie. Według zapewnień producenta, bateria pozwala na 4 do 5 godzin aktywnej pracy. W połączeniu z darmową ofertą Aero2 lub szybkim Internetem od operatora komórkowego, jest to idealne rozwiązanie, by mieć Internet zawsze przy sobie.

TP-LINK mr3040

Router TL-MR3040 to miniaturowy punkt dostępu z Wi-Fi w standardzie N, jednym portem ethernetowym 10/100 Mb/s oraz portem USB i wsparciem dla sporej liczby dostępnych na rynku modemów 3G/4G.

Urządzenie może funkcjonować w kilku różnych trybach:

  • routera 3G/4G – port ethernetowy oraz Wi-Fi stanowią cześć LAN i udostępniane jest im połączenie internetowe z modemu USB.
  • routera bezprzewodowego – z portu ethernetowego udostępniany jest Internet stacjonarny, dzięki czemu urządzenie służy jako brama dla urządzeń podpiętych bezprzewodowo. (standardowy router z funkcja NAT)
  • Access Point (AP), na który składają się
    • tryb klienta (można podłączyć urządzenie podpięte ethernetowo do innej sieci Wi-Fi)
    • tryb punktu dostępowego (bezprzewodowy switch)
    • tryb Repeater-a (dwa powyższe, w tym przypadku podpięcie całej sieci LAN do innej już istniejącej)
  • Klient WISP

Specyfikacja TL-MR3040

Poniżej krótka specyfikacja urządzenia:

  • CPU : Atheros AR9931 @ 400MHz
  • RAM : 32 MiB
  • Flash : 4MiB
  • Bateria : 2000mAh
  • 1 port LAN/WAN 10/100Mb/s
  • 1 port USB 2.0
  • 1 port microUSB (do ładowania)

Urządzenie posiada cztery programowalne diody sygnalizujące pracę urządzenia – jedna z nich może odzwierciedlać stan naładowania baterii. (zielony, pomarańczowy oraz zielono-pomarańczowy, który oznacza ładowanie). Niestety nie ma możliwości sprawdzenia procentowego naładowania baterii z poziomu panelu zarządzania/systemu – również na alternatywnym firmware.

W większości przypadków domyślny firmware powinien automatycznie rozpoznać modem USB oraz zalogować się do sieci operatora. Jeśli to nie nastąpi możliwe, że nasze urządzenie nie jest domyślnie wspierane i należy pobrać dodatkowe sterowniki. Tak tez było w naszym przypadku (Huawei e3131). Procedura dodawania urządzenia jest stosunkowo prosta i sprowadza się do wgrania spakowanego pliku zip poprzez panel do aktualizacji firmware urządzenia. Należy także korzystać z możliwie najnowszej wersji oprogramowania TP-LINK – pomoże to zapobiec ewentualnym problemom oraz może dodać nową funkcjonalność (np. wskaźnik mocy sygnału czy wsparcie dla logowania z wykorzystaniem PIN karty SIM).

Galeria TL-MR3040

TP-LINK mr3040
TP-LINK mr3040
TP-LINK mr3040
TP-LINK mr3040

OpenWRT na TL-MR3040

OpenWrt to otwarty projekt systemu operacyjnego dla urządzeń sieciowych, np. routerów. Oferuje on dużo szerszy wachlarz możliwości niż standardowy firmware wielu producentów, m.in. możliwość udostępnienia dysku USB jako NAS czy drukarki w sieci LAN, streaming obrazu z kamery video, dostęp do urządzenia przez SSH/telnet czy zaawansowanej konfiguracji takich elementów systemu jak firewall, NAT czy QoS.

Instalacja

Instalacja jest wysoce zależna od modelu oraz producenta urządzenia. Należy zapoznać sie z dokumentacją na stronie projektu openwrt.org oraz sprawdzić czy istnieje OpenWrt dla naszej wersji sprzętowej (niektóre modele routerów mogą wystąpić w wielu konfiguracjach). W przypadku naszego TL-MR3040 instalacja była stosunkowo prosta – wystarczy pobrać ze strony ecco.selfip.net odpowiedni firmware (koniecznie ze słowem factory w nazwie) oraz wgrać go standardową metoda – przez panel przeglądarkowy TP-LINK. Należy upewnić się, że podczas instalacji urządzenie jest podpięte do zasilania – w przypadku przerwania procesu może dojść do nieodwracalnego uszkodzenia urządzenia (tzw. zbrickowania).

Powyższy obraz zawiera większość podstawowych usług juz zainstalowanych, takich jak interfejs LuCI do zarządzania routerem przez przeglądarkę, obsługę dysków USB, serwer FTP i wparcie dla niektórych modemów USB. Alternatywnie można pobrać czysty system ze strony openwrt.org mając na uwadze brak jakichkolwiek dodatków – w tym interfejsu przeglądarkowego. Początkową konfiguracje należy wtedy przeprowadzić za pośrednictwem konsoli telnetowej, a następnie uaktywnić SSH i skonfigurować połączenie internetowe by móc doinstalować inne komponenty (np. LuCI). Dla uproszczenia posłużymy się tutaj gotowym obrazem z zainstalowanymi usługami.

Konfiguracja OpenWrt

Domyślny adres urządzenia to 192.168.1.1/24. Wstępnej konfiguracji można dokonać zarówno przez przeglądarkę jak i połączenie telnetowe (login root, bez hasła). Po ustawieniu haseł do panelu oraz konsoli OpenWrt automatycznie zastąpi telnet serwerem SSH.

Konfiguracja z użyciem wiersza poleceń

Powyższy obraz OpenWrt nie wymaga doinstalowania żadnych dodatkowych pakietów – oferuje tą samą funkcjonalność, co oryginalny firmware. Większość ustawień można “wyklikać” w panelu przeglądarkowym lub poprzez edycje plików konfiguracyjnych w katalogu /etc/config/. Jest jednak spora szansa, że będziemy musieli dodać wsparcie dla naszego modemu 3G. W naszym przypadku jest to Huawei e3131 z kartą Play oraz Aero2. Możemy w tym celu posłużyć się menedżerem pakietów opkg dołączanym standardowo do każdego obrazu OpenWrt. Pierwszym krokiem jest sprawdzenie czy mamy zainstalowane pakiety do obsługi urządzeń USB oraz ewentualne uzupełnienie braków:

opkg update
opkg install kmod-usb-core kmod-usb2 kmod-usb-serial kmod-usb-serial-option usb-modeswitch usb-modeswitch-data libusb chat comgt

By powyższe polecenie wykonało się poprawnie należy uprzednio podłączyć stacjonarny Internet oraz dokonać konfiguracji w LuCI lub w plikach w /etc/config.

Następnie należy edytować plik /etc/config/network i dołączyć następujące informacje

 config 'interface' 'modem3g'
        option 'proto' '3g'
        option 'service' 'umts'
        option 'device' '/dev/ttyUSB0'
        option 'apn' 'Internet'

        #opcjonalne, w zaleznosci od operatora
        option 'pincode' '1234'
        option 'username' 'internet'
        option 'password' 'Internet'

Na końcu należy podnieść interfejs poleceniem:

ifup modem3g

Konfiguracja z użyciem panelu LuCI

To samo można osiągnąć za pośrednictwem interfejsu LuCI. Należy przejść do zakładki Network -> Interfaces, a następnie wybrać opcję Add new interface.

LuCI - dodawanie interfejsu

Następnie należy podać nazwę interfejsu oraz z rozwijanej listy wybrać opcję UMTS/GPRS/EV-DO.

LuCI - wybranie z listy opcji modemu

W następnym kroku należy wybrać urządzenie (/dev/ttyUSB0), typ usługi (tylko UMTS) oraz podać dane konfiguracyjne operatora (w przypadku braku pozostawiamy puste).

LuCl - konfiguracja modemu Play

Kilka przykładowych konfiguracji dla polskich operatorów (w kolejności APN, username, hasło):

  • Aero2 : darmowy, ,
  • Cyfrowy Polsat : multi.internet , ,
  • Orange : internet, internet, internet
  • Play : internet, ,
  • Plus : internet, ,
  • T-Mobile: Internet, brak, brak

Powyższe czynności były wystarczające, aby uruchomić połączenie z operatorem sieci Play przy użyciu modemu Huawei e3131. Postanowiliśmy również przetestować jak sprawdzi się OpenWrt w przypadku darmowego Internetu Aero2. Do połączenia wymagane jest wsparcie dla częstotliwości UMTS/HSPA+ 900MHz – w przypadku modemów Huawei może być konieczne wprowadzenie dodatkowego ustawienia modemu. Sprowadza się to jedynie do wykonania poniższego polecenia:

ifdown modem3g
echo "AT^SYSCFG=2,2,3FFFFFFF,1,2" > /dev/ttyUSB0
ifup modem3g

Niestety, konfiguracja oraz kompatybilność modemów z OpenWrt jest bardzo zróżnicowana. W naszym przypadku większość oprogramowania była domyślnie dołączona z systemem. Również używany przez nas modem (Huawei e3131) jest dość popularny, przez co znalezienie dla niego konfiguracji było stosunkowo prostym zadaniem. W przypadku innych producentów sprawa może być bardziej kłopotliwa – w takim wypadku nieocenionym pomocnikiem może okazać się wyszukiwarka oraz fora dyskusyjne.

Testy wydajności

Przygotowaliśmy trzy scenariusze, aby sprawdzić jak długo TL-MR3040 funkcjonuje na zasilaniu bateryjnym. Przed każdą z prób urządzenie było naładowane w 100% i odłączane dopiero w momencie rozpoczęcia testu.

  1. W pierwszym scenariuszu urządzenie pozostawiono włączone bez dodatkowych urządzeń w postaci modemów czy hostów podłączonych po Wi-Fi, jedynie sam system operacyjny.
  2. W drugim zostały podłączone bezprzewodowo dwa urządzenia między którymi protokołem FTP był przesyłany jeden duży plik z maksymalna możliwa prędkością.
  3. W trzecim scenariuszu podłączony został modem USB Huawei e3131 z karta Play. Test polegał na zalogowaniu się do sieci operatora bez podłączania jakichkolwiek urządzeń po Wi-Fi i pozostawienie do wyczerpania baterii.

Poniżej wykres przedstawiający uzyskany wynik (w minutach)

Jak widać czas pracy na baterii znacząco różni się w zależności od trybu, w jakim pracuje urządzenie. Modem USB najprawdopodobniej korzystał z pełni napięcia, jakie oferował port USB, ponieważ wystarczyło to na nieco ponad 5 godziny pracy. Przy braku aktywności sieciowej nie jest to zbyt imponujący wynik. Być może jest to wina systemu zarządzania energią Huawei, w przypadku modemów innych producentów czas pracy na baterii możliwe, że byłby inny.

Przesył danych

Prędkość przesyłu danych została zmierzona w podobny sposób, co scenariusz 2. Za pośrednictwem protokołu FTP przesyłano dane w różnych odległościach, z szyfrowaniem transmisji (WPA2), zarówno przez Wi-Fi oraz przez połączenie kablowe. Pierwsze dwa testy przeprowadzono z serwerem FTP podłączonym przewodowo oraz klientem podłączonym przez wifi. W kolejnych dwóch testach oba hosty były połączone bezprzewodowo. Pary odległości użyte w teście to 1 oraz 5 metrów (od routera). Wyniki przedstawiono na poniższym wykresie (wartości w Mb/s):

TL-MR3040-predkosc-transferu

Podsumowanie

Router TP-LINK to ciekawa pozycja, która zdecydowanie przypadnie do gustu zwłaszcza podróżującym użytkownikom, którzy nie chcą przepłacać za Internet mobilny dostarczany z abonamentem lub też chcą korzystać z taniego Internetu na urządzeniu, które nie ma możliwości podpięcia modemu usb (np. na telefonie). Może tez przydać się większej grupie osób, gdy nie ma możliwości uruchomienia AP w celu chociażby wymiany plików czy udostępnienia łącza internetowego. Czas pracy na baterii nie jest piorunujący, aczkolwiek zawsze można doładować urządzenie w trakcie działania, np. z portu usb w laptopie. Na plus należy zaliczyć również niewielkie rozmiary oraz niewielka wagę.

TL-MR3040

Plusy

  • duże możliwości
  • niewielkie rozmiary
  • prostota obsługi i instalacji
  • Długi czas pracy bez podłączania modemu USB

Minusy

  • Kiepskie zarządzanie energią (5 godziny pracy z modemem USB przy braku aktywności sieciowej)
  • brak możliwości dokładnego sprawdzenia poziomu naładowania baterii

  • Pingback: Archiwum TL-MR3040 – test routera przenośnego TP-LINK()

  • Urządzenie bardzo ciekawe :)
    Daje więcej możliwości niżeli routery 3g sprzedawane u operatorów.

    • Za to na ryby idealnie się sprawdza :D

    • A złowiliście coś ? :P Czy na ta sieć nic nie złapało się :P

    • o_O

      Skoro już się czepiam języka, to dlaczego piszesz "za to" w odniesieniu do (jak mniemam) pozytywnej cechy w momencie, gdy ta z poprzedniego komentarza również była pozytywna? Chyba powinno być "I na ryby idealnie się sprawdza :D".

  • o_O

    > Mowa rzecz jasna o routerze 3G/4G TL-MR3040.

    No i znowu muszę się przyczepić do języka, bo aż razi w oczy :)

    Patrząc na przedstwiony opis rzecz wcale nie jest jasna, że ten produkt ma jakiś tam konkretny numerek.

    Kontrprzykład: jeszcze kilka lat temu można było mówiąc o powolnym języku programowania, że chodzi rzecz jasna o Javę. Dziś już nawet to nie jest takie jasne, bo o miano najwolniejszego walczy też .net wraz z mono.

    Natomiast użycie tego zwrotu w tym kontekście jest zupełnie nie na miejscu.
    Jaki promil użytkowników kojarzy to urządzenie z nazwy, żeby dopasować je do parametrów? Gdyby to chociaż był powszechnie znany WRT54-GL…

    • Gerard Stańczak

      tplink ma w swojej ofercie tylko jeden router zasilany baterią, więc wynikało to z kontekstu że chodziło o ten właśnie model
      poza tym, fajnie że komentujesz zawartość artykułu oraz korzystasz z formularza do zgłaszania błędów językowych, tak trzymać

    • mak

      O, widzę że nasz programista się i tu udzielił ze swoją opinią nt. Javy.
      Użyłeś sformułowania cyt. "mówiąc o powolnym języku programowania".
      Albo się doucz, bo nie rozróżniasz elementarnych pojęć, albo nie krytykuj języka innych, bo sam nie potrafisz poprawnie sformułować swojej błyskotliwej analogii.

    • o_O

      Język też może być powolny, nie musi to być jego implementacja, kompilator czy wirtualna maszyna.

      Java i dotnet mają już na poziomie języka wbudowane olewanie usuwania obiektów z pamięci przez programistę, a co za tym idzie, konieczność implementacji powolnych garbage collectorów zjadających czas procesora w najmniej odpowiednim momencie.

      Tak, Java i dotnet to powolne języki by design. Doucz się tego.

    • mak

      Sugerujesz że jawne zwolnienie pamięci nie "zjada" czasu procesora?
      A gdyby tak do klasy System w Javie dopisać magiczną metodę deallocate(Object o) – nadal powiedziałbyś, że język jest powolny by design?

    • o_O

      Wiesz w ogóle jak działa GC? Pomijam już różnice w implementacji, a też jest ich wiele.

    • mak

      Jeżeli dążysz do tego, że GC ze względu na koncepcję działania musi wykonywać więcej operacji niż operator delete, to nie ma takiej potrzeby, ja to wiem.
      Ponieważ pora kończyć ten zupełny off topic, moja konkluzja: nie byłoby problemu, gdybyś napisał że wykonanie tego samego algorytmu zapisanego jako program w Javie będzie wolniejsze niż dla C[++]. Tyle że nie brzmi to tak efektownie jak "powolny język programowania". Jest jeszcze szereg aspektów, które potęgują ową różnicę, choćby reprezentacja tablic jako obiektów. Akurat przykład, który podałeś, nie przekonuje mnie, ponieważ w C++ operatory new i delete są funkcjami bibliotecznymi, które można przesłaniać – a w takim razie są bardziej elementami platformy niż samego języka. Idąc tym tropem można wyobrazić sobie napisanie takiej implementacji tych operatorów, która będzie realizowała GC a jednocześnie spełniała stosowne kontrakty.
      A tak w ogóle, to nie chciałoby mi się wytykać Ci tego błędu (tak – pozostałem przy tym zdaniu), gdybyś w innym wątku z identyczną "lekkością pióra" nie określił m. in. Javy jako zabawki dla amatorów, dezawuując w ten sposób pracę rzeszy ludzi, którzy korzystając z tego typu platform realizują ciekawe i złożone rzeczy.

    • pijaczek

      Co do przykładu takiego GC to jest Boehm GC który jest najpopularniejszym GC dla C/C++ (dla C ma własne funkcje jak GC_MALLOC…, a dla C++ przeciąża operatory new/delete dla kontenerów STL i typów wbudowanych, a jeśli chce się, aby zarządzał twoimi klasami to wystarczy, aby klasa dziedziczyła po klasie gc i już jej odśmiecaniem zajmuje się GC) i jest włączony jako część GCC (wykorzystywany jest przez przykładowo Mozillę… ale też kompilator Javy do natywnego kodu (GCJ) czy implementacje .NET czyli Mono/Portable.NET). Jest to GC bardzo konserwatywny… i bardzo powolne (wolniejsze niż w Javie czy NET). Problemem Boehm GC jest to, że nie zabiera więcej pamięci niż potrzebuje… czytaj nie prealokuje sobie miejsca na dane wcześniej, a po prostu na żądanie alokuje (co jest tragiczne w skutkach, bo jedna duża alokacja danych jest robiona szybko, a wiele małych alokacji jest zabójcze dla wydajności).
      Inna sprawa jest taka, że każdy dosyć rozgarnięty programista w C++ zrobi sobie manager pamięci prealokujący pamięć na program (o ile jest potrzebny, bo dużo się alokuje w programie małych rzeczy), oraz GC oparty na zliczaniu referencji i mądrych wskaźnikach… takie rozwiązanie nie tylko będzie bardzo szybkie (narzut jest minimalny), ale też będzie bardzo szybko reagować i zwalniać pamięć (czy to fizycznie dealokować, czy tylko zwalniać miejsce zaalokowane w managerze które będzie mogło być wykorzystane przez przyszłe żądania alokacji przez program (gdzie zamiast tracić czas na alokowanie dostanie po prostu wskaźnik na już wcześniej zaalokowaną pamięć)).

      Jednak to nie w GC upatrywałbym problemów (tzn wymagania specyfikacji javy od GC są takie, że szybkie zliczanie referencji nie wchodzi w grę, i GC ma w konkretnych implementacjach istniejących bardzo duży narzut, ale to jeszcze mały pikuś). Problemem jest raczej w tym, że Java jako język został zaprojektowany jako język kompilowany do bytecodu (jeśli dobrze pamiętam to implementacje natywne naciągają to co jest w specyfikacji Javy…), a to niesie ze sobą słabszą optymalizacje kodu (niezależnie czy stosują JIT czy AOT, dalej nie uzyskają tego co kompilacja offline, gdzie optymalizacja kodu może trwać dłużej), a i to, że jest to język zarządzany odpalany w środowisku natywnym mu nie pomaga, bo komunikacja kodu zarządzanego z kodem natywnym (niezależnie czy to JNI z javy czy CLI z .NET ma olbrzymi narzut).

  • Pingback: Wywiad z TP-LINK – Jak wykorzystujemy wolne oprogramowanie? | OSWorld.pl()

  • Pingback: Konkurs z TP-LINK – Co jest na zdjęciu? | OSWorld.pl()

  • Boss

    Witam
    Kupiłem ten sprzęt i stwierdziłem, że bardzo słabo współpracuje z Huawei e398 (nie widzi modemu, zrywa itp.).
    Z e3131 jest ok. ale są duże pingi. Bateria ok 3 godz. Jeśli ktoś ma zamiar kupić to odradzam. Poza tym obsługuje wyjątkowo mało modemów.
    Pozdrawiam

  • Leon

    Przestańcie p…ć głupoty do kwadratu. Człowiek coś się chce dowiedzieć z komentarzy, a tu sami poligloci się znaleźli. Banda kretynów, to nie to forum "poloniści"

  • Pingback: dd-wrt i OpenWRT - alternatywne oprogramowanie dla routerów TP-Link TL-WDR4300 i Archer C7 - OSWorld.pl()