ZyXEL NSA325v2 – Debian vom USB-Stick booten (ohne UART)

Ich habe hier ein NSA325v2 von Zyxel stehen. Ein sogenanntes NAS, Network Attached Storage.  Da ich irgendwie gern die Kontrolle habe und die Hersteller-Firmwares in den NAS-Systemen die ich in den letzten Jahren in der Hand hatte nicht so ganz meinen Vorstellungen entsprachen stand auch bei der NSA325v2 die Installation eines „echten“ Linux-Betriebssystems auf einem USB-Stick an. Dafür habe ich einen Sandisk Cruzer Fit mit 32GB gewählt, der steht nicht über und ist meiner Meinung nach ausreichend flott.

Als Platten verwende ich die WD30EFRX Red mit 3TB von Western Digital.

Ich setze für die folgende Kurzanleitung grundlegende Kenntnisse und Fertigkeiten des Leser voraus, ihr könnt aber gern bei Fragen die Kommentarfunktion ausgiebig nutzen.

  1. Das Gerät normal booten
  2. Im Webinterface einloggen
  3. via http://IPDERNSA325/r40851,/adv,/cgi-bin/remote_help-cgi?type=backdoor das Telnet „Backdoor“ öffnen
  4. via telnet auf das Gerät gehen
  5. via su -i root werden
  6. Bootloader vorbereiten:
    fw_setenv arcNumber 4495
    fw_setenv mainlineLinux yes
    fw_setenv bootargs_stock 'console=ttyS0,115200 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'
    fw_setenv bootargs_linux 'console=ttyS0,115200 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=LABEL=rootfs loglevel=8'
    fw_setenv bootcmd_linux 'setenv bootargs $(bootargs_linux); mw.l f1010100 0020c000; usb reset; ext2load usb 0:1 $(loadaddr) /uImage; ext2load usb 0:1 0x01100000 /uInitrd; bootm $(loadaddr) 0x01100000'
    fw_setenv bootcmd_stock 'setenv bootargs $(bootargs_stock); nand read.e $(loadaddr) $(kernel_addr) 0xA00000; bootm $(loadadr)'
    fw_setenv to_stock "setenv mainlineLinux no; setenv bootcmd \'run bootcmd_stock\'; saveenv; reset"
    fw_setenv to_linux "setenv mainlineLinux yes; setenv bootcmd \'run bootcmd_linux\'; saveenv; reset"
  7. dann dem Bootloader noch mitteilen, dass er ab sofort vom USB-Stick booten soll:fw_setenv bootcmd 'run to_linux'
  8. Den USB-Stick vorbereiten
    1. eine EXT2 Partition, 256MB erstellen, Label: boot
    2. eine EXT4 Partition, restlicher Speicherplatz vom Stick erstellen, Label: rootfs
  9. das Debian rootfs-Archiv herunterladen und in die rootfs Partition entpacken
  10. den Inhalt des boot-Ordners in der rootfs-Partition in die boot-Partition auf dem Stick kopieren
  11. Den USB-Stick an den hinteren USB-Port (#1) stecken
  12. NSA325v2 neustarten
  13. Fertig, die NSA325 sollte erreichbar sein, SSH läuft auch, das root Passwort ist „root“

Was sonst noch zu tun ist:

  1. root Passwort ändern !!!!!!!!!!
  2. die boot-Partition auf dem USB-Stick in /boot mounten (via Eintrag in der /etc/fstab)
  3. Syslog konfigurieren um die Schreibzugriffe auf den USB-Stick einzudämmen und damit die Lebensdauer des Stick zu erhöhen
  4. Spaß haben!

Eine detailliertere Anleitung, eine kurze (allerdings recht spezielle) Samba4 Anleitung und diversen anderen Kram den ich mit dem Gerät mache werde ich in Folge-Blogeinträgen festhalten.

102 Kommentare


  1. Besten Dank für die Anleitung. Hat soweit gut geklappt.
    Ein paar Probleme mit der Debian-Installation gibt’s noch, aber im Großen und Ganzen läuft’s.

    Hätte noch ein paar Fragen:
    1. Wie bringt man die Box wieder auf den Ursprungszustand zurück? Möchte u.a. noch mit Arch-Linux herumspielen, und da wäre es wohl das einfachste, mit dem Werkszustand zu starten.

    2. Wie ändert man das Bootlaufwerk von USB auf Festplatte?

    3. Wie stelle ich ohne (1.) die Energie-Optionen ein? Die Box soll ja auch bei Power-Loss wieder starten. Das hab ich leider nicht eingestellt, als noch die OriginalFW lief.

    4. Der Reset-Button geht nach dem Hack nicht mehr. Gibt’s da evtl. eine Lösung?

    Zu Debian:
    5. Alle Mozilla-Produkte (Iceweasel etc.) beenden sich sofort wieder, ohne Fehlermeldung. In einer chroot-Umgebung auf meinem Handy passiert das auch, aber da meldet er noch Segmentation Fault. Vielleicht weiß ja jemand eine Lösung.

    6. Noch ein Tipp: Hatte bei Installation von Libre-Office oder KDE (weiß nicht, bei welchen Paketen das genau war) Probleme mit Abbrüchen („…Pakete nicht im ELF Format…“). Habe daraufhin die Paketquellen alle auf die DE Server geändert. Danach ging’s. Natürlich braucht man nicht unbedingt Libreoffice auf der Kiste, aber es läuft und warum nicht. ;)


    1. 1.: keine Ahnung, wenn ich Archlinux testen wollte würde ich einfach ein Archlinux auf einen USB-Stick bootstrappen. selbe Partitionierung des Sticks, selbe Partitions-Labels. In die Stockfirmware booten sollte via fw_setenv bootcmd 'run to_stock' gehen.
      2.: da müsst ich nochmal nachschauen, das halte ich aber für wenig sinnvoll, dann würde(n) die Platte(n) ja dauerhaft laufen.
      3.: Was sind „die Energieoptionen“ für dich? HDD-Spindown? Oder geht da in der Stock-Firmware noch mehr? Hab mir die gar nicht weiter angeschaut weil ich das Webinterface unheimlich abschreckend fand. :)
      4.: Die gibt es ganz sicher, müsste ich aber ebenfalls im Detail Google fragen.
      5. & 6.: Ich habe keine Desktop-Apps auf der Kiste laufen – also absolut keine Ahnung was du da machst und woher die Probleme rühren. :)


      1. Zu Nummer 1:
        Das NAS kann man mit folgenden zwei Befehlen per seriellen Schnittstelle (UART) auf Werkszustand zurückgesetzt werden: resetenv und reset
        Danach startet wieder das Orginale System.

        Vorschlag ohne UART (nicht getestet)
        Sollte ein Systemzugriff möglich sein einfach versuchen den Befehl fw_resetenv und dann das NAS neustarten.


    2. Hallo,

      zu erstens: Hat das mit ArchLinux geklappt?

      allgemein: Kann mir jemand im Detail die UBoot Kommandos erklären, die hier verwendet werden?

      Vielen Dank


  2. Hallo,

    ich besitze eine NSA325V1 und würde gern wissen, ob diese Anleitung auch für diese Version benutzt werden kann.

    Grüße,
    Peter


    1. Soweit ich weiss unterscheiden sich v1 und v2 nur vom Gehäuse her. Also Gehäuse und Lüfter. Die „Innereien“ sind angeblich gleich. Ich kann und möchte aber keine Garantie geben dass das auch alles eins zu eins so funktioniert. ;)


  3. Danke für die prompte Antwort. Ich werde es mal probieren – schlimmstenfalls muss ich die Serielle Konsole anschließen.
    Oder vielleicht funktioniert das ganze, wenn ich den Befehl „saveenv“ weglasse ? Angeblich soll das dann temporär funktionieren – bis zum nächsten reboot. Allerdings bin ich mir nicht sicher, ob der Befehl „reset“ nicht genau das macht …


    1. reset war iirc nur nötig um den USB-Port aktiviert zu bekommen während des Bootvorgangs.


  4. Ich habe die Anleitung nun auf einer NSA325v1 ausprobiert.
    Im Prinzip funktioniert das booten vom Stick, doch sobald die NSA325 ausgeschaltet wird, schlägt der Watchdog zu und resettet die Box dauernd.
    Wenn man nur einmal von der Stockfirmware bootet und die o.g. fw_setenv eintippt und vom stick bootet, dann schweigt der watchdog.
    Damit kann ich zwar leben, doch bei einem Stromausfall muss ich dann die Serielle Konsole anschliessen, um das booten vom Stick wieder zu ermöglichen.
    Ich suche noch nach einer Lösung …


  5. Es funktioniert nun. Ich musste einen anderen Stick nehmen, es funktioniert leider nicht mit jedem Stick. Manche Sticks haben wohl timing Probleme, so dass der watchdog sich aktiviert, und dann gibt es einen dauerreboot.
    Grüße,
    Peter


    1. Jetzt wo du es erwähnst, ein Bekannter hatte eben dieses Problem auf der NSA325v2 auch und konnte es ebenfalls mit einem anderen USB-Stick lösen.


  6. Hi,
    ich bin letztens auf deinen Blog gestoßen und wollte nun dein Tutorial ausprobieren.
    Leider ist das NAS nun nicht mehr erreichbar.
    Vorgegangen bin ich 1 zu 1 nach deiner Anleitung.
    Ich habe auch bereits einen anderen USB-Stick getestet, leider ohne Erfolg.
    Gibt es eine Möglichkeit um die Fehler bzw. das irgendwie zu erkennen?
    Zum Beispiel woran erkenn ich die RebootLoops?

    MfG
    Joseph


    1. Die LEDs gehen beim Bootloop nach kurzer Zeit wieder aus und dann beginnt das Spiel von vorn, am besten erkennbar ist das an den LAN-LEDs auf der Rückseite.


  7. Könnte man nicht auch Partitionen auf einer hd anstatt eines usb-sticks dafür benutzen? Archlinux macht das ja auch, aber da kann man nur eine leere Platte benutzen. Müßte doch auch auf einer bereits bespielten gehen?


    1. Ich bevorzuge USB-Sticks, sonst laufen die Platten ja dauerhaft.


  8. Hallo kannst du auch ein video tutorial machen das wäre echt net


  9. Hallo,
    Ich habe das Problem das das Nas immer über Netzwerk booten möchte, nur wenn ich das Lankabel beim Start abziehe, bootet es vom USB Stick.
    Wenn ich ein interface anschließe kann man lesen das es 3 USB Ports findet, dann schreibt es in die nächste Zeile ein T und das wars.
    Ohne Netzwerkkabel statet dort das laden des OS vom Stick.

    Gruß Michael


    1. Boote mal bitte in dein System auf dem USB-Stick und poste hier mal die gesamte Ausgabe von fw_printenv.


  10. root@debian:~# fw_printenv
    Warning: Bad CRC, using default environment
    bootcmd=bootp; setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; bootm
    bootdelay=5
    baudrate=115200

    more /etc/fw_env.config
    # MTD device name Device offset Env. size Flash sector size
    Number of sectors
    /dev/mtd0 0xc0000 0x20000 0x20000


  11. Fehler mit den Umgebungsvariablen gesehen, hier die Korrektur:

    root@debian:~# fw_printenv
    bootargs=console=ttyS0,115200 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
    bootdelay=2
    baudrate=115200
    loads_echo=0
    ipaddr=10.4.52.165
    serverip=10.4.52.7
    rootpath=/srv/ubuntu
    netmask=255.255.255.0
    nandEcc=1bit
    MODEL_ID=AE03
    PRODUCT_NAME=NSA-325v2
    FEATURE_BIT=00
    CONTRY_TYPE=FF
    VENDOR_NAME=MitraStar Technology Corp.
    run_diag=yes
    arcNumber=4495
    bootargs_stock=console=ttyS0,115200 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
    bootargs_linux=console=ttyS0,115200 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=LABEL=rootfs loglevel=8
    bootcmd_linux=setenv bootargs $(bootargs_linux); mw.l f1010100 0020c000; usb reset; ext2load usb 0:1 $(loadaddr) /uImage; ext2load usb 0:1 0x01100000 /uInitrd; bootm $(loadaddr) 0x01100000
    bootcmd_stock=setenv bootargs $(bootargs_stock); nand read.e $(loadaddr) $(kernel_addr) 0xA00000; bootm $(loadadr)
    to_stock=setenv mainlineLinux no; setenv bootcmd \’run bootcmd_stock\‘; saveenv; reset
    to_linux=setenv mainlineLinux yes; setenv bootcmd \’run bootcmd_linux\‘; saveenv; reset
    stdin=serial
    stdout=serial
    stderr=serial
    console=console=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root)
    enaMonExt=no
    enaCpuStream=no
    enaWrAllo=no
    pexMode=RC
    disL2Cache=no
    setL2CacheWT=yes
    disL2Prefetch=yes
    enaICPref=yes
    enaDCPref=yes
    sata_dma_mode=yes
    ethprime=egiga0
    netbsd_en=no
    vxworks_en=no
    bootargs_root=root=/dev/nfs rw
    bootargs_end=:::orion:eth0:none
    image_name=uImage
    standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
    lcd0_enable=0
    lcd0_params=640×480-16@60
    disaMvPnp=no
    ethaddr=00:50:43:00:02:02
    ethmtu=1500
    mvPhoneConfig=mv_phone_config=dev[0]:fxs,dev[1]:fxo
    mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
    usb0Mode=host
    yuk_ethaddr=00:00:00:EE:51:81
    netretry=no
    rcvrip=169.254.100.100
    loadaddr=0x02000000
    autoload=no
    image_multi=yes
    enaAutoRecovery=yes
    kernel_addr=0x4640000
    pcieTune=no
    pcieTune1=no
    ethact=egiga0
    mainlineLinux=yes
    bootcmd=’run bootcmd_linux‘


  12. Das Problem könnte irgendwie am Stick liegen, immer mal wieder klappt der boot…
    Trotzdem Danke!


  13. Kann mal jemand da zu ein Video machen :D


  14. Hast du dir eine LED steuerung überlegt?

    Ich habe

    if [ -d /sys/class/leds/nsa325:orange:sys ]; then
       echo default-on  > /sys/class/leds/nsa325:green:sys/trigger
       echo none        > /sys/class/leds/nsa325:orange:sys/trigger
    fi
    
    if [ -d /sys/class/leds/nsa325:green:hdd1 ]; then
       echo ide-disk1  > /sys/class/leds/nsa325:green:hdd1/trigger
       echo none        > /sys/class/leds/nsa325:red:hdd1/trigger
    fi
    
    if [ -d /sys/class/leds/nsa325:green:hdd2 ]; then
       echo ide-disk2  > /sys/class/leds/nsa325:green:hdd2/trigger
       echo none        > /sys/class/leds/nsa325:red:hdd2/trigger
    fi


    in die /etc/rc.local eingetragen.
    Mir fehlt aber noch der spindown der platten sowie eine rote Anzeige von SMART Fehlern etc.

    Gruß Michael


  15. Hey ich habe alles nach der Anleitung gemacht.
    Lüfter läuft
    USB LED leuchtet stick steckt am USB 1 Port(hinten)

    Allerdings bekomme ich die IP nicht raus.
    Im Router steht nichts.
    Danke


  16. Ich habe die Anleitung abgearbeitet, allerdings ist das Nas nicht erreichbar.

    Lüfter läuft
    USB LED leuchtet

    ab und zu blinkt der LAN Port
    Aber im Router steht kein weiteres Gerät.

    Kann mir einer Helfen?

    Danke im Voraus


    1. 2 Sachen, entweder ist der USB-Stick Mist und es greift der Watchdog oder die Partitionierung des Sticks haut nicht hin. Aber so per Ferndiagnose ist das schwierig.


  17. Wie kann ich die ganze Geschichte eigentlich wieder rückgängig machen? Ich meine ich habe so ja keinen Zugang mehr zum Gerät.


    1. USB-Stick abziehen, dann bootet das Teil wieder in die Stock-Firmware wenn dir kein Fehler unterlaufen ist.


  18. Ne funktioniert nicht
    Es leuchtet dann die USB LED


    1. Hallo habe ebenfalls das problem das nichts passiert usb led ist an das wars…. wie setz ich die kiste zurück??? usb abziehen und starten geht nicht


  19. Ok habs nun hinbekommen
    wie mache ich dies hier?

    die boot-Partition auf dem USB-Stick in /boot mounten (via Eintrag in der /etc/fstab)


    1. Und ich kann keine Cofigs abändern(Read only file System)


    2. Das kannst du dir vorerst sparen, ich schreibe dazu sobald ich Zeit habe noch einen Blog-Beitrag, das ist aber nix akutes.

      Alles was nach „Was sonst noch zu tun ist:“ kommt ist nice-to-have aber nicht nötig.


    3. Hey, ich hab gerade das gleiche Problem. wie hast dus damal hinbekommen?


  20. Problem besteht immer noch keiner eine idee?


    1. Welches konkret? Du hast hier einige Sachen genannt die teilweise dann irgendwie doch nicht mehr bestanden.


  21. Ich würde gerne die quelldatei umschreiben um die Quellen für open media vault einzufügen. Allerdings nicht möglich wegen diesem read only mode.


    1. Auch hier gilt: Sourcen kannst du nur als root ändern/hinzufügen.


      1. Ich loge mich im nas als root ein. Dies sollte doch reichen oder etwa nicht ?


          1. root@debian:~# mount -o remount,rw /
            mount: only root can do that (effective UID is 1000)


          2. Kannst du bitte deinen Debian-Stick neu machen? Du heisst zwar root, bist aber der User mit der ID 1000. Auch zu testen via echo $UID – wenn du wirklich root wärest, würde da ne 0 ausgegeben werden. Also dein Debian scheint komplett verfrickelt zu sein. Oder einfach nur id gefolgt von Enter.

            Bzw: sudo mount -o remount,rw / – dann sollte nach dem root-Passwort gefragt werden…


          3. root@debian:~# echo $UID
            0
            root@debian:~# sudo mount -o remount,rw /
            -bash: sudo: command not found
            root@debian:~#


          4. Auf mich macht dein System irgendwie einen verfrickelten Eindruck. Was passiert denn wenn du versuchst z.B. sudo nachzuinstallieren, also
            apt-get install sudo??


          5. root@debian:~# apt-get install sudo
            W: Not using locking for read only lock file /var/lib/dpkg/lock
            E: Unable to write to /var/cache/apt/
            E: The package lists or status file could not be parsed or opened.


          6. Ich würde den Stick einmal frisch machen. Wichtig ist halt auf dem Linux-System auf dem man den „herrichtet“ wirklich dann via sudo tar .... zu entpacken, ich vermute da liegt der Hund bei dir begraben, das sieht alles nach völligem Zugriffsrechte-Fuckup auf dem Stick aus.

            Auf meinem Manjaro sieht das wie folgt aus:

            sudo tar xvfj ~/Downloads/Debian-3.16.0-kirkwood-tld-2-rootfs-bodhi.tar.bz2 -C /run/media/micha/urootfs

            Wobei das tar.bz2-Archiv in meinem Downloads-Ordner liegt und /run/media/micha/urootfs der Pfad ist an dem der Stick gemountet ist.


          7. Ok nun funktioniert alles soweit. Allerdings gibt apt-get update ein paar fehler.

            root@debian:~# apt-get update Ign http://ftp.us.debian.org wheezy Release.gpg
            Ign http://ftp.us.debian.org wheezy Release
            Err http://ftp.us.debian.org wheezy/main Sources

            Err http://ftp.us.debian.org wheezy/main Sources

            Err http://ftp.us.debian.org wheezy/main Sources

            Err http://ftp.us.debian.org wheezy/main Sources

            Err http://ftp.us.debian.org wheezy/main Sources
            404 Not Found
            W: Failed to fetch http://ftp.us.debian.org/debian/dists/wheezy/main/source/Sources 404 Not Found

            E: Some index files failed to download. They have been ignored, or old ones used instead.


  22. durch externes ändern geht es auch nicht. also config datein mit einem anderen linux system öffnen


    1. Der Stick hat nicht zufällig einen Schreibschutz-Schalter? Falls nicht, du versuchst die änderungen auf dem Stick an einem anderen Rechner aber schon als root durchzuführen, oder?


      1. Ja habs als root probiert
        Und ich verwende den selben stick, der oben angegeben wurde


  23. Ich habe die Anleitung auch durchgemacht, jedoch hat es nicht funktioniert. Auch wenn ich den Stick abziehe komme ich leider nicht mehr in die Stock Firmware. Wie kann ich das Problem lösen ? Vielen Dank schonmal


    1. Bootet deine NSA325v2 denn vom USB-Stick in ein Debian? Falls ja wäre die Ausgabe von fw_getenv mal sehr interessant. Ich habe hier 2 NSA325v2 nach dieser Anleitung „gehackt“ und bei beiden funktioniert der Boot in das Stock-OS sobald ich keinen Stick beim Booten dran habe.


  24. komme nicht auf den Nas. leider kein linux, keine ssh verbindung.
    habe jetzt schon zwei usb sticks genommen. beide in windows und in linux bespielt. Leider geht nichts, auch beim abziehen komme ich nicht in die Ausgangssituation. LED blinkt nur die des USB sticks.

    HILFE


    1. Ohne jetzt konkret eine Idee zu haben – aber wie bespielst du denn bitte unter Windows einen USB-Stick mit einem EXT3/EXT4-Dateisystem? Das Label der entsprechenden Partition muss auch „rootfs“ sein – sonst erkennt der Bootloader nicht von welcher Partition er booten soll.


      1. Den Stick mit mini tool partition wizard partitioniert und mit extfs gemountet. Jedoch hab ich das auch erst gemacht, als es mit Linux keinen Erfolg gab. Hab nun auch schon den dritten USB Stick verwendet. Hast du noch eine Idee?

        danke


  25. Ich glaube ich hab beim ändern des Bootloaders was falsch gemacht, ich kann leider seitdem auch nicht mehr per Power Taste aus und einschalten und muss stattdessen immer den Stecker ziehen :(


  26. Hallo Micha

    Ich habe ein Problem ich habe das so gemacht
    wie du das beschrieben hast bloß Während
    dessen hatte ich ein strom aus Fall und nun
    bekomme ich keinen zu griff mehr auf die NAS
    kannst du mir irgendwie Helfen ?

    MFG
    Zarro


    1. Oh, das ist besonders doof. Da musst du dich dann doch mal mit der UART-Schnittstelle befassen und schauen wo das Gerät konkret hängen bleibt. Mit etwas Glück besteht noch Hoffnung. An welcher Stelle warst du als der Strom weg war?


      1. Ich wollte gerade Schritt 7 Ausführen und dann
        war alles Dunkel bei mir !


  27. Ich wollte gerade Schritt 7 Ausführen und dann
    war alles Dunkel bei mir !


  28. Und was meist du mit UART ?


  29. Ich bekomme derzeit ständig
    USB 0: host mode
    [BlueDBG] reseting SoC Pex[0] 0 …
    PEX 0: PCI Express Root Complex Interface
    PEX interface detected Link X1
    [BlueDBG] reseting SoC Pex[1] 0 …
    [BlueDBG] reseting SoC Pex[1] 1 …
    [BlueDBG] reseting SoC Pex[1] 2 …
    [BlueDBG] reseting SoC Pex[1] 3 …
    [BlueDBG] reseting SoC Pex[1] 4 …
    [BlueDBG] reseting SoC Pex[1] 5 …
    [BlueDBG] reseting SoC Pex[1] 6 …
    [BlueDBG] reseting SoC Pex[1] 7 …
    [BlueDBG] reseting SoC Pex[1] 8 …
    [BlueDBG] reseting SoC Pex[1] 9 …
    [BlueDBG] reseting SoC Pex[1] 10 …
    PEX 1: interface detected no Link.
    Net: egiga0 [PRIME]
    Hit any key to stop autoboot: 0
    (Re)start USB…
    USB: scanning bus for devices… 3 USB Device(s) found
    Waiting for storage device(s) to settle before scanning…
    T

    Danach geht nix mehr


  30. Hi micha,

    erstmal danke für Deine Anleitung! Ich bin daran interessiert, weil ich OMV auf dem NSA325v2 nutzen will, da die Features viel interessanter sind. Nun ist es ja wohl so, dass OMV auf USB-Flash sehr ungünstig ist und den Stick schnell zugrunde richtet. Fällt dir dazu eine Lösung ein bzw hast du das einmal aunsprobiert?


    1. Ich habe es jetzt seit einer ganzen Weile auf einem USB-Stick am Laufen und der Stick lebt noch.


  31. Hi, vielleicht kann mir ja einer helfen (bevor ich mir Zugriff zur seriellen Schnittstelle verschaffen muss).
    Ich wollte auf Kernel 3.17.0 (https://bitly.com/1rXpFol) umsteigen, allerdings bootet das NAS damit nicht, mit dem selben Stick und „Debian-3.14.0-kirkwood-tld-1-rootfs-bodhi.tar.bz2“ klappt es allerdings?!


  32. Hallo,
    ich habe mehrere USB-Sticks ausprobiert und mir auch den empfohlenen von SanDisk besorgt, aber leider greift immer wieder der Watchdog.

    Das auslesen der UART-Schnittstelle zeigt, dass der neue Kernel und das neue Image bootet. Der Vorgang kommt bis zu dem Zeitpunkt kontinuierlich voran, bis der Watchdog getriggert wird, dann beginnt das Spiel von vorne.

    Gibt es hierfür einen Tipp, was ich machen kann?
    Ich möchte unbedingt Debian auf dem System haben, damit ich einen WLAN-Stick ranhängen kann.


    1. Ich benutze den gleichen Kernel wie Oskar.
      Soll ich auf den 3.14er umsteigen?


    2. Wenn der Watchdog getriggert wird ist scheinbar zu viel Zeit vergangen, ich habe diesen Fall nur sehr sporadisch gehabt und konnte das mit einer kleinen Pause (aka Strom weg und nach ein paar Sekunden einfach nochmal versuchen) immer „beheben“.


  33. Hi,

    ich wollte fragen ob du vielleicht weißt, wie man sich das Synology DSM für die NSA325v2 zusammen basteln kann.
    Für die DSM ist der Source Code ja online. Im Internet hatte jemand versucht es zu installieren, was er auch hinbekommen hatte, jedoch ist dieser Thread nicht weitergepflegt worden.. Da hab ich diesen Debian-Tutorial gefunden :D

    Vielleicht klappt es ja in ähnlicher Prozedur, auch über den Stick als extra Firmware. Ich würde mich freuen über jeglichen Ansatz, in was genau ich mich einlesen muss etc!!!

    Vielen Dank!


    1. Nein, ich setze aber auch bewusst Open Media Vault auf meiner NSA325 ein.


  34. … 1. bis 12. durchgeführt und nun sitz ich da und nix scheint mehr zu gehen. :/
    Resultat: Wenn der 325v2 startet leuchtet nur noch die USB-LED. Putty gibt nichts aus, ergo kein auch Login.
    Wie krieg ich nun den Zugang zum Zyxel wiederhergestellt, der ist ja nun (7.) auf USB umgeleitet… ?


    1. Bei mir reichte einfach das Abziehen des USB-Sticks und die Kiste hat wieder ins Original-System gebootet. Im schlimmsten Fall muss man halt die serielle Schnittstelle bemühen.


      1. …also UART :/ ich habs geahnt das ich mich nun damit auseinandersetzen muss :/ F*** ;)


        1. Vermutlich :| Evtl. mal einen anderen (schnelleren) Stick testen, wenn möglich. Der Watchdog greift iirc nur wenn das Debian zu lang zum booten braucht Denn wenn Debian erfolgreich gebootet hat, deaktiviert das den Watchdog soweit ich mich erinnern kann für die Laufzeit.


          1. ok – kann bis heute Abend dauern bis ich alle, anderen mir zur Vefügung stehenden USB-Sticks, durchgetestet habe. :)

            Mit diesen habe ich es schon mal nicht hinbekommen:
            * SanDisk Ultra Fit 64GB (USB 3.0)
            * SanDisk Cruzer Fit 4GB (USB 2.0)


          2. Micha, hast Du einen Link zu einem ’scheinbar‘ _funktionierendem_ Tutorial bzgl. UART-Reset damit ich das der Tage vollziehen kann = Empfehlung? Klar kann ich ‚googlen‘ nur noch einmal wollte ich mich jetzt erstmal nicht in die Nesseln setzen ;)


          3. Ne, sorry, ich hab beim NSA325 bisher noch keinen UART-Bedarf gehabt :)


        2. Hallo Michael,

          bei mir hat das problemlos geklappt.

          Ich habe mir so einen UART dongle für 2-3 Euro bei Ebay gekauft. Die Anschlussmöglichkeiten fand ich auf Seite http://fr32k.de/wiki/nas/hacking/uart.
          Du solltest auf jeden Fall beachten, dass Du tx und rx über Kreuz verdrahtest. Das gewährleistet Dir die Datenübertragung.

          Beim Starten kommen dann die Logeinträge, was das NAS gerade macht. Es wird auch eine Frage angezeigt, ob Du den Startvorgang abbrechen möchtest (3sec lang). Das solltest Du tun. Jetzt hatte ich, bis der Watchdog einsetzte, Zeit Kommandos abzusetzen.

          Mit Copy & Paste habe ich dann setenv bootcmd ‚run bootcmd_stock‘; saveenv; reset abgesetzt. Das lässt den NAS wieder mit ursprünglicher Firmware starten.

          Und noch was: Viel Glück!


          1. Danke romdisc,
            ich lasse Euch wissen wenn das Kabel geliefert wurde und mir ein ‚Neustart‘ gelungen ist :)


  35. Könntest Du bitte die MD5 Checksumme vom Image hier veröffentlichen?
    Danke
    Nik


  36. Erst mal vielen Dank für die Superanleitung!

    Ich habe nun auch vor OMV auf diesem Zyxel laufen zu lassen. Einige Fragen hab ich noch:

    1. Aus den bisherigen Kommentaren lese ich, dass es bisweilen Timing-Probleme mit den USB-Sticks zu geben scheint. Nun hat das ZyXEL NSA325v2 ja auch einen USB 3.0-Port (zwar an der Front, wäre mir aber egal, wenn der Stick dort drin steckt – jedenfalls wenn das die Bootgeschwindigkeit und Zuverlässigkeit steigert). Spricht da etwas dagegen?

    2. Falls o.g. zutrifft, müsste die Anweisung

    fw_setenv bootcmd_linux 'setenv bootargs $(bootargs_linux); mw.l f1010100 0020c000; usb reset; ext2load usb 0:1 $(loadaddr) /uImage; ext2load usb 0:1 0x01100000 /uInitrd; bootm $(loadaddr) 0x01100000'

    wohl auf ein anderes USB-Device zeigen. Da ich mich mit arm bisher nicht auskenne, wäre es nett, wenn mir jemand sagen könnte, was hier ggf. einzutragen wäre oder wie ich dran komme.


    1. Der USB 3.0 Port ist leider nicht Boot-fähig. Details dazu kann ich dir auf Anhieb nicht liefern.


      1. Ok, vielen Dank. Da hätte ich lange gesucht…


  37. Feedback
    Die Installation nach dieser Anleitung hat geklappt, vielen Dank nochmal!

    Verwendete Hardware:
    NSA325v2 + 16 GB SanDisk Cruzer Fit Ultra USB 3.0 + 2 x 3000GB WD Red WD30EFRX

    Verwendetes Image:
    Debian-3.16.0-kirkwood-tld-2-rootfs-bodhi.tar.bz2 (https://bitly.com/Z5icMA)
    Das letzte Wheezy-Image Debian-3.17.0-kirkwood-tld-1-rootfs-bodhi.tar.bz2 (https://bitly.com/1rXpFol) hat bei mir nicht gebootet.

    Leider bootet bei Abziehen des USB-Sticks das Gerät nicht in den Ursprungsmodus, ansonsten hat alles wie beschrieben funktioniert.


    1. Freut mich zu hören. Das „Problem“ mit dem nicht automatisch bei abgezogenem USB-Stick ins Stock-System booten kann ich so nicht nachvollziehen, hab ich 2 -3 mal getestet, ging bei mir. Macht aber auch nichts. Nachdem man da ein sauberes Debian auf der Kiste laufen hat will man das eigentlich auch nicht mehr ;)


  38. Hi,
    tolle Anleitung, leider hakt es schon beim konfigurieren des Bootloaders:
    fw_setenv arcNumber 4495
    -sh: fw_setenv: command not found

    Kann es sein dass die neue Zyxel Firmware 4.80 kastriert wurde????? Die 4.80 ist nicht übel, aber nichts gegen OMV usw.

    bye Klaus


    1. Ist gut möglich. Wäre ja nicht das erste mal, das Hardware-Hersteller ihre Software beschneiden um eine Nutzung fernab ihrer Vorstellungen zu unterbinden. Die Frage ist, ob man von irgendwoher eine funktionierende Version bekommt…


  39. Hallo,

    erstmal danke für die Anleitung.
    Ich habe jedoch leider ein Problem.
    Mein NAS will einfach nicht vom Stick booten. Das ganze sieht im UART dann so aus: (nachdem ich den Stick erstmalgi angesteckt habe und dann die Kiste neugestartet habe)


    ?
    __ __ _ _
    | \/ | __ _ _ ____ _____| | |
    | |\/| |/ _` | '__\ \ / / _ \ | |
    | | | | (_| | | \ V / __/ | |
    |_| |_|\__,_|_| \_/ \___|_|_|
    _ _ ____ _
    | | | | | __ ) ___ ___ | |_
    | | | |___| _ \ / _ \ / _ \| __|
    | |_| |___| |_) | (_) | (_) | |_
    \___/ |____/ \___/ \___/ \__|
    ** MARVELL BOARD: DB-88F6282A-BP LE

    U-Boot 1.1.4 (Jul 18 2013 - 10:47:29) Marvell version: 3.5.9

    U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CFB00

    Soc: 88F6282 A1CPU running @ 1600Mhz L2 running @ 533Mhz
    SysClock = 533Mhz , TClock = 200Mhz

    DRAM (DDR3) CAS Latency = 7 tRP = 8 tRAS = 24 tRCD=8
    DRAM CS[0] base 0x00000000 size 512MB
    DRAM Total size 512MB 16bit width
    Addresses 10M - 0M are saved for the U-Boot usage.
    Mem malloc Initialization (10M - 7M): Done
    NAND:128 MB
    Flash: 0 kB

    CPU : Marvell Feroceon (Rev 1)
    Kernel address is 0x4640000.

    Streaming disabled
    Write allocate disabled

    USB 0: host mode
    [BlueDBG] reseting SoC Pex[0] 0 ...
    PEX 0: PCI Express Root Complex Interface
    PEX interface detected Link X1
    [BlueDBG] reseting SoC Pex[1] 0 ...
    [BlueDBG] reseting SoC Pex[1] 1 ...
    [BlueDBG] reseting SoC Pex[1] 2 ...
    [BlueDBG] reseting SoC Pex[1] 3 ...
    [BlueDBG] reseting SoC Pex[1] 4 ...
    [BlueDBG] reseting SoC Pex[1] 5 ...
    [BlueDBG] reseting SoC Pex[1] 6 ...
    [BlueDBG] reseting SoC Pex[1] 7 ...
    [BlueDBG] reseting SoC Pex[1] 8 ...
    [BlueDBG] reseting SoC Pex[1] 9 ...
    [BlueDBG] reseting SoC Pex[1] 10 ...
    PEX 1: interface detected no Link.
    Net: egiga0 [PRIME]
    Hit any key to stop autoboot: 0
    Saving Environment to NAND...
    Erasing Nand...Writing to Nand... done
    ?
    __ __ _ _
    | \/ | __ _ _ ____ _____| | |
    | |\/| |/ _` | '__\ \ / / _ \ | |
    | | | | (_| | | \ V / __/ | |
    |_| |_|\__,_|_| \_/ \___|_|_|
    _ _ ____ _
    | | | | | __ ) ___ ___ | |_
    | | | |___| _ \ / _ \ / _ \| __|
    | |_| |___| |_) | (_) | (_) | |_
    \___/ |____/ \___/ \___/ \__|
    ** MARVELL BOARD: DB-88F6282A-BP LE

    U-Boot 1.1.4 (Jul 18 2013 - 10:47:29) Marvell version: 3.5.9

    U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CFB00

    Soc: 88F6282 A1CPU running @ 1600Mhz L2 running @ 800Mhz
    SysClock = 533Mhz , TClock = 200Mhz

    DRAM (DDR3) CAS Latency = 7 tRP = 8 tRAS = 24 tRCD=8
    DRAM CS[0] base 0x00000000 size 512MB
    DRAM Total size 512MB 16bit width
    Addresses 10M - 0M are saved for the U-Boot usage.
    Mem malloc Initialization (10M - 7M): Done
    NAND:128 MB
    Flash: 0 kB

    CPU : Marvell Feroceon (Rev 1)
    Kernel address is 0x4640000.

    Streaming disabled
    Write allocate disabled

    USB 0: host mode
    [BlueDBG] reseting SoC Pex[0] 0 ...
    PEX 0: PCI Express Root Complex Interface
    PEX interface detected Link X1
    [BlueDBG] reseting SoC Pex[1] 0 ...
    [BlueDBG] reseting SoC Pex[1] 1 ...
    [BlueDBG] reseting SoC Pex[1] 2 ...
    [BlueDBG] reseting SoC Pex[1] 3 ...
    [BlueDBG] reseting SoC Pex[1] 4 ...
    [BlueDBG] reseting SoC Pex[1] 5 ...
    [BlueDBG] reseting SoC Pex[1] 6 ...
    [BlueDBG] reseting SoC Pex[1] 7 ...
    [BlueDBG] reseting SoC Pex[1] 8 ...
    [BlueDBG] reseting SoC Pex[1] 9 ...
    [BlueDBG] reseting SoC Pex[1] 10 ...
    PEX 1: interface detected no Link.
    Net: egiga0 [PRIME]
    Hit any key to stop autoboot: 0
    (Re)start USB...
    USB: scanning bus for devices... 3 USB Device(s) found
    Waiting for storage device(s) to settle before scanning...
    1 Storage Device(s) found
    .
    .
    ...
    ......
    ............
    .
    ........................
    .
    .........................
    ........................
    .
    .........................
    .........................
    .........................
    ........................
    .
    .........................
    ........

    2461416 bytes read
    .
    .
    ...
    ......
    ............
    .
    ........................
    .
    .........................
    ........................
    .
    .........................
    .........................
    .........................
    ........................
    .
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .....

    6362802 bytes read
    ## Booting image at 02000000 ...
    Image Name: Linux-3.14.0-kirkwood-tld-1
    Created: 2014-04-06 20:44:27 UTC
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2461352 Bytes = 2.3 MB
    Load Address: 00008000
    Entry Point: 00008000
    Verifying Checksum ... Bad Data CRC
    Erasing Nand...Writing to Nand... done?
    __ __ _ _
    | \/ | __ _ _ ____ _____| | |
    | |\/| |/ _` | '__\ \ / / _ \ | |
    | | | | (_| | | \ V / __/ | |
    |_| |_|\__,_|_| \_/ \___|_|_|
    _ _ ____ _
    | | | | | __ ) ___ ___ | |_
    | | | |___| _ \ / _ \ / _ \| __|
    | |_| |___| |_) | (_) | (_) | |_
    \___/ |____/ \___/ \___/ \__|
    ** MARVELL BOARD: DB-88F6282A-BP LE

    U-Boot 1.1.4 (Jul 18 2013 - 10:47:29) Marvell version: 3.5.9

    U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CFB00

    Soc: 88F6282 A1CPU running @ 1600Mhz L2 running @ 800Mhz
    SysClock = 533Mhz , TClock = 200Mhz

    DRAM (DDR3) CAS Latency = 7 tRP = 8 tRAS = 24 tRCD=8
    DRAM CS[0] base 0x00000000 size 512MB
    DRAM Total size 512MB 16bit width
    Addresses 10M - 0M are saved for the U-Boot usage.
    Mem malloc Initialization (10M - 7M): Done
    NAND:128 MB
    Flash: 0 kB

    CPU : Marvell Feroceon (Rev 1)
    Kernel address is 0xc80000.
    Erasing Nand...Writing to Nand... done

    Streaming disabled
    Write allocate disabled

    USB 0: host mode
    [BlueDBG] reseting SoC Pex[0] 0 ...
    PEX 0: PCI Express Root Complex Interface
    PEX interface detected Link X1
    [BlueDBG] reseting SoC Pex[1] 0 ...
    [BlueDBG] reseting SoC Pex[1] 1 ...
    [BlueDBG] reseting SoC Pex[1] 2 ...
    [BlueDBG] reseting SoC Pex[1] 3 ...
    [BlueDBG] reseting SoC Pex[1] 4 ...
    [BlueDBG] reseting SoC Pex[1] 5 ...
    [BlueDBG] reseting SoC Pex[1] 6 ...
    [BlueDBG] reseting SoC Pex[1] 7 ...
    [BlueDBG] reseting SoC Pex[1] 8 ...
    [BlueDBG] reseting SoC Pex[1] 9 ...
    [BlueDBG] reseting SoC Pex[1] 10 ...
    PEX 1: interface detected no Link.
    Net: egiga0 [PRIME]
    Hit any key to stop autoboot: 0
    (Re)start USB...
    USB: scanning bus for devices... 3 USB Device(s) found
    Waiting for storage device(s) to settle before scanning...
    1 Storage Device(s) found
    .
    .
    ...
    ......
    ............
    .
    ........................
    .
    .........................
    ........................
    .
    .........................
    .........................
    .........................
    ........................
    .
    .........................
    ........

    2461416 bytes read
    .
    .
    ...
    ......
    ............
    .
    ........................
    .
    .........................
    ........................
    .
    .........................
    .........................
    .........................
    ........................
    .
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .........................
    .....

    6362802 bytes read
    ## Booting image at 02000000 ...
    Image Name: Linux-3.14.0-kirkwood-tld-1
    Created: 2014-04-06 20:44:27 UTC
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2461352 Bytes = 2.3 MB
    Load Address: 00008000
    Entry Point: 00008000
    Verifying Checksum ... Bad Data CRC
    Marvell>>

    Hat irgendjemand ne Idee?


    1. Der Kernel ist nicht korrekt auf dem USB Stick.

      Bad Data CRC kommt diekt nach dem Laden des Kernel Images Linux-3.14.0-kirkwood-tld-1. Entweder einen anderen Stick versuchen oder mal einen anderen Kirkwood-Kernel versuchen.


  40. Hallo,
    danke für Anleitung ging alles gut.
    Hab eine kurze Frage die ev. nicht ganz beim Thema ist, aber vielleicht kannst du mir helfen.
    Wollte neue U-Boot laden, also (nand erase ; nand write) hab mich wahrscheinlich bei der Adresse vertan also nach dem reset. Ist das Ding gestorben. Frage, gibt es ev. ein Weg NAND (über UART, ohne auszulöten) zu reparieren od. ist das Spiel bereits verlören.
    Danke
    Vitalis


    1. Mittels UART-Booting (siehe doozan-Forum) sollte es funktionieren, eine neue U-Boot-Version über die serielle Schnittstelle hochzuladen und in ein funktionierendes Linux zu booten. Anschließend halt manuelle Reparatur.


  41. Hallo :) ich habe mich dummerweise zu einem Fehler hinreißen lassen. Und zwar habe ich aus der oberen Anleitung nur einen Schritt durchgeführt und danach die NSA neugestartet: „fw_setenv bootcmd ‚run to_linux'“

    Ja, das Gerät ist nicht mehr ansprechbar. Auch nicht mit meinem USB-Stick mit einem fertig aufgesetzten lubuntu. Ich habe inzwischen auch probiert per FFP-Stick (universal-stick und usb_key_func.sh.2 ein „fw_setenv bootcmd ‚run to_stock'“) den Vorgang rückgängig zu machen, leider ohne Erfolg. Auch funktioniert der Reset-Button nicht. Bleibt jetzt nur noch die Wiederherstellung per UART? :(


  42. Danke, für die Infos von euch allen.
    Sie haben meinem NAS 325 v2 wieder Leben eingehaucht.
    :-)


  43. Hallo,

    Vielen Dank für die Anleitung. Ich hab mich nur noch nicht getraut, es auszuprobieren. Vorher habe ich noch ein paar Fragen:

    1. Wäre diese Anleitung übertragbar auf ein anderes Linux? Ich denke da an das ArchLinuxARM image von hier https://archlinuxarm.org/platforms/armv5/zyxel-nsa325 und die Schritte 1-4.

    2. Kannst du mir etwas detaillierter erklären, was du im Bootloader konfigurierst? Ich möchte ungerne einfach alles fw_setenv abtippen, ohne zu wissen, was das macht.

    3. Wo kann ich im Zweifelsfall mich über UART einlesen? Falls was schiefgeht? Hast du da einen empfehlenswerten Link?

    Vielen Dank


  44. Hallo zusammen!
    Hat jemand Erfahrung, ob mit dieser Anleitung auch OMV 2.1.x (Stone Burner) läuft?


  45. hat jemand schon den
    Latest kernel:linux-4.8.3-kirkwood-tld-1-bodhi.tar.bz2 (24 Oct 2016)
    Latest rootfs: Debian-4.4.0-kirkwood-tld-1-rootfs-bodhi.tar.bz2 (20 Feb 2016) von http://forum.doozan.com/read.php?2,12096 erfolgreich getestet?

    LG


  46. Ich weiss nicht wie ich ab Schritt 9 weiterkommen soll bzw. wie und wo solle ich die Daten auf dem Stick packen?

Comments are closed.