Przygotowanie i instalacja OpenWrt na routerze jjPlus JA76PF0
Ostatnia zmiana: 2015-09-05 10:43

Strona producenta: http://www.jjplus.com/

Krótka specyfikacja

- architektura: Atheros ar71xx
- bootloader: Redboot
- procesor Atheros AR7161 rev 2 680MHz
- Flash: 8 MiB
- RAM: 64MiB
- WLAN: brak (dostępne 3 złącza miniPCI)
- chipset Ethernet: Atheros AR8316 10/100/1000 Mbps, 1xwan, 4xlan
- 2x USB 2.0
- 1x uart
- przycisk reset oraz wps
- gpio, czujnik temperatury LM75, magistrala i2c

Zasilanie normalnie, 12V. Zużycie energii - bez kart WIFI i urządzeń USB - ok. 5,5W.

Stan projektu

Płytka jest obsługiwana przez OpenWrt w Attitude Adjustment i późniejszych wydaniach.

Port szeregowy

Dostępny jest na płytce, port UART/CN3


    4 RX
    6 TX
    8 GND

Instalacja przez bootloader

Po kolei należy:
- wyłączyć zasilanie płytki
- podłączyć kabel ethernet do routera (do portu wan) i komputera
- ustawić adres karty sieciowej w komputerze na stałe na 192.168.1.1
- w katalogu głównym serwera TFTPD umieścić pliki openwrt-ar71xx-ja76pf-kernel.bin oraz openwrt-ar71xx-ja76pf-rootfs-squashfs.bin
- uruchomić serwer tftpd
- podłączyć kabel szeregowy do płytki
- uruchomić terminal z parametrami 115200 8n1
- włączyć zasilanie
- przez Ctrl-C przerwać ładowanie bootloadera.

Następnie wystarczy wydać polecenia:


    fis init
    load -r -b 0x80060000 openwrt-ar71xx-ja76pf-kernel.bin
    fis create linux
    load -r -b %{FREEMEMLO} openwrt-ar71xx-ja76pf-rootfs-squashfs.bin
    fis create rootfs
    fis load -l linux
    exec -c "board=JA76PF"

Należy pamiętać także o sprawdzeniu skryptu startowego (polecenie fconfig -l bootloadera), powinien być następujący:


    fis load -l linux
    exec -c "board=JA76PF"


UWAGA: domyślny adres płytki w bootloaderze to 192.168.1.2. Po instalacji OpenWrt adres zostaje normalnie ustawiony na 192.168.1.1

Instalacja przez sysupgrade

Wystarczy jak w normalnym OpenWrt przesłać plik sysupgrade do routera do katalogu /tmp i wydać polecenie sysupgrade -n /tmp/nazwa_obrazu.

Czujnik temperatury

Należy zainstalować pakiety i2c-tools, kmod-i2c-core wraz z zależnościami. Następnie odczytać temperaturę:


    root@OpenWrt:/# i2cdetect -l
    i2c-0 i2c i2c-gpio0 I2C adapter
    root@OpenWrt:/# i2cdetect i2c-gpio0
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-0.
    I will probe address range 0x03-0x77.
    Continue? [Y/n] y
        0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --
    root@OpenWrt:/# i2cget i2c-gpio0 0x48 0xaa w
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will read from device file /dev/i2c-0, chip address 0x48, data address
    0xaa, using read word data.
    Continue? [Y/n]
    0x0133
    root@OpenWrt:/#

i zdekodować otrzymaną wartość.
Można także zainstalować pakiet kmod-hwmon-lm75 i załadować moduł lm75 z parametrem force=0,0x48. Odczyt temperatury:


    # echo lm75 0x48 > /sys/devices/platform/i2c-gpio.0/i2c-0/new_device
    # cat /sys/devices/platform/i2c-gpio.0/i2c-0/0-0048/temp1_input