1 (edytowany przez Cezary Wczoraj 10:04:13)

Temat: FAQ o OpenWrt (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ęczne 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), potem był następca - LEDE w wersji 17.01, później znów wrócili do nazwy OpenWrt i wydali 18.06, następnie 19.07, 21.02, 22.03 i obecnie mamy OpenWrt 23.05. I właśnie tą ostatnią wersję masz zainstalować jeżeli masz dostatecznie dużo pamięci flash i RAM. Możesz też zainstalować jeden z moich obrazów (dostępnych na https://eko.one.pl), które z reguły są zawsze bardziej aktualne od oficjalnych wydań.

UWAGA 1: Obecne wydania OpenWrt nie nadają się do używania na routerach z 4MB flash lub/i 32MB ramu - to już za mało.

UWAGA 2: 8MB flash i 64MB ramu też może być wąskim gardłem już w niedalekiej przyszłości. Zobacz także ostrzeżenia na openwrt.org: https://openwrt.org/supported_devices/864_warning

UWAGA 3: To że urządzenie może działać pod OpenWrt nie oznacza że wszystkie jego elementy są wspierane. Może nie działać obsługa wifi, modemów ADSL, złącza do VoIP, obsługa większej ilości pamięci flash, kart SD czy czegoś innego. Przed wgraniem obrazu zapoznaj się ze stanem wsparcia dla danego modelu.

Co to jest "trunk" lub "snapshot"?
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. Taka wersja rozwojowa była nazywana "trunk" a obecnie jest to "snapshot" bez określenia numeru wydania, z którego docelowo, po ustabilizowaniu, powstanie następna wersja stabilna. Jeżeli jesteś początkujący, nie instaluj snapshota.

Wydania "stabilne" też posiadają swoje "snapshoty" - ale je należy traktować jako wydania stabilne.

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, był 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.
Na początku 2018r LEDE znów połączyło się z OpenWrt (choć należało by napisać - LEDE zmieniło nazwę na OpenWrt); obecne wydanie OpenWrt jest w prostej linii źródłami LEDE.

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

Jaki plik zainstalować? Bo jest tam tego trochę...
Zwykle w nazwie pliku jest informacja do jakiego modelu routera jest on przeznaczony. Niektóre modele występują pod kilkoma nazwami lub ma inną nazwę handlową - wtedy trzeba sprawdzić np. w wyszukiwarce czy dany model jest w ogóle obsługiwany.

Obraz jffs, ext4 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 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ć.
Aby wgrać OpenWrt zwykle wystarczy wykonać aktualizację odpowiednim plikiem. Ale dla niektórych routerów należy posłużyć się inną, specjalną metodą - skorzystaj z poradników opisujących dany model routera.

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.

Obrazy zawierające w nazwie initramfs, tftp, kernel przeznaczone są dla niektórych routerów do przejścia z oryginalnego oprogramowania producenta na OpenWrt i nie stosuje się ich później do żadnej aktualizacji.

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.

Niektóre nowsze wersje oryginalnego oprogramowania odmawiają przyjęcia pliku jeżeli jego nazwa jest za długa. Więc po prostu skróć nazwę wgrywanego pliku.

Jak się dostać do routera z zainstalowanym OpenWrt?
Domyślny adres IP routera z zainstalowanym 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 - nie dotyczy urządzeń typu NAS w architekturze kirkwood i niektórych urządzeń typowo AP - dla nich jest DHCP i wymagają serwera DHCP w sieci żeby uzyskać jakiś adres IP)
- 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, hasła nie ma. Obecne wydania od razu obsługują ssh, w poprzednich wydaniach (AA, BB, starsze CC) ssh dostępne było dopiero po ustawieniu hasła.
- przez telnet - tylko dla wydań AA, BB i starsze wydania CC o ile nie zostało ustawione hasło. Nowsze wydania nie mają telnetu.
- 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 ssh 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" (bez cudzysłowów!)

Po instalacji nie działa wifi!
W OpenWrt nie działa, jest domyślnie wyłączone ze względów bezpieczeństwa bo wifi nie ma też domyślnie ustawionego hasła. 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, więc może być potem problem z dostaniem się do routera.

Jak to wszystko połączyć?
Do portu oznaczonego jako WAN (lub internet) 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ć.

Zobacz też poradnik o podstawowej konfiguracji OpenWrt.

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ś (odpowiedz "nie działa" i "robiłem dokładnie według 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.

Transfer z routera mam tylko ok 1-2MB/s. Gdzie moje obiecane 300Mb/s?
To, że komputer połączył się na np. 300Mbps nie oznacza że transfer będzie 300/8=37MB/s. Zwykle jest to maksymalnie połowa tej wartości. 300Mbps to wartość "brutto", brzydko wykorzystywana przez marketing żeby "nabrać klienta", ponad to oczywiście jest to pasmo współdzielone, zależy też od liczby klientów. 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, ustawiona szerokość pasma, ustawiony odpowiedni kanał - brak innych sieci w eterze na nim 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ący standard np. 802.11AC tylko 433Mbps ("brutto") a nie 1,2Gbps czy więcej.

Dlaczego nie łączę się na 300Mbps tylko na 144Mbps?
Dla standardu 802.11N karta sieciowa w komputerze oraz interfejs w routerze musi mieć ustawione 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.

Mój router ma 16MB pamięci flash, dlaczego jest tylko 1.5MB wolnego?
OpenWrt stara się wykorzystywać identyczny podział pamięci jak ma oryginalne oprogramowanie producenta (np. w celu możliwości łatwego powrotu do niego). Jeżeli producent stosuje funkcję podwójnego zestawu partycji, używa flash do przechowywania danych językowych, logów czy czegoś innego, to OpenWrt nie wykorzystuje tych obszarów i umieszcza się tylko w miejscu starego systemu. Więc mimo że urządzenie ma duży flash to OpenWrt nie wykorzystuje na siłę wszystkich możliwych partycji tylko dostosowuje się do istniejącego podziału.

Nie oznacza to że nie ma projektów modyfikujących takie partycje i pozwalających na zwiększenie dostępnego obszary. Ale to zwykle dzieje się po za oficjalnym wydaniem OpenWrt.

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, poprzednia wersja X-Wrt (już nierozwijany), X-Wrt (chińska odmiana) 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.

Potrzebuję MESH'a żeby smartfony się przełączały
Nie, nie potrzebujesz, za to naczytałeś się marketingowego bełkotu. Potrzebujesz fast roaming (o ile w ogóle potrzebujesz); mesh to technologia połączenia AP między sobą a nie sposób na przełączanie klientów.

Ustawienia w OpenWrt
Obecnie wersje OpenWrt w przeciwieństwie do innych firmware nie korzystają z oddzielnych partycji (np. 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 została zmieniona 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  znajduje się na https://downloads.openwrt.org (uwaga na nazwę architektury routera!)
Aby sprawdzić adresy repozytoriów jakie są używane na routerze należy wydać polecenie

cat /etc/opkg/*.conf

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 (lub w bardzo starych wydaniach OpenWrt przez telnet jak nie było 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.

Jak zwiększyć szybkość transferu danych przez router
Obecne routery, mimo szybkich procesorów, mają swoje granice w możliwościach przesyłania pakietów, co pośrednio przekłada się na ogólnie pojętą wydajność routera. Producenci sprzętu stosują różne sztuczki (programowe i sprzętowe) żeby ją zwiększyć; Openwrt nie zawsze umożliwia ich zastosowanie lub nie są one domyślne włączone. Jeżeli np. zwiększyłeś sobie przepustowość łącza internetowego a router już nie jest w stanie tego obsłużyć, sprawdź jedną z poniższych metod:
- włączenie flowoffladingu:
Sprzętowe flow offloading można ustawić tylko dla niektórych Mediateków, programowe może być włączone dla dowolnego modelu

uci set firewall.@defaults[0].flow_offloading=1
uci set firewall.@defaults[0].flow_offloading_hw=1 #(dla Mediateków, dla innych zostanie zignorowane)
uci commit firewall
reboot 

- instalacja irqbalance
Polecane tylko jeżeli używany jest procesor z czterema lub więcej rdzeniami

opkg update
opkg install irqbalance
uci set irqbalance.irqbalance.enabled=1
uci commit
reboot

- włączenie metody skalowania procesowa na wydajność
Tylko jeżeli używany jest procesor to umożliwia

echo "echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor" > /etc/rc.local
echo "exit 0" >> /etc/rc.local
sh /etc/rc.local

- włączenie sterowania pakietami
Tylko jeżeli używany jest procesor z wieloma rdzeniami

uci set network.globals.packet_steering='1'
uci commit
reboot

Niektóre z w/w metod wymagają wielordzeniowych procesorów, mogą także powodować problemy w działaniu programów np. zliczających ruch lub kształtujących pasmo. Nie każda z w/w metod zadziała na każdym routerze. Niektóre wymienione metody wymagają nowych wersji OpenWrt i nie będą działały na starszych wersjach. W przypadku starszych procesorów włączenie niektórych opcji może wręcz spowodować spadek wydajności.

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. Jeżeli sam zbudowałeś obraz to musisz też sam zbudować wszystkie moduły kernela które chcesz używać. 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
3. ustaw adres IP na karcie sieciowej w komputerze na adres 192.168.1.2, maska 255.255.255.0, brama 192.168.1.1
4. zaloguj się przez ssh (programem putty w windows lub ssh w linuksie/mac, wybierz ssh, ip: 192.168.1.1, użytkownik root, hasło takie jakie masz)
5. jak nie działa ssh - uruchom przez failsafe, zrób firstboot, reset i idź do punktu 4
6. przy pomocy programu winscp (dla windows) lub scp (linux/mac, dla nowych wersji trzeba dodać opcję -O) 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!))
7. zaloguj się przez ssh do routera (znów program putty, ip: 192.168.1.1, użytkownik root, hasło takie jak ustawiłeś)
8. napisz polecenie

sysupgrade -n /tmp/a.bin

I masz po kilku minutach nowy system.

Inny sposób - trzeba uruchomić na komputerze serwer www (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.

Bezpieczeństwo OpenWrt
Jeżeli używane jest bieżące wydanie OpenWrt to możesz czuć się w miarę bezpiecznie - zawiera wszystkie najnowsze poprawki i poprawione znalezione błędy bezpieczeństwa. Jeżeli używasz starszych wydań - niektóre pakiety mogę zawierać błędy lub luki, umożliwiające spowodowanie problemów w działaniu routera.
Aby śledzić bieżące wiadomości dotyczące bezpieczeństwa OpenWrt warto odwiedzić stronę Security advisories. Aby zobaczyć zmiany związane z publicznie znanymi podatnościami należy odwiedzić podane odnośniki: zmiany w głównym repozytorium oraz zmiany w pakietach.

---

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 https://dl.eko.one.pl/. Jeżeli chcesz inne obrazy - pisz na wspomniany wcześniej adres email.

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.