Pokazywanie postów oznaczonych etykietą openwrt. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą openwrt. Pokaż wszystkie posty

czwartek, 4 października 2007

OpenWrt Kamikaze 7.09


Pojawiłą się nowa wersja jedynego wg mnie słusznego firmware'u dla sporej grupy urządzeń nie tylko bezprzewodowych.

zmiany w stosunku do 7.07:

- Fix a crash at boot time on atheros-2.6
- Documentation updates
- UCI updates - uncommitted changes are now active on config reads
- PPP fixes
- Firewall fixes for dynamic interfaces
- Config enhancements for dnsmasq
- Timing fixes for BCM947xx (fixes flash access problems on some models)
- Fix for BCM947xx and Atheros cards on Linux 2.4
- Prevent interfaces from accidentally being started twice at boot time
- Fix QoS for dynamically assigned interfaces
- Fix IMQ errors when ip6tables is installed (Linux 2.4)

piątek, 14 września 2007

OpenWRT Kamikaze

Ponieważ bardzo cenię swój wolny czas oraz uważam że wynajdywanie koła po raz drugi nie ma sensu zawieszam pisanie tutoriali. Wszystko co potrzebne znajdziecie po polskiemu tutaj -> openwrt.pl.

Instalacja pakietów - OpenWRT Kamikaze

W OpenWRT paczkami zarządza się za pomocą systemu ipkg. Konfiguracja ipkg przechowywana jest w /etc/ipkg.conf

src release http://downloads.openwrt.org/kamikaze/7.07/brcm-2.4/packages
src packages http://downloads.openwrt.org/kamikaze/packages/mipsel
dest root /
dest ram /tmp
warto do tego pliku dodać repozytorium backport w którym znajdziemy miedzy innymi pakiety takie jak np. samba-server
src backport http://downloads.openwrt.org/backports/0.9
Przed instalacją aktualizujemy informacje o repozytoriach i ich pakietach przez
ipkg update
Listę dostępnych pakietów uzyskamy przez
ipkg list
Listę zaisntalowanych pakietów
ipkg list_installed
Pakiety instalujemy przez
ipkg install [nazwa pakietu] (wraz z zależnościami)
ipkg install [link/ścieżka] (np. http://downloads.openwrt.org/kamikaze/packages/mips/cups_1.1.23-1_mips.ipk)
Pakiety usuwamy przez
ipkg remove [nazwa pakietu]
Zawartość pakietu ujawni nam
ipkg files [nazwa zainstalowanego pakietu]
Reszta opcji po wpisaniu
ipkg

Konfiguracja przewodówki - OpenWRT Kamikaze

W tym tutorialu opiszę konfiguracją portów przewodowych. Bezprzewodówką (wifi) zajmiemy się w innym post'cie.

Konfiguracja sieci w OpenWRT Kamikaze w przeciwieństwie do White Russian jest przechowywana w pliku konfiguracyjnym a nie w zmiennych przestrzeni nvram. Plik ten to /etc/config/network.

Domyślnie zawartość to:

#### VLAN configuration
config switch eth0
option vlan0 "1 2 3 4 5*"
option vlan1 "0 5"


#### Loopback configuration
config interface loopback
option ifname "lo"
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0


#### LAN configuration
config interface lan
option type bridge
option ifname "eth0.0"
option proto static
option ipaddr 192.168.1.1
option netmask 255.255.255.0


#### WAN configuration
config interface wan
option ifname "eth0.1"
option proto dhcp
Jak widać plik podzielony jest na sekcje. W pierwszej sekcji konfigurujemy 6 portów wbudowanego switch'a. Dla użytkownika wystawionych jest 5 portów, a szósty podłączony jest do systemu. Ponieważ korzystam z telefonii internetowej i nie chcę podłączać dodatkowego switch przed routerem więc dokładam sobie jeden port po stronie WAN'u do którego podłączam adapter VoIP i po sprawie
#### VLAN configuration
config switch eth0
option vlan0 "2 3 4 5*"
option vlan1 "0 1 5"
Następnie mamy konfigurację LAN'u i WAN'u. Przy konfiguracji WAN'u przydatna może okazać się opcja macaddr (w White Russian było to hwaddr). Jeśli chcemy wpisać kilka serwerów DNS oddzielamy je spacjami i zamykamy w cudzysłów.
#### WAN configuration
config interface wan
option ifname "eth0.1"
option proto static
option ipaddr nasze_IP
option netmask nasza_maska
option gateway nasza_brama
option dns "DNS1 DNS2"
option macaddr nasz_mac
Sieć możemy skonfigurować za pomocą polecenia: uci
Aktualną konfigurację poznamy przez: uci show network
Przykładowa konfiguracja WAN'u
uci set network.wan.proto=static
uci set network.wan.ipaddr=nasze_IP
uci set network.wan.netmask=nasza_maska
uci set network.wan.gateway=nasza_brama
uci set network.wan.dns="DNS1 DNS2"
uci set network.wan.macaddr=nasz_mac

konfigurację sieci zapisujemy przez wydanie polecenia
uci commit network
a cała konfigurację (w przypadku gdy zmienialiśmy coś poza siecią) możemy zapisać przez
uci commit

Gdy coś pójdzie nie tak - OpenWRT Kamikaze

Failsafe mode:
Jeśli zapomniałeś hasło, uszkodziłeś któryś z skryptów startowych, zablokowałeś się na firewall'u lub uszkodziłeś partycję JFFS2, ten tryb jest dla Ciebie.

Uruchamianie urządzenia w trybie failsafe mode:

  • wyłącz zasilanie
  • podłącz LAN1 routera bezpośrednio do twojego PC'ta
  • skonfiguruj połączenie sieciowe (IP z zakresu 192.168.1.2-192.168.1.254, maska 255.255.255.0, brama i DNS są niepotrzebne)
  • włącz zasilanie i poczekaj aż zgaśnie dioda zasilania
  • zaraz po zgaśnieciu diody zasilania wciśnij kilka razy dowolny przycisk (RESTORE lub EZSETUP) pare razy
  • dioda zasilania powinna zacząć mrugać z szybkością około raz na sekundę
Teraz powinieneś móc się telnetować na 192.168.1.1 bez loginu i hasła

Co mogę zrobić w trybie failsafe mode?
notka: główny system plików w trybie failsafe mode jest partycją SquashFS zamontowaną tylko do odczytu. Aby można było na niej również dokonywać zmian należy wydać polecenie: mount_root
  • w przypadku zapomnianego hasła wydaj polecenie: passwd
  • zapomniałeś jakie IP ma router: uci get network.lan.ipaddr
  • przez przypadek uruchomiłeś ipkg upgrade lub zapełniłeś całe dostępne miejsce instalując jakąś dużą paczkę: mtd -r erase OpenWrt (czyści partycję JFFS2)
Po zakończonych operacjach w trybie failsafe mode zrestartuj router przez odcięcie zasilania lub wydanie polecenia reboot

czwartek, 13 września 2007

Instalacja OpenWRT Kamikaze 7.07 na ASUS WL-500gP

Ponieważ nie ukrywam że dar piśmiennictwa mi się nie udzielił, w swoich tutorialach podpierał się będę stronami z wiki projektu OpenWRT (wiki.openwrt.org).

Oryginalny firmware:

Backup:
Backup oryginalnego firmware'u możemy wykonać za pomocą ukrytej strony administracyjnej. Aby wykonać backup będziemy potrzebować pendrive.

  • na pen'ie tworzymy skrypt o poniższej zawartości i nazywamy go asus.sh
    #!/bin/sh
    dd if=/dev/mtdblock/1 > $1/first_config.trx
  • podłączamy pen'a do dolnego portu USB
  • przechodzimy do ukrytej strony administracyjnej http://192.168.1.1/Main_AdmStatus_Content.asp
  • w polu System Command wpisujemy mount i wciskamy przycisk Refresh. w wyniku powinieneś otrzymać coś podobnego
    /dev/discs/disc0/part1 on /tmp/harddisk/part0 type ext2 (rw,sync)
  • wykonujemy backup poleceniem sh /tmp/harddisk/part0/asus.sh /tmp/harddisk/part0 które wpisujemy w pole System Command. backup może potrwać 10-15 minut
  • po zakończonej operacji wyciągamy pen'a i sprawdzamy na PC'cie czy znajduje się na nim plik first_config.trx

Restore:
Firmware możemy przywrócić przynajmniej na 3 sposoby:
  • tftp
  • mtd (z konsoli OpenWRT)
  • ASUS firmware restoration tool (tylko spod Windows)

Instalacja:
Można spróbować instalacji z poziomu interfejsu www ... ale nie jest on zalecany. W moim przypadku po nieudanym TFTP'owaniu z poziomu Windows'a użyłem ASUS firmware restoration tool.

diag mode:
Przed użyciem TFTP oraz ASUS firmware restoration tool należy urządzenie wprowadzić w tryb diag mode. Wykonujemy po kolei:
wyłączamy zasilanie routera
podłączamy port LAN1 bezpośrednio do karty w naszym PC (wyłącz pozostałe karty sieciowe w PC)
wciskamy i nie puszczamy przycisk RESTORE
włączamy zasilanie routera trzymając wciśnięty przycisk RESTORE jeszcze przez kilka sekund
jeśli lampka zasilająca powoli mruga ... znaczy to że jesteś w diag mode

TFTP:
Aby wrzucić nowy firmware należy:
  • wykonać poniższe polecenia
    tftp 192.168.1.1
    tftp> binary
    tftp> trace
    tftp> put openwrt-brcm-2.4-squashfs.trx
  • odczekać przynajmniej 6 minut po zakończeniu upload'u
  • router zrestartuje się sam po wykonaniu upgrade'u. restart może chwilkę potrwać

Po wszystkim powinieneś się móc telnetować na router (IP: 192.168.1.1)

notki:
Przy wrzucaniu nowego firmware'u nie restartuj urządzenia zbyt szybko .. możesz go uszkodzić!
ASUS WL-500gP nie przywraca domyślnego IP 192.168.1.1. Aktualnie zakonfigurowany przetrzymywany jest w zmiennej lan_ipaddr (nvram).

ASUS firmware restoration tool:
Jeśli działasz pod Windows do instalacji OpenWRT powinieneś użyć ASUS firmware restoration tool które znajdziesz na dołączonej do urządzenia płycie (Utitity\setup.exe).
  • sprawdź czy router jest w trybie dag mode
  • wskaż ścieżkę do pliku .trx (openwrt-brcm-2.4-squashfs.trx)
  • wciśnij przycisk Upload
  • router po zakończonym upgrade'ie zam się zrestartuje. może to chwilkę potrwać
Po wszystkim powinieneś się móc telnetować na router (IP: 192.168.1.1)

mtd:
Jeśli masz już zainstalowane OpenWRT lub inny firmware posiadający mtd, w celu aktualizacji firmware'u wykonaj:
cd /tmp/
wget http://downloads.openwrt.org/kamikaze/7.07/brcm-2.4/openwrt-brcm-2.4-squashfs.trx
mtd -r write openwrt-brcm-2.4-squashfs.trx linux && reboot

ASUS Wl-500g Premium

Właśnie stałem się szczęśliwym posiadaczem "router'a" bezprzewodowego ASUS WL-500g Premium. "router'a" bo sam producent mówi o nim "More Then Just a Router". Po tym jak skończę nad nim pracować śmiało będzie można powiedzieć o tym urządzeniu SERWER.
Swoją konfigurację postaram się wam przedstawić krok po kroku w serii tutoriali.
Docelowo zamierzam na nim postawić serwery FTP (vsftpd), SMB (samba), HTTP (?), VPN (pptpd). A to wszystko stanie pod kontrolą OpenWRT Kamikaze 7.07.

kilka recenzji:
http://www.imperium.net.pl/asus-wl500g-premium-p-4305.html
http://www.notebookcheck.pl/Prezentacja-routera-Asus-WL500g-Premium.2214.0.html

a tutaj można posłuchać o OpenWRT:
http://warszawa.linux.org.pl/plug-20061108/

poniedziałek, 10 września 2007

Problem -> VLAN, OpenWRT White Russian 0.9, ASUS WL-500g Premium

W wspomnianej w temacie wersji OpenWRT czyli White Russian 0.9 istnieje błąd w pliku /etc/init.d/S05nvram który nadpisuje konfigurację VLAN'ów. Problem występuje tylko w przypadku użycia ASUS WL-500g Premium.
Aby rozwiązać problem należy wstawić brakujący nawias ] za [ -z "$(nvram get lan_ifnames_t)" w sekcji # wl-500g premium.

Prawidłowy fragment kodu:

# wl-500g premium
[ "$boardnum" = "45" \
-a "$boardtype" = "0x042f" ] && {
debug "### wl-500g premium hacks ###"
[ -z "$(nvram get lan_ifnames_t)" ] || {
# hasn't been remapped yet, revert the vlan1 config as well, because
# it defaults to "0 5u", which we can't use.
# use lan_ifnames_t as an indicator of whether the config was made
# by the original firmware.
nvram unset vlan1ports
nvram unset lan_ifnames_t
}

poniedziałek, 6 sierpnia 2007

tips & tricks: ram disc w OpenWRT

Instalując coraz to nowe aplikacje na naszej maszynie wcześniej czy później dochodzi do momentu w którym brakuje nam miejsca. Można pokusić się o SD/MMC mod'a ... można też skorzystać z ram disc'u tworzonego podczas startu systemu :D
Jak z niego korzystać? Bajecznie prosta sprawa! Wystarczy edytować plik /etc/profile i dodać do niego dwie poniższe linijki:

export PATH=$PATH:/tmp/bin:/tmp/sbin:/tmp/usr/bin:/tmp/usr/sbin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tmp/lib:/tmp/usr/lib

a następnie zrestartować urządzenie lub wykonać:
. /etc/profile

i to już koniec konfiguracji!
W tym momencie załóżmy że mamy chwilową potrzebę skorzystania z tcpdump'a:
ipkg -d ram install tcpdump

zainstalowane w ten sposób oprogramowanie nie przeżyje restartu .. ale o to nam w tym momencie chodziło!
Jeśli chcemy aby tcpdump na stałe zagościł na nowej partycji musimy dorobić tylko skrypt startowy który za każdym razem po starcie będzie pobierał i instalował tcpdump'a .. wykonujemy kolejno:
cat > /etc/init.d/S90local
#!/bin/sh
ipkg update
ipkg -d ram install tcpdump
Ctrl + D
chmod +x /etc/init.d/S90local

piątek, 3 sierpnia 2007

WRT54G SC/MMC hack/mod

Tunning wykonałem krok po kroku za instrukcją umieszczoną w WRT54G Ultimate Hacking. I niby wszystko było ok .. system widział kartę .. dało się na niej coś zapisać .. jednak podczas instalowania na niej dodatkowych paczek z oprogramowanie router wieszał się po chwili. A to wszystko za sprawą złej kolejności ustawiania maski GPIO oraz ładowania modułu mmc.o.
Prawidłowa kolejność to najpierw maska, potem moduł. Mój skrypt startowy wygląda tak:

root@OpenWrt:# cat /etc/init.d/S20mmc
#!/bin/sh
echo "0x7e" > /proc/diag/gpiomask
insmod mmc gpio_sd_di_pin=2
mount /mnt/mmc

0x7e zamiast 0x9c które można znaleźć w innych HowTo ponieważ mod wykonałem na modelu WRT54GL v1.0 gdzie nie ma (nie znaleziono) miejsca z którego by można wyciągnąć GPIO 5, dlatego też zamiast niego użyłem GPIO 2, a następnie poinformowałem o tym moduł mmc.o przez podanie parametru gpio_sd_di_pin=2. Moduł do systemu plików ładuje za pomocą /etc/modules.d.

Kolejna sprawa która wyskoczyła w tak zwanym miedzy czasie to problem z zainstalowaniem tcpdump'a na zewnętrznej karcie. Wszystko za sprawą systemu plików FAT który uniemożliwia tworzenie symlinków, a takowe chce tworzyć niezbędna do uruchomienia tcpdump'a paczka zbiblioteką pcap. Problem można obejść tworzą kopie odpowiednich plików i nadając im odpowiednie nazwy, ale tracimy przez to niepotrzebnie miejsce.
Wyjście? Formatujemy kartę na ext2. W tym celu musimy zainstalować paczkę e2fsprogs którą znajdziemy w backportach dla wersji RC6 whiterussian. Następnie wykonać komendę:
mkfs.ext2 /dev/mmc/disc0/part1

zainstalować moduł kmod-ext2
ipkg install kmod-ext2

spowodować aby ładował się on przy każdym starcie
echo 'ext2' > /etc/modules.d/30-ext2

zmodyfikować plik /etc/fstab
echo '/dev/mmc/disc0/part1 /mnt/mmc ext2 defaults 0 0' > /etc/fstab

reboot i już :)