1 (edytowany przez Cezary 2017-05-03 09:50:52)

Temat: FAQ o OpenWrt/LEDE (dla początkujących)

OpenWrt to linux
Tak naprawdę to wszystkie alternatywne firmware, tomato, dd-wrt czy openwrt to linux. Więc jeżeli znasz linuksa - jesteś na dodatniej pozycji. Jeżeli nie - są dostępne odpowiednie konfiguratory obsługiwane przez przeglądarkę, którymi można ustawić nawet zaawansowane opcje.

Jeżeli konsola linuksowa jest Ci obca - google znajdzie dla Ciebie dużo podręczników z obsługą poleceń. Krótką ściągę którą można sobie wydrukować można znaleźć pod tym adresem.

OpenWrt jest projektem "pisanym" niezależnie od oprogramowania tworzonego przez producentów sprzętu, korzysta z własnych rozwiązań i sterowników pisanych przez społeczność. Z OpenWrt wywodzi się  projekt Gargoyle i LEDE, więc jeżeli gdziekolwiek będzie wspomniane "OpenWrt" to dotyczy to także dwóch pozostałych projektów, chyba że napisano inaczej.

I małe ostrzeżenie - OpenWrt nie przypomina oryginalnego firmware. Inaczej działa, inaczej się zachowuje, inaczej robi niektóre rzeczy. Więc nie sugeruj się tym że jak na oryginalnym firmware coś działało w jakiś sposób to tu też w taki będzie - nie, może działać inaczej.
OpenWrt nie zawiera też automatyki - zwykle wymagane jest ręcznie ustawienie wszystkiego.

Która wersja? Słyszałem coś o whiterussian...
Kiedyś było wydanie Whiterussian, które kończyło się na numerze 0.9. Później było kilka wersji oznaczonych Kamikaze, następnie Backfire, Attitude Adjustment w wersji 12.09 (często skrótowo nazywana AA), Barrier Breaker - 14.07 (BB), Chaos Calmer 15.05 (CC), teraz jest następca - LEDE w wersji 17.01. I właśnie tą ostatnią wersję masz zainstalować. Możesz też zainstalować jeden z moich obrazów (dostępnych na http://eko.one.pl), które z reguły są zawsze bardziej aktualne od oficjalnych wydań.

UWAGA: Wydania OpenWrt z GUI nie nadają się do używania na routerach z 16MB ramu - to już za mało. Więc jeżeli chcesz mieć gui to niezbędne jest 32MB pamięci ram (lub więcej).

Co to jest "trunk"?
OpenWrt wydawane jest co jakiś czas w postaci wydania "stabilnego". Natomiast istnieje jeszcze obszar, gdzie programiści na bieżąco modyfikują projekt wprowadzając nowe rzeczy i  psując działające. To jest właśnie trunk z którego docelowo, po ustabilizowaniu powstanie następna wersja stabilna. Jeżeli jesteś początkujący, nie instaluj trunka.

Co to jest "LEDE"?
Na początku maja 2016r większość programistów pracujących nad OpenWrt przeniosła się do projektu o nazwie LEDE który, w dużym skrócie, jest odłamem OpenWrt robionym na innych zasadach. LEDE wydało wersję stabilną nazwaną po prostu 17.01.
Gdziekolwiek dalej mowa jest o "OpenWrt" należy rozumieć że dany opis dotyczy to także LEDE, chyba że wyraźnie napisano inaczej.

Jaki router kupić?
Przeczytaj ten wątek: http://eko.one.pl/forum/viewtopic.php?id=12006

Jaki plik zainstalować? Bo jest tam tego trochę...
Wszystko zależy od procesora urządzenia.
Jeżeli masz urządzenie oparte o tzw. SoC Broadcoma - Linksys WRT54GL, Asus WL-500gP, DLink DIR-320 to w oznaczeniu OpenWrt brcm47. Jeżeli SoC Atheros - La Fonera, D-Link DIR-300 to platforma atheros. Większość nowych routerów z N to ar71xx. Większość modemów DSL używa lantiq lub brcm63xx. Wszystko zależy od sprzętu, wiec najpierw dowiedź się co jest w środku. Na niektórych routerach nie da się zainstalować lub nie jest w całości obsługiwane, więc najpierw sprawdź czy faktycznie będzie działać. W większości przypadków w nazwie pliku jest podany model urządzenia dla którego jest dany obraz.

Obraz jffs czy squashfs?
Jeżeli zadałeś takie pytanie to stanowczo wybierz ten ze squashfs. Dlaczego? Chociaż by dlatego że jak popsujesz coś w ustawieniach to będziesz mógł wrócić do stanu pierwotnego uruchamiając tzw. tryb failsafe. Później doczytasz czym się te dwa typy systemów plików różnią i jak są zbudowane obrazy OpenWrt.

Obraz factory czy sysupgrade?
Jeżeli masz jeszcze oryginalny soft producenta (nazywany czasami skrótowo OFW) to należy wgrać obraz z factory w nazwie. Jeżeli masz już na routerze OpenWrt lub Gargoyle - sysupgrade. Jeżeli masz inne oprogramowanie, np. DD-WRT to zalecam powrót do oryginalnego oprogramowania, przywrócenie ustawień domyślnych i dopiero wgranie OpenWrt czy Gargoyle.
W nazwie pliku można także znaleźć nazwę urządzenia dla którego jest przeznaczone. Choć zdarzają się wyjątki od tej reguły, więc jak nie znajdziesz pliku z nazwą swojego urządzenia - skorzystaj z poradników co należy faktycznie wgrać.

Obrazy -us służą do aktualizacji routerów sprzedawanych na terenie USA.
Obrazy -eu służą do aktualizacji routerów sprzedawanych na terenie Unii Europejskiej (czyli np. zakupionych w dystrybucji w Polsce).
Obrazy -il- przeznaczone są dla routerów sprzedawanych w Izraelu.

Jak wgrać alternatywne oprogramowanie?
Mając oryginalne - firmowe oprogramowanie - zwykle tak po prostu przez oryginalną stronę do upgrade firmware, wskazując pobrany plik. Tak jest w większości przypadków, ale trzeba wybrać odpowiedni obraz. Zdarzają się urządzenia, gdzie trzeba to zrobić w inny sposób - wtedy sięgnij do opisu danego urządzenia na tej stronie lub openwrt.org

Jak się dostać do routera z zainstalowanym OpenWrt?
Domyślny adres IP routera z zainstalowanm OpenWrt/Gargoyle/LEDE to 192.168.1.1 (a nie taki jak router miał w oryginalnym oprogramowaniu czy taki jak jest napisany na pudełku)
- przez www - wpisując w przeglądarce www adres routera - o ile jest zainstalowane środowisko graficzne!
- przez ssh - przy pomocy programu putty (windows - wybierając protokół ssh), putty lub ssh (linux), domyślny użytkownik to root. Zadziała, o ile było ustawione hasło (dla wydania AA, BB, CC), w LEDE - działa także bez ustawionego hasła.
- przez telnet - przy pomocy programu putty (windows - wybierając protokół telnet), putty lub telnet (linux), domyślny użytkownik to root. Jeżeli ustawiono hasło, to dostęp przez telnet jest wyłączony! (w LEDE nie ma telnetu, używamy ssh niezależnie od tego czy było hasło ustawione czy nie)
- przez scp - przy pomocy programu WinSCP (windows) lub scp (linux), domyślny użytkownik to root. Protokół ma być wybrany jako SCP, nie SFTP czy FTP! Dzięki temu można łatwo przesyłać pliki do routera bez instalacji czegoś dodatkowego, można także przy jego pomocy edytować pliki w routerze (choć należy uważać na właściwy format zakończenia linii w pliku).

Jakie jest hasło domyślne?
W czystym OpenWrt/LEDE - nie ma. Po instalacji należy za pomocą programu telnet (lub ssh dla LEDE) połączyć się z routerem i wywołując program passwd ustawić nowe hasło (wpisując hasło nic nie będzie się wyświetlało!).
W Gargoyle hasło jest domyślnie ustawione: "password"

Po instalacji nie działa wifi!
Nie działa, jest domyślnie wyłączone ze względów bezpieczeństwa. Skonfiguruj odpowiednio całość a włączysz radio.

Czy mogę zaktualizować po wifi zamiast po kablu?
Teoretycznie - tak. Praktycznie - nie należy tego robić, bo istnieje dość duża szansa że oprogramowanie się nie wgra i będzie problem. Inna sprawa że po instalacji interfejs radiowy jest wyłączony w OpenWrt/LEDE, więc może być potem problem z dostaniem się do routera.

Jak to wszystko połączyć?
Do portu wan podłącz kabel od dostawcy internetu. Do jednego z portów lan podłącz komputer przy pomocy kabla ethernet, włącz router potem włącz komputer. Komputer powinien automatycznie dostać adres z zakresu 192.168.1.100 - 192.168.1.250. Wifi trzeba samodzielnie włączyć odpowiednio konfigurując radio.

Jeżeli zamiast do portu WAN podłączysz kabel z internetem do portu LAN - nie będziesz miał "internetu na routerze" bez odpowiedniej konfiguracji. Najpopularniejszy błąd jeżeli chodzi o "brak internetu" - jeżeli na WAN dostajesz adres 192.168.1.x to adres routera należy zmienić na inny, np. 192.168.2.1, bo inaczej nie będzie działać.

Połączyłem/zrobiłem tak jak w poradniku i nie działa!
To nie jest odpowiedź. Przyczyn może być wiele, więc zadaj to pytanie na forum, koniecznie podając dane jakie dostałeś od swojego dostawcy internetu oraz jak to wszystko połączyłeś i skonfigurowałeś (odpowiedzi "nie działa" i "robiłem dokładnie wg poradnika" nic nie ułatwia). Pamiętaj też o podaniu całych plików konfiguracyjnych które zmieniałeś.

A w pierwszej kolejności wykonaj polecenie "logread" - pokazuje logi systemowe, w których można znaleźć dużo ciekawych rzeczy.

Połączyłem, działa GG ale nie mam internetu
Jeżeli "nie mam internetu" rozumiesz brak możliwość wyświetlania stron www a działa GG - zwykle przyczyną jest brak DNSów. Powinny być one przydzielone przez router, ale jak z jakiegoś powodu nie działa - ustaw na komputerze dnsy ręcznie, np. 208.67.222.222 (to jest opendns)

Transfer z routera mam tylko ok 1-2MB/s. Gdzie moje obiecane 300Mb/s?
To, że komputer połączył się na 300Mbps nie oznacza że transfer będzie 300/8=35MB/s. Zwykle jest to max 9 - 11MB/s w domowych warunkach. 300Mbps to wartość "brutto", brzydko wykorzystywana przez marketing żeby "nabrać klienta". Inna sprawa że komputer może nie chcieć się połączyć z routerem na 300, a łączy się np. na 65Mbps. Aby połączył się na 300 musi być spełnione kilka warunków (odpowiednie karty, ustawione HT40, ustawiony odpowiedni kanał - brak innych sieci w eterze itd), więc przed zadaniem pytania "dlaczego" sprawdź czy spełniasz te warunki.
Ten sam problem dotyka smartfony. Mimo deklaracji producenta że telefon wyposażony jest w układ radiowy a/b/g/n/ac okazuje się że jest on tylko w podstawowej wersji obsługującej 433Mbps ("brutto") a nie pełne 1,2Gbps czy więcej.

Dlaczego nie łączę się na 300Mbps tylko na 144Mbps?
Karta sieciowa w komputerze oraz interfejs w routerze musi mieć ustawie tzw. HT40 - szerokość pasma na 40MHz. Ponad to router może odmówić uruchomienia takiego trybu (i zostaje na HT20) jeżeli na ustawionych kanałach widoczne są inne sieci w powietrzu. Można wymusić w routerze uruchomienie trybu HT40 przez dodanie odpowiedniej opcji do konfiguracji (noscan 1) ale zwykle ma to też inne skutki - np. pogorszenie jakości połączenia (bo inne sieci go będą zakłócać).

Czy można zwiększyć moc radia?
Zacznijmy od tego że routery to nie mikrofalówki. Jeżeli kupiłeś tani router domowy to moc jego radia nie przekracza zwykle 15-20dBm (100mW). Układ radiowy nie potrafi więcej, więc nie da się ustawić 30dBm (1W) nawet jeżeli oprogramowanie to umożliwia i udawać że wszystko działa. Zwykle zwiększenie mocy powoduje też wzrost szumów i cała operacja ma odwrotny skutek od zamierzonego.

Jakie jest GUI do OpenWrt?
Jeżeli zainstalujesz domyślny obraz firmware z openwrt.org będziesz miał do czynienia z LuCI.  Jest jeszcze Gargoyle, X-Wrt (już nierozwijany) oraz kilka innych, mniej popularnych projektów. Potrzebujesz tylko jednego z nich (dla początkujących polecam Gargoyle). Wszystko to tylko nakładki na system, pod spodem jest "czyste" OpenWrt które może być obsługiwane normalnie "przez ssh".

A jest po polsku?
Jest. Zarówno LuCI jak i Gargoyle zostały przetłumaczone na nasz język. W zależności od pochodzenia obrazów jest on dostępny od razu po wgraniu firmware z gui lub trzeba doinstalować odpowiedni pakiet językowy.

Ustawienia w nvram
Obecnie wersje OpenWrt w przeciwieństwie do innych firmware nie korzystają z nvram do przechowywania ustawień. Czyli jak pod oryginalnym oprogramowaniem ustawiłeś sobie adres ip czy parametry radia, to po instalacji OpenWrt zostaną one zignorowane. W OpenWrt większość rzeczy ustawia się w plikach w katalogu /etc/config/.

Jak się instaluje pakiety?
Najpierw trzeba zaktualizować listę pakietów:

opkg update

robi się to tylko raz po restarcie routera, częściej nie ma potrzeby (chyba że zmieniona zostały lista źródeł). Później instaluje się pakiet poleceniem

opkg install nazwa_pakietu

czyli np. opkg install samba36-server

A jak zainstalować pakiet jak nie ma się połączenia do internetu? Sam plik i ew. jego zależności można pobrać normalnie na komputerze, przesłać do routera (przy pomocy winscp, ftp/scp/wget, w zależności co jest na routerze zainstalowane) i zainstalować go podając pełną ścieżkę do pliku, np.

opkg install /tmp/samba36-server_3.6.5-3_ar71xx.ipk

Repozytorium pakietów OpenWrt w aktualnej wersji stabilnej znajduje się na https://downloads.openwrt.org/chaos_calmer/15.05.1/ (uwaga na nazwę architektury routera!)

LEDE: http://dl.eko.one.pl/lede/

Jak usunąć pakiet żeby zwolnić miejsce?
Jeżeli pakiet instalowałeś samodzielnie to przez

opkg remove nazwa_pakietu

(np. opkg remove samba36-server). Jeżeli chcesz skasować pakiet który już był standardowo w obrazie - skasuje się informacja o nim, nie będzie widać pakietu ale pliki zostaną i nie zwolnią miejsca. To co zainstalowałeś jako firmware jest w pamięci tylko-do-odczytu, więc po prostu się nie da (info prawdziwe dla squashfs). Co więcej - jeżeli skasujesz pakiet który już był w firmware to nie zwolni to miejsca a wręcz zmniejszy ilość dostępnej pamięci flash - bo informacja o skasowaniu też musi zostać zapisana...

Jak uzyskać listę dostępnych pakietów?
Po zaktualizowaniu listy (opkg update):

opkg list

Aby uzyskać pełną listę pakietów router musi być podłączony do internetu.

Są jakieś logi systemowe?
Możliwe jest ich wyświetlenie poleceniem

logread

Domyślnie trzymane są one w pamięci, więc po restarcie routera nie ma informacji z poprzedniego uruchomienia. Można to zmienić odpowiednio konfigurując system.

Czym się edytuje pliki?
W systemie standardowo jest dostępny edytor o nazwie vi (skrócona instrukcja obsługi jest na eko.one.pl). Mimo swoich potężnych możliwości może on być trudny do opanowania przez początkujących. Można więc doinstalować sobie edytor o nazwie nano (poleceniem: opkg update; opkg install nano), który jest trochę bardziej przyjazny dla początkujących.

Gdzie te wszystkie polecenia się wpisuje?
Poradniki opisane na stronie eko.one.pl zwykle dotyczą konfiguracji przy pomocy odpowiednich poleceń systemowych. Wpisuje je się w konsoli, po zalogowaniu do routera przez ssh (po ustawieniu hasła) lub telnet (jak nie jest hasło ustawione). Jako klienta ssh/telnet najlepiej użyć programu putty. Polecenie wpisuje się oczywiście bez znaku # z przodu, to sygnalizuje tylko znak zachęty.

Pamiętaj, że o ile masz interfejs graficzny (GUI) to zwykle możesz większość rzeczy wykilkać. Ale i tak z pewnością wrócisz do konsoli po pewnym czasie, jako że daje więcej możliwości i dostosowania routera do swoich wymagań.

Hmm, mój router ma tylko jeden port USB. Czy mogę podłączyć huba usb?
Pewnie że tak. Z punktu widzenia OpenWrt hub jest przezroczysty i pozwoli na podłączenie i drukarki i modemu GSM i dysku. Tylko że jakość wykonania i tym samym przepustowości takiego huba czasami pozostawiają wiele do życzenia.... Najlepiej by było, gdyby HUB miał własne zasilanie, choć huby pasywne także działają.

Czy to normalne że OpenWrt po zainstalowaniu zabiera aż 80% pamięci?
Tak i tak ma być. Pamięć nie używana to pamięć zmarnowana, więc linux jak może to używa ile tylko mu się da. Tak prawdę mówiąc to większość tej pamięci to różne bufory i pamięć współdzielona, która zostanie zwolniona przez kernel linuksowy jeżeli będzie potrzebna na inne procesy. I katalog /tmp nie zajmuje połowy pamięci - zajmuje tylko tyle ile jest w danej chwili wykorzystane, a liczba przy "df" oznacza tylko w tym przypadku maksymalną możliwą pamięć do zaalokowania jak będzie potrzebna.

Zrobiłem SWAP a OpenWrt z niego nie korzysta lub i tak brakuje pamięci
Swap nie jest cudownym rozszerzeniem pamięci fizycznej. Nie da się wszystkiego co możliwe wrzucić w swap na dysk, niektóre procesy mogą na bieżąco potrzebować danych. Swap pomaga, ale w krytycznych sytuacjach może się okazać niezbędne posiadanie większej ilości pamięci ram.

Zainstalowałem program XYZ i nie działa
Bo trzeba go najpierw skonfigurować i najczęściej włączyć żeby się uruchamiał na starcie. Większość programów konfiguruje się jak w normalnym linuksie - więc konfiguracja i diagnostyka wygląda tak samo - Google Twoim przyjacielem. Niektóre są dostosowane do specyfiki OpenWrt i konfiguruje się je w specjalnych plikach w katalogu /etc/config.

Generalna zasada - jeżeli instalujesz moduły kernela upewnij się że pochodzą z tego samego źródła co sam kernel. Czyli jeżeli używasz moich obrazów to używaj też moich modułów do kernela. Z innych źródeł niekoniecznie muszą działać.

Instalacja nowego obrazu
Jak już był wgrany "jakiś" openwrt lub gargoyle, jak nie ma dostępu do gui, jak nie ma dostępu do internetu. Ogólna instrukcja:

1. ściągnij obraz na dysk (ten z sysupgrade w nazwie), zapisz na dysk pod nazwą a.bin. Można też pobrać oryginalny obraz ze strony producenta (np. tp-linka, byle by nie miał słowa "boot" w nazwie). Jeżeli używasz windows upewnij się że obraz nazywa się a.bin a nie a.bin.bin (windows domyślnie ukrywa rozszerzenia plików).
2. odłącz/wyłącz inne sieci przewodowe i bezprzewodowe
2a. ustaw adres IP na karcie sieciowej w komputerze na adres 192.168.1.2, maska 255.255.255.0, brama 192.168.1.1 lub niech zostanie pusta
2b. zaloguj się przez ssh  (program putty, wybierz ssh, ip: 192.168.1.1, użytkownik root, hasło takie jakie masz),
2c. jak ssh nie działa - zaloguj się telnetem do routera (program putty, wybierz telnet, ip: 192.168.1.1, użytkownik root, hasła nie ma).  Ustaw hasło (polecenie passwd - podczas wpisywania hasła nic się nie pokazuje!), idź do punktu 3
2d. jak nie działa telnet - uruchom przez failsafe, zrób firstboot, reset i idź do punktu 2b
3. przy pomocy programu winscp przegraj ściągnięty a.bin do katalogu /tmp  (koniecznie do tego katalogu!) na routerze (i znów: ip 192.168.1.1, user: root, hasło takie jak ustawiłeś, protokół SCP (czasami nie wybieraj FTP/SFTP!))
5. zaloguj się przez ssh do routera (znów program putty, ip: 192.168.1.1, użytkownik root, hasło takie jak ustawiłeś)
6. napisz polecenie

sysupgrade -n /tmp/a.bin

I masz po kilku minutach nowy system.

Inny sposób - trzeba uruchomić na komputerze serwer www lub ftp (dowolny) i umieścić w jego katalogu ściągnięty firmware pod nazwą a.bin. Zalogować się do routera (przez telnet lub ssh, w failsafe lub normalnie, wszystko jedno), i wykonać:

cd /tmp
wget http://ip_komputera/a.bin
sysupgrade -n /tmp/a.bin

Natomiast jeżeli już masz dostęp do internetu i dostęp do routera (co łatwo sprawdzić robiąc ping eko.one.pl będąc zalogowanym do routera) to aktualizacja jest prosta:

wget -O /tmp/a.bin http://dl.eko.one.pl/tu/pełna ścieżka do pliku
sysupgrade -n /tmp/a.bin

Jeżeli masz dostęp do samego routera to ustaw w nim hasło (polecenie passwd wykonane w routerze) a następnie przy pomocy programu winscp (windows), scp (linux, macos) skopiuj do katalogu /tmp routera nowe oprogramowanie pod nazwą a.bin. A później jak wyżej - sysupgrade -n /tmp/a.bin

Fajnie by było, gdyby standardowo w obrazie był program xyz...
Nie tędy droga. OpenWrt ma inną filozofię, podobną do normalnego linuksa - to system na którym możesz instalować dodatkowe programy. W przeciwieństwie do Tomato czy DD-WRT nie jest to kombajn zawierający domyślnie wszystko w jak największej ilości. Jest to sama podstawa, a jak czegoś potrzebujesz - po prostu zainstaluj.

---

Obrazy firmware
Aktualnie buduję obrazy głównie dla kliku platform, których sam używam. Obrazy do ściągnięcia dla tych niektórych można znaleźć pod adresem http://dl.eko.one.pl/.
Jeżeli chcesz obrazu na inną platformę lub zawierającego inny zestaw pakietów - patrz: http://eko.one.pl/forum/viewtopic.php?id=263

Czy możesz mi skompilować program lub zrobić firmware z takimi czy innymi pakietami?
Pewnie że mogę. Choć nie oznacza to że nie mam nic aktualnie do robienia i rzucę wszystko żeby zabrać się za kompilowanie specjalnie dla Ciebie. Więc patrz punkt poprzedni.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.