Przed wgraniem nowego firmware należy w komputerze ustawić na stałe adres ip. Zwykle będzie to 192.168.1.2 z maska 255.255.255.0. Brama i dns mogą zostać puste. Etap ten jest wymagany, ponieważ w trybie flashowania ruter nie udostępnią żadnych adresów IP!
W przypadku routerów ASUSa niemożliwa jest instalacja OpenWrt z oficjalnego firmware. W celu wgrania alternatywnego firmware w tym także OpenWrt Backfire/Gargoyle należy przejść do trybu diagnostycznego (Diag Mode) w następujący sposób:
W zależności jakiego systemu operacyjnego używamy, sposób wgrywania firmware jest nieco inny. Użytkownicy Windowsa mogą użyć dostarczonego wraz z pudełkiem oprogramowanie Restoration Tool, oprogramowanie te również można pobrać z oficjalnej strony ASUSa. Użytkownicy linuksa mogą użyć klienta TFTP i w ten sposób zaprogramować router.
Po przesłaniu firmware to routera następuje programowanie, co trwa w zależności od objętości obrazu od 5 do 10 minut. Pod żadnym pozorem nie wolno nam odłączać routera od zasilanie oraz nie wciskać przycisku Reset z tyłu AP.
UWAGA: Asus WL500g Premium nie posiada możliwość autorestartu po wgranym firmware.
W tym momencie są dwie możliwości:
Po ok 3 minutach dioda Power zapala się. W tym momencie próbujemy połączyć się telnetem (patrz niżej). Jeśli nie da się połączyć telnetem, przechodzimy do wariantu 2.
Gdy minie 5-6 minut odłączamy router od zasilania i podłączamy ponownie. Jeżeli dioda Power nie zaczyna migać to wszystko jest w porządku. Po zapaleniu się diody Air możemy zalogować się do routera po telnecie w następujący sposób:
telnet 192.168.1.1
W konsoli zostaniemy przywitani logiem OpenWrt
BusyBox v1.11.2 (2008-10-08 09:00:24 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
KAMIKAZE (8.09, r13118) ----------------------------
* 10 oz Vodka Shake well with ice and strain
* 10 oz Triple sec mixture into 10 shot glasses.
* 10 oz lime juice Salute!
---------------------------------------------------
root@OpenWrt:~#
Następnym krokiem jest ustalenie hasła dla root'a
passwd
Wpisujemy hasło np. admin dwukrotnie, aż pokaże się komunikat Password changed.
Resetujemy nasz router poleceniem
reboot
Po ponownym uruchomieniu logujemy sie znowu na router, ale teraz poprzez konsole bezpieczniejszÄ… - SSH
ssh root@192.168.1.1
Jeżeli posiadamy wgrany firmware oficjalny, zaleca się wgrać np. Tomato w celu włączenia boot_wait przez interfejs www danego firmware. Potem możemy spokojnie wgrywać poprzez specjalnie przeznaczoną stronę w firmware. Alternatywnym wyjściem jest wgranie za pomocą TFTP
Przed wgraniem firmware należy aktywować boot_wait
Od wersji 5898 Kamikaze jest wsparcie dla FON LaFoner'y.
Do wgrania firmware musimy zainstalować serwer TFTP na swoim komputerze. Przykład jak to zrobić pod Ubuntu. Mimo ze autor opisu nie wspomina o restarcie PC, trzeba to uczynić, aby serwer działał prawidłowo. Pod Windowsem możemy użyć programu TFTP32
Wgranie nowego firmware do LaFonery wymaga wykonania portu RS232
Podłączamy się przez port szeregowy i włączamy router do zasilania. Naciskamy Ctrl-C, aby przerwać botowanie w ten sposób wejdziemy w bootloader i pojawi się:
RedBoot>
Konfigurujemy interfejs
RedBoot> ip_address -l 192.168.1.20/24 -h 192.168.1.2
gdzie 192.168.1.20 to IP przydzielony dla Fonery, a 192.168.1.2 to serwer TFTP
Kasujemy stary firmware (UWAGA: Należy zastosować to koniecznie w przypadku przechodzenia z DD-Wrt na Kamikaze)
RedBoot> fis init
About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
Wgrywamy rootfs poprzez TFTP
RedBoot> load -r -v -b 0x80041000 openwrt-atheros-root.squashfs Using default protocol (TFTP) | Raw file loaded 0x80041000-0x80200fff, assumed entry at 0x80041000
Flaszujemy(potrwa to ok 10minut)
RedBoot> fis create -b 0x80041000 -f 0xA8030000 -l 0x00700000 -e 0x00000000 rootfs An image named 'rootfs' exists - continue (y/n)? y ... Erase from 0xa8030000-0xa8730000: ................................................................................................................ ... Program from 0x80041000-0x80741000 at 0xa8030000: .............................................................................................................. ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
Wgrywamy obraz vmlinux poprzez TFTP
RedBoot> load -r -b 0x80041000 openwrt-atheros-vmlinux.lzma Using default protocol (TFTP) Raw file loaded 0x80041000-0x800f0fff, assumed entry at 0x80041000
Flaszujemy
RedBoot> fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7 An image named 'vmlinux.bin.l7' exists - continue (y/n)? y ... Erase from 0xa8730000-0xa87e0000: ........... ... Program from 0x80041000-0x800f1000 at 0xa8730000: ........... ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
Restartujemy router
RedBoot>reset
Pobieramy vmlinux po tftp
RedBoot> load -r -b %{FREEMEMLO} openwrt-atheros-vmlinux.lzma
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x800f0fff, assumed entry at 0x80041000
Flaszujemy vmlinux
RedBoot> fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7 An image named 'vmlinux.bin.l7' exists - continue (y/n)? y ... Erase from 0xa8730000-0xa87e0000: ........... ... Program from 0x80041000-0x800f1000 at 0xa8730000: ........... ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
Sprawdzamy wolną pamięć
RedBoot> fis free
0xA80F0000 .. 0xA87E0000
Na desktopie z linuksem wyliczamy rozmiar wolnej pamięci, polega to na tym ze odejmujemy wiesza wartość od mniejszej. Zakres wolnej pamięci uzyskujemy w poprzednik kroku. Pamiętaj: u każdego może być inna wartość, wiec nie kopiuj bezmyślnie!!
$ bc obase=16 ibase=16 A87E0000 - A80F0000 6F0000
Pobieramy rootfs po tftp
RedBoot> load -r -b %{FREEMEMLO} openwrt-atheros-root.squashfs
Using default protocol (TFTP)
|
Raw file loaded 0x80041000-0x80200fff, assumed entry at 0x80041000
Flaszujemy rootfs. Zastąp zmienną 0xLENGTH wartością uzyskaną w czasie odejmowania
RedBoot> fis create -l 0xLENGTH rootfs An image named 'rootfs' exists - continue (y/n)? y ... Erase from 0xa8030000-0xa8730000: ................................................................................................................ ... Program from 0x80041000-0x80741000 at 0xa8030000: .............................................................................................................. ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
Resetujemy
RedBoot> reset
Mając odblokowany RedBoot możemy użyć narzędzia fonflash z projektu Gargoyle. Wystarczy pobrać odpowiednie pliki firmware(kernel i rootfs) i wgrać do routera.
Instalacja trwa ~15 minut, nie należy przerywać procesu instalowania bo może doprowadzić do uszkodzenia urządzenia.
Na rynku dostępne są 2 wersje tego routera. Pierwsza wersja wykorzystywała chipset Atheros 2317. Natomiast obecnie dostępna w sklepach rewizja wykorzystuje już chipset Ralinka RT3050. Opis ten dotyczy wyłącznie! wersji 1 bazującej na chipsecie Atheros. Aby zidentyfikować wersje posiadanego routera należy zaglądnąć na spód urządzenia i na naklejce znaleźć litery rev: . Jeżeli mamy rewizje A1 możemy przystąpić do niżej opisanej procedury wgrywania OpenWrt.
Dodatkowym założeniem było maksymalne uproszczenie procedury. Ponieważ wersja stabilna OpenWrt wciąż nie obsługuje switcha montowanego w DIR-300 więc skorzystamy z wersji rozwojowej wyposażonej w bardzo przyjemny interfejs użytkownika Gargoyle.
Wyłącz zaporę sieciową w komputerze.
Pliki do pobrania przed instalacja :
gargoyle_1.0.14-atheros-root.squashfs
gargoyle_1.0.14-atheros-vmlinux.lzma
Zaznaczam, że na chwilę obecną (11.2009) wersja rozwojowa 1.1 nie działa w pełni na DIR-300 od razu po instalacji.
Rozpakowujemy TFTP server do katalogu i kopiujemy do niego resztę plików, które wymienione są na górze. Uruchamiamy Putty i konfigurujemy nowe połączenie ip: 192.168.20.81, telnet i port 9000. Zmieniamy IP komputera na 192.168.20.80, maska 255.255.255.0. Podłączamy kabel LAN pomiędzy komputerem a wejściem WAN/INTERNET w routerze. Odłączamy kabel zasilający router i powrotem go podłączamy. Restartujemy router trzymając przycisk RESTART przez około 20 sekund i następnie próbujemy się podłączyć za pomocą putty.
Gdy pokażę nam się odzew routera : DIR-300> albo RedBOOT> to znaczy, że się podłączyliśmy. Jeśli nam się nie udało, powtarzamy to dopóki nie pojawi się nam podany wyżej odzew.
Odpalamy tftp Server i w putty’m wpisujemy:
RedBOOT> load ap61.ram
Gdy obraz się załaduje (potwierdzenie ściągania przez tftpd32), wpisujemy:
RedBOOT> go
Zmieniamy IP komputera na 192.168.1.2, maska 255.255.255.0. Podłączamy kabel LAN pomiędzy komputerem a wejściem LAN w routerze. Uruchamiamy Putty i konfigurujemy nowe połączenie ip: 192.168.1.1, telnet i port 9000. Probójemy się połączyć.
Jeżeli się uda to pojawi nam się odzew DD-WRT>.
DD-WRT> ip_address -h 192.168.1.2 DD-WRT> fis init
About to initialize [format] FLASH image system - continue (y/n)? **y** *** Initialize FLASH Image System ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000:
DD-WRT> load -r -b %{FREEMEMLO} ap61.rom
DD-WRT> fis create -l 0x30000 -e 0xbfc00000 RedBoot
DD-WRT> reset
Router zostanie uruchomiony ponownie i bedzie ponownie dostępny po ok minucie. Uruchamiamy Putty i konfigurujemy nowe połączenie ip: 192.168.1.1, telnet i port 9000. Probójemy się połączyć. Po udanej podmianie BootLoader'a prztępujemy w końcu do zmiany oprogramowania:
DD-WRT> ip_address -h 192.168.1.2
DD-WRT> fis init
DD-WRT> load -r -b %{FREEMEMLO} gargoyle_1.0.14-atheros-vmlinux.lzma
DD-WRT> fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7
DD-WRT> load -r -b %{FREEMEMLO} gargoyle_1.0.14-atheros-root.squashfs
DD-WRT> fis create rootfs
I na koncu ustawiamy prawidłowo BootLoader
DD-WRT> fconfig boot_script true DD-WRT> fconfig boot_script_timeout 5 DD-WRT> fconfig
Nie zmieniamy parametrów - wpisujemy jedynie skrypt startowy dla naszego nowego firmware'u:
fis load -l linux exec
Zapisujemy dokonane zmiany i resetujemy urzÄ…dzenie
DD-WRT> reset
Po restarcie router bedzie dostępny na stronie http://192.168.1.1
Domyślne IP: 192.168.1.20
Domyślny użytkownik/hasło: root/unbt
Routerstation Pro standardowo wgrany ma bardzo stary trunk. W celu zainstalowania najnowszego obrazu musimy pobrać najnowszą jego wersję ze strony openwrt.org lub zastosować obraz specjalnie po ten router przygotowany przez arteq'a. Szczegółowe informacje o zmianach w firmware arteq'a można znaleźć na jego blogu.
Ze względu na to że standardowy obraz w Routerstation nie wpiera funkcji sysupgrade, należy wgrać go od nowa poprzez tftp.
Wyjaśnienia wymaga nazewnictwo obrazów. Mianowicie od pewnego czasu jest obraz factory i sysupgrade. Obraz factory używa się do wgrywanie przez tftp, a sysupgrade w celu łatwego przejścia na nową wersje z zachowaniem plików konfiguracyjnych.
Wchodzimy w tryb recovery poprzez przyciśnięcie przycisku reset i podłączenie zasilania. Przycisk trzymamy ok 5 sekund i puszczamy. Dla sprawdzenia czy router jest w trybie recovery możemy puścić ping na ip 192.168.1.20.
Jeżeli jesteśmy użytkownikami jakiejkolwiek dystrybucji Linuksa to instalujemy klienta tftp i zaczynamy wgrywanie firmware
tftp 192.168.1.20 >binary >put openwrt-ar71xx-ubnt-rspro-squashfs-factory.bin
Czekamy aż przestanie migać dioda RF. Warto co jakiś czas puścić pinga na IP 192.168.1.1, w celu sprawdzenia czy firmware już się uruchomił. Czasami dioda RF miga mimo, że OpenWrt jest już uruchomione. Po wgraniu nowego obrazu OpenWrt, system nie posiada hasła. Postępujemy jak ze standardowym obrazem OpenWrt.
W przypadku Windowsa, używamy klienta tftp32.
Pobieramy obraz sysupgrade - openwrt-ar71xx-ubnt-rspro-squashfs-sysupgrade.bin do katalogu /tmp, następnie:
sysupgrade -i openwrt-ar71xx-ubnt-rspro-squashfs-sysupgrade.bin
Zostaniemy zapytani czy chcemy zachować pliki konfiguracyjne (Y/n). Dokonujemy wyboru i czekamy na zainstalowanie. Po ponownym uruchomieniu, co nastąpi automatycznie cieszymy się nową wersja firmware.
W oddzielnym dokumencie
Router do kupienia m.in. na wireleslan.pl. Występują dwa oblicza tego routera pod tą samą wersją v2. Różnice polegają na modelu kontrolera przełącznika. Opis dotyczy kontrolera ADM6996F, który bez problemów jest wykrywany przez OpenWrt (ADM6996FC nie!!!)
Pobierany obraz OpenWrt lub Gargoyle: kernel i rootfs
Flaszowanie odbywa siÄ™ przez booloader RedBoot, z wykorzystaniem serwera TFTP na desktopie
Najpierw kernel:
RedBoot> fis init RedBoot> load -r -v -b 0x80041000 openwrt-atheros-vmlinux.lzma RedBoot> fis create vmlinux.bin.l7 RedBoot> fis free 0xBFD00000 .. 0xBFFE0000
Obliczamy wolną przestrzeń na desktopie:
$ bc obase=16 ibase=16 BFFE0000 - BFD00000 2E0000
Teraz rootfs:
LENGTH zastępujemy wyliczoną wartością
RedBoot> load -r -v -b 0x80041000 openwrt-atheros-root.squashfs RedBoot> fis create -l 0xLENGTH rootfs
