?

Log in

No account? Create an account
  Journal   Friends   Calendar   User Info   Memories
 

Электронный миссионер

27th September, 2012. 1:00 am. Вы хотите железа? Их есть у меня.

На меня тут жалуются, мол Длиный не пишет ничего о железе, всё бытовуха. Я лишь оправдываюсь, что железо на работе, а всилу специфики работы писать о том не могу. А дома в основном жрачка, стирка, уборка и т.п. Но раз в недельку я устраиваю себе ночь паяльника и топора и тогда что-то ваяю.

В закромах Родины ВНЕЗАПНО обнаружил древнюю читалку Sony PRS-505, которую когда-то любезно одолжил у одного знакомого, и так ему и не отдал. А этой читалкой кроме меня ещё пользовалась милая девушка shnur0vka (коей передаю, пользуясь случаем, привет).

Я вспомнил, что читалка бегает под линуксом. Ну я вынул её и положил на стол, понимая что из неё получится прекрасный, контрасный дисплей, на который можно будет смотреть сколько угодно времени не напрягаясь. Поскольку мне надо отображать только графики и то раз в минуту, то самое оно.
Положил я её на стол и забыл. Потом ушёл в пещеры, где в автобусе многоуважаемый камрад vshmuk пользовался такой читалкой. И слово за слово, он напомнил, что когда-то писал статью о взломе данных читалок и о том, что там есть (о чудо!) Фрейм буффер!!! А это значит, что требуемое изображение достаточно просто записывать в файл фреймбуфера, и оно будет отображаться на экране.

Я прям этой мыслью заболел. Нашёл статью, от туда вышел на форум и толковую инструкцию по подпайке. Но в силу того, что вечером я напоминаю овощ, сил кроме как на разбор читалки, у меня не хватало. Хотя ночью прям уснуть не мог. Но вот у меня наконец дошли руки, и я подпаялся (честно, не с первого раза), к контактным площадкам самым тонким проводом, что у себя нашёл. Подключил к VCP FT232RL, и пошло-поехало...


Ломаемая книжка


Поглядеть с обратной стороныCollapse )

После успешного логина root, и убивания процессов, которые усыпляют книгу

root@(none):~# killall tinyhttp.sh
root@(none):~# killall tinyhttp


Я попал в знакомую оболочку, с которой, блин, работаю на работе каждый день. Потирая потные ручёнки, решил погладеть файлик фреймбуфера. Дальше можно почитать что я делал в консолиCollapse )

Для тех, кто нихрена не понимает в линухах (надеюсь, что таких среди моих читателей почти нет), поясняю, что фреймбуффер это файл в линуксе (как и любое устройство в общем-то), в который можно (теоретически), тупо записать файл-слепок памяти, и вывести его на экран. Так же можно сделать аппаратный скриншот, т.е. просто сдампить видеопамять, скопировав этот файл в другое место и просмотреть его, скопировав (точнее записав в) его обратно.

Зачем это нужно: На целевой машине идёт видеовывод в виртуальный экран, с разрешением, равным разрешению книжки (а именно 600х800). Далее периодически, берётся файл фреймбуффера виртуального экрана и перенаправляется в сом-порт, а на том конце из ком-порта, коммандой cat это перенаправляется во фреймбуффер книжки.

Иллюстрирую, все комманды выполняются на целевой машине, книжка подключена по UART, через VCP, который висит на /dev/ ttyUSB0 . Комманды вызываются раз в несколько минут, например в кроне.

echo "cat /dev/ttyS0 >/dev/fb0" > /dev/ttyUSB0

Эта комманда по UART передаёт комманду перенаправлять содержимое файла СОМ-порта во фреймбуффер. Следом идёт вторая комманда:

cat /dev/fbn > /dev/ttyUSB0

Эта комманда передаёт содержимое виртуального экрана fbn (где n-номер экрана) в СОМ-порт. Всё должно отработать прекрасно, передача кончится по приходу символа конца файла.

Сия гениальная и простая операция у меня не удалась. Пока не удалась.

Камрад vshmuk советует найти скрипт листания страниц, и поглядеть его. Но потом.... Поскольку я уже просто клюю носом в клаву, эксперименты на сегодня прекращаю. Быть может на работу захвачу всё это барахло, там попробую помучать.

Read 50 Notes -Make Notes

27th September, 2012. 12:28 pm. Программисткие орешки. Разминка для ума.

В предыдущем посте я уже говорил о фреймбуфере. По сути это представляет собой память, где уложены байты (или слова по 16 или 24 бита). Каждый байт (слово) кодирует пиксель, его цвет. В прошивке к этой книжке, есть файл raw.BootImg.img весом ровно 480000 байт, что соответствует разрешению книжки 800х600 (умножтке 800 на 600 и получите это число).

Теперь задачка. Вот вам файл raw.BootImg.img


Задача: сконвертировать его в формат нормальной картинки png или bmp (жепег тоже канает). В идеале каким-то интересным способом (на си, питоне или каком другом языке программирования). Хотя вариант со стандартными линуксовыми коммандами тоже канает.

Я попробовал вчера это сделать, путём гуглежа нашёл этот способ http://www.cnx-software.com/2010/07/18/how-to-do-a-framebuffer-screenshot/ (это подсказка). Но поскольу перла я не знаю, то так и не смог сделать чтобы читался не два байта, а один. В результате первых опытов получил такое изображение


Первый блин комом


В общем, выкладывайте сюда получившиеся картинки и код, которым вы это сделали. Победитель получит от меня какую-нибудь интересную железку. :).
Рядовому программисту задача с гуглом должна решится за 5, максимум 10 минут.

З.Ы. Особый интерес представляет обратное преобразование из картинки в такой битовый образ.

Read 13 Notes -Make Notes

Back A Day - Forward A Day