Reviving NSA325V2 - OpenWRT

Hi all, I'm trying to revive my old NSA325 v2 installing the last compatible release of OpenWRT (using the official guide: https://openwrt.org/toh/zyxel/nsa325) - openwrt-24.10.4-kirkwood-generic-zyxel_nsa325-squashfs-factory.bin - starting from stock firmware.

It' the first time I do something like that so I'm not so good flashing rounter/nas :frowning:

I'm using the USB pendrive solution (I'm lucky because it works great!! :stuck_out_tongue: ), and the ttl usb converter for the putty connection.

I'm done on installing uboot !
(the guide suggest this: Attention: the u-boot.kwb from 19.x.x release is bugged and won't allow access to any mass storage. Use the latest u-boot.kwb from the 18.x.x release instead: u-boot-nsa325 )

Here the output (with the current envs setted from the offical OpenWRT guide):

U-Boot 2018.03 (Jun 27 2018 - 06:41:13 +0000)
ZyXEL NSA325 2-Bay Power Media Server

SoC:   Kirkwood 88F6282_A1
DRAM:  512 MiB
WARNING: Caches not enabled
NAND:  128 MiB
MMC:
Loading Environment from NAND... OK
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
MV88E1318 PHY initialized on egiga0
Hit any key to stop autoboot:  0
NSA325> printenv
baudrate=115200
bootcmd=run setenv bootargs; ubi part ubi; ubi read 0x800000 kernel; bootm 0x800000
bootdelay=3
console=console=ttyS0,115200
ethact=egiga0
ethaddr=AA:AA:AA:AA:AA:AA
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:0x00c0000(uboot),0x80000(uboot_env),0x7ec0000(ubi)
stderr=serial
stdin=serial
stdout=serial

Environment size: 349/131068 bytes

But loading the OpenWRT image I had this output:

U-Boot 2018.03 (Jun 27 2018 - 06:41:13 +0000)
ZyXEL NSA325 2-Bay Power Media Server

SoC:   Kirkwood 88F6282_A1
DRAM:  512 MiB
WARNING: Caches not enabled
NAND:  128 MiB
MMC:
Loading Environment from NAND... OK
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
MV88E1318 PHY initialized on egiga0
Hit any key to stop autoboot:  0
## Error: "setenv" not defined
ubi0: attaching mtd1
ubi0: scanning is finished
ubi0: volume 2 ("rootfs_data") re-sized from 9 to 942 LEBs
ubi0: attached mtd1 (name "mtd=2", size 126 MiB)
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
ubi0: VID header offset: 512 (aligned 512), data offset: 2048
ubi0: good PEBs: 1012, bad PEBs: 2, corrupted PEBs: 0
ubi0: user volume: 3, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 1760891865
ubi0: available PEBs: 0, total reserved PEBs: 1012, PEBs reserved for bad PEB handling: 18
Read 0 bytes from volume kernel to 800000
No size specified -> Using max size (3225600)
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   ARM OpenWrt Linux-6.6.110
   Created:      2025-10-19  16:37:45 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3133564 Bytes = 3 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.6.110 (builder@buildhost) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 13.3.0 r28959-29397011cc) 13.3.0, GNU ld (GNU Binutils) 2.42) #0 Sun Oct 19 16:37:45 2025
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=0005397f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt: Machine model: ZyXEL NSA325
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000001fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000001fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000001fffffff]
[    0.000000] Kernel command line: console=ttyS0,115200
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129920
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 508092K/524288K available (7224K kernel code, 594K rwdata, 1076K rodata, 1024K init, 235K bss, 16196K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] clocksource: orion_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns
[    0.000001] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns
[    0.000028] Switching to timer-based delay loop, resolution 5ns
[    0.000138] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=2000000)
[    0.000158] CPU: Testing write buffer coherency: ok
[    0.000243] pid_max: default: 32768 minimum: 301
[    0.007605] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.007629] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.014650] RCU Tasks Trace: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.
[    0.014856] Setting up static identity map for 0x100000 - 0x10003c
[    0.015106] mvebu-soc-id: MVEBU SoC ID=0x6282, Rev=0x1
[    0.020547] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.020575] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.022482] pinctrl core: initialized pinctrl subsystem
[    0.024878] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.025227] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.026434] thermal_sys: Registered thermal governor 'step_wise'
[    0.026476] cpuidle: using governor ladder
[    0.026765] Feroceon L2: Enabling L2
[    0.026790] Feroceon L2: Cache support initialised.
[    0.031388] No ATAGs?
[    0.036245] SCSI subsystem initialized
[    0.036873] usbcore: registered new interface driver usbfs
[    0.036913] usbcore: registered new interface driver hub
[    0.036949] usbcore: registered new device driver usb
[    0.038311] clocksource: Switched to clocksource orion_clocksource
[    0.045873] NET: Registered PF_INET protocol family
[    0.046045] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.047724] tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.047749] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.047762] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.047813] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.048381] TCP: Hash tables configured (established 4096 bind 4096)
[    0.048810] MPTCP token hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.048974] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.048996] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.049609] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.049644] PCI: CLS 0 bytes, default 32
[    0.052413] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    0.053565] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.053573] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.058908] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.060692] kirkwood-pinctrl f1010000.pin-controller: registered pinctrl driver
[    0.061711] gpio gpiochip0: Static allocation of GPIO base is deprecated, use dynamic allocation.
[    0.062197] gpio gpiochip1: Static allocation of GPIO base is deprecated, use dynamic allocation.
[    0.062547] mvebu-pcie mbus@f1000000:pcie@82000000: host bridge /mbus@f1000000/pcie@82000000 ranges:
[    0.062580] mvebu-pcie mbus@f1000000:pcie@82000000:      MEM 0x00f1040000..0x00f1041fff -> 0x0000040000
[    0.062602] mvebu-pcie mbus@f1000000:pcie@82000000:      MEM 0xffffffffffffffff..0x00fffffffe -> 0x0100000000
[    0.062615] mvebu-pcie mbus@f1000000:pcie@82000000:       IO 0xffffffffffffffff..0x00fffffffe -> 0x0100000000
[    0.062965] mvebu-pcie mbus@f1000000:pcie@82000000: PCI host bridge to bus 0000:00
[    0.062977] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.062989] pci_bus 0000:00: root bus resource [mem 0xf1040000-0xf1041fff] (bus address [0x00040000-0x00041fff])
[    0.062998] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xefffffff]
[    0.063005] pci_bus 0000:00: root bus resource [io  0x1000-0xeffff]
[    0.063073] pci 0000:00:01.0: [11ab:6282] type 01 class 0x060400
[    0.064151] PCI: bus0: Fast back to back transfers disabled
[    0.064162] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    0.064271] pci 0000:01:00.0: [1033:0194] type 00 class 0x0c0330
[    0.064303] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
[    0.064425] pci 0000:01:00.0: PME# supported from D0 D3hot
[    0.064458] pci 0000:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0000:00:01.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link)
[    0.064622] PCI: bus1: Fast back to back transfers disabled
[    0.064631] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    0.064659] pci 0000:00:01.0: BAR 8: assigned [mem 0xe0000000-0xe00fffff]
[    0.064672] pci 0000:01:00.0: BAR 0: assigned [mem 0xe0000000-0xe0001fff 64bit]
[    0.064691] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.064702] pci 0000:00:01.0:   bridge window [mem 0xe0000000-0xe00fffff]
[    0.064749] pci 0000:00:01.0: enabling device (0140 -> 0142)
[    0.064762] pci 0000:01:00.0: enabling device (0140 -> 0142)
[    0.072323] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.074967] printk: console [ttyS0] disabled
[    0.075238] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 26, base_baud = 12500000) is a 16550A
[    0.075270] printk: console [ttyS0] enabled
[    0.705920] nand: device found, Manufacturer ID: 0x92, Chip ID: 0xf1
[    0.712338] nand: Eon NAND 128MiB 3,3V 8-bit
[    0.716628] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    0.724278] Scanning device for bad blocks
[    0.733213] Bad eraseblock 100 at 0x000000c80000
[    0.742613] Bad eraseblock 200 at 0x000001900000
[    0.786442] 3 fixed-partitions partitions found on MTD device orion_nand
[    0.793182] Creating 3 MTD partitions on "orion_nand":
[    0.798353] 0x000000000000-0x0000000c0000 : "uboot"
[    0.820112] 0x0000000c0000-0x000000140000 : "uboot_env"
[    0.826499] 0x000000140000-0x000008000000 : "ubi"
[    0.844230] mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4
[    0.854168] mv643xx_eth_port mv643xx_eth_port.0 eth0: port 0 with MAC address 
AA:AA:AA:AA:AA:AA
[    0.863163] i2c_dev: i2c /dev entries driver
[    0.868848] orion_wdt: Initial timeout 21 sec
[    0.883623] marvell-cesa f1030000.crypto: CESA device successfully registered
[    0.892190] NET: Registered PF_INET6 protocol family
[    0.899112] Segment Routing with IPv6
[    0.902852] In-situ OAM (IOAM) with IPv6
[    0.906897] NET: Registered PF_PACKET protocol family
[    0.912016] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    0.925254] 8021q: 802.1Q VLAN Support v1.8
[    0.963571] UBI: auto-attach mtd2
[    0.966925] ubi0: attaching mtd2
[    1.139791] ubi0: scanning is finished
[    1.155235] ubi0: attached mtd2 (name "ubi", size 126 MiB)
[    1.160791] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
[    1.167696] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
[    1.174436] ubi0: VID header offset: 512 (aligned 512), data offset: 2048
[    1.181262] ubi0: good PEBs: 1012, bad PEBs: 2, corrupted PEBs: 0
[    1.187377] ubi0: user volume: 3, internal volumes: 1, max. volumes count: 128
[    1.194639] ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 1760891865
[    1.203821] ubi0: available PEBs: 0, total reserved PEBs: 1012, PEBs reserved for bad PEB handling: 18
[    1.213425] ubi0: background thread "ubi_bgt0d" started, PID 369
[    1.219872] block ubiblock0_1: created from ubi0:1(rootfs)
[    1.225390] ubiblock: device ubiblock0_1 (rootfs) set to be root filesystem
[    1.232560] clk: Disabling unused clocks
[    1.240025] unable to read id index table
[    1.244130] List of all partitions:
[    1.247640] 1f00             768 mtdblock0
[    1.247647]  (driver?)
[    1.254237] 1f01             512 mtdblock1
[    1.254243]  (driver?)
[    1.260812] 1f02          129792 mtdblock2
[    1.260818]  (driver?)
[    1.267376] fe00            2898 ubiblock0_1
[    1.267382]  (driver?)
[    1.274125] No filesystem could mount root, tried:
[    1.274128]  squashfs
[    1.279032]
[    1.282802] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(254,0)
[    1.291279] Rebooting in 1 seconds..

And a faboulous KERNEL PANIC error appair!!! :frowning:
I tried getting help from Google's AI, but I couldn't solve the problem.

Does anyone know how I can fix this?
Thanks everyone in advance!!!

I'm not nsa325 user but instruction is using only 6MiB but it must be more since 25.12.5 image is 6.82MB
I assume this should be like below if 25.12.5 is used
nand write 0x2000000 ubi 0x680000

Edit: it's 0x640000 if you plan to keep your odd choice of 24.10.4

Hi @nicefile, as soon as possible I will try to flash using the new size!
I choose this version because is the last supported current reel for the nsa325 v2 (https://openwrt.org/toh/zyxel/nsa325).

Thanks for your help for now!
I'll let you know if I manage to solve it with your suggestion!

This info is outdated the same way as the flashing method :slight_smile: . 25.12.5 is latest current release for nsa325

Ok, tomorrow I will try to flash the latest release! :flexed_biceps:

Hi @nicefile, I follow your instructions and now the firmware had no issue on loading!

As you suggest I flash the latest release 25.12.5 and set the correct dimension parameter:

nand write 0x2000000 ubi 0x680000

Thanks for your help! Really appreciate!

Now I have problem to access at the web interface but I'll creare a new topic.