Pull to refresh

Vogue-Tec News #0

Configuring Linux *


Ежечекпоинтовый обзор нововведений, интересностей и общих событий вокруг плеера из журнала Vogue

Содержание


  • Linux? Linux!
  • Ковыряем софт
  • uCOS & miniOS
  • PS/2 интерфейс
  • Сайт, мануалы, Downloads и Credits


Linux? Linux!


Сначала немного истории: после того, как стало ясно что топик на хабре лопнул уже два раза, и лопнет третий, hyborg организовал Google группу, или проще говоря, список рассылки, к которому присоединились заинтересованные в проекте люди. Только за первую неделю, было отослано около 200 сообщений, общее количество юзеров в группе перевалило за 70 и продолжало расти.

Что касаемо самого запуска Linux — товарищи kmeaw и stolen запостили еще в топике свои ядра, основанные на ядрах Ingenic, собранные в случае с kmeaw с помощью гентового crossdev, и с обычным тулчейном. Но просто запуска оказалось мало, да и сильно глючили различные модули ядра, не получалось нормально прикрутить rootfs, но вскоре выход был найден — оказалось что процессор JZ4725B является почти идентичным клоном JZ4750L, под который один японец, нашел (или написал сам) ядро и написал патчи для имеющихся у него устройств Neo Slim 3000 — портативная консоль в духе «эмулятор NES/GBA/кучадругихконсолей)», и пары медиаплееров. Через некоторое время, стараниями часов тестов хабраюзер iSage и faust (хабралогин не известен) написали на основе конфига платы Neo Slim 3000 конфиг для нашей платы от плеера — XZ0032, так гласит надпись на самой плате. Linux успешно запустился, через некоторое время был прикручен rootfs от Ingenic с Qtopia стараниями tronix286 и других людей, но главным достижением является экран — его потребовалось полностью прозовонить, в чем помог Odinokij_kot, то есть определить какие пины на процессоре идут к каким пинам на разъеме шлейфа экрана. Через некоторое время экран был успешно запущен, был преодолен баг с синевой экрана — драйвер кнопок был сломан и вместо кнопок дергал GPIO экрана. Был заведен звук, faust написал простейший polling драйвер кнопок и починил SADC контроллер кнопок — оказалось кнопки К3-К6 подключаются через группу резисторов, и не подсоединены на прямую к процессору. Так же был поднят USB-Ethernet, а затем и USB Gadgets Hotplug, который увы собирается только в модули, что позволило управлять устройством без UART. Тем временем, whitequark (хабралогин не известен) дописал вместе с Sergey Gridassov аналог usbboot от Ingenic — JZboot, и выложил это все в свой git, что позволило нормально прошиваться не прибегая к помощи windows. Сейчас whitequark организовал разрабатываемую ветку ядра и переносит патчи на новую версию, т.к. в старой им был найден Kernel oops при работе с UBIFS, на которую планировалось перейти с YAFFS2, используемой сейчас.

Таким образом, общей работой, получилось довольно стабильное ядро, которое уже смогло запустить не только Qtopia, но и кастомно собранную rootfs, которой занялся я, взяв за основу самую последнюю версию rootfs от Ingenic.

Ковыряем софт


Перейдем к содержимому rootfs. После нескольких тестов MPlayer было выяснено — он собран для других процессоров и вообще криво работает, один из доступных вариантов MPlayer нормально читал только аудио, другой только видео, и в месте они не были юзабельны. На помощь пришли ресурсы юзеров портативной консоли Dingoo, работающей тоже на процессорах Ingenic. Dingoo уже имел к тому времени собственный порт Linux под названием Dingux, и имел свою wiki, в которой было объяснено как собирать софт, и заставить MPlayer работать по нормальному, iSage узнал, что нужно активировать зачем-то выключенный для нашего процессора модуль ядра JZ Chars TCSM и пересобрать MPlayer, после этого, MPlayer стал работать намного стабильнее и быстрее, местами стал нормально кушать не пережатое видео, перестал сыпать underrunы. Далее пришло время другого софта — я пробовал собирать различные консольные mp3 плееры на ncurses и в итоге пришел к выводу что лучшим выходом для музыки является mpg123 и обертки для него. iSage тем временем собрал PrBoom — порт Doom движка на Linux с улучшениями и он сходу запустился :) я же попробовал собрать sdlquake, что пока что не увенчалось особым успехом, пока не решил проблему с поиском файлов, движок quake упорно не видит свой pak0.pak, но уже стартует, что радует. Аналогично была допилена оболочка gmenu2x, являющаяся по сути меню на SDL, она все еще имеет кучу глюков и пока не управляема, но уже подает хорошие признаки жизни, что не может не радовать.

Из софта собрки самой rootfs мною были опробованы buildroot, squirrel и ptxdist, и ни одна из них не удовлетворила моим требованиям, buildroot хорошо себя показал, но содержал тонны глюков и багов, мог просто напросто без особых причин перестать собираться и так далее, именно по этому я решил оставить свою rootfs на старых компонентах, просто обновив busybox и другие ключевые вещи по возможности. Так же я добавил пропатченный на логин от root dropbear, прицепил генерацию ключей, выключил вообще telnet, теперь можно прошить устройство и сразу после генерации ключей получить консоль, не прибегая ни к чему, кроме настройки сети на своем компьютере и работе с ssh клиентом.

В данный момент мною ведется работа по превращению платы в mp3 плеер, по моей задумке все должно быть так — пользователь прошивает свою плату, втыкает ее в компьютер, на девайсе поднимается usb gadgets file-backed storage и пользователь заливает файлы, далее он создает там какой-нибудь специфичный файл и ребутает плеер, далее плеер на загрузке запускает mplayer на директорию и кнопками листает треки. Тоже самое можно проделать и с видео, но стоит учесть что памяти в данный момент размечено всего 761МБ.

Другие сборки публичные сборки rootfs я, увы, не встречал за все время обсуждения.

uCOS & miniOS


В конце топика на хабре, появились сообщения о нахождении плееров с подобными процессорами и на подобных платах, эта тематика тут же была проверена Xlab, но на тот момент не увенчалась успехом. Недавно же — tronix286 вышел на связь с китайцами и получил софт для создания прошивки minios и конфиги под большое количество плат и процессоров, эти файлы китайцы попросили не передавать никому, по понятным причинам, это ведь внутренний софт Ingenic. Возможно, в скором времени мы увидим нативную прошивку для нашего плеера, ее конечно же придется допиливать и подстраивать, но думаю мы справимся.

PS/2 интерфейс


В ходе обсуждения возможных интерфейсов, вдруг возникла идея подключить старый добрый PS/2, на что тут же был найден ответ — да, это возможно, и уже делалось на других девайсах. Есть драйвера для ядра, способные работать с PS/2 через пины GPIO, проблема возникла в синхронизации, т.к. PS/2 это USRT протокол. whitequark подтвердил что пытался делать подобный финт ушами с другим контроллером, но контроллер был 12 мгц и не справлялся с поставленой задачей, наших 360 мгц вполне хватит, что бы отсинхронизировать PS/2. Товарищ dlinyj занялся этим, и возможно скоро сообщит радостную новость.

Сайт, мануалы, Downloads и Credits


После того, как обсуждение в Google группе разрослось до больших масштабов, hyborg создал Google сайт, на который были скопированны мои инструкции по прошивке сборки, компиляции ядра и софта с линками на последние залитые снапшоты, аналогично были добавлены мануалы whitequark о U-boot и JZboot. Так же была создана страница с описанием кто что сделал для проекта, своеобразные титры.

На текущий момент, это все важные новости о плеере из журнала Vogue, следующий чекпоинт будет когда tronix286 запустит прошивку от какого-нибудь плеера и это все вместе заработает, но думаю он сам вам об этом напишет, либо когда прояснится ситуация с допиливанием gmenu2x.

P.S.: Если я кого-то, или что-то забыл, заранее извиняюсь.
Tags:
Hubs:
Total votes 68: ↑63 and ↓5 +58
Views 9.3K
Comments Comments 40