Przygotowanie i instalacja OpenWrt na RouterBOARD 912UAG 2HPnD
Ostatnia zmiana: 2017-10-06 07:50


Krótka specyfikacja:

- architektura: Atheros ar71xx
- procesor Atheros AR9342 600MHz
- flash: 128 MiB (NAND)
- RAM: 64MiB
- wlan: AR9342-BL1A 2.4GHz (802.11b/g/n), do 1000mW, złącza MMCX
- ethernet: 1x 10/100/1000 Mbps, PoE
- 1x miniPCIe (dla karty WiFi lub modemu USB)
- 1x USB 2.0 (współdzielone z miniPCIe)
- przycisk reset
- buzzer, led, slot SIM
- monitor temperatury PCB i napięcia zasilania
- zasilanie z PoE lub osobnego złącza. Szeroki zakres zasilania (8 - 30 V). Zużycie energii: ok 10-14W w zależności do napięcia zasilania
- wymiary 10.5x10.5 cm

Na płytce jest domyślnie zainstalowany RouterOS w licencją Level4. Płytkę można także znaleźć w urządzeniach BaseBox2 (moduł z radiem 2.4GHz) i BaseBox5 (jako moduł z radiem 5GHz). Do złącza miniPCIe można włożyć dodatkową kartę WiFi lub modem 3G/4G.

Stan projektu

Płytka obecnie obsługiwana jest przez OpenWrt od wersji BB. Oczywiście wspierana jest także w LEDE.

Instalacja

Chaos Calmer

Instalacja wydania Chaos Calmer przebiega dwuetapowo - najpierw wczytujemy OpenWrt do pamięci urządzenia, a następnie instalujemy pliki do pamięci NAND. Niezbędne są trzy pliki o podanych niżej nazwach:

  • openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf - plik z OpenWrt służący do uruchomienia w pamięci, będzie wczytywany przez tftp do mikrotika
  • openwrt-ar71xx-mikrotik-vmlinux-lzma.elf
  • openwrt-ar71xx-mikrotik-rootfs.tar.gz - pliki odpowiednio z kernelem i filesystemem.
Pliki z openwrt.org z filesystemem dostępne są z oznaczeniem Ath5k-rootfs lub DefaultNoWiFi-rootfs w nazwie i należy wybrany plik zmienić na openwrt-ar71xx-mikrotik-rootfs.tar.gz.
Do instalacji wymagane są jeszcze dwa serwery - tftp oraz ftp lub http. W tym przykładzie serwery zostały uruchomione na adresie 192.168.1.10. Przed instalacją warto zrobić kopię certyfikatu licencji, dzięki czemu będzie możliwy bezproblemowy powrót do RouterOS w razie konieczności.

Uruchomienie w pamięci RAM

Uruchamiamy serwer tftp i wskazujemy pliki. Pod linuksem najprościej jest utworzyć skrypt:


    #!/bin/bash
    ifconfig eth0 192.168.1.10 up
    dnsmasq -i eth0 --dhcp-range=192.168.1.100,192.168.1.200 \
    --dhcp-boot=openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf \
    --enable-tftp --tftp-root=/tmp -d -u cezary -p0 -K --log-dhcp --bootp-dynamic

Niezbędne jest zainstalowane dnsmasq i jego wyłączenie jeżeli uruchomił się domyślnie. Plik openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf należy umieścić w katalogu /tmp, oczywiście zmieniamy użytkownika cezary na takiego który jest dostępny w systemie. Uruchamiany tak stworzony skrypt.

Płytkę odłączamy od zasilania, wciskamy i trzymamy reset, podłączamy do zasilania. Urządzenie powinno migać wszystkimi ledami, wczytać obraz i po kilku sekundach poinformować sygnałem dźwiękowym o zakończeniu ładowania. Można zalogować się do urządzenia przez telnet pod adresem 192.168.1.1, nie resetujemy urządzenia bo system uruchomiony jest tylko w ramie!

Instalacja do pamięci NAND

Niezbędny będzie serwer ftp (nie tftp!) lub http, w którym należy umieścić pliki o nazwach openwrt-ar71xx-mikrotik-vmlinux-lzma.elf i openwrt-ar71xx-mikrotik-rootfs.tar.gz. Po zalogowaniu się do routera wydajemy polecenie:


    # wget2nand ftp://192.168.1.10

Lub http://192.168.1.10 jeżeli używamy serwera http. Adres 192.168.1.10 to oczywiście adres tego serwera.
Nastąpi instalacja plików:


--2015-06-25 09:50:00--  ftp://192.168.1.10/openwrt-ar71xx-mikrotik-vmlinux-lzma.elf
                                            => '/tmp/wget2nand/kernel'
Connecting to 192.168.1.10:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> SIZE openwrt-ar71xx-mikrotik-vmlinux-lzma.elf ... 1099477
==> PASV ... done.    ==> RETR openwrt-ar71xx-mikrotik-vmlinux-lzma.elf ... done.
Length: 1099477 (1.0M) (unauthoritative)

openwrt-ar71xx-mikrotik-vm 100%[========================================>]   1.05M  --.-KB/s   in 0.1s   

2015-06-25 09:50:00 (10.6 MB/s) - '/tmp/wget2nand/kernel' saved [1099477]

--2015-06-25 09:50:01--  ftp://192.168.1.10/openwrt-ar71xx-mikrotik-rootfs.tar.gz
                                            => '/tmp/wget2nand/rootfs.tgz'
Connecting to 192.168.1.10:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> SIZE openwrt-ar71xx-mikrotik-rootfs.tar.gz ... 4578223
==> PASV ... done.    ==> RETR openwrt-ar71xx-mikrotik-rootfs.tar.gz ... done.
Length: 4578223 (4.4M) (unauthoritative)

openwrt-ar71xx-mikrotik-ro 100%[========================================>]   4.37M  9.97MB/s   in 0.4s   

2015-06-25 09:50:01 (9.97 MB/s) - '/tmp/wget2nand/rootfs.tgz' saved [4578223]

Erasing filesystem...
Mounting /dev/mtdblock6 as new root and /dev/mtdblock5 as kernel partition
Copying kernel...
Preparing filesystem...
....

Po udanym procesie system poinformuje o możliwości wykonania restartu co też należy wykonać.

Jeżeli proces wget2nand nie pobiera do końca plików należy wcześniej zakończyć zbędne procesy i wyładować niektóre moduły żeby zwolnić zajętą pamięć ram.

LEDE

Instalacja wydania LEDE przebiega dwuetapowo - najpierw wczytujemy LEDE do pamięci urządzenia, a następnie instalujemy obraz do pamięci NAND. Niezbędne są dwa pliki:

  • lede-ar71xx-mikrotik-vmlinux-initramfs-lzma.elf - plik służący do uruchomienia w pamięci, będzie wczytywany przez tftp do mikrotika
  • lede-ar71xx-mikrotik-nand-large-squashfs-sysupgrade.bin - obraz systemu
Do instalacji wymagane są jeszcze dwa serwery - tftp oraz ftp lub http. W tym przykładzie serwery zostały uruchomione na adresie 192.168.1.10. Przed instalacją warto zrobić kopię certyfikatu licencji, dzięki czemu będzie możliwy bezproblemowy powrót do RouterOS w razie konieczności.

Uruchomienie w pamięci RAM

Uruchamiamy serwer tftp i wskazujemy pliki. Pod linuksem najprościej jest utworzyć skrypt:


    #!/bin/bash
    ifconfig eth0 192.168.1.10 up
    dnsmasq -i eth0 --dhcp-range=192.168.1.100,192.168.1.200 \
    --dhcp-boot=lede-ar71xx-mikrotik-vmlinux-initramfs-lzma.elf \
    --enable-tftp --tftp-root=/tmp -d -u cezary -p0 -K --log-dhcp --bootp-dynamic

Niezbędne jest zainstalowane dnsmasq i jego wyłączenie jeżeli uruchomił się domyślnie. Plik lede-ar71xx-mikrotik-vmlinux-initramfs-lzma.elf należy umieścić w katalogu /tmp, oczywiście zmieniamy użytkownika cezary na takiego który jest dostępny w systemie. Uruchamiany tak stworzony skrypt.
Dla systemu Windows można użyć programów tftpd32 lub tftpd64.

Płytkę odłączamy od zasilania, wciskamy i trzymamy reset, podłączamy do zasilania. Urządzenie powinno migać wszystkimi ledami, wczytać obraz i po kilku sekundach poinformować sygnałem dźwiękowym o zakończeniu ładowania. Można zalogować się do urządzenia przez ssh pod adresem 192.168.1.1, nie resetujemy urządzenia bo system uruchomiony jest tylko w ramie!

Instalacja do pamięci NAND

Niezbędny będzie serwer ftp (nie tftp!) lub http, w którym należy umieścić plik z obrazem systemu np. dla ułatwienia o nazwie lede.bin (zmieniamy nazwę pliku lede-ar71xx-mikrotik-nand-large-squashfs-sysupgrade.bin) Po zalogowaniu się do routera przez ssh wydajemy polecenie:


    # cd /tmp
    # wget http://192.168.1.10/lede.bin
    # sysupgrade -n /tmp/lede.bin


Elementy specyficzne dla urządzenia

Aktualizacja oprogramowania

Z racji sposobu zapisu danych w nand nie ma możliwości wykonania aktualizacji oprogramowania poleceniem sysupgrade w wydaniu Chaos Calmer. Jedyna możliwość w wydaniu CC to ponowna instalacja oprogramowania przez tftp.
W LEDE 17.01.0-rc2 i późniejszych aktualizację można wykonać w standardowy sposób przy pomocy sysupgrade.

USB

Port USB jest współdzielony ze slotem miniPCIe. Można więc albo używać urządzenia w USB albo karty w slocie. Po restarcie domyślnie zasilane jest złącze USB, jeżeli chcemy używać karty USB w miniPCIe należy przełączyć USB na tą kartę. Oczywiście nie ma takiej potrzeby jeżeli w slocie używana jest normalna karta WiFI, przełączenie dotyczy to tylko kart pełniących rolę USB (np. modemy). Za sterowanie odpowiedzialna jest linia gpio 52:


    echo 52 > /sys/class/gpio/export

Wysłanie 0 przełączy zasilanie na slot miniPCIe:


    echo 0 > /sys/class/gpio/gpio52/value

Wysłanie 1 przełączy zasilanie na USB:


    echo 1 > /sys/class/gpio/gpio52/value

GPIO

52 - kontrola portu USB (przełączenie USB do fizycznego portu lub miniPCIe)
53 - kontrola złącza miniPCIe (włączenie/wyłączenie)

Ustawienie parametrów sprzętu

W repozytorium OpenWrt dostępny jest program rbcfg który pozwala na ustawienie niektórych parametrów płytki - szybkości portu szeregowego, kolejności wczytywania obrazów z interfejsów itd. Nie działa on na wszystkich płytach MikroTik, ale działa na RB912.