USB Sound

Marvell Orion product family NAS
Post Reply
Posts: 6251
Joined: Mon Jun 16, 2008 10:45 am

USB Sound

Post by Mijzelf » Sat Oct 11, 2008 10:17 am

I own a NSA-220, which I would like to use as music server. So I tried to get USB sound working. I downloaded the kernel sources and build tree at ZyXEL, and managed to build the modules
  • snd-page-alloc.ko
These can be loaded with insmod in this sequence.
Searching the internet I found how to make Alsa nodes:

Code: Select all

mkdir /dev/snd
mknod -m 666 /dev/snd/controlC0 c 116 0
mknod -m 666 /dev/snd/hwC0D0 c 116 4
mknod -m 666 /dev/snd/hwC0D1 c 116 5
mknod -m 666 /dev/snd/hwC0D2 c 116 6
mknod -m 666 /dev/snd/hwC0D3 c 116 7
mknod -m 666 /dev/snd/midiC0D0 c 116 8
mknod -m 666 /dev/snd/midiC0D1 c 116 9
mknod -m 666 /dev/snd/midiC0D2 c 116 10
mknod -m 666 /dev/snd/midiC0D3 c 116 11
mknod -m 666 /dev/snd/midiC0D4 c 116 12
mknod -m 666 /dev/snd/midiC0D5 c 116 13
mknod -m 666 /dev/snd/midiC0D6 c 116 14
mknod -m 666 /dev/snd/midiC0D7 c 116 15
mknod -m 666 /dev/snd/pcmC0D0c c 116 24
mknod -m 666 /dev/snd/pcmC0D0p c 116 16
mknod -m 666 /dev/snd/pcmC0D1c c 116 25
mknod -m 666 /dev/snd/pcmC0D1p c 116 17
mknod -m 666 /dev/snd/pcmC0D2c c 116 26
mknod -m 666 /dev/snd/pcmC0D2p c 116 18
and/or OSS nodes

Code: Select all

mknod -m 660 /dev/mixer c 14 0; chgrp audio /dev/mixer
mknod -m 660 /dev/mixer1 c 14 16; chgrp audio /dev/mixer1
mknod -m 660 /dev/dsp c 14 3; chgrp audio /dev/dsp
mknod -m 660 /dev/dsp1 c 14 19; chgrp audio /dev/dsp1
When I use mpd (with libmad) to play some music both alsa and oss work. But I can play only one playlist. Using alsa mpd hangs hereafter, and I can only kill it by rebooting. Using oss the kernel crashes. I can give one command at the prompt, then the output is 'Killed', and the prompt returns. Then the system is dead. Using another sound source (madplay for oss or aplay for alsa) gives the same result.
I tried two diffent el-cheapo usb cards, a Speed-link SL-8850, and a unbranded 'skype-phone'.

I suppose ZyXEL didn't port the modules they don't use, and that the source is not fully Marvell compatible. The vanilla kernel seems to support Marvell now, so maybe I can just compile one of it's modules in the ZyXEL environment.

Questions: Is it possible that a 'vanilla module' will work in my system? (compiled with ZyXEL's kernel headers and toolchain), and if yes, which module would be the problem? Facing my investigation I suppose the problem rises when mpd closes the device (/dev/dsp or /dev/snd/pcmX?), but I don't see the link between the modules and the nodes.
Is there a way to find out why and in which module the kernel crashes?

Extra information: uname -a gives Linux NSA220 #1 Fri Nov 9 18:46:49 CST 2007 armv5tejl GNU/Linux
When using oss the cpu load is 8% for mpd, when using alsa it's 50%. I suppose the difference is causes by a virtual mixer which is not optimized for a FPU less system?

Posts: 58
Joined: Thu Mar 06, 2008 12:23 pm
Location: Vienna

Re: USB Sound

Post by mindbender » Wed Oct 22, 2008 6:28 am

what about trying to try adding support for the NSA-220 to the vanilla kernel? ... tion_guide
should give you a very good overview about what you need to do.
if the GPL kernel sources are complete it should be possible to create a patch without too much effort.

with a vanilla kernel you should be able to do everything you want depending on the CPU power.

with vanilla kernel support you instantly would gain the option to install gentoo/debian/ubuntu server on your i think that the gain is worth the effort.

Posts: 6251
Joined: Mon Jun 16, 2008 10:45 am

Re: USB Sound

Post by Mijzelf » Wed Oct 22, 2008 6:10 pm

Hey mindbender, nice to see you back here!

While I agree it's the most adequate and satisfying solution, I don't think I'm skilled enough to do so. Even when I managed to patch a kernel to run on my NAS, I still should have to boot the device with the new kernel (how? uboot and tftp? flash the rom?) and add extra software to have more than just a kernel.

I started looking around in Linux when I bought this NAS, in June, and just wanted to be able to move around my files between different shares without the need to up- and download them via Samba. Well, now I know some more tricks, but building a whole system is beyond my scope.

Post Reply