Rockbox at FSCONS 2009
Upcoming SlideShare
Loading in...5

Rockbox at FSCONS 2009



Daniel Stenberg's Rockbox presentation at FSCONS 2099.

Daniel Stenberg's Rockbox presentation at FSCONS 2099.



Total Views
Views on SlideShare
Embed Views



5 Embeds 600 412 180 6 1 1


Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Very beautiful slide, thanks for sharing.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • About Rockbox and how to get Free Software on mp3 players.
  • Work at haxx 20 something projects 15K something public commits Open source contributor since 1995
  • We all have gadgets that don't work like we wish they would For many years my mobile phone had lots of quirks I didn't like but couldn't make it stop doring.
  • And we already appreciate and enjoy customizing our softwares and operating systems thanks to free and open software.
  • The first portable music players appeared 2001 Archos was not the first, but one of the absolutely first harddrive based ones as the flash-based ones only had very very tiny storage back then 6GB disk, 12MHz SH7034. Dedicated mp3 decoding chip. 2MB ram.
  • Let's make it better. Call out to get interested people to join.
  • Figuring out what we could do with our own software certainly was not the problem.
  • We already have code running on a few more models since I made this slide a few weeks ago and I find it telling. A device is often called target and vice versa
  • This is an old tradition and ritual of ours – some would even call it a sport. To build the biggest possible tower out of devices that can run Rockbox.
  • Probably applies to a lot of other sorts of devices but this talk is limited to portable music players only since that is what Rockbox runs on.
  • Web site, wikis, mailing lists, forums. The more the merrier
  • Various amounts of these parts can be embedded into the same circuit/SoC
  • UART and USB are mentioned as they can be used to output data through and to use gdb on target with etc. Some Ofs even used (removed) UART to output debug messages.
  • Finding a non-standard one without for example gcc port could in itself be a blocker for further work!
  • Bricking devices is uncool JTAG and BDM might be able to download code to RAM
  • We like dual-booting abilities The first-stage booting is even more very different between targets
  • The steep uphill battle is done. Now the slightly more casual work begins.
  • HW development is different - you need real money to make physical things MPEG, USB, SD etc licenses and “IP rights”
  • We run on hard-drive devices with 2MB ram only, and then lots of that is used to buffer compressed music! Some recent flash-based players have even less ram.
  • Traditional-style *nix-based cross-compiled development
  • The simulator pops up a window looking like the target and it simulates the low layer APIs.
  • Excellent audio playback is our primary focus
  • We have a fairly large blind and visually impaired user-base thanks to our spoken interface, that works with pre-recorded sound-snippets played back when you hover over menu items. Manuals built daily and provided on site non-stop.
  • Our focus on audio playback has made one or two people call the non-audio stuff “rubbish” or similar over the years. We emulate various old game systems. Doom is a native port, not an emulator. MPEG1 and 2 videos with fairly good frame rates on most devices.
  • We have a dedicated theme site for people to upload their own creations for their particular device.
  • Existing other Open source and Free Software projects make Rockbox possible. We could not have done this by ourselves.
  • Developer conferences take place in the US and in Europe roughly once a year.
  • Real name to emphasis our legal standpoint, to get a proper track of who did what and to avoid the nickname craziness many “hacking” projects use.
  • Fancy UI point-and-click makes installing a breeze!
  • Makes your mp3 player run Free Software

Rockbox at FSCONS 2009 Rockbox at FSCONS 2009 Presentation Transcript

  • Göteborg, FSCONS November 14, 2009 Daniel Stenberg <>
  • Daniel Stenberg
    • Co-founder of the Rockbox project
    • Embedded systems developer
    • Open source hacker
  • Gadgets Gadgets don't do what we want them to
  • People like to customize things
  • Enter portable music players 2001 Not so fancy
  • How hard can it be? Björn Stenberg Linus Nielsen Feltzing Daniel Stenberg Stockholm Sweden, Dec 2001
  • more Freedom Games Music formats Speed Customization Applications
  • And not the least What must not be forgotten...
  • Sandisk Sansa c100, Onda VX747, SanDisk Sansa Fuze, Sandisk Sansa Clip v1, iAudio M5, Archos FM Recorder, Cowon iAudio 7, iAudio X5, Apple iPod Mini 2nd gen, Apple iPod color/photo, Archos Recorder V2, Onda VX767, Logik Dax, Philips GoGear HDD6300, Samsung YH-925, Olympus M-Robe 500, Apple iPod 3rd gen, SanDisk Sansa c200, Tatung Elio, Archos Ondio FM, iriver H100/H115, Archos Recorder, Apple iPod Nano 2nd gen, iriver H120/H140, Archos Ondio SP, iriver H10 5GB, Philips GoGear SA9200, Philips GoGear HDD1800, Sandisk Sansa m200, Toshiba Gigabeat F/X, SanDisk Sansa e200 v2, Archos Jukebox 5000, Samsung YH-820, Apple iPod Nano 1st gen, iriver H320/H340, Creative ZVM, Apple iPod 4th gen gray, Cowon D2, Meizu M6, Archos Jukebox 6000, Toshiba Gigabeat S, Apple iPod Video 60 GB, Olympus M-Robe 100, Apple iPod 1st and 2nd gen, Samsung YH-920, Apple iPod Video 30 GB, Apple iPod Mini 1st gen, iAudio M3, Sandisk Sansa c200v2, iriver H10 20GB, Philips GoGear HDD1600, SanDisk Sansa e200 52 models and counting
  • … make great towers!
  • How to hack an mp3 player Or at least a general description how we've done it so far...
  • Community involve many people! Time consuming Tedious Lots of work
  • Physical components
    • Rip apart
    • Hi-Res scan PCB and publish
    • beep connections
    • Identify components
      • - used to be less hard
      • - custom branded chips
      • SoC is primary
  • What is inside a typical device?
    • SoC (sh, ARM, m68k, MIPS, ...)
    • USB
    • Sound Codec
    • RAM (usually 32MB)
    • Flash (NOR for the program)
    • Flash (NAND these days for everything)
    • HDD (for storage)
    • FM tuner
    • LCD (greyscale, 16bit color, touch, …)
    • Remote
    • Buttons, pads, wheels...
    • Each device is unique and needs adaptations
  • Learn how components work
    • Find data sheets
    • Not always available
    • NDAs like crazy
    • Parts of chips are sublicensed and thus under different licenses/NDAs
    • Manufacturers like secrets
    • This is growing harder and harder
    • Why do graphics chips in the PC world go in the opposite direction?
  • HW tools
    • JTAG
    • BDM
    • UART
    • USB
  • Upgrade format
    • How is an upgrade done?
    • How to create a custom upgrade?
    • Checksums?
    • Scrambled / encrypted?
    • Digitally signed?
    • Analyze! Inspect many variations
  • Disassemble
    • Figure out main arch (sh, m68k, arm, MIPS, …)
    • tricky non-”standard&quot; CPU/DSP cores (calmrisc16)
    • Objdump is your friend
    • IDA Pro is expensive
  • Safe test of own code
    • “ Unbrickable” devices
    • Load to RAM
    • Load with HW tools
    • Inject into original / binary-patch
    • Buffer overflow triggered
  • Write Bootloader
    • Based on gathered info, write...
    • LCD code
    • Button code
    • Disk/flash access code
  • Early Rockbox
    • With a bootloader done
    • Make it “upgradable” on the device
    • Try it
    • Make main Rockbox run:
          • Sound
          • USB
          • Recording
          • FM tuner
  • All others involved
    • IRC
    • Mailing lists
    • Forums
    • Talk. Chat. Test. Report. Help. Share knowledge. Describe progress. Distribute wisdom.
    • Do not expect fast results!
  • So why not your own player?
    • Hard and expensive – components, design, manufacture etc
    • SW is basically done without costs, HW is not
    • Lyre builds player(s) to run Rockbox
  • Rockbox the OS
    • Rockbox is not Linux
    • Small
    • Written from scratch
    • Cooperative multitasking with priorities
    • Message queues
    • UI with graphics methods
    • Loadable plugins
    • Loadable codecs
    • Themeable looks
  • Rockbox Development
    • Gcc, make, shell, perl
    • We build our own cross-compiler
    • SVN
    • Build your own binary in 30 minutes from scratch
    • Mostly C, small parts in assembler
  • Maintain functionality
    • Simulators – tests high level code without HW access
    • Distributed build system (150 builds in 4 minutes)
    • Downloadable binaries after every commit
    • Bug tracker
  • Playback
    • 15 Codecs (MP3, Ogg Vorbis, WAV, MPC, AC3, AAC, WMA, ADX, Speex, Cook, ATRAC3, AIFF, FLAC, ALAC, Wavpack, Shorten, Monkey's audio, SID, MOD, NSF, SPC, MIDI, GBS, SAP)
    • Gapless playback
    • 5-band fully-parametric equalizer, and crossfeed
    • High-resolution volume control
    • Advanced crossfading
    • Cuesheet support
    • Album Art Support
  • Accessability
    • Browse songs with a “tag database” or file system
    • Unicode support with fonts
    • Multilingual interface
    • Optional spoken interface
    • Target-specific detailed 200+ pages manual!
  • Non-playback (aka rubbish)
    • Themes
    • 100 plugins/apps
    • Games, including Doom
    • Emulators
    • MPEG videos
    • View pictures
    • … and more!
  • People like skinning
  • Standing on the shoulders...
    • libmad, wavpack, ffmpeg, Ogg Vorbis, liba52, Speex, libfaad, Doom, gnuchess, gnuboy, Pacman Instructional Emulator, Spectemu, libmpeg2, Game_Music_Emu, OpenSPC DSP emulator, ALAC decoder, UCL, iPod Linux, Vision-8 Emulator, robotfindskitten, libmtp, asap, libpng
  • The Team
    • 80+ committers, 500 named contributors
    • 900K lines of code
    • IRC
    • Distributed decisions
    • Rockbox Steering Board
    • We meet at devcons!
    • This is one of the largest open-source teams in the world, and is in the top 2% of all project teams on Ohloh.
  • Policies
    • GPL “v2 or later”
    • Legal
    • Real name policy
    • No anonymous contributions
    • We discourage piracy
  • Easy to install
    • Rockbox Utility
    • Linux, Windows and Mac
  • It rocks!