Software

From Sharpfin
Revision as of 21:16, 12 December 2006 by Philipp (talk | contribs) (→‎Bootloader)
Jump to navigation Jump to search

This page only discusses the non-proprietary software running on the Barracuda module. We do *not* discuss or reverse engineer the 'Reciva Radio Application'.

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:

GPLVersions.png

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.

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."

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