Приветствую! В сегодняшнем материале мы опробуем с вами новый формат статей, а именно — «ретрошортсы». В этой рубрике будем вкратце вспоминать крутые гиковские штуки прошлых лет, и конкретно сегодня — тот самый журнал Vogue от декабря 2010 года с внешним дисплейчиком, на который можно было накатить Linux и получить мини-компьютер буквально за 200 рублей. Если вам интересно, что за девайс придумали в далеком 2009 году, причём здесь игровые консоли и как бородатые 30-летние хабровчане бегали по всей Москве в поисках ставшего дефицитным женского журнала, то добро пожаловать под кат!
❯ Предыстория
Недавно я писал ретроспективную статью о такой замечательной гиковской консоли, как Ritmix RZX-50. Устройство, построенное на MIPS чипсете Ingenic JZ4750 отличалось относительно низкой ценой, наличием официального SDK для разработки хоумбрю и использованием Linux-дистрибутива OpenDingux в качестве операционной системы. Консоль презентовалась как разработанная моддерами для моддеров — и за исключением аппаратной платформы разработки KohoTech (также известной Android-консолями JXD, которые продавались в РФ под брендами Smaggi, EXEQ и т. д.), в целом, оно так и было.
Но причем здесь игровые консоли, спросит читатель? Дело в том, что примерно в середине 2000-х годов начал появляться такой класс устройств, как дешевые mp4-плееры. Когда техпроцесс позволил уместить в один кристалл мощное вычислительное ядро, DSP/ISP для декодирования (и кодирования) видео и аудио на лету, а также контроллер дисплея с аппаратным ускорением отрисовки 2D-графики, чипмейкеры представили по сути уже готовые решения для реализации собственных портативных плееров. Под готовыми подразумевается не только аппаратная часть устройств, но и программная — инженеры писали собственные прошивки на базе RTOS-ядер, которые включали в себя уже готовый видео-плеер, аудио-плеер, а также приложения по типу просмотра изображений и чтения книг. По сути, производителю самого плеера оставалось лишь развести плату на основе референсной и чуть приукрасить интерфейс, что и обуславливало низкую цену таких устройств.
Примерно к 2006-2007 году, на базе таких чипсетов начали делать эмуляторные игровые консоли, а в 2009 году вышла легендарная в моддерских кругах Dingoo A320 на базе MIPS-чипсета Ingenic JZ4732. Изначально консоль работала на базе собственной проприетарной ОС внутренней разработки Ingenic (кому интересно, можете поколупать исходный код здесь), однако затем один испанский инженер заметил, что A320 основана на базе референсной платы Ingenic с кодовым именем Caetus, которая из коробки работает на Linux и о чудо, нормально работает с ядром для референсной платы! После этого, к ядру подсунули дистрибутив OpenWRT (и скорее всего адаптировали драйвер дисплея — в динге использовался дисплей с 8080-шиной на базе контроллера ILI9341/9325) и он замечательно заработал на A320'ой. Так и появился кастомный Linux-дистрибутив для консолей и плееров на базе чипсетов Ingenic под названием OpenDingux. Кроме того, Ingenic не стеснялись делится PDK для своих чипсетов: на FTP-сервере компании лежали BSP для Windows CE и Linux.
В 2009 году компания AmeriChip разработала технологию Video in Print, позволявшую в обычном бумажном журнале разместить специальную картонную страницу с миниатюрным экранчиком, который воспроизводит видео при открытии этой самой страницы. Очевидно что целевая аудитория технологии — реклама «мажорных» брендов, которые могут оплатить установку такого плеера в определенный тираж журнала, цена которого в несколько раз превышает себестоимость самого печатного издания. В Россию эта технология пришла аж в в конце 2010 года, когда бренд напитков Martini решил сделать крутую рекламу для женской ЦА в рамках декабрьского выпуска журнала Vogue. В обычном бумажном журнале за ~200 рублей разместился дисплейчик, который воспроизводит видео со звуком! Когда об этом узнали на Хабре, начался лютый ажиотаж вокруг журнала и бородатые 30-летние дядьки, одним из которых был @dlinyj, ранним утром побежали сметать журналы с полок магазинов.
Нетрудно представить, какими удивленными были лица продавцов, когда к ним целыми днями бегали мужики в погоне за женским журналом! Поскольку журнал хотели все, но далеко не весь тираж был с теми самыми дисплейчиками, некоторые ушлые ребята начали продавать их втридорога (это касалось и розничных магазинов), а иногда и отправлять их в другие страны. При препарировании страницы оказалось, что каждый плеер собирается вручную «на соплях» и работает на базе чипсета Ingenic JZ4725B, для старших версий которого, как мы помним, есть порт Linux! По сути, этот плеер являлся кровным братом тех самых игровых консолей Dingoo A320 и Ritmix RZX-50!
Изначально страница использовала прошивку «minios» с нужным видеороликом в памяти устройства, но коммьюнити хотелось запустить, конечно же, Linux. Ядро с Dingoo A320 удалось запустить не сразу. Дело в том, что у чипсета отсутствует часть периферии с более старших моделей (например, нет USB-хоста), из-за чего пришлось патчить драйверы, а также использовались другие пины (и в целом шина) для подключения дисплея к чипу. Благо даташит сразу же «слили» в сеть, а сам процессор был выполнен в QFP-корпусе, так что необходимые пины почти сразу вызвонили и смогли запустить на журнале... полноценный Linux!
Свои два Vogue я получил в подарок от хабровчан, за что вам огромное спасибо :) Давайте же посмотрим, что скрывается у них «под капотом».
❯ Под капотом
Как я уже говорил ранее, каждая такая страница вручную собиралась некими ушлыми китайцами. И если сама материнская плата представляет из себя самый обычный mp4-плеер со всей необходимой обвязкой, то внешние модули распаивались «на соплях» и сажались на клей.
Начинаем с самой материнской платы устройства. Как уже было упомянуто выше, девайс использует MIPS-чипсет Ingenic JZ4725B, работающий на частоте 360МГц. Насколько я понимваю, это один из самых бюджетных чипов этой серии и не умеет в вышеупомянутый USB-хост, что значительно сужает круг применения такого девайса на практике. Рядом с чипсетом установлена банка SDRAM-памяти на 32Мб, а также NAND-флэшка объемом в 1Гб. Хотя казалось бы, плеер предполагается «одноразовым» (посмотрел рекламу и забыл), но на плате разведен в том числе и чарджер литий-ионных АКБ, а также выведены пины для USB-клиента.
На нижней части платы можно заметить место для нераспаянных аппаратных кнопок. Всего их здесь 6, так что с минимальной пайкой из плеера можно сделать, например, эмулятор GameBoy или NES. Из внешних шин на плате доступен только UART, который благодаря пинмуксингу «висит» на одной из аппаратных кнопок — так что если захочется подключить устройство к МК, то придётся выпаивать SMD-конденсатор над кнопкой K2. В целом, это не значит что к девайсу нельзя подключить клавиатуру или мышь, просто для них придется делать отдельный переходник на МК, который будет слать кейкоды через UART в input-драйвер устройства. Таким образом можно подключить HID-клавиатуру или геймпад, но без прослойки — никуда :(
Сам USB удивляет не меньше: он распаян отдельно, используется MiniUSB на небольшой breakout-плате, которая посажена на клей-соплю. На стоковой прошивке при попытке подключить девайс к ПК, устройство требует ввод «кода», дабы хитрые ручонки не подменяли видеоролики на свои и не пользовались плеером для личных целей.
Снизу мы видим довольно большой динамик, а также литий-ионный аккумулятор на 800мАч. Учитывая что журнальчики после прочтения нередко отправляются на чердак, где маринуются под палящим летним солнцем, решение странное — АКБ может и воспламениться.
А сверху мы видим тот самый дисплейчик. Это TN-матрица с разрешением 480x232 и интерфейсом TTL, 40 pin. Такие же использовались в GPS-навигаторах, вышеупомянутой RZX-50 и других самых разных консолях! Если у вас есть девайс с разбитым 40-pin дисплеем, то его вполне можно взять с Vogue и поставить — он должен заработать «из коробки».
И конечно же, с левой стороны нас ждёт что-то типа концевого выключателя, который и выводит плеер из режима сна и заставляет воспроизвести видеоролик и динамик.
Как говорится, всё гениальное — просто, и производителю удалось сделать дешевое устройство, которое ещё и нехило поддаётся моддингу! Давайте же включим девайс и посмотрим, что он из себя представляет.
❯ Запускаем
Подключаем USB-кабель, девайс промаргивается и... мы видим вывод kmsg! На моём экземпляре уже была установлена прошивка Vogeeky, основная на OpenWRT и девайс загрузился, показав готовность к работе.
Взаимодействовать с ним предлагается с помощью всё того же USB: плеер «прикидывается» сетевой картой и позволяет подключиться к SSH с помощью нескольких команд:
sudo ifconfig usb0 192.168.1.2 up
ssh 192.168.1.1
Логинимся как root (без пароля) и получаем доступ к rootfs-устройства. В целом, из интересностей здесь есть порт Qtopia и... видеопроигрыватель.
Однако никто не мешает накатить на девайс программы и эмуляторы для того же самого Dingux. Они будут здесь работать, но скорее всего придется ремаппить GPIO аппаратных кнопок в драйвере ввода. Драйвер кейпада, разработанный сообществом вполне работает — в kmsg даже летят дебаг-сообщения от единственной выведенной кнопки устройства (не забываем про места под кнопки с нижней части платы).
Ядро местами нестабильно. При попытке что-нибудь вывести в /dev/dsp, мы получаем Kernel Panic и вынуждены перезагрузить устройство. Хотя звук здесь определенно точно должен работать через ALSA.
В целом, развитие моддинг-сцены девайса остановилось на Proof of Concept: участники проекта Vogeeky смогли запустить на устройстве Linux, однако найти интересное применение, кроме плеера, к сожалению не смогли. Но это не значит, что девайс бесполезен. С минимальными навыками пайки и программирования, из девайса можно сделать:
Стационарные часы с ЖК-дисплеем, будильником и подтягиванием погоды по сети.
Игровую консоль. Но опять же, число аппаратных кнопок ограничено — без доработок у нас максимум будет GameBoy/NES и другие консоли с геймпадами на 6 кнопок.
Мини-ноутбук. Если я созрею для этого проекта, то расскажу о превращении журнала в миниатюрный лэптоп с апгрейдом дисплея и подключением клавиатуры через UART с запилом кастомного драйвера :)
Собственно, плеер, только умеющий играть и произвольные видеоролики и аудиофайлы.
❯ Заключение
Вот такой интересный материал у нас с вами получился про легендарный бумжаный журнал на Linux. Надеюсь, молодым читателям было интересно узнать что-то новое, а олдам Хабра было интересно вспомнить тот ажиотаж и те хабратортные статьи, что породил журнал!
Подписывайтесь на мой Telegram-канал, если вам интересна тематика программирования, моддинга и подручного ремонта различных девайсов, а если вам интересны мои видео о ретро-девайсах, то подписывайтесь на мой YouTube или паблик ВК.
А ещё я держу все свои мобилы в одной корзине при себе (в смысле, все проекты у одного облачного провайдера) — Timeweb. Потому нагло рекомендую то, чем пользуюсь сам — вэлкам: