I have an NSA320 I have just installed arch linux on. This seems to generally work well. However I have been trying to get my nas to power off overnight. The original zyxel firmware has an option to let me specific a time each day to power off and then power on again.
Initially attempts to power off would result in a kernel panic - although rebooting worked ok. Pulling the power plug and putting it back in again caused the nas to boot up again - also with working ethernet. I tried both the initial "linux" kernel and also the "linux-kirkwood" kernel with no luck. Digging into the issue it seems like the gpio call does not do anything - thus leading the kernel to fallback to a panic.
I have since downgraded my initial firmware to 4.23 (from 4.60) and I no longer get the kernel panic. It seems to either reboot or power off successfully (I've not quite worked out the pattern for each state). However I now find that if I do power off, my network device doesn't come up. netcfg <profile> lists the device as [BUSY]. I have to boot back into the stock firmware to enable ethernet again.
I've tried the trick with the power-on-resume script, but this doesn't appear to help.
I've found some orginal firmware sources listed at http://gpl.nas-central.org/ZYXEL/. Poking about there looks to be a fair bit of extra stuff happening in the board init and power off around the network device. I also noted a second RTC device (which explains why my attempts to set a wakeup alarm of the first rtc did nothing).
I note in this thread - viewtopic.php?f=27&t=3851&start=20 - there is talk of a test kernel to embed some of the changes from the stock firmware. Did this ever go anywhere?