Instalacja OpenWrt Attitude Adjustment
Ostatnia zmiana: 2013-11-26 18:43

ZyXEL NSA-310 jest dość popularnym urządzeniem NAS. Jest dość tanie i posiada duże możliwości - istnieje możliwość instalacji dodatkowego oprogramowania przy zachowaniu oryginalnego lub instalacji linuksa (Arch, Debian) z różnymi środowiskami, np. webmin czy OpenMediaVault. Ten opis dotyczy instalacji i konfiguracji OpenWrt na NSA310.

Dane techniczne

  • SOC: Feroceon 88F6281 A1 (DDR2) 1,2GHz, rdzeń ARM926EJ-S rev 1
  • RAM: 256 MiB DRAM
  • Flash: 128 MiB NAND (Samsung)
  • Ethernet: r8169 Gigabit ethernet, 10/100/1000Mps, wsparcie dla jumboframe
  • 2x USB 2.0
  • wbudowane złącze SATA II na dysk 3.5"
  • zewnętrzny port eSATA
  • trzy programowane przyciski
  • pięć programowanych diod LED (dwukolorowych)
  • RTC (zegar czasu rzeczywistego)
  • czujnik temperatury (na magistrali i2c)
  • wsparcie dla WoL

Obrazy OpenWrt

Obrazy dla tego urządzenia dostępne pod adresem http://ecco.selfip.net/attitude_adjustment/kirkwood/ . Obraz ten przeznaczony jest do uruchomienia i użytkowania z nośnika USB. Do instalacji niezbędne jest posiadanie podłączonego interfejsu szeregowego do urządzenia.
Domyślny adres IP: 192.168.1.10, początkowe logowanie przez telnet.

Zawartość obrazów

Jest to standardowe wydanie OpenWrt Attitude Adjustment, bez gui, wzbogacone o następujące elementy:
- automatycznie ustawienie adresu mac na interfejsie br-lan
- wsparcie dla sensorów (lm85), dostępne jest polecenie sensors
- skrypt fancontrol pozwalający na sterowanie szybkością obrotów wentylatora (przyjmuje jako argument liczbę od 0 do 100 - procentowe określenie szybkości obrotowej)
- ustawienie polskiej strefy czasowej + wsparcie dla modułu RTC wraz z odczytem aktualnego czasu
- block-mount + obsługa systemów plików ext2/ext3/ext4 i fat
- obsługa USB i usb-storage
- obsługa SATA
- obsługa LED: sys (zielona) jako wskaźnik uruchomienia systemu, hdd (czerwona) jako wskaźnik dostępu do dysku SATA, usb (zielona) jako wskaźnik dostępu do portów USB
- dodane wsparcie dla sprzętowego akceleratora operacji kryptograficznych
- wyłączenie serwera dhcp na interfejsie lan
- dodanie brakującego pliku firmware dla interfejsu sieciowego

Instalacja

- dowolny nośnik (pendrive) należy przeformatować na system plików ext2 z jedną partycją
- pobrane archiwum rozpakować (jako root!) na nośnik
- nośnik podłączyć do portu USB NSA310

Uruchomienie "Live"

Obraz można przetestować nie wprowadzając zmian w systemie - w wersji "live". Po uruchomieniu urządzenia należy przerwać ładowanie bootloadera (naciskając dowolny klawisz), a następnie wydać polecenia:


    setenv arcNumber 4022
    setenv mainlineLinux yes
    saveenv
    reset
    setenv bootargs 'console=ttyS0,115200 root=/dev/sda1 rootdelay=5'
    usb start; ext2load usb 0:1 0x800000 /uImage
    bootm 0x800000

Automatycznie uruchomienie obrazu

Jeżeli chcemy, aby urządzenie samodzielnie uruchamiało obraz należy ustawić następujące polecenia:


    setenv arcNumber 4022
    setenv mainlineLinux yes
    setenv bootargs 'console=ttyS0,115200 root=/dev/sda1 rootdelay=5'
    setenv bootcmd 'usb start;ext2load usb 0:1 0x800000 /uImage; bootm 0x800000'
    saveenv
    reset

Elementy specyficzne dla urządzenia

Czujniki temperatury

Dostępne są trzy obsługiwane przez moduł i2c lm85. Do odczytu przez program sensors z pakietu lm-sensors:


    # root@OpenWrt:# sensors 
lm85-i2c-0-2e
Adapter: mv64xxx_i2c adapter
in0:          +1.80 V  (min =  +0.00 V, max =  +3.32 V)
Vcore:        +1.09 V  (min =  +0.00 V, max =  +2.99 V)
+3.3V:        +3.23 V  (min =  +0.00 V, max =  +4.38 V)
+5V:          +5.08 V  (min =  +0.00 V, max =  +6.64 V)
+12V:        +12.06 V  (min =  +0.00 V, max = +15.94 V)
fan1:        4112 RPM  (min =    0 RPM)
temp1:        +28.0 C  (low  = -127.0 C, high = +127.0 C)
MB temp:      +28.0 C  (low  = -127.0 C, high = +127.0 C)
CPU temp:     +34.0 C  (low  = -127.0 C, high = +127.0 C)

Temperatura 3 to temperatura CPU. Oprócz tego możliwy jest odczyt temperatury dysku twardego przez SMART (o ile dysk ma czujnik), po instalacji pakietu smartmontools:


    # smartctl -A /dev/sdb | awk '/^194/ {print $10}'

(o ile dysk SATA mamy jako sdb)

Wiatraczek

Odczyt prędkości obrotowej możliwy jest przy pomocy programu sensors (patrz wyżej). Sterowanie prędkością obrotową możliwe jest przy pomocy autorskiego skryptu fancontrol - przyjmuje on argument w zakresie 0 do 100 oznaczający procentową szybkość obrotów.


root@OpenWrt:# fancontrol 0
root@OpenWrt:# sensors | grep fan1
fan1:           0 RPM  (min =    0 RPM)
root@OpenWrt:# fancontrol 10
root@OpenWrt:# sensors | grep fan1
fan1:         567 RPM  (min =    0 RPM)
root@OpenWrt:# fancontrol 50
root@OpenWrt:# sensors | grep fan1
fan1:        1948 RPM  (min =    0 RPM)
root@OpenWrt:# fancontrol
root@OpenWrt:# sensors | grep fan1
fan1:        4023 RPM  (min =    0 RPM)

Wiatraczki w NSA310 nie są wysokiej jakości, w związku z tym prędkość obrotowa potrafi "pływać" z różnicą nawet 200 obrotów na minutę.

Diody LED

Dostępne jest 5 dwukolorowych LED
- nsa310:green:sys, miga podczas uruchamiania, świeci na stałe po uruchomieniu
- nsa310:red:sys, po uruchomieniu miga na czerwono - wskaźnik obciążenia systemu zrealizowane przez heartbeat
- nsa310:green:hdd
- nsa310:red:hdd, miga przy dostępnie do dysku SATA
- nsa310:green:esata
- nsa310:red:esata
- nsa310:green:usb, wskaźnik dostępu do portów USB
- nsa310:red:usb
- nsa310:green:copy
- nsa310:red:copy

Obsługa LED opisana jest w osobnym dokumencie.

Przyciski

Urządzenie posiada trzy przyciski obsługiwane przez gpio. W moim buildzie wykorzystywany jest do ich obsługi demon input-event_daemon, a jego plik konfiguracyjny to /etc/input-event-daemon.conf. Konfiguracja we wspomnianym obrazie obejmuje:
- przycisk Power: wyłączenie urządzenia
- przycisk Copy: logowanie informacji o naciśnięciu do loga systemowego
- przycisk Reset: reboot urządzenia

Instalacja Debiana 6.0

Pobieramy i zapisujemy na pendrive z systemem plików fat dwa pliki:

Podłączamy pendrive do NSA310, włączamy zasilanie, przerywamy bootloader i wprowadzamy:


    setenv arcNumber 4022
    setenv mainlineLinux yes
    usb start
    fatload usb 0 0x800000 /uImage-3.2
    fatload usb 0 0xb00000 /initrd.gz
    setenv bootargs 'console=ttyS0,115200 root=/dev/ram initrd=0xb00000,0x900000 ramdisk=32768'
    bootm 0x800000

Następnie należy normalnie zainstalować debiana na wewnętrznym dysku. Po instalacji należy należy przekopiować plik uImage-3.2 z pendrive na dysk do głównego katalogu, uruchomić ponownie NSA310 i wprowadzić do bootloadera:


    setenv arcNumber 4022
    setenv mainlineLinux yes
    setenv bootargs 'console=ttyS0,115200 root=/dev/sda1' 
    setenv bootcmd 'ide reset; ext2load ide 0:3 0x800000 /uImage-3.2; bootm 0x800000'
    saveenv
    reset

System można później zaktualizować do aktualnie dostępnej wersji.