Яндекс.Метрика

Песочница

Rockbox для всех

Привет, Хабрахабр!

Открыл я тебя не так давно, но уже успел прочитать очень много интересного (здесь должна была быть конкретика, но ее было бы слишком много — потому ее здесь нет). И вот, наконец, решился и сам кое-что написать.

Примерно 8 месяцев назад разработчик из Польши Marcin Bukat (wodz) добавил в проект Rockbox начальную поддержку так называемого семейства чипов Rockchip RK27XX. Тогда, 8 месяцев назад, все, что умел Rockbox на этих устройствах (точнее даже всего лишь на одном из этих устройств) — запускаться и отображать текст на экране плеера. А как сейчас обстоят дела?

Что такое Rockchip?


Rockchip — это семейство так называемых SoC, систем на кристалле, базирующихся на процессорном ядре ARM. Чем же оно так особенно и замечательно по сравнению, скажем, с тем же Qualcomm? А вот чем.

Не секрет, что абсолютное большинство современной техники производится в Китае — так выгоднее экономически. Также, наверняка каждый видел огромное количество разнообразных «chiPhone 8G» на полках интернет-магазинов (на рыночных развалах, впрочем, этого добра ничуть не меньше). Но, наверное, не все знают, что в Китае есть и собственные разработки. Rockchip — одна из них.

Итак, это семейство SoC, ориентированных на применение в массовых (а значит — дешевых) мультимедийных устройствах. Устройства эти не только производятся, но и разрабатываются в Китае (а значит дешевы вдвойне). На базе серий RK28XX и RK29XX уже сейчас выпускаются мультимедийные планшеты под управлением Android. Что же до серии RK27XX… Зайдите в любой магазин, торгующий электроникой. Видите вон тот плеер с тачскрином, акселерометром, поддержкой карт памяти и встроенной памятью 8 Gb (скорее всего, это будет какой-нибудь Texet/Ritmix/Explay/Qumo) с ценником в одну десятую iPod touch? Да, вы абсолютно правы — внутри этого маленького, но гордого устройства бъется именно чип RK27XX. В последнее время на этих чипах стали появляться не только MP3/MP4-плееры, но и GPS-навигаторы. Единственное, чего я не видел — это телефонов, основанных на RK27XX (он для этого не приспособлен), впрочем, на RK29XX вроде бы уже есть.

И, собственно, зачем все это?


С одной стороны, несмотря на достаточно хорошее железо, у этих плееров весьма и весьма неудачная прошивка. Кто хоть раз видел ее в оригинале — плевался, а кто еще и пользовался — порой приходил в ярость. Тут отдельное спасибо (искренне) хочется сказать российским компаниям, закупающим плееры в Китае (те же Texet/Ritmix) и продающим их под своей маркой — если бы они не исправляли косяки прошивок и локализации, этими гаджетами было бы пользоваться совершенно невозможно. Кроме того, прошивка эта сильно ограничена в возможностях (если, конечно, от плеера нужно что-то помимо музыки 128kbit/s в автобусе).

С другой стороны, среди поддерживаемых Rockbox плееров по-настоящему доступных (многие из них уже не купить новыми, да и б/у найти сложновато) и недорогих (меня лично не привлекает перспектива отдать за аудиоплеер больше 200$) практически нет. Как кто-то жаловался в новости про выход Rockbox 3.6, «на совсем дешевые плееры они не размениваются». Ну что ж, вот, пожалуйста, — разменялись =)

Текущее положение дел


В свое время я сам очень хотел присоединиться к портированию Rockbox на RK27XX, однако, этого сделать не позволила воля случая, хотя контакт с wodz'ом я установил и даже кое-что разобрал. Сейчас у меня выдалась свободная минутка, и я решил глянуть, а чего же нового появилось в проекте с того времени.

В качестве подопытных кроликов выступают два плеера — RF-8800 и RF-8900 фирмы Ritmix. По счастливой случайности, RF-8800 является братом-близнецом того плеера, что есть у wodz'а — оба они основываются на китайском плеере Ramos RM970 (впрочем, не идентичны), именно поэтому фото и видео приведены для него. Кроме того, на моем RF-8900 разбит тачскрин (сам экран в порядке), поэтому я не смог бы продемонстрировать ничего, кроме главного экрана Rockbox.
Для того, чтобы хоть что-то было видно на экране (в стандартной теме очень маленький шрифт), я разжился темой Rust. К сожалению, подходящей темы для WPS (While Playing Screen) я не нашел.

Главный экран



Воспроизведение музыки





Странные символы вместо русских букв из-за отсутствия русского шрифта

Инициализация базы данных



Радио




Демки




Информация о системе



Измученное устройство с другой стороны



Фотографии были слегка подправлены в GIMP'е с целью убрать кота, диван и мусор рядом с ним.

Видеодемонстрация



Очень извиняюсь за качество видео, но под рукой, кроме сотового, не было ничего, да и тем я видео снимал второй раз в жизни. С пятого дубля получилось хоть что-то.

Что было проделано мной


Лично моей работы здесь не так уж и много. Я внес некоторые исправления в аудиокодек, добавил поддержку клавиатуры Ritmix'а (у Ramos она немного другая), завел радио (в экземпляре wodz'а радио отсутствует) и подкорректировал некоторые плагины (просмотр картинок/видео, пара демок и игрушек), чтобы заставить их работать. Кому интересны технические подробности изменений — вот патч.

Краткие выводы


В целом Rockbox работает довольно стабильно, каких-то глюков/зависаний/ошибок я не заметил. Самые серьезные проблемы на данный момент — не поддерживается внутренняя память устройства («сырые» чтение/запись NAND реализованы, но необходим еще драйвер FTL) и не работает подключение по USB (wodz работает над этим, однако драйвер еще далек от завершения — на видео можно заметить, что при подключенном USB плеер заикается).

Сейчас в качестве диска используется карта памяти. Звук хороший, как минимум не хуже, чем на оригинальной прошивке. Однако, на некоторых стереотреках с переменным битрейтом наблюдается эффект «эха», я таких трека насчитал у себя два, то есть аудиокодек нуждается в калибровке. Радио иногда не ловит сигнал, но это, скорее всего, мои не очень прямые руки. Пока не работает запись звука (вообще говоря, она работает, но записывает шумы), видео проигрывается без изображения, только звук. Еще мною была обнаружена интересная вещь — в плеере есть устройство RTC (часы, если по-простому), которое не используется оригинальной прошивкой — позже я понял, почему: оно работает крайне нестабильно. Впрочем, жаловаться грех — RTC в этой модели быть вообще не должно.

В общем, мне кажется, что в скором времени прошивка на основе Rockbox займет достойное место на встроенном накопителе моего (и очень надеюсь, что не только моего) MP3-плеера.
Ах да, чуть не забыл =)



Для интересующихся


Для тех, кто хочет попробовать самостоятельно — вот бинарники и исходники, подходящие для Ritmix RF-8800. Естественно, Linux only, также потребуются gcc и binutils для архитектуры ARM.

P.S: Через некоторое время я все же решил выложить видео, демонстрирующее работу Rockbox на Ritmix RF-8900. К сожалению, поскольку тачскрин сломан, много записать не удалось, но как музыкальный плеер он теперь снова в строю — благодаря Rockbox.