Zyxel NSA310 – NAS’o remontas ir apžvalga

29 04 2016

Daug laiko gyvenau su savadarbiu Itead Ibox NAS’u, bet vat proga atsirado panagrinėti kažką gamyklinio.

Klaidžiojau čia viena diena po sendaikčių turgų ir užmačiau kažkokį HDD dėklą. Pasikėlė pamačiau kad jis turi eSATA ir LAN jungtis gale tai iškarto mintyse garsus “NAS’as!!” nuskambėjo. Trumpas dialogas su padavėjų:

  • : Kiek už šita norite?
  • Pardavėjas: Visu pirma tu man pasakyk kas čia toks yra {šypsosi}.
  • : Aš tai žinau kas čia yra, bet jūs turėtumėte kaina žinoti {šypsausi, pardavėjas nebe}.
  • Pardavėjas: 5 eurai.
  • : {pasižiūriu į įrengtini, jo maitinimo bloką} Daugiau 3 euru nelabai verta. Tinka?
  • Pardavėjas: Gerai {šypsosi}.
  • : {sumoku ir neatsigręždamas atgal nupėdinu}.

Nusipirkau aišku katę maiše, bet kitaip neturėčiau apie ką čia rašinėti.

01

02

Specifikacija

Pradėjus nagrinėti radau, kad nusipirkau TDC HomeDisk įrenginį, kuris nuo Zyxel NSA310 skiriasi tik įsiūta programinę įranga (firmware suprask). Na, bet pradėkime nuo techninio aprašymo:

  • Išorinės sąsajos: Priekyje: USB 2.0, Gale: USB 2.0, eSATA-300
  • Tinklas: 1 x Gigabit Ethernet
  • Diskų sąsaja: 1vnt 3.5″ HDD, SATA-300, iki 3TB talpos, JBOD failų sistema.
  • Bevielė sąsaja:  Nėra
  • Galimybės: FTP serveris, web serveris, foto serveris, video serveris, nepriklausomi parsisiuntimai (iš HTTP, FTP arba BitTorrent), iTunes ir UPnP media serveris, DLNA, spausdintuvo serveris, tinklo duomenų serveris ir dar visokio velnio ką galima pridėti per trečių šalių paketus.
  • Svoris: 662g (su 3.5″ disku), t.y. visa plyta.
  • Energijos suvartojimas: 16W pilnai apkrovus.

Remontas

Dabar apie problemas. Pirmiausiai tai maitinimo blokas buvo miręs, tad teko panaudoti kita, kurio parametrai 12V 2.5A. Koks ėjo originaliai irgi neaišku, nes su NAS’u buvęs negyvėlis spėju tik dėl grožio pritaikytas.

Bet pagrindinė bėda yra įsiūta programinė įranga. Deja, bet TDC HomeDisk yra labai jau surištas su pačiu TDC ir jame galima prisijungti tik turint abonementą. Daryk perkrovimus kiek nori, bet vartotojo vardas ir slaptažodis visada bus tikrinamas kažkokiame serveryje. Geras dalykas tas kad gyvybė yra ir dabar galime kažką daryti.

Pirmas sprendimas tai pasekti šiais nurodymai – http://www.tech-guy.dk/#!Turn-a-TDC-HomeDisk-into-a-Zyxel-NSA310/cr7f/561445870cf25fa7fe2a76dc. Tai instrukcija, kaip pakeisti modeio ID, kad vėliau būtų galima atnaujinti programinę įrangą į Zyxel. Jei ID liktu senasis, tai programos atnaujinimo skriptas supyktu ir darbą mestu išspjovęs klaidą. Deja man šis variantas neveikė, nes per telnet taip ir nepavyko prisijungti – USB atminties skriptas nebuvo įvykdomas iki galo ir iki telnet serviso taip ir neprieidavo.

Antras bandymas buvo daryti kažką per TTL jungti:

03

Deja, bet konsolė spjovė man antausi ir paprašė prisijungti, o aš jokio slaptažodžio nežinau. Paskutinė viltis šita instrukcija, kurioje per U-boot siūloma perrašyti NAND rankiniu būdu: ftp://ftp.zyxel.it/guide/nas/nsa320_recovery_firmware.pdf. Instrukcija šiaip skirta NSA320 įrenginiui, kuris turi kiek kitoks, bet NAND vienoda.

Primoje vietoje man reikia išskaldyti firmware failą (NSA310_V4.70(AFK.2)C0.zip) į NAND zonų paketus. Instrukcijoje tam naudojamas tas pats NSA320, bet kadangi aš tokiems darbams konsolės neturiu, tai teks prasisukti kiek kitaip. Firmware įkėliau į USB atmintį, pervadinęs į ras.bin, kartu su programavimo skriptu (../Mijzelf/universal_usb_key_func-2013-03-21.zip ir ../Mijzelf/NSA-310/force_flash.zip). Žinomas tas skriptas man neveikia, bet jis kai ką daro naudingo – pradžioje suskaldo firmware į man reikiamus gabalus. Problema tame, kad failai kopijuojami į RAM, o mes juos norime pasilaikyti USB atmintyje. Tam usb_key_func.sh.2 scriptą paredagavau:

75: /sbin/fw_unpack -C /mnt/ram1 -i /mnt/ram2/tlv.bin > /dev/null 2>&1

į:

75: /sbin/fw_unpack -C ${FW_FILE} -i /mnt/ram2/tlv.bin > /dev/null 2>&1

Įrenginiui kraunantis skriptas spjauna klaidą bandydamas perrašyti firmware, bet dabar USB atmintyje turime visus reikiamus failus:

DATA_0000: header version

DATA_0001: firmware version

DATA_0002: firmware revision

DATA_0101: model number

DATA_0200: core checksum

DATA_0201: ZLD checksum

DATA_0202: ROM checksum

DATA_0203: Not used in NSA320

DATA_0204: Image checksum

DATA_1000: kernel file, uImage

DATA_1004: fs.tar.gz, for NAND flash

DATA_a000: executable, for some jobs before firmware upgrade

DATA_a002: executable, for some jobs after firmware upgrade

Dabar pereikime prie firmware perrašymo per U-boot. Originali instrukcija kernelio atnaujinimui naudoja TFTP, bet aš mieliau pasinaudosiu ta pačią USB atmintimi. Dabar viska atlieku per TTL konsolę. Įjungus įrenginį joje pamačius raginimą “Hit any key to stop autoboot:” taip ir padarome.

Dabar keli pakeitimai U-boot aplinkai kad vėliau firmware būtų priimta:

setenv MODEL_ID=A203

Dar reikia pakeisti NAND particijų adresus, nes TDC programa buvo kiek kitai sutverta:

setenv mtdparts nand_mtd:0x100000(uboot),0x80000(uboot_env),0x80000(key_store),0x80000(info),0xA00000(etc),0xA00000(kernel_1),0x2FC0000(rootfs1),0xA00000(kernel_2),0x2FC0000(rootfs2) root=/dev/nfs rw init=/init
setenv bootcmd nand read.e 0x2000000 $(kernel_addr) 0xA00000;

Dabar vietoje instrukcijoje naudoto:

tftp 0x2000000 DATA_1000

naudojame:

usb start
fatload usb 0:1 0x2000000 DATA_1000

Toliau pagal instrukcija dviejose vietose ištriname NAND ir į jas įrašome tai ką užsikrovėme iš USB:

protect off all
nand erase 0x00C80000 0xa00000
nand write 0x2000000 0x00C80000 0xa00000
nand erase 0x04640000 0xa00000
nand write 0x2000000 0x04640000 0xa00000
reset

Galiu tik pridurti, kad tiek kernel, tiek rootfs šiame įrenginyje saugomas du kartus. Kokiais tikslais? Gal dėl galimybės atsinaujinti per WEB?

Persikrovus ir pamačius užrašą  “Please press Enter to activate this console.” taip ir padarome. Dabar, veikdami jau kernel aplinkoje galime prisijungti USB atmintį:

mkdir /mnt/USB
mount /dev/sdb1 /mnt/USB

Ir atliekame rootfs blokų įrašymą ir patikrinimą:

umount /zyxel/mnt/nand
flash_eraseall /dev/mtd6
mkdir /mnt/rootfs1
mount -t yaffs2 -o rw /dev/mtdblock6 /mnt/rootfs1
flash_eraseall /dev/mtd8
mkdir /mnt/rootfs2
mount -t yaffs2 -o rw /dev/mtdblock8 /mnt/rootfs2
cp /mnt/USB/DATA_1004 /mnt/rootfs1/sysdisk.img.gz
cp /mnt/USB/DATA_1004 /mnt/rootfs2/sysdisk.img.gz
md5sum /mnt/rootfs1/sysdisk.img.gz /mnt/rootfs2/sysdisk.img.gz
cat /mnt/USB/DATA_0201

Paskutinės dvi komandos turi gražinti vienodas reikšmes, o jei taip nėra – bėda, teks kažką galvoti.

Dabar liko tik atnaujinti to pačio U-boot aplinka pasinaudojant kernelio įrankiais ir mūsų turmais duomenimis:

/zyxel/sbin/info_setenv fwversion_1 `cat /mnt/USB/DATA_0001`
/zyxel/sbin/info_setenv fwversion_2 `cat /mnt/USB/DATA_0001`
/zyxel/sbin/info_setenv revision_1 `cat /mnt/USB/DATA_0002`
/zyxel/sbin/info_setenv revision_2 `cat /mnt/USB/DATA_0002`
/zyxel/sbin/info_setenv modelid_1 `cat /mnt/USB/DATA_0101`
/zyxel/sbin/info_setenv modelid_2 `cat /mnt/USB/DATA_0101`
/zyxel/sbin/info_setenv core_checksum_1 `cat /mnt/USB/DATA_0200`
/zyxel/sbin/info_setenv core_checksum_2 `cat /mnt/USB/DATA_0200`
/zyxel/sbin/info_setenv zld_checksum_1 `cat /mnt/USB/DATA_0201`
/zyxel/sbin/info_setenv zld_checksum_2 `cat /mnt/USB/DATA_0201`
/zyxel/sbin/info_setenv romfile_checksum_1 `cat /mnt/USB/DATA_0202`
/zyxel/sbin/info_setenv romfile_checksum_2 `cat /mnt/USB/DATA_0202`
/zyxel/sbin/info_setenv img_checksum_1 `cat /mnt/USB/DATA_0204`
/zyxel/sbin/info_setenv img_checksum_2 `cat /mnt/USB/DATA_0204`
umount /mnt/rootfs1
umount /mnt/rootfs2
umount /mnt/USB
reboot

Persikrovus turime veikianti įrenginį, tik aišku prisijungti nepavyks. Atmintis, kur saugomas slaptažodis, dabar yra padrika. Padarom hardreset, 30 sekundžių palaikę reset knopkę, ir ualia.

Beja, kad inicijuotumėte NSA310 teks pasinaudoti NSA Starter Utility iš Zyxel’io. Pastaroji programa randa tinkle įrenginį ir leidžia sukonfigūruoti visus pradinius parametrus, įskaitant tinklą, slaptažodį ir disko formatavimą.

Apžvalga

Dar įmesiu kelis paveikslėlius kaip atrodo originali programinė įranga.

Pagrindinis vartotojo puslapis kuris suderinamas tik su IE ir Windows Media pluginu kažkokiu:

07

Pagrindinis administratoriaus langas:

08

Standartiniai priedai kuriuos esant poreikiui galima praplėsti trečių šalių paketais:

09

Na ir dar visokio velnio ten pilna.

Naudojausi šiuo NAS’u vietoje Ibox koki mėnesį ar du ir per tą laiką sugalvojau netgi jį kažkiek užtildyti. Pasinaudojus šiuo scriptu galima savaip valdyti ventiliatoriaus greitį ar jį išvis išjungti priklausomai nuo temperatūros, bet po kelių eksperimentų gavau gana aukštą temperatūrą:

06

05

Galiausiai sumontavau papildoma CPU pasyvų aušintuvą, bet jis deja padėjo nestipriai, nes HDD tuo tarpu sėkmingai toliau kaista:

04

Galiausiai atjungiau tą savo skriptą ir palikau originalų pastovų ventiliatoriaus veikimą.

Apibendrinimas

Galiu pasakyti, kad tikras malonumas buvo tas valandas knistis kol atgaivinau šitą NAS. Papildžiau patirties bagažą darbu su U-boot ir NAND atmintimi.

Pats NAS irgi patiko. WEB sąsaja neblogą, to mano Ibox’ui ir trūksta. SMB serveris veikia labai gerai, bet deja daugiau 35MB/s per Gigabit tinklą nepavelka. Pats NAS nėra iš tikro garsus, bet nepalyginsi su Ibox, kuris neturi jokios judančios detalės apart HDD.

Nepatiko žinoma tai, kad duomenys saugomi tik viename HDD, t.y. neįmanomas apsaugotas RAID. To pasigendu ir iš Ibox, o nuotraukas jame jau norisi laikyti. Taip pat procesorius kažkoks lėtokas. Siunčiant torrent 10MB/s greičiu  procesorius užimtas 100% ir tuo metu sistema lėtoka. Per DLNA tuo metu filmus galima žiūrėti, bet situacija nemaloni. Energijos sąnaudos didesnės nei Ibox, bet čia naudojame 3.5″ diską, tai ko norėti.

Pliusai labai patiko, bet vedinas minusų nusprendžiau pasigaminti sau normalų NAS, kuris bus ne toks uždaras kaip Zyxel, bet ir turės patogesnį valdymą, nei Ibox. Grįšiu su HP Microserver N54L patirtimi, o Zyxel NSA310 pabandysiu perleisti giminaičiui.


Veiksmai

Information

3 responses

29 04 2016
Vaidas

FW dubliavimas vadinamas “dual-boot”. Esmė, kad susigadinus kernel1 automatiškai būtų pabootintas kernel2, iš kurio galėtumei susitvarkyti kernel1. Ir nebaisu, kad tvarkymo ar FW update’inimo metu dings elektra – gi kernel2 neliečiamas, tai jei dings elektra ir kernel1 susigadins/nepasitvarkys – vėl pasibootinsi kernel2 ir pakartosi tvarkymą.

Savo NAS’ą užtildžiau išrinkdamas iš dėžutės, įmontuodamas į kepimo skardą. Didelis paviršiaus plotas, be to gali pritvirtinti 12cm tylų mažų apsukų ventiliatorių. Nors aš jį atjungiau. O po to nustojau siųsti torrentus per nas’ą, pasidariau, kad HDD nueitų į stand-by, tai vėl galėčiau atgal gamyklinėn dėžutėn susirinkti, bet kad tingiu.

29 04 2016
Vaidas

ai, tiesa, elektra čia pas mus stabili ir reikia būti arba blogos karmos arba kreivarankiu, kad pradanginti elektrą flashinimo metu. Pasauly yra vietų, kur kelis kart per dieną elektra dingsta (pvz. Indijos kai kurie regionai).

29 04 2016
mindogas

Kai dabar pasakei tai atsiminiau kad kompu motininėse Dual Bios’ai dabar dažnai tupi.

Savo atveju, gamindamas sekanti NAS darysiu kaip tu ir sakei – keisiu ventiliatoriu į tylu, bet taip drastiškai su HDD nesiegsiu. Užmige kietieji diskai vėliau nervina kad reikia laukti kol jie isisuks. Darysiu dabartini NAS tam tikra prasme hibdrida, kur vieni diskai miega, o cecho 2,5″ diskas dirbs tyliai ir taupiai pastoviai.

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti / Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti / Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti / Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti / Keisti )

Connecting to %s




%d bloggers like this: