A little while ago I participated in an IT Solutions Journal open call article about my experience with the Rockbox open source project. I am a big fan of open source projects because they are built on voluntary effort by communities of people who want to see some product reach its full potential (which is not provided by the original manufacturer). My first, and current, mp3 player is an iRiver H120. This thing is 4-5 years old and still working great. I got this over an iPod because of its hardware capabilities and because of the custom software that was available from the Rockbox project. The article describes more about Rockbox software and open source projects (like those in the Useful Programs section) in general. It’s posted here at the ITSJ website, but I also included it below. Click to read more…
Rockbox is an Open Source Project that provides custom firmware for a variety of mp3 players, free to the public. All of the code has been written from scratch to enhance these personal devices and provide them with functionality that their hardware can support, but their original software did not. The project began in 2001 with just a few driven developers and progressed over the course of two years as word about the project became better known on the internet. Initially, the aim of the project was to provide some custom capabilities to a set of mp3 players produced by the manufacturer Archos. At that time, Archos was one of the first manufacturers to produce mp3 players, so they were rather large and bulky with a limited amount of storage space for music and a small set of supported features. However, as most open source developers know, just because a device can’t currently do something, doesn’t mean it can’t be made to with some sweat and determination.
By June of 2002, the Rockbox Project released version 1.0 of their firmware for general use by anyone with one of the few Archos Jukebox players that were supported by the Rockbox firmware. Since all of the code written was done from scratch, efforts were mainly directed toward being able to boot custom firmware on the players, allow them to play mp3s, allow the user some limited set of file management capabilities, and provide the ability to create playlists for the music stored on the devices. After version 1.0’s release, additional feature requests began pouring in and more people began joining the project to add new support for additional players that were making their way on to the scene.
I first became aware of the Rockbox Project in 2004 when I purchased an iRiver iHP-120 mp3 player and became an active member of the iRiver community. I was a member of the MisticRiver forums in hopes of learning what sort of hacks and tricks the device was capable of doing. The things I liked most about the iRiver player that I bought was the immense amount of capabilities that the device packed into a body that was only slightly thicker than the iPods at the time. Where the iPod popularity soared because of its ease of use, I sought a player that provided more bang for the buck. The iRiver had hardware to play numerous audio formats, record at different quality levels and codecs, organize files like a tree or a database, and play FM radio. It was a heavenly device for a nerd such as me. When the MisticRiver forums started delivering news about the Rockbox Project’s acceptance of the iRiver devices for their next platform in September of 2004, the community became very excited and started pouring in additional support to the project. Not only were there Archos coders on the team, but there were also iRiver developers getting into the code and providing new knowledge and support where possible. Funding to further develop and establish the Rockbox.org domain name came from Jeff at MisticRiver as a wonderful donation showing appreciation for the new venture by the Rockbox team. Over the next several months, information was gathered about the hardware specifications for the iRiver devices to then start laying out plans to port the current Rockbox builds to the new hardware platforms (rather than re-write everything from scratch specific to the new devices).
Over the next few months, information was collectively gathered by members of the Rockbox team and members of the MisticRiver forums. The information was combined so as to figure out the optimal method to port the current software over with the least amount of effort. First, an LCD driver was developed, followed by the booting of Rockbox in February of 2005. The first mp3 and ogg files were played on the iHP-120 in June of that same year. In August, Rockbox was loaded onto the follow up players to the iHP-120: the iHP-3xx series, capable of playing color movies in a number of different formats (some of the first video-capable players of that size). Soon after, fans of other playing devices began clambering to the Rockbox team to port the software to other devices, making the software as generic and widely-usable as possible.
Today, Rockbox is supported on seven manufacturers of portable music players including Apple, Archos, Cowon, iRiver, San Disk, Olympus, and Toshiba (over 26 players). In addition, it has been accepted as a mentor organization for Google’s “Summer of Code” program. With almost 17,000 members, it is clear that Rockbox is making great leaps in the arena of open source media player firmware. Being part of an open source community has been a good experience for me. It allowed me to connect with a group of people who share common interests and goals. When I first got involved, I attempted to jump head first into code development. I downloaded the available emulators and various Linux-based tools used by the project only to realize that I was over my head. Instead of trying to code, I decided I would help spread the word about Rockbox and try to report any bugs I experienced while using their software when it was finally released for my player. I still spent some time dabbling in the tools and code on my own, but most of my effort in assisting the project was spent helping in alternative avenues. If you are interested in becoming involved with an open source project, I definitely encourage it. Even if you don’t have the skills or interest to contribute code, you can still help assist the project by reporting bugs and spreading the word to others. The best way to get started is to find a particular project that matches your interests. You can begin with a search on Google for “open source” plus keywords that apply to whatever projects you are interested in. Alternatively, you can visit www.sourceforge.net to see the thousands of possibilities that exist currently. Do some searching through the projects and see what sort of topics appeal to you most.
Once you have decided on a project to get involved with start by spending time on the project’s main website to get familiar with all of the components and features of the website. Typically, you will find that if you devote a little bit of time and patience, you can usually locate the answers to any questions you might have about the project and the website. Make sure to read the FAQ section and search through the forums (or wiki) before posting any questions to other members of the forum.
The one big thing you want to try to avoid is coming off as a “n00b” (a newbie to the project) who needs to be spoon-fed information. Senior members will rarely pay attention to questions that have already been answered numerous times and need only be searched for by using search tools available on the website. Don’t be one of those people that get yelled at for asking the questions with obvious answers. Also, make sure to read any “sticky” threads at the top of any forum topic that describes the etiquette to follow when making posts and asking for assistance. In order to be part of these projects you should follow the rules they have created for their members to keep organization and order.
After becoming familiar with the project and the website you should then learn about the bug reporting process. If you regularly use the software produced by the project then you can be one of the people who downloads unofficial releases (known as “bleeding edge” or “beta”) to test and find problems before they are made part of a stable release for the public. This is a great way to help the project along without having to have any technical coding skills whatsoever. If you do happen to have skills as a developer and you want to get your hands into the guts of the project’s software, then you can take the next step into that realm.
When making modifications or additions to code involved with an open source project, typically you have to be familiar with the process involved for integration of that code into a build. Since there are typically many different people working on completely different parts of the code base at any given time, version control software such as CVS is used to keep track of who made modifications to what and all details that are related. Take the time getting to know the process involved and how to check in/checkout code.
Keep in mind that if you are confused you should really spend the time trying to figure out as much of the process on your own before asking others for help. Since these projects are run by volunteers who often have full-time jobs and other important things in their life, they really don’t want to be bothered with helping others discover answers to the obvious. That’s not to say that you shouldn’t seek help if you did try to find the answers on your own and couldn’t. Just be sure to make the effort on your own first.
I hope that I have not dissuaded any of you readers from considering supporting an open source project. The contributions that have been made on a purely voluntary and charitable basis are invaluable to the community. Creations such as OpenOffice, Audacity, Mediacoder, Apache, and even Linux itself have made huge impacts on individuals that either directly use the software or use competitor distributions that have been updated to keep up with the progress in the open source community. Greg Stein, chairman of the Apache Software Foundation, estimated that in five to ten years, most software used today will be free. At the amazing rate that the community is growing in flourishing, this prediction could very well become a reality.
Next Post:WordPress |