I bought a Neuros audio player recently, because the prices dropped to a very reasonable level. When it arrived, I naturally wanted to make it play Vorbis files, preferably using only my Debian system. This turned out to be possible, but I ran into several problems along the way. I couldn't find any single comprehensive howto document which covered all of this, so I thought it might be worthwhile to write this.
My computer is a generic i386 box (Athlon XP) running Debian GNU/Linux unstable ("sid"). It's got a VIA KT400 motherboard chipset, and three of the USB controllers show up in lspci as USB Controller: VIA Technologies, Inc. USB (rev 80). The fourth shows up as USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82).
I'm running Linux 2.4.21 at the moment; this is a custom kernel, with almost everything configured as a module. (I like having the flexibility to load or unload modules for future hardware, and to be able to change driver parameters without rebooting.)
The first challenge was to get USB mass storage support working under Linux. I'd never done that before. I've used my digital camera with OpenBSD, where it's extremely simple -- literally plug and play with the generic kernel. Under Linux, it's not as simple.
Apparently just loading the usb-storage module is not enough. The module will load, but it doesn't do anything! You have to load a "host controller" driver as well. This is not obvious, and not well documented.
modprobe uhci modprobe usb-storage echo uhci >> /etc/modules echo usb-storage >> /etc/modules
Some people may have to use a different host controller driver than uhci. If uhci doesn't work for you, then try usb-uhci or usb-ohci. Or maybe usbcore will be enough -- some of the older documentation I've seen didn't mention controller drivers at all, so you may have to dig around a bit.
When you've done this, you should be able to plug the Neuros into your USB port and see a new SCSI disk appear in the output of dmesg. If you see that there's a SCSI disk detected, but you can't find the name of the device, it's probably sda. Verify that the device is correct by probing it for a partition table:
fdisk -l /dev/sda
You should see something like this:
Disk /dev/sda: 20.0 GB, 20003864576 bytes 16 heads, 32 sectors/track, 76308 cylinders Units = cylinders of 512 * 512 = 262144 bytes Device Boot Start End Blocks Id System /dev/sda1 1 76309 19535024 b Win95 FAT32
Now you need to arrange for your normal user account to be able to mount it. Add a line like this to your /etc/fstab file:
mkdir /neuros echo "/dev/sda1 /neuros vfat user,noauto 0 0" >> /etc/fstab
From this point, everything you do (except for some software installation, shown below) should not require root permissions. You should be able to mount the Neuros by typing mount /neuros as your normal user account. Don't forget to unmount it (umount /neuros) when you're done with it, before you disconnect the USB cable.
My Neuros was shipped with firmware version 1.38 (which you can see by reading the version.txt file on the Neuros). To play Vorbis files, you need at least firmware version 1.40. So you need to download the new firmware and install it on the Neuros.
cd wget http://www.neurosaudio.com/files/woid_0140_beta.exe cd /tmp unzip ~/woid_0140_beta.exe Now, unmount the Neuros and turn it off by holding Play. Unplug the power cord and the USB cable. Hold the Down button while pressing Play to turn it back on. Connect the USB cable. Mount the Neuros, copy the firmware to it, and unmount it: mount /neuros mkdir /neuros/Firmware cp Firmware/woid.hex /neuros/Firmware umount /neuros Wait until the Neuros says USB IDLE. Unplug the USB cable. Follow the instructions on the Neuros's screen. rm Readme.txt Firmware/woid.hex rmdir Firmware cd
Obviously, the instructions above will give you firmware version 1.40, which is the latest "beta" version of the firmware as of this writing. But version 1.40 is not fully optimized for Vorbis decoding at higher quality levels (above quality 4 or so). If you have high-quality Vorbis files you want to play, you'll probably have to get a pre-beta firmware from open.neurosaudio.com. The instructions for that are basically the same as above, just substituting the filenames and skipping the unzip.
To manage the Neuros under Linux, you need a program called Positron. To make it manage Vorbis files, you also need some Python module packages. You can get all this in Debian (unstable):
su apt-get install positron python-pyvorbis exit
Installing python-pyvorbis will also bring in python-pyogg.
Now, as your normal user, you need to configure Positron. There are two steps to this, one of them obvious, the other non-obvious. Make sure you have upgraded the firmware to version 1.40 or higher before you do the second step!
mount /neuros (if you haven't yet) positron config Now, edit your ~/.positron/config file and change the last line from oggvorbis_support=false to oggvorbis_support=true (for some reason, the configuration didn't do this for me, and didn't even ask me about it or warn me that Vorbis wouldn't work until I did this).
When I booted up the Neuros, it ran through some initialization steps, but they seem not to have worked properly. I was supposed to have a database directory called WOID_DB on the Neuros -- but it wasn't there! Everything I tried failed because it expected this database to exist, and I couldn't find clear instructions on how to create it. I was nearly reduced to trying to install the Windows software on a Windows machine (eeek!) -- but fortunately my wife was using the Windows machine, so I had to work harder at finding an answer.
It turns out that the Positron software can create the database -- but only if you help it by creating a couple directories first.
Skip this step if you already have a database on your Neuros! mount /neuros (if you haven't yet) mkdir /neuros/WOID_DB mkdir /neuros/MUSIC positron rebuild
Well, at this point all the hard stuff is done. If you looked at Positron or its documentation, you probably figured out how to use the positron add command to copy files over. But just in case you haven't:
mount /neuros (if you haven't yet) cd /where/your/music/is positron add file1.ogg file2.ogg file3.ogg ...
You can also add MP3 files.