RaidSonic is a German company releasing products such as media players and multimedia accessories under their ICY BOX brand. One of those products is ICY Box IB-MP401Air music streaming received based on Atheros AR9331, and that looks very similar to SoundMate M2 I reviewed last year.
But if you look on their product page, you’ll find out a few download links:
- ICY BOX IB-MP401Air (multilang) – The Quick Start Guide and User’s manual in English and German
- IB-MP401Air (Source code) – a 648 MB rar file with source code for U-boot and OpenWRT
- IB-MP401Air (Firmware) – The firmware
- IB-MP401Air (Open Source Software) – Just the open source licenses
So I’ve downloaded the source code file (IB-MP401Air_Sources_and%20License_Terms.rar) to have a look. It has two compressed files, one with the license, and IB-MP401Air_Sources.tar.gz with the source code.
tar xzvf IB-MP401Air_Sources.tar.gz
-rwxr--r-- 1 jaufranc jaufranc 1400 Apr 16 16:49 building-the-firmware.txt
drwxr-xr-x 14 jaufranc jaufranc 4096 Feb 12 10:54 dns320B_GPL20150212
-rwxr--r-- 1 jaufranc jaufranc 925 Feb 12 08:25 making-u-boot.txt
The file showing how to build the firmware (OpenWRT) explains you should not use a newer Linux distribution:
Please note that this is an older OpenWrt version that might not build on newer distributions like Fedora 19 or later. If you want to build the firmware on a newer distribution you might need to get extra patches from OpenWrt to work around compilation errors. As an alternative you can install an older Linux distribution to build this firmware on.
Fedora 19 was released in July 2013, but I’ve still tried to build it on an Ubuntu 14.04 machine, and it failed:
x86_64-linux-gnu-gcc -std=gnu99 -I. -O2 -I/media/hdd/edev/sandbox/soundmate/dns320B_GPL20150212/dns320B_GPL20150212/staging_dir/host/include -O2 -I/media/hdd/edev/sandbox/soundmate/dns320B_GPL20150212/dns320B_GPL20150212/staging_dir/host/include -MT clean-temp.o -MD -MP -MF .deps/clean-temp.Tpo -c -o clean-temp.o clean-temp.c
In file included from clean-temp.h:22:0,
./stdio.h:477:1: error: ‘gets’ undeclared here (not in a function)
_GL_WARN_ON_USE (gets, “gets is a security hole – use fgets instead”);
It might build better on older Linux distributions, although you may still have to be ready to fix build errors on the way.