release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Search | Go
Wiki > Main > DocsIndex > DevelopmentGuide

First Time Guide to Rockbox Development


Welcome to our humble project. In order to get your hands dirty as quickly and smoothly as possible, here follows our suggested approach!


Join the Rockbox Community

Mail: We have a very active developers mailing list no serious Rockbox freak can live without.

IRC: There's always a bunch of friendly and helpful people around in the IRC channel.

Forum: Most users will show up and discuss issues in the Rockbox web forum


Set Up Your Environment

You need suitable build tools before you can setup the compiler. Pick one of these:

Windows

Development on Windows is supported using VMs or unix compatibility layers.

Windows 10 Services for Unix

Windows 10 lets you setup the build tools in a local Ubuntu instance installed from the Windows 10 store. This requires slightly more setup than the VM, but may be easier because it does not require using a complete linux VM. It also requires less downloading.

See: Windows10CrossCompiler

Unix Layers for Windows

You can also use Cygwin or Interix to run the development tools directly in Windows. Unfortunately this approach is quite slow, more difficult to setup and not recommended for most users.

See: Set up a Cygwin development environment OR set up a Interix development environment.

Virtual Machine (Obsolete)

You can download a full Ubuntu desktop image here for use with the open source virtual machine Virtual box:

Ubuntu VM - 2016: (username/password): rock/rockbox

Mirror @ mediafire

You can download virtualbox here.

This will give you a complete linux desktop running within Windows with the ARM and simulator compilers already configured and git installed. By default the image is configured for 4 processors, and to pass sound and USB devices through. This should allow audio playback in the uisimulator, and directly copying compiled rockbox builds to a player over USB. If you have a different number of processors, you may wish to allocate fewer or more in the Virtualbox settings.

Linux Boot CD

set up a coLinux development environment

Linux, Mac OS X, or any Unix-like OS

These platforms can build rockbox natively.


Get The Source

Get a fresh source to build Rockbox from. We usually recommend you get the sources fresh from the Git repo (How to use Git).


Build the cross compiler

Rockbox requires a specific version of gcc compiled with various options in order to cross compile for each device. Fortunately, Git contains a simple script that will build gcc with the correct options for most platforms.

Virtual Box

Our Virtual Box image already includes the most common compilers, but if you want to build them you can use the Linux directions below.

Linux, Mac OS X

Building the cross compiler, or alternatively Beginners Version. This describes using the automatic tool to setup gcc and is fairly simple.

Unix Layers in Windows

See: Set up a Cygwin development environment OR set up a Interix development environment.


Build Rockbox

Build rockbox using your acquired sources! If you're using Linux or the suggested cygwin approach, read How to compile Rockbox.

Also note that we have put a whole lot of effort in writing simulators so that you can build, run and try code on your host PC before you build and download your target version. This of course requires a working compiler for your native system.


Change Rockbox

Before you change any code, make sure to read the contributing information if you want to have any hope of having your changes accepted.

Now, you fixed any bugs? You added any features? Then read appropriate section of UsingGit how to upload your change for review. Of course, you can also check the open bug reports and jump in and fix one of them (or possibly submit a new bug report).

ContributingToRockbox and Feature Ideas section of the Rockbox Technical Forum may also be a source of inspiration for those unsure of where to begin.

You may also see existing code in the form of a patch. We mostly use gerrit now instead of patches, but not always. See working with patches.


r44 - 02 Apr 2021 - 20:46:06 - UnknownUser


Parents: DocsIndex
Copyright © by the contributing authors.