1) Открываем терминал. Создаем в /home/****/ каталог src.
$ mkdir src (значек $ вводить не надо он означает что действия выполняются от имени пользователя, # от рута)
2) Переходим в этот каталог командой
$ cd src
3) Качаем из SVN последнюю версию рокбокса командой
$ svn co svn://svn.rockbox.org/rockbox/trunk rockbox (это порядка 270 мб можно скачать просто дэйли архив исходников он весит ~22мб)
если уже скачивали когда-то и надо обновить чтоб заново все не качать то заменяем co на update
$ svn update svn://svn.rockbox.org/rockbox/trunk rockbox
4) Переходим в папку rockbox
$ cd rockbox
5) Собираем кросскомпилятор. (Спасибо разработчикам за скриптик)
# tools/rockboxdev.sh
он спросит какую архитектуру нам надо. Выбираем arm (пишем букву a и жмем энтр)
Ждем.
6) Добавляем в окружение(или как это назвать) адрес к нашим кросскомпиляторам.
открываем файл
/home/****/.bashrc (он скрытый)
в терминале я открываю его при помощи nano
$ nano ~/.bashrc
И дописываем в конце с новой строки строчку
export PATH=$PATH:/usr/local/arm-elf/bin
7) Патчи...
Скачиваем нужный нам файл патча.
Кидаем в каталог rockbox.
И применяем его такой командой:
$ patch -p0 < 123.diff
123.diff это имя файла патча.

Создаем каталог /home/****/src/rockbox/build и переходим в него.
$ mkdir ~/src/rockbox/build
$ cd ~/src/rockbox/build
9) Собираем сам rockbox.
$ ../tools/configure
выбираем наш D2 он под цифрой 33.
Значит пишем 33. Энтр.
Нас интересует режим Normal, он выбран по умолчанию.
Поэтому просто жмем Энтр.
потом...
$ make (кстати у кого многоядерные процессоры то можно приписать параметр -j 3 для 2-х ядерных или -j 5 для 4-х)
теперь можно сходить в туалет или налить чаю.
после окончания компилирования надо собрать всё в кучу.
$ make fullzip
10) Идем в каталог build и видим архив rockbox-full.zip который и распаковываем на плеер