The easiest way is to compile it on the NAS itself.
Install the compiler and screen:
apt-get install gcc screen
Download the kernel sources from ftp://opensource.zyxel.com/NSA-220/3.24.update.Apr.08/
(They can be found in build_NSA-220.tar.gz)
Unpack the tarball, and the linux tarball inside. This gives you a directory linux-22.214.171.124. In this directory 'it happens'.
Edit the file Makefile. Put a # before the CROSS_COMPILE declaration.
You'll need a .config file. You can start with the one in you current kernel. run 'modprobe configs' , now you have a pseudo file /proc/config.gz, which you can decompress to .config. Put it in the linux directory. (Maybe there is one, just overwrite it).
Now, in the linux directory, run 'make menuconfig'. After some compiling you get a kernel configuration editor. In 'General setup->Local version' put some nice append. '-sound', maybe.
Your option can be found here:
Symbol: USB_EHCI_TT_NEWSCHED [=n]
│ Prompt: Improved Transaction Translator scheduling (EXPERIMENTAL)
│ Defined at drivers/usb/host/Kconfig:53
│ Depends on: USB_EHCI_HCD && EXPERIMENTAL
│ -> Device Drivers
│ -> USB support
│ -> Support for Host-side USB (USB [=y])
│ -> EHCI HCD (USB 2.0) support (USB_EHCI_HCD [=y])
For some reason I can't enter the USB support menu. A damaged .config, maybe. When you can't either, you can edit .config directly.
Exit the editor, save the .config, and you are ready to build. This will last several hours, so here we use screen.
The compilation runs in screen, and you can close your shell. When you want to pick it up later, run 'screen -r'.
After several hours the compilation is done. Install the kernelmodules
(Here is the Local version important. If you didn't change it, this will overwrite your current modules. And probably the new modules are not compatible with your current kernel). You can find the kernel (zImage) in arch/arm/boot. Put it in /boot, and change the symlink so this kernel will be used. Reboot.