0. Wstęp
Art ten jest recenzją rutera Dlink DIR-320 jako platformy sprzętowej dla OpenWrt brcm47xx . Osoby które posiadają ten sprzęt i szukają jedynie sposobu na wgranie OpenWrt z kernelem w wersji 2.6 polecam skupienie swojej uwagi na sekcji 3, 4 i 5. 1. Hardware 1.1 Model
D-Link DIR-320, hw ver. 1A
Znana jest także druga wersja 1B - http://wiki.openwrt.org/oldwiki/openwrtdocs/hardware/d_link/dir_320 , lecz zdaje się niczym nie różnić poza kością flash (o tym samym rozmiarze). 1.2 Specyfikacja
CPU: Broadcom BCM5354KFBG @ 240MHz
Flash: MX (MACRONIX) 29LV320DTTI-70G (4MB)
RAM: SAMSUNG K4H561636J-LCCC (32MB)
Switch: Broadcom Roboswitch 5325
Port szeregowy: 1 (na obu wersjach płytki piny są już wyprowadzone)
USB: 1 port USB 2.0 (w oryginalnym firmwarze obsługiwany są tylko prędkości USB 1.1)
JTAG : jest, piny nie są wyprowadzone
Zasilanie: z adaptera AC/DC 5V 2A
1.3 Serial console
Domyślne ustawienia: 115200 8N1.
Coś co może być problemem to otoczenie portu USB które może uniemożliwić nam podłączenie grubszego pendrive'u czy też karty wifi pod usb (Dlink DWL-G122 mieści się na styk).
Z USB można swobodnie zasilić dysk 2,5'' , problem pojawia się, gdy chcemy podłączyć obudowę USB przez hub R11; wtedy już trzeba dysk zasilić oddzielnie. Przy użyciu HUBa USB udało się mi zasilić z rutera - pendrive, karte wifi usb oraz GPS.
Ciekawostką jest fakty, że sam ruter może być także zasilany z USB R11; wskazuje to na bezpośrednie połączenie zasilania z USB. 1.5 Inne
Warto wspomnieć także o dodatkowym przycisku w który jest ten sprzęt wyposażony (postaram się opisać jeszcze jak go wykorzystać) oraz dwukolorowej diodzie znajdującej się pod nim. Posiada kolory niebieski i czerwony które można zapalić jednocześnie otrzymując 3. - fioletowy. 2 Kompilacja
Obsługa karty wifi w tym ruterze pod linux 2.6 jest uważana za eksperymentalną dlatego nie ma oficjalnej binarki obsługującej WiFi (pod 2.4 za to jest). Z tego powodu, aby uzyskać jak najlepsze wyniki zaleca się skompilować źródła dla najnowszych poprawek.
Sytuacja z tym sterownikiem jest po części wyjaśniona tutaj: https://forum.openwrt.org/viewtopic.php?id=22103
Podstawowe instrukcje by skompilować najnowsze OpenWrt znajdują się tutaj: http://openwrt.pl/doku.php/development:kompilacja_svn
Dla dokładniejszego opisu polecam podążyć za linkiem (jest tam także informacja o potrzebnych pakietach).
Lista komend które trzeba wykonać aby pobrać najnowsze źródła.
Cytat
svn co svn://svn.openwrt.org/openwrt/trunk/
cd trunk
./scripts/feeds update -a
./scripts/feeds install -a
2.1 Menuconfig
Przed rozpoczęciem kompilacji należy wybrać interesujące nas ustawienia/pakiety przy pomocy menuconfig.
Target System (Broadcom BCM947xx/953xx)
Target Profile (Broadcom BCM43xx WiFi (default))
Kernel modules
Wireless Drivers
<*> kmod-b43.................................. Broadcom 43xx wireless support
<*> Remove unnecessary firmware files
(13,14,15)Core revisions to include
(LP) PHY types to include
< > kmod-b43legacy
USB Support
<*> kmod-usb-core............................................ Support for USB
<*> kmod-usb-ohci............................... Support for OHCI controllers
<*> kmod-usb-storage..................................... USB Storage support
<*> kmod-usb2................................... Support for USB2 controllers
Filesystems
<*> kmod-fs-ext3..................................... EXT3 filesystem support
Config do pobrania z http://www.nopaste.pl/Source/l6w.txt (należy zapisać jako .config) 2.2 Kompilacja!
Po zakończeniu konfiguracji obrazu możemy przejść do kompilacji
Cytat
make -j2
Kompilacja za pierwszym razem będzie trwać bardzo długo z powodu potrzeby przygotowania nie tylko samego obrazu, ale także narzędzi do jego utworzenia (ponowna kompilacja będzie już krótsza).
Skompilowany obraz można znaleźć w ./bin/brcm47xx/openwrt-brcm47xx-squashfs.trx 3 Flashowanie
Metoda którą polecam R11; z pomocą TFTP R11; została opisana już wielokrotnie także nie będę się tutaj rozpisywał. To co istotne, że ruter czeka bardzo krótko po uruchomieniu na odebranie nowego firmware'u pod adresem 192.168.0.1 .
fragment logu z rutera informujący o uruchomieniu tftp 3.1 Przygotowanie Ustawiamy na karcie sieciowej IP 192.168.0.2 ( z maską np. 255.255.255.0 ).
Odpinamy od rutera wszelkie okablowanie (wraz z zasilaniem). Podpinamy jedynie kabel łączący naszą maszynę z ruterem. Przygotowujemy kabel zasilający obok. Jeśli nie ufamy elektryce w naszym domu UPS to zawsze dobry pomysł przy flashowaniu R11; co prawda przy pomocy tej metody jeszcze nie udało się mi zabić rutera nawet wgrywając zły obraz... Rutera nie wolno restartować. 3.2 Flashowanie!
Przechodzimy do katalogu z obrazem firmware'u.
Wydajemy polecenie:
Reading from 0x803c0720: Programming...done. 2232320 bytes written
Flashowanie zostało zakończone, ruter dalej będzie przeprowadzał wstępną konfiguracje R11; tego procesu także lepiej nie przerywać. 4 Konfiguracja 4.1 Ustawienie hasła
Dla każdej osoby instalującej ponownie OpenWrt będzie to oczywiste. Z pomocą klienta TELNET (telnet, putty) łączymy się do rutera (domyślnie adres 192.168.1.1) i ustawiamy hasło z pomocą polecenia passwd. Następnie rozłączamy się i ponownie łączymy już przy pomocy bezpiecznego SSH (ssh, putty). 4.2 Ustawienia sieci
Konfiguracja odbywa się typowo przez /etc/config/network, oraz /etc/config/wireless .
Tutaj polecę http://eko.one.pl/?p=openwrt-konfiguracjasieci .
Podam tutaj konfiguracje dla najprostszego przypadku:
Pod port WAN jest podłączony RInternetR1; - dostawca
LAN i WiFi jest połączone w jedną sieć.
WiFi jest szyfrowane WPA2/PSK /etc/config/network (ten plik praktycznie nie wymaga zmian w stosunku do domyślnych wartości)
config wifi-device radio0
option type mac80211
option channel 6
option macaddr 00:92:3c:c1:00:00 #tutaj wartosc nie ma specialnie znaczenia
option hwmode 11g
config wifi-iface
option device radio0
option network lan
option mode ap
option ssid NazwaSieci
option encryption wpa2-psk
option key TrudneHaslo
Po zakończeniu konfiguracji sieci warto ruter zrestartować (polecenie reboot). 4.3 Więcej miejsca na pakiety R11; Bootfromexternalmedia
Przenosiny / (root) na zewnętrzny nośnik w celu zwiększenia ilości wolnego miejsca na dodatkowe pakiety opisałem już na stronię http://rooter.kyberian.net/?p=64 R11; tutaj ograniczę się jedynie do streszczenia tej instrukcji i wskazówek na temat nie opisanych tam operacji.
Partycjonowanie oraz formatowanie najlepiej przeprowadzić na własnym systemie. Można to oczywiście zrobić także na DIR320 poświęcając cenne miejsce na flashu instalując fdisk (partycjonowanie), swap-utils (ten pakiet i tak trzeba zainstalować dla swapon), oraz e2fsprogs (formatowanie).
Należy pamiętać, że nazwa urządzenia będzie się trochę różnić w zależności od konfiguracji konkretnego systemu. Na moim laptopie pendrive jest widoczny /dev/sdb, ten sam pendrive pod DIR320 widoczny jest jako /dev/sda. Partycje na konkretnym urządzeniu są kolejno numerowane począwszy od 1, np. /dev/sdb1.
Zewnętrzne linki do podobnych instrukcji:
http://rooter.kyberian.net/?p=64
http://openwrt.pl/doku.php/konfiguracja:hardware:usbhdd?s[]=fdisk
4.3.1 Wyłączenie automatycznego montowania
Nie jest to konieczne, ale zdaje się być zbędne i czasem może nam trochę pomieszać R11; dlatego polecam to wyłączyć.
4.3.2 Partycjonowanie
Legenda dla instrukcji: polecenie wprowadzane (klawisz)
Cytat
probe rooter # fdisk /dev/sdb
The number of cylinders for this disk is set to 3010.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): d
Selected partition 1
Command (m for help): n
Command action
e extended
p primary partition (1-4) p
Partition number (1-4): 1
First cylinder (1-3010, default 1): (enter)
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-3010, default 3010): +128M
Command (m for help): n
Command action
e extended
p primary partition (1-4) p
Partition number (1-4): 2
First cylinder (103-3010, default 103): (enter)
Using default value 103
Last cylinder, +cylinders or +size{K,M,G} (103-3010, default 3010): (enter)
Using default value 3010
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Zanim zrestartujemy należy się dwa razy upewnić, że /sbin/init jest na miejscu i ma właściwą zawartość. 4.4 Monitor mode
Lepsza kompatybilność b43 z kismetem była jednym z powodów moich przenosin na jądro 2.6
konfiguracja /etc/config/wireless
W konfiguracji kismetu wystarczy ustawić interfejs jako wlan0 i możemy zacząć zabawę;) 5 Testy 5.1 Tryb AP - Transfer
Testy wykonywane przy pomocy narzędzi dd, oraz netcat.
Po stronie odbiorcy:
Tutaj wyraźnie widać powód dlaczego sterownik jest uznawany jeszcze za nie gotowy do użytku. Zamknięty sterownik Broadcom okazuje się nadal ponad 3 razy wydajniejszy. Warto zauważyć że spadek wydajności nie jest zbyt duży pomiędzy siecią bez szyfrowania, z WPA2. 5.2 WLAN (wpa2/psk) -> dysk usb (zapis)
Trochę zaskakującym jest fakt, że szybkość zapisu jest odrobinę wyższa niż prędkość transmisji między WLAN, a LAN.
------------------------------------------------------------------
art zostanie rozszerzony o dalsze testy już po zakończeniu konkursu
EDIT: Konkurs został zakończony, poprawię parę rzeczy (dołożę więcej testów w różnych trybach i przy okazji skoro już to robię - test wydajności USB) - ale musi to niestety jeszcze zaczekać aż do końca sesji.
Edytowany przez RooTer dnia 02-02-2010 22:23
Potwierdzam działanie sprzętu z tak skompilowanym OpenWrt
Czy mógłbym prosić o aktualizację danych na temat extroot ponieważ skrypty musiały się zmienić i w obecnym trunku skrypt nie działa.
· Łącznie użytkowników: 24,115 · Najnowszy użytkownik: Ja
Czat
Musisz się zalogować, aby opublikować wiadomość.
Maniek91PL
06-11-2024 22:37
dzięki !
maxikaaz
29-10-2024 14:27
@Maniek91PL - Administration=> Admin Access, i tam masz "Allow Wireless Access" do zaznaczenia
Maniek91PL
26-10-2024 22:07
siemka! ktoś przypomni co się ustawiało jeśli nie mogę wejść od strony wifi do tomato? od lan działa
overflow2
04-10-2024 17:34
Kupowałem Asusy n10u albo n12d1 ale nie widzę ich, chyba już nie produkują, Chodzi o coś nowego i taniego. Transfery niewielkie.
maxikaaz
04-10-2024 09:38
@overflow2 patrząc po dostępności funkcji w nowych kompilacjach, to chyba nawet WRT54G/GL jeszcze ma OpenVPN, albo jakiś odpowiednik... zależy, na jakie transfery liczysz.
overflow2
30-09-2024 20:53
Jaki aktualnie najtańszy router do tomato do openvpn?
maxikaaz
27-07-2024 15:07
@servee - na początek router do rozebrania i obejrzenia, ciężko wróżyć tak tylko po objawach
maxikaaz
27-07-2024 14:55
@servee - cały kontroler nie pada tak sobie z powodu "zbiegu okoliczności", więc prawdopodobnie gdzieś przepięcie.
servee
25-07-2024 13:33
@maxikaaz: działało, aż pewnego pięknego dnia przestało działać. W tym dniu była też burza, ale to raczej zbieg okoliczności.
maxikaaz
25-07-2024 11:38
@servee - o ile problem jest w obrębie samych wyjść (dławiki, warystory), to naprawialne, ale jeśli w samym SoC - to nienaprawialne ze względu na koszta. A co było przyczyną?