Router na Banana Pi M1, czyli LEDE na pokładzie
Całkiem niedawno pisałem o fajnym sofcie LEDE na routery. Przeszukując obszerną tabelę wspieranego sprzętu, natrafiłem na Banana Pi M1. Od razu pobrałem obraz (spakowany to tylko kilka MB), zapisałem go na kartę. Troszkę pokonfigurowałem i od kilku miesięcy mam szybki router na Banana Pi. Poniższy wpis, to tak w skrócie instrukcja budowy własnego routera, który posiada ogromne możliwości rozbudowy.
Router na Banana Pi M1 – co otrzymujemy?
Instalując LEDE na Banana Pi M1 dostajemy do dyspozycji router, który posiada jeden port ethernet, skonfigurowany jako interfejs LAN. Do tego podłączyłem modem LTE ZTE MF823, który skonfigurowałem po stronie WAN, wpiąłem kartę TP-Link TL-WN722N, która pracuje w trybie access point. Tym sposobem mam wszystko co jest mi potrzebne.
Pierwsze uruchomienie i konfiguracja
Całą zabawę należy zacząć od pobrania obrazu ze strony https://lede-project.org/toh/views/toh_fwdownload. Najwygodniej przeszukać obszerną tablę korzystając z funkcjonalności przeglądarki (ctrl+f). Jest i Banana Pi M1:
Obraz po rozpakowaniu należy zapisać na karcie SD. Tutaj: Jak przygotować bootowalną kartę SD lub pendrive? znajdziesz dość obszerny opis jak to zrobić. Ja na szybko wykorzystałem narzędzie dd w systemie Linux:
No i czas na pierwsze uruchomienie. Do portu Ethernet Banana Pi podłączyłem patchcord, którego drugi koniec wpiąłem w komputer. Po chwili dostałem adres IP, czyli mój jeszcze upośledzony routerek, uruchomił się. Pierwsze logowanie przez SSH wygląda tak:
Jest też wygodny interfejs LuCI dostępny przez przeglądarkę internetową. Wystarczy wpisać adres 192.168.1.1 i oto jest:
System ostrzega nas, że do konta root nie jest przypisane hasło, którego ustawienie zostawimy sobie na koniec. Teraz trzeba zająć się interfejsem WAN. Cała procedura będzie praktycznie identyczna jak w przypadku routera TP-Link MR3420, którą opisałem tutaj: Router TL-MR3420, modem MF823 LTE i firmware LEDE. W tym przypadku część ustawień wykonam z poziomu wygodnego interfejsu www. Zaczynam od wpięcia modemu LTE ZTE MF823 do portu usb. Sprawdzam czy w systemie jest do niego sterownik:
cat /sys/kernel/debug/usb/devices
No i nie ma:
Podobnie jak w przypadku LEDE na TL-MR3420, trzeba pobrać paczkę ze sterownikami i zależności, pliki które są nam potrzebne to:
- kmod-nsl-base_
- kmod-mii_
- kmod-usb-core_
- kmod-usb-net_
- kmod-usb-net-cdc-ether_
Po podkreślniku (‘_’) znajduje się wersja paczki i architektura, pod jaką została skompilowana. Są one do pobrania tutaj: https://downloads.lede-project.org/releases/17.01.2/targets/sunxi/generic/packages/. Teraz, korzystając z scp (w Windows polecam WinSCP) należy wysłać paczki do Banana pi, komenda w linuksie wygląda tak:
scp kmod-nls-base_4.4.71-1_arm_cortex-a8_vfpv3.ipk kmod-mii_4.4.71-1_arm_cortex-a8_vfpv3.ipk kmod-usb-core_4.4.71-1_arm_cortex-a8_vfpv3.ipk kmod-usb-net_4.4.71-1_arm_cortex-a8_vfpv3.ipk kmod-usb-net-cdc-ether_4.4.71-1_arm_cortex-a8_vfpv3.ipk [email protected]:/tmp
I w efekcie:
Teraz można przelogować się po ssh do lede i sprawdzić, czy pliki znajdują się w folderze tmp:
Są, więc można je zainstalować, będą w folderze tmp, wystarczy wydać polecenie:
opkg install nazwa_paczki1 nazwa_paczki2 nazwa_paczki3 ...
Wszystko przebiegło bez problemów, możemy więc zrobić restart Banana Pi i sprawdzić, czy mamy nowy interfejs usb0, do którego jest podłączony modem:
ifconfig -a
Teraz można przełączyć się na interfejs graficzny i tam wyklikać sobie resztę konfiguracji. Tak więc otwieramy przeglądarkę i wklepujemy adres http://192.168.1.1, przechodzimy do ‘Network -> Interfaces‘:
I wybieramy ‘Add new interface…‘. W nowym oknie ustawiamy nazwę na ‘wan’, dla modemu ZTE MF823 protokół na DHCP client, i przypisujemy go do fizycznego interfejsu usb0:
Po kliknięciu ‘Submit‘, na stworzonym interfejsie WAN klikamy ‘Edit‘ i w zakładce ‘Advance Settings‘ ustawiamy checkboxy jak niżej i wpisujemy swoje serwery DNS (tutaj googlowe: 8.8.8.8 i 8.8.4.4):
Upewniamy się jeszcze, że w zakładce Firewall Settings interfejs mamy przypisany do profilu WAN:
Po zatwierdzeniu przyciskiem ‘Save & Apply‘ zakładka z interfejsami wygląda tak:
Od teraz mamy internet na porcie eth0 :). Czas na sieć bezprzewodową. Ja użyłem popularnej i taniej karty TP-Link TL-WN722N. Również ona wymaga zainstalowania sterowników, przechodzimy więc do zakładki ‘System -> Software‘ i wybieramy Update lists:
Karta TL-WN722N zbudowana jest na chipie AR9271, klikamy na zakładkę Available Package i w okienko search wpisujemy ar9271, wynik wyszukiwania to dwa pakiety ath9k-htc-firmware i kmod-ath9k-htc, które należy zainstalować:
Wraz z nimi zostaną zainstalowane inne pakiety, wymagane zależnościami. Dodatkowo należy jeszcze doinstalować pakiet hostapd, który umożliwi nam szyfrowanie sieci WiFi. Przechodzimy teraz do zakładki ‘Network -> Wireless‘, która powinna wyglądać tak:
Wybieramy ‘Edit‘ by zmienić ustawienia sieci bezprzewodowej. Ważne, by w Channel ustawić konkretny kanał, bo na auto nie chciało działać, dodatkowo na zakładce ‘Advanced Settings‘ zmieniamy ustawienie kraju z CN (Chiny) na PL:
W części Interface Configuration ustawiamy nazwę sieci (ESSID), tryb (mode) na Access Point, przypisujemy go do sieci LAN:
W zakładce Wireless Security ustawiamy zabezpieczenia sieci i klucz (hasło):
Po zapisaniu ustawień, możemy podłączyć urządzenia do sieci bezprzewodowej i podejrzeć je:
Czas na ustawienie hasła roota, w menu wybieramy ‘System -> Administration‘ i ustawiamy hasło:
Można też zrobić za pomocą komendy passwd root, będąc w konsoli.
LEDE/LuCI – dodatkowe pakiety
Do LEDE jak i interfejsu LuCI można doinstalować sporo różnych pakietów, które znacznie rozszerzą możliwości routera. Np. instalacja Samby i podpięcie dysku pozwoli nam uruchomić prosty NAS, jest też Asterisk dający funkcjonalność centralki VoIP. Można też spolszczyć interfejs, instalując paczkę luci-i18n-base-pl:
Są też wykresy pokazujące obciążenie poszczególnych interfejsów, czy procesora:
Jeśli ktoś tęskni za pulsowaniem zielonej diody LED, to wystarczy przejść do ‘System -> LED Configuration‘ i przypisać jej aktywność przy wysyłaniu i odbieraniu pakietów przez modem:
Warto przejrzeć dostępne pakiety i ich opis. W dość prosty sposób można uruchomić adblocka, słuchać wprost z Banana Pi radia internetowego czy strumieniować telewizję DVB-T, po doposażeniu całości w tuner na usb.
Podsumowanie
Router na Banana Pi to dość ciekawe rozwiązanie. Duża ilość pamięci RAM i dość mocny procesor pozwalają na budowę wydajnego urządzenia. Zastosowana karta WiFi ma wpływ na stabilność i prędkość połączenia bezprzewodowego. Wydajność prądowa portów USB jest wystarczająca do zasilania modemu ZTE MF823, osiągane transfery bez problemu przekraczały 50Mb/s podczas małego obciążenia sieci LTE. Płytka, modem i karta pobierały łącznie 1,2A, co przy zasilaniu 5V daje około 6W. Uptimy bez problemu wynosiły po 20 dni i wynikały ze świadomego resetowania lub odłączania od prądu. Jeśli ktoś potrzebuje więcej portów ethernet, może zastosować specjalną odmianę Banana Pi R1. Router początkowo złożyłem z ciekawości, ale ostatecznie zastąpił typowego tp-linka i do dziś pracuje bezproblemowo.
U mnie za router robi Nexx WT3020, ale jeszcze na domyślnym oprogramowaniu – nie doczekał się zmiany na openwrt.
Z tego co pamiętam, płytka R1 wyjścia ma już 100mb, a nie giga? Chętnie bym dorwał coś niedrogiego pod otwartą platformę oprogramowania, ale właśnie z wyjście i wejście 1G
Nexx właśnie do mnie leci, więc pewnie zrobię jakiś wpis o wgrywaniu LEDE z LuCI. Co do Banana Pi R1 to tak jak piszesz – porty Ethernet są gigabitowe i do tego jeszcze miejsce na dysk, więc masz router i nas w jednym.