Rockbox

From Wikipedia, the free encyclopedia

Rockbox
Image:Rockboxlogo.png

iPod Video using default theme
Website www.rockbox.org
Company/
developer
The Rockbox Project
Programmed in C, Assembly language
OS family Embedded operating systems
Source model Open source
Initial release unknown
Latest stable release 2.5 / September 22, 2005 and current build Daily
Marketing target Firmware replacement for digital audio players
Supported platforms ColdFire
Default user interface Graphical user interface
License GNU General Public License

Rockbox is a free software replacement for the firmware held on various forms of digital audio players (DAPs). Rockbox offers an alternative to the host device's operating system firmware (in many cases without removing the original firmware) which provides a plug-in architecture for adding various enhancements and functionality to DAPs which are not present in the original OS. Enhancements include PDA functionality, applications, utilities, and games. Rockbox can also retrofit video playback functionality onto DAPs first released in mid-2000. Rockbox also includes a voice-driven user-interface suitable for operation by blind and visually impaired users.

Rockbox runs on a wide variety of portable audio devices with very different hardware abilities: from early Archos players with 1-bit charcell-based displays to modern players with high resolution color displays, digital optical audio hardware and advanced recording capabilities. In many instances, rather than being run from flash memory, a minimal bootloader is installed in the supported device's flash which is capable of loading either Rockbox from the hard disk or, alternatively, the original factory firmware. Installing to flash is also supported on certain devices.

Released under the GNU General Public License, Rockbox is free software.

Contents

[edit] Development

The Rockbox project began in late 2001 and was first implemented on the early Archos series of hard-disk based MP3 players and player/recorders, including the flash-only model Ondio, because of owner frustration with severe limitations in the manufacturer-supplied user interface and device operations. These devices have relatively weak main CPUs and instead offload music playback to dedicated hardware MP3 decoding chips (called the MAS). Rockbox, therefore, was unable to significantly alter playback capabilities. Instead, it offered a greatly improved user interface and added plugin functionality not present in the factory firmware. Rockbox is capable of being permanently flashed into flash memory on the Archos devices, making it a literal firmware replacement.

Versions of Rockbox have since been produced for more sophisticated devices. These perform audio decoding in software, allowing Rockbox to potentially support many more music formats than the original firmware as well as bringing the extensibility and increased functionality already present in the Archos ports. Rockbox is run from the hard disk on these devices, after being started with a custom bootloader, so to upgrade Rockbox users need only copy the files onto the player's drive and restart the device. Reflashing is only necessary when changing the bootloader, and on some platforms, is not required at all.

The first of these ports, beginning in late 2004, was for the ColdFire-powered devices manufactured by iriver, focusing on the H1xx series of hard drive players (H110/H120/H140). Approximately one year later a port for the H3xx series became functional, offering similar functionality.

In late 2005, work began on a port of Rockbox to Apple iPod portable players. Throughout 2006, Rockbox ports were made available for a variety of iPod models (iPod photo, iPod nano, iPod 4g, iPod mini, and iPod Video), as well as the Cowon iAUDIO X5 series. As of February 2007, usable ports are also available for the iriver H10 and Toshiba Gigabeat F & X series. As of March 5th, 2007, a new port for the Cowon iAUDIO M5 became functional. On March 11th, 2007, the SanDisk Sansa e200 series became the next addition to the Rockbox lineup. On May 23rd, 2007, support for the iPod video 80 GB model was added, completing the iPod video lineup. On July 27, 2007, initial support was added for the iPod 1G and 2G. On September 23, 2007, the Sansa c200 series was welcomed into the lineup. On March 18th, 2008, the Olympus m:robe 100 became the first new port of 2008, and the iAUDIO M3 joined the lineup days later. Rockbox now includes video-support for MPEG playback through the included work-in-progress mpegplayer plugin.[1]

To date, all Rockbox ports have been accomplished by reverse engineering with little or no manufacturer assistance. However, as free software, many Rockbox developers and supporters hope to eventually see official manufacturer support for new ports, or at least unofficial assistance in porting Rockbox to new devices. To date, only a few companies have expressed interest in Rockbox, and none have officially contributed code to the project or included it with their hardware. The Sansa port is the first to be started at the request of the hardware manufacturer who gave the Rockbox team samples of their devices.

Rockbox is continuously developed, with new SVN builds being released after every source change.

[edit] Customization

Subject to the limitations of each particular platform, the appearance of Rockbox can be customised in various ways. Fonts and foreground and background colours can be added and selected, while a simple markup language can be used to create themes for the menu and while-playing screens. These themes can include background and other images (such as icons), plus various formats for filenames, ID3 tags, file progress, time and system information. Album art (though rudimentary -- it does not support embedded album art and only the BMP file format) has become official as of November 11, 2007.

Rockbox has been essentially a file-tree based player, to which folders could be dragged and dropped, then navigated by folder structure. More recent versions, however, have included a database feature which allows the player to compile information from the files' ID3 tags. The user can then navigate the files using this database regardless of file structure.

[edit] Features

[edit] Codecs

Rockbox on software decoding platforms (non-Archos) supports playback (depending on how you count them) of eight lossy codecs, five lossless, two uncompressed and four miscellaneous formats. This makes a conservative total of 19 supported audio formats, although a few of them do not operate in realtime on all platforms.

MPEG audio layers I-III (MP3/MP2/MP1), Ogg Vorbis, MPEG-4 AAC, Musepack, AC3, WMA, Speex, and the lossy portion of WavPack hybrid files are supported lossy formats. Lossless formats include FLAC, WavPack, Shorten, Apple Lossless and Monkey's Audio. Rockbox plays Intel-style WAV and Apple AIFF uncompressed audio. In addition, there are playback of game audio types ADX, SID, NSF and SPC. The MOD tracker format is also now supported.[2]

Note that Monkey's Audio support is in the early stages with only the lowest compression settings playing in realtime on most devices. Also note that any file with DRM scheme will not playback in Rockbox. As Rockbox is an open source project this feature will intentionally never be implemented.

[edit] Rockbox features

Beside the ability of playing and recording audio files, Rockbox offers many playback enhancements that other firmwares may not have implemented yet. Listed below are a handful of these features.

[edit] Plug-ins

Developers of Rockbox are able to create new plug-ins, which provide the user with other enhancements that may not be available on various firmware modules.

At the current development stage, the following plug-ins are available.

[edit] Unimplemented features

Rockbox development is always ongoing. However, either due to the lack of support from external companies or platform drawbacks, Rockbox has a few features which are not yet implemented.

[edit] Architecture

Rockbox uses a simple kernel,[9] with a flat memory model (allowing it to run on platforms without a memory management unit) and single process. Thin threads run cooperatively, returning control to a scheduler that prioritizes the audio thread; the only form of preemption is through interrupts. The operating system and plugins are written in C, with assembler used for device- and platform-specific code, in addition to performance sensitive code. The simple and lightweight architecture allows Rockbox to run on a variety of targets, with memory ranging from 1 to 64 MB, and CPU speeds ranging 12 to 532 MHz. Rockbox also provides limited support for multicore and asymmetric multiprocessor systems.

[edit] Supported devices

iPod mini with Rockbox software
iPod mini with Rockbox software

Only Archos devices have been declared to be officially supported in a release. The following should be considered to be a list of devices that at least substantially work (listed as "Supported" or "Usable" on the Rockbox wiki Device Chart). See the Rockbox Device Chart for details.

[edit] Archos

[edit] iriver

[edit] Cowon iAUDIO

  • X5 and X5L
  • X5V
  • M5 and M5L
  • M3 and M3L

[edit] Apple

[edit] Toshiba

[edit] SanDisk

"v2" versions of the Sansa are not yet supported.

[edit] Olympus

[edit] Ports in development

Rockbox is developed by users of various portable players. Users interested in porting Rockbox to their platform are always welcome to join development efforts. [4] In principle, any device based on a CPU with a GCC port is a possible target for Rockbox, however devices that are based on components already used by existing rockbox ports are easiest to develop. Devices based on parts with no public documentation or that aggressively protect their firmware with hash checking or encryption are more difficult to port.

[edit] Apple

Work on Rockbox for the iPod nano (second and third gen), iPod Touch, and the iPod Classic has not begun due to firmware encryption that Apple places on all new iPods.

[edit] Toshiba Gigabeat S

Work on a port to the Toshiba Gigabeat S is nearly complete. The display driver, disk access, USB and audio playback now work. A more user friendly method of installation is being worked on.

The Gigabeat S port, once in a functional state, might allow the Gigabeat V and T series to join the lineup with minimal effort. Both the V and T series are largely based on the hardware platform of the S series.

[edit] Creative ZEN Vision:M

A port to the Creative ZEN Vision:M is in progress. Some initial work has been committed to SVN.

A functional port for the ZEN Vision:M would allow a port to the ZEN Vision:W to join the lineup, as the two devices share much of the same hardware.

As of April 21st 2008, a Rockbox developer, mcuelenaere has succeeded in booting Rockbox on a Zen Vision:M. The controls on the player have yet to be implemented. See [5] for more information.

[edit] iriver iFP-xxx

A port to the iFP-xxx flash-based devices (starting with the iFP-790) is underway. Runs but development no longer appears to be active. Limited memory and CPU power prevent it from playing most formats. An open source emulator to aid in development for the iFP is available.[10]

[edit] Tatung Elio TPJ-1022

The Elio TPJ-1022 is another PortalPlayer based target with initial work that has been committed to SVN. Development on this port is currently inactive.

[edit] Philips GoGear SA9200

Some recent SVN activity has shown that a port for the Philips GoGear SA9200 series is in the works.

[edit] Olympus m:robe 500

A small flurry of recent SVN activity has indicated that a port to the m:robe 500 series is being worked on. It is stated that this will open the way for some new targets.

Rockbox does boot and play audio on the m:robe 500, and work on getting the touchscreen fully working is underway. No official builds have been released yet.

[edit] Telechips-based players

An effort has begun to port Rockbox to players utilizing the series of Telechips SoCs (system-on-a-chip). A large number of players including the iriver clix2, iAudio 6/7/T2/F2, Cowon D2, various models of the Samsung Yepp, the Logik DAX, SanDisk Sansa c100 and m200, and many generic or regionally-branded devices utilize these chipsets.[11]

Of all of the listed players above, the Cowon D2 has seen the most progress, with significant work already committed to SVN. The Sansa m200 also has work committed to SVN, but its functionality is currently limited to a very basic bootloader.

[edit] Rockbox Player

Rockbox Player is an ongoing efforts to design and build a Free/Open hardware audio player and recorder, for use with Rockbox firmware.

[edit] Gallery

[edit] See also

[edit] References

  1. ^ a b The mpegplayer plugin supports MPEG-1 and MPEG-2 video streams with MPEG audio (layer II/III) multiplexed into .mpg files with no hard limits on frame rate or bitrate. Files must be encoded at native screen resolution. Seeking is now implemented. [1]
  2. ^ As of revision 17595 (12:19, 21 May 2008 (UTC))
  3. ^ a b c Software decoding targets only
  4. ^ MP3, WavPack and AIFF are available on non-Archos devices. Multiple sample rates and bitrates available (hardware-dependent).
  5. ^ Some limitations. Details at Rockbox Wiki [2]
  6. ^ 129 shade greyscale is achieved on 1 bit and 2 bit (4 shade) greyscale targets due to exploitation of the slow passive LCD refresh rate.
  7. ^ Rockboy supports original Game Boy and Game Boy Color ROMs.
  8. ^ ZXBox emulates ZX Spectrum 48. The original site of Spectemu. [3]
  9. ^ About the Rockbox kernel
  10. ^ The iFP port page
  11. ^ Rockbox TelechipsInfo wiki page

[edit] External links