Dlinyj (dlinyj) wrote,
Dlinyj
dlinyj

Categories:

Промежуточные результаты с книжкой Sony

Пока грандиозными результатами похвастать не могу, но всё же.

Задача: показывать раз в N секунд заданное изображение (график из gnuplot) на экране.
Решение: Оказалось достаточно тривиальным. У нас есть консоль, по которой идёт общение с линуксом. По этой консоли мы отдаём комманды в линуксе книжки (благодаря ей собственно и возможна эта петрушка), и по ней же мы можем перебрасывать данные(!). Не буду же я каждый раз перетыкать флешку.

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


Вывод консоли


Книжку пока не собрал, поскольку боюсь ка бы какой косяк не всплыл. Если за сегодня всё будет хорошо, то уберу обратно в корпус (благо это занимает три минуты).

Управление и приём-передача файлов Задача чуть более сложная, но решаемая, по крайней мере у меня сработала передача от ридера в комп.
Как вы помните, в посте о железе http://dlinyj.livejournal.com/607475.html я говорил о скрипте, который записывает изображение во фрейм буффер. Напомню этот кусочек
NUM=`grep BootImg /proc/mtd | awk -F: '{print $1}' | awk -Fd '{print$2}'`
dd if=/dev/mtd$NUM of=/dev/fb0 bs=256 count=1875
/opt/sony/ebook/bin/writescreen init 0


Первая комманда определяет нормер раздела (точнее блочного устройства) NUM на котором содержится образ загрузочной картинки. Для тех кто в танке, это тупо область памяти на флешке, которая в линуксе видится как отдельный файл.
Выполнив её, я узнал, что у меня этот номер равен девяти. Ну дальше вторую комманду я немного поправил, чтобы передача велась в СОМ-порт. Опытным путём установил, что консоль для приёмо-передачи - это файл /dev/tty . Перебрасываем картинку, для этого на компе закрываем терминал и выполняем:

cat /dev/ttyUSB2 > bootimg.raw , где ttyUSB2 - это мой интерфейс VCP на базе ft232rl.

После чего в другой консоли компьютера даём комманду:

echo "dd if=/dev/mtd9 of=/dev/tty bs=256 count=1875" > /dev/ttyUSB2 , что посылает через консоль комманду передачи образа по консоли.

Всё отлично сработало, правда картинку слегка перекособочило, но это отрабатывает. После небольшой обработки согласно комментарию http://dlinyj.livejournal.com/607545.html?thread=7800633#t7800633 камрада lapinmax.ya.ru я преобразовал её в png.



Картинка с читалки


Полагаю, что её перекособочило из-за неверного старта или появившихся откуда-то лишних байт.

Обратная процедура передачи файла у меня не получилась

Если быть кратким, то gnuplot позволяет создавать pgm-файлы с заданными параметрами. В скрипте для вывода графика это выглядит так:

set terminal pbm gray medium size 800,600
set output "result.pgm"


А реультирующий файл выглядит так:


Некий график


После чего срезаем заголовок (ровно 15 байт), это можно сделать с помощью комманды dd. С вашего позволения не буду приводить этот пример,т.к. его можно найти на википедии. И получаем файл размером ровно 480000 байт (битовый образ). После чего пытаемся его передать на целевое устройство. На устройстве выполняем, например

cat /dev/tty > testgraph.raw

А на компьютере

dd if=send.raw of=/dev/ttyUSB2 bs=1 count=480000

И... Чуда не произошло, терминал захлёбывается от непечатных (в прямом смысле слова) символов и передача не идёт. Необходимо отключать стандартное устройство ввода от СОМ-порта на время передачи. К слову сказать, текстовые файлы таким макаром передаются на ура.


Полагаю, что основная причина неудачи получения файла на книжку заключается в том, что это стандартное устройство ввода, надо каким-то чудесным образом отключить консоль от стандартного устройства ввода на время передачи, а потом его включить! По моему товарищ cluster_d мне подсказывал как это сделать для роутера, быть может он мне поможет и сейчас.

На счёт вывода изображения на экран
К сожалению тупо с помощью консоли мне этого не удалось сделать. Вероятно придётся писать небольшую свою программулинку, как было сделано тут http://systemsand.me/sony-prs-300prs-505-hack/ . Товарищ, который писал этот пост, обещал в выходные посмотреть исходники, но видимо забыл про меня :(. Сегодня возможно попробую написать hello world. Можете мне посоветовать тулчейн и где его скачать (ОСь Ubuntu 10.10)
Tags: arm, hack, linux, prs-505, reader
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 11 comments