Przygotowanie i instalacja OpenWrt
Ostatnia zmiana: 2013-11-26 18:43

W sprzedaży pojawiła się płytka pod nazwą AeroMAX5 a-n, na której widnieje oznaczenie RW2458N. Pierwotnym producentem wydaje się być Redwave, który właśnie pod nazwą RW2458N dystrybuuje wspomnianą płytkę. Jest to odmiana znanych platform opartych na SoC Atherosa AR7240 (Python), bez wbudowanego interfejsu radiowego, ma natomiast złącze miniPCIe (nie miniPCI!). Płytka która do mnie dotarła była wyposażona w kartę AzureWave AW-NE772 (802.11a/b/g/n 300Mbps 2x2 - Atheros Communications Inc. AR928X Wireless Network Adapter PCI-Express 0777:e202), w sprzedaży można znaleźć także takie z układami radiowymi pracującymi w standardzie 802.11 a/n.



Cena na chwilę pisania opisu (czerwiec 2011r) to ok 130zł.

Specyfikacja

Krótka specyfikacja platformy:
- SoC Atheros AR7240 rev 2, 390MHz
- Flash 8MB
- Ram 32MB
- 1x Port USB
- 2x RJ45 (10/100 Mbps, dwa fizyczne interfejsy)
- 1x przycisk (reset)
- 6x LED (power - czerwona, wlan, d3, d4, d5, d6 - zielone)
- 1x miniPCIe (na kartę WLAN)
- 1x RS232c (TTL)
- wsparcie dla PoE (wraz z przejściem na drugie złącze)

Rozmiar płytki to 10x7cm, zużycie mocy przez samą płytkę to ok 3W. Po dodaniu i włączaniu karty WLAN zużycie energii wzrasta do ok 5W. Zasilanie standardowe, działa na 9/12V.

Urządzenie wyposażone jest w jeden port USB, ale jest to tylko OHCI. Najprawdopodobniej wyjście USB jest podpięte bezpośrednio pod SoC AR7240 (tak można wykonać ręcznie usbmod np. w tp-linku WR741ND). Na NAS się to zbytnio się nie nadaje, ale bez problemu funkcjonuje np. z modemami 3G. Sam dysk oczywiście też można podłączyć, ale należy liczyć się z ograniczeniami.

Sama płytka ma wlutowane piny pod port szeregowy. Obok znajduje się miejsce na złącze na którym wyprowadzone są sygnały GPIO (współdzielone z diodami LED) oraz zasilanie. Doskonale nadaje się więc jako podstawa do elementów sterowania czy kontroli, tym bardziej że jest niewielkich rozmiarów, a możliwe jest także jej zasilanie przez PowerOverEthernet. Co więcej, takie płytki można zasilacz kaskadowo, ponieważ drugi port przenosi zasilanie PoE.

Podczas startu jeżeli zostanie wciśnięty i przytrzymany przycisk Reset, płytka wchodzi w tryb diagnostyczny pozwalający na przesłanie oprogramowania po tftp. Domyślny adres ip: 192.168.1.20. Tryb ten łatwo rozpoznać, ponieważ migają naprzemiennie cztery diody LED.

Oryginalne oprogramowanie bazuje na SDK Ubiquiti (powiedziane trochę na wyrost - jest dokładnie takie samo, pozbawione jest tylko logo), zresztą samo urządzenie przedstawia się wewnętrznie jako Ubiquiti Bullet M2 (id: 0xe202). Sam AirOS jest dobrze opisany na stronach wiki Ubiquiti, więc nie ma co się o nim rozpisywać. Domyślny adres ip: 192.168.1.20, login admin, hasło admin.

Płytka nie akceptuje oryginalnego oprogramowania Ubiquiti Bullet M2 jako upgrade firmware.

Booloader to standardowy (dla ar71xx) u-boot, znany z innych platform. Zawiera normalne funkcje typu cp/tftboot/bootm, więc można wgrać dowolny obraz i go uruchomić (nawet z ramdysku). Płytka przedstawiana jest jako:


    Board: Ubiquiti Networks XM board (rev 0.0 e202)

OpenWrt

Obecnie płytka nie jest wspierana przez OpenWrt. Wykonałem przeportowanie kodu, więc obecnie działa zarówno Backfire jak i Trunk. Siłą rzeczy dostępne jest także Gargoyle. Obrazy dostępne są pod adresami Gargoyle PL oraz Backfire (obrazy dla tej platformy oznaczone są symbolem rw2458n). Jak w każdych obrazach dla ar71xx plik z factory w nazwie służy do flashowania płytki przez tftp, natomiast sysupgade do aktualizacji z poziomu istniejącego już Openwrt (lub Gargoyle). Zawartość obrazów wymieniona jest w w/w odnośnikach. Obecnie obsługiwane są wszystkie komponenty: led, przycisk, wifi, usb.

Instalacja OpenWrt

Obraz factory OpenWrt należy wgrać przez tftp:
- odłączyć zasilanie płytki
- podłączyć kabel ethernet do komputera i do płytki
- ustawić adres IP karty sieciowej w komputerze na 192.168.1.100
- wcisnąć i trzymać przycisk Reset
- włączyć zasilanie płytki
- po ok 10s naprzemiennie będą migać diody, można puścić przycisk Reset
- wysłać na adres 192.168.1.20 obraz firmware (z factory w nazwie) przy pomocy tftp, np. pod linuksem:


    $ atftp -p -l openwrt-ar71xx-rw2458n-squashfs-factory.bin 192.168.1.20

Poniżej przykładowy log z flashowania płytki (uzyskany po dołączeniu kabla szeregowego)


U-Boot 1.1.4.2 (Apr  1 2010 - 10:24:23)

Board: Ubiquiti Networks XM board (rev 0.0 e202)
DRAM: 32 MB
Flash: 8 MB
Net: eth0, eth1
Hit any key to stop autoboot:  0 
Setting default IP 192.168.1.20
Starting TFTP server...
Using eth1 (192.168.1.20), address: 0x81000000
Will reset device configuration (Reset button active after 10 seconds).
Waiting for connection: /
Receiving file from 192.168.1.100:53159
Received 4063640 bytes
Firmware Version: UBNTXM.ar7240.OpenWrt.r27031
Setting U-Boot environment variables
Un-Protected 1 sectors
Erasing Flash.... done
Erased 1 sectors
Writing to Flash... done
Protected 1 sectors
Clearing partition 'cfg':
    erasing range 0x9F7B0000..0x9F7EFFFF: .... done
Erased 4 sectors
Copying partition 'kernel' to flash memory:
    erasing range 0x9F050000..0x9F14FFFF: ................ done
Erased 16 sectors
    writing to address 0x9f050000, length 0x00100000 ...
Copying partition 'rootfs' to flash memory:
    erasing range 0x9F150000..0x9F42FFFF: .............................................. done
Erased 46 sectors
    writing to address 0x9f150000, length 0x002e0000 ...

Firmware update complete.

Resetting...


Kilka informacji o systemie:


root@OpenWrt:~$ cat /proc/cpuinfo 
system type		: Atheros AR7240 rev 2
machine			: RW2458N / AeroMAX 5
processor		: 0
cpu model		: MIPS 24Kc V7.4
BogoMIPS		: 259.68
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 16
extra interrupt vector	: yes
hardware watchpoint	: yes, count: 4, address/irw mask: [0x0004, 0x08f0, 0x0cd8, 0x0ff8]
ASEs implemented	: mips16
shadow register sets	: 1
core			: 0
VCED exceptions		: not available
VCEI exceptions		: not available



root@OpenWrt:~$ cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00100000 00010000 "kernel"
mtd3: 00660000 00010000 "rootfs"
mtd4: 003b0000 00010000 "rootfs_data"
mtd5: 00040000 00010000 "cfg"
mtd6: 00010000 00010000 "EEPROM"
mtd7: 00760000 00010000 "firmware"

Port szeregowy

Port szeregowy pracuje z prędkością 115200 8n1:


    1 GND
    2 RX
    3 TX
    4 Vcc

gdzie pin1 to ten od strony zasilania.

LED, przycisk, GPIO

Diody LED dostępne są pod nazwami: ath9k-phy0(wlan), rw2458n:green:d3, rw2458n:green:d4, rw2458n:green:d5 i rw2458n:green:d6. Przycisk ma oznaczenie BTN_0.

Złącze J12 zawiera natomiast wyprowadzone linie GPIO (które są współdzielone z LEDami):


    GND  WLAN G7   G11
    2    4    6    8
    1    3    5    7
    Vcc  nc   G0   G1

Przypisanie GPIO i LED:


    LED3 GPIO1 
    LED4 GPIO0
    LED5 GPIO11
    LED6 GPIO7