Brought a WRT350N v2 from the flea markets last week ($20), installed OpenWRT 10.03.1 using the WinXP firmware upgrade utility. After that installed I then installed some additional packages (full list).
So at this point I was able to insert a cheap USB sound card in the rear and it would detect it. I was able to change the volume using alsamixer for testing.
Now for the frustrating part, cross compiling squeezeslave to execute it on the WRT350Nv2. I tried a few precompiled binaries, but they were no good. The basic steps I took were:
- Download OpenWRT SDK.
- Make sure you’ve gotten the required packages installed in your host machine, check here as a reference.
- Download additional packages for the router using opkg or the web-interface, this will allow the use of the USB port and install alsa for sound control.
- Download and extract squeezeslave source into the SDK packages directory (I chose packages because I was going to compile it as a IPKG package).
- Use this Makefile.txt (the PATHs and others need editing if you want to use it).
If you have a use for it you can download the final cross-compiled binary here: squeezeslave. As a general list of dependencies for the router I have included a list of all packages installed and their version: OpenWRT_Packages
Once it’s all setup you just need to add squeezeslave to the startup scripts:
- In the OpenWRT web interface, goto SYSTEM -> STARTUP scroll down to local startup and paste your details there:
“/usr/bin/squeezeslave -o3 -R 192.168.80.1 -m00:00:00:00:00:07 -Msqueezeslave_WRT350N.log”
Listened to Comedy 104 channel for over 3hrs – very funny and it performed perfectly. The USB sound card I’m now using is a Topping TP30 which I has an inbuilt amp.
Issues while cross-compiling Squeezeslave:
- Some of the support source files downloaded were different versions than the make file expected. Manually exctract the files to the directory that the script is looking for.
- The Flac source files were painful, I forget the exact error I got, but it had to be compiled manually, and then I commented out the section in the Makefile. The attached Makefile still has this edit, remove it if your going to use it.
I know that cross-compiling can have issues, just read the error logs and persist 🙂 This whole experience has made me re-think my base OS for this project. I quite like openwrt as an embedded OS.