OpenWrt on Zyxel NSA325v2

How did you test the TFTP using your phone ?

Assuming the TFTPd works, and u-boot can't get a connection using ethernet or find the flash drive, there's not much you can do.

You can reprogram the flash chip, or try to get the files from a disk inserted into the NAS, but I don't know if the uboot installed is capable of reading SATA storage.

There's on more thing, check if you have the most recent firmware, a newer version may contain a newer uboot release.

I have the newest firmware. The NSA325v2 no longer receives new firmwares.

I used TFTP CS for Android, entered the IP of my server (wifi), entered the filename remote and local, hit start and voila, the file was downloaded. So essentially the same procedure just with a different PC interface. But I also tried hooking up the NAS to my local network and assigned it an IP in the same range as my wifi. Also did not work.

In that case I'm out of ideas.

The TFTP should work.

Try connecting the NAS directly, port to port, to the computer hosting the file, not via a network.

That was what I tried the whole time. Then switched to cross-over cable without success and then as a final approach I connected to my LAN via Switch.

I will try kwboot next, but I am stuck with a surprising message right at the start

[91387.374689] usb 1-1.3: Detected FT232RL
[91387.379766] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0
pi@pi:~/Downloads/kwboot-tool $ ls -la
total 5664
drwxr-xr-x 2 pi pi    4096 May 12 09:03 .
drwxr-xr-x 3 pi pi    4096 May 12 08:47 ..
-rw-r--r-- 1 pi pi 4063232 May 12 08:51 18.bin
-rwxrwxrwx 1 pi pi   15604 May 12 09:03 kwboot
-rw-r--r-- 1 pi pi  569104 May 12 08:51 uboot.bin
-rw-r--r-- 1 pi pi  569168 May 12 08:51 uboot.img
-rw-r--r-- 1 pi pi  569620 May 12 08:51 uboot.kwb
pi@pi:~/Downloads/kwboot-tool $ ./kwboot -t -B 115200 /dev/ttyUSB0 -b uboot.kwb
bash: ./kwboot: No such file or directory
pi@pi:~/Downloads/kwboot-tool $ 

Running a RPi4 64-bit Raspbian system.

never used kwboot.

there's probably minicom or something else you can use with your FT232RL.

Is there an instruction somewhere for flashing with minicom on a NSA3xx?

should be the same ....

or just tftp 0x1000000 u-boot.kwb, and it'll tell you what IPs you should use.

So minicom has a built in server? Or do I still need to use a TFTP server, so basically no different to before with Putty?

correct, the minicom recommendation was because I thought you wanted to run the term from the Pi.

And yes, TFTPd is still needed.

Okay, then I will try to figure out kwboot. I only switched to Linux to try kwboot. I don't think the issue was Windows as I could access the uboot and I could download via my mobile. So firewall was not the issue.

About the USB stick, have you tried to boot in stock firmware, and then reboot? I wonder if the 5V isn't enabled. You could also try a powered hub in between.

1 Like

So, I wanted to give my feedback and hopefully this will help others in the future also.

Situation:
USB sticks were not recognized. TFTP did not work. kwboot did not work.

Then came the recommendation by Mijzelf to check if the 5V for the USB was actually being supplied properly. So I added an active USB Hub in between so the USB stick was already powered externally and not through the board.
And it worked!

So, if anybody has the same issue with USB sticks not being recognized or files not being readable, try an active USB hub.

In addition I found that I could not use the same USB stick to flash uboot and the actual OpenWRT. It just would not work. I need to reboot with a different USB stick (no rebooting with the same USB stick did not fix it).
And then it worked.
I tried on my second NSA325v2 using the second USB stick first. Same picture. I had to use two USB sticks in whatever order. The system just wanted two sticks even though both had the same files and same worked.

Anyhow, long story short: THANK YOU ALLLLLL!!!!!!!!!!!!!!!!!!

OpenWRT is now installed and next I need to figure out why I do not have a built in file browser in OpenWRT and then install one to check if the drives are read properly.

Summary:
Use an active USB hub and have two USB sticks prepared :wink:

1 Like

thank you for the feedback, I'll update the wiki.

Thank you :slight_smile:

Maybe one quick question: since I am moving my internal drives from Zyxel stock to OpenWRT, which packages do I need to install to get them to mount properly or rather be able to read them? They are shown in "System - Mount Points" as "linux_raid_member".

They were never used as RAID. Always independent drives, but Zyxel formats them anyway. I would like to change them to ext3 or ext4, but I need to be able to access them first to backup the data :slight_smile:

Assuming Zyxel doesn't use some kind of proprietary RAID solution, mdadm would be the tool to use for (re)assembling a RAID set.

How were the disks configured before you installed openwrt, two stand alone drives ?

I actually don't want to create a RAID, I want to have two standalone disks with "normal" linux filesystem.

To my memory the Zyxel firmware called it something like "single disk JBOD"?

ZyXEL always builds a raid array, no matter if you want single or double disk volumes. So to mount the volume you need to execute:

mdadm --assemble /dev/md0 /dev/sda2 --run
mkdir /tmp/mountpoint
mount /dev/md0 /tmp/mountpoint
2 Likes

Sounds like RAID0.

But if you want to recover the data, you need to reassemble the RAID set, copy/move the data out, then redo it the way you'd like it to be.

1 Like

Returns

root@NSA325v2_2:~# mdadm --assemble /dev/md0 /dev/sda2 --run
mdadm: failed to RUN_ARRAY /dev/md0: Invalid argument
root@NSA325v2_2:~#

try mdadm --detail --scan >> /etc/mdadm.conf

then check the content of /etc/mdadm.conf

should be something like

ARRAY /dev/md0 metadata=0.90 UUID=a4111f18:a01e4153:a3ccc061:1112c3e7

use that mdXXX (if not md0) when trying to assemble, if md0, just retry.

mdadm --assemble /dev/mdX --run

one more thing,
the disk may have other partition layout than /dev/sda2 /dev/sdb2
you might want to fdisk /dev/sda and /dev/sdb, to check how it looks.