rockbox at fscons 2009

Download Rockbox at FSCONS 2009

If you can't read please download the document

Upload: fscons

Post on 19-May-2015

2.113 views

Category:

Technology


1 download

DESCRIPTION

Daniel Stenberg's Rockbox presentation at FSCONS 2099.

TRANSCRIPT

  • 1. www.rockbox.org Gteborg, FSCONS November 14, 2009 Daniel Stenberg

2. Daniel Stenberg

  • Co-founder of the Rockbox project

3. Embedded systems developer 4. Open source hacker 5. Gadgets Gadgets don't do what we want them to 6. People like to customize things 7. Enter portable music players 2001 Not so fancy 8. How hard can it be? Bjrn Stenberg Linus Nielsen Feltzing Daniel Stenberg Stockholm Sweden, Dec 2001 9. more Freedom Games Music formats Speed Customization Applications 10. And not the least What must not be forgotten... 11. 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 12. make great towers! 13. How to hack an mp3 player Or at least a general description how we've done it so far... 14. Community involve many people! Time consuming Tedious Lots of work 15. Physical components

  • Rip apart

16. Hi-Res scan PCB and publish 17. beep connections 18. Identify components

  • - used to be less hard

19. - custom branded chips 20. SoC is primary 21. What is inside a typical device?

  • SoC (sh, ARM, m68k, MIPS, ...)

22. USB 23. Sound Codec 24. RAM (usually 32MB) 25. Flash (NOR for the program) 26. Flash (NAND these days for everything) 27. HDD (for storage) 28. FM tuner 29. LCD (greyscale, 16bit color, touch, ) 30. Remote 31. Buttons, pads, wheels...

  • Each device is unique and needs adaptations

32. Learn how components work

  • Find data sheets

33. Not always available 34. NDAs like crazy 35. Parts of chips are sublicensed and thus under different licenses/NDAs 36. Manufacturers like secrets 37. This is growing harder and harder 38. Why do graphics chips in the PC world go in the opposite direction? 39. HW tools

  • JTAG

40. BDM 41. UART 42. USB 43. Upgrade format

  • How is an upgrade done?

44. How to create a custom upgrade? 45. Checksums? 46. Scrambled/ encrypted? 47. Digitally signed? 48. Analyze! Inspect many variations 49. Disassemble

  • Figure out main arch (sh, m68k, arm, MIPS, )

50. tricky non-standard" CPU/DSP cores (calmrisc16) 51. Objdump is your friend 52. IDA Pro is expensive 53. Safe test of own code

  • Unbrickable devices

54. Load to RAM 55. Load with HW tools 56. Inject into original / binary-patch 57. Buffer overflow triggered 58. Write Bootloader

  • Based on gathered info, write...
  • LCD code

59. Button code 60. Disk/flash access code 61. Early Rockbox

  • With a bootloader done

62. Make it upgradable on the device 63. Try it 64. Make main Rockbox run:

      • Sound
    • 65. USB
  • 66. Recording

67. FM tuner 68. 69. All others involved

  • IRC

70. Mailing lists 71. Forums 72. Talk. Chat. Test. Report. Help. Share knowledge. Describe progress. Distribute wisdom. 73. Do not expect fast results! 74. So why not your own player?

  • Hard and expensive components, design, manufacture etc

75. SW is basically done without costs, HW is not 76. Lyre builds player(s) to run Rockbox 77. Rockbox the OS

  • Rockbox is not Linux

78. Small 79. Written from scratch 80. Cooperative multitasking with priorities 81. Message queues 82. UI with graphics methods 83. Loadable plugins 84. Loadable codecs 85. Themeable looks 86. Rockbox Development

  • Gcc, make, shell, perl

87. We build our own cross-compiler 88. SVN 89. Build your own binary in 30 minutes from scratch 90. Mostly C, small parts in assembler 91. Maintain functionality

  • Simulators tests high level code without HW access

92. Distributed build system (150 builds in 4 minutes) 93. Downloadable binaries after every commit 94. Bug tracker 95. 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)

96. Gapless playback 97. 5-band fully-parametric equalizer, and crossfeed 98. High-resolution volume control 99. Advanced crossfading 100. Cuesheet support 101. Album Art Support 102. Accessability

  • Browse songs with a tag database or file system

103. Unicode support with fonts 104. Multilingual interface 105. Optional spoken interface 106. Target-specific detailed 200+ pages manual! 107. Non-playback (aka rubbish)

  • Themes

108. 100 plugins/apps 109. Games, including Doom 110. Emulators 111. MPEG videos 112. View pictures 113. and more! 114. People like skinning 115. 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

116. The Team

  • 80+ committers, 500 named contributors

117. 900K lines of code 118. IRC 119. Distributed decisions 120. Rockbox Steering Board 121. 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.

122. Policies

  • GPL v2 or later

123. Legal 124. Real name policy 125. No anonymous contributions 126. We discourage piracy 127. Easy to install

  • Rockbox Utility

128. Linux, Windows and Mac 129. It rocks!