dlinyj: (Default)
[personal profile] dlinyj
Пока грандиозными результатами похвастать не могу, но всё же.

Задача: показывать раз в 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

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


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

На счёт вывода изображения на экран
К сожалению тупо с помощью консоли мне этого не удалось сделать. Вероятно придётся писать небольшую свою программулинку, как было сделано тут http://systemsand.me/sony-prs-300prs-505-hack/ . Товарищ, который писал этот пост, обещал в выходные посмотреть исходники, но видимо забыл про меня :(. Сегодня возможно попробую написать hello world. Можете мне посоветовать тулчейн и где его скачать (ОСь Ubuntu 10.10)
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 03:41 am
Powered by Dreamwidth Studios