Software
This page only discusses the non-proprietary software running on the Barracuda module. We do *not* discuss or reverse engineer the 'Reciva Radio Application'.
If you think you can help build this public information resource, please create an accountand get involved.
Using JTAG To Install an SSH Shell
The project purpose is to provide an alternative open source solution to the Reciva proprietary software. In order to do this, access to the radio is needed. The following description details how this is achieved using JTAG to dump and restore a modified root image.
GPL Firmware
The reciva radio uses a distribution of Linux for the kernel / core, which is available from The Reciva Server. Interestingly, there are several different releases that contain identically marked (and sized) tarfiles !
Several versions are available, and are summarised in the following table:
Bootloader
The good bootloader, found on the Riscstation is the ABLE Bootloader, it is possible that this is the loader which is used on the radio module. This is the bootloader shipped with 'bast' platform Samsung 2410 Evaluation Board. The ABLE bootloader is proprietary software from Simtec Electronics. An open source project would have to replace this software with another bootloader such as Das U-Boot.
Bootloader Information Resources
Operating system and device drivers
The Barracuda module runs Familiar Linux. Familiar Linux is a derivative of Debian Linux. Debian Linux has been ported to several ARM platforms, including bast . The reference platform for bast is the Simtec Electronics EB2410ITX Evaluation Board.
Linux 2.4.26 is running on the ARM CPU within the Samsung device. Sourcecode for drivers for the following devices is acknowledge to be available :
- USB Host device
- PCM audio output
- UART
- 'BAST' real time clock
- I2C interface (what's on the bus?)
- IRDA driver for 'NSC PC87108/PC87338' (is this onboard?)
- LCD (tm13264cbcg / mg1203d / ...)
There is no network interface available onboard, a USB network adapter is used.
It seems that Reciva used the 'bast' ARM architecture as a base for their own development.
"Bast is a modern ARM 920 board with a 266MHz Samsung processor. It has integrated IDE, USB, Serial, Parallel, audio, video, flash and two ethernet ports. This system has a good bootloader which is also found on the CATS and RiscStation systems."
(bast, cats, and riscstation are evaluation boards by Simtec Electronics)
Additional information about Linux on the 'bast' platform can be found here.
System libraries + utilities
The following libraries and applications will be needed at least for implementing radio software:
- C-library (glibc/uclibc?)
- Flash write/erase tools: mtd-utils
- Shell + basic unix tools (busybox!)
- codec libraries (libmad, libogg, libvorbis, libflac, etc)
- Support for WLAN and security: wireless tools and wpa_supplicant
- networking libraries for HTTP, RTP, RTSP, MMS, etc
- Webserver (boa?)
- Preferably a scripting language for rapid development and CGI scripts. Lua, perl, ruby ?
'Radio' application
On top of all this, the 'radio application' will be running. This application might consist of various processes, daemons, CGI-scripts, etc.
The main functions will be
- Handling of the user interface: LCD, buttons and led's
- Configuration of the device using a web server
- Network streaming + audio decoding. VLC for a quick start ?
- ...
GPIO
The software source refers to the various GPIO signals: GPIOSignals
I2C
GPIO provides sets of pins where the board can act as both an I2C master and a slave. Reciva say that the module can be controlled over I2C in slave mode, instead of a directly connected display and keyboard.