?

Log in

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

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

2nd October, 2012. 1:14 pm. Промежуточные результаты с книжкой 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.



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


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

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

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

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

Read 11 Notes -Make Notes

2nd October, 2012. 6:53 pm. В качестве апдейта к предыдущему посту

Сначала я попробовал собрать свою rootfs и скормить её родному прошивальщику. Но с ошибкой контрольной суммы был послан в пешее эротическое путешествие.

Тогда я заметил, что при подключённом USB на компе видится некий диск, объёмом примерно 200 метров. Но в системе его нет. К слову сказать с подсоединённым USB нет нужды убивать никакие процессы, система работает не засыпая.

У меня есть вся прошивка кникжи, и я понял что жёский диск используется в приложении книги (имеется в виду то для чего предназначено устройство). Это файлик cramfs.Fsk.img
Я примонтировал этот образ на своём компьютере и поглядел скрипт sony/ebook/bin/tinyhttp.sh . Это тот самый скрипт, который мы придушиваем в самом начале, чтобы получить консоль. И там была такая строка:

NUM=`grep Data /proc/mtd | awk -F: '{print $1}' | awk -Fd '{print$2}'`
/usr/local/sony/bin/mkdosfs /dev/mtdblock$NUM


Выполнив первый скрипт, я получил число семнадцать, и дальше подмонтировал /dev/mtdblock17 в /tmp/t1 . Объяснить как я понял, что именно это будет флешкой я не могу, но просто логика подсказала, что именно в этом файле должна идти инициализация пользовательских данных.

И в результате я увидел содержимое диска, которое я вижу на своём компе.

Далее, у меня был уже собранный helloworld для ARM920T. И я решил попробовать его запустить
Для справки: собирался коммандой: arm-none-linux-gnueabi-gcc -mcpu=arm920t hello.c -o hello

И тут меня ждал облом'c...
root@(none):/tmp/t1# ls
Digital Editions  autorun.inf  database  hello  tmp
root@(none):/tmp/t1# cp hello /tmp/
root@(none):/tmp/t1# cd ..
root@(none):/tmp# ls
hello  t1
root@(none):/tmp# ./hello 
bash: ./hello: No such file or directory
root@(none):/tmp# chmod +x hello 
root@(none):/tmp# ./hello 
bash: ./hello: No such file or directory


Увы... Увы... Пока что делать не знаю.

Read 27 Notes -Make Notes

Back A Day - Forward A Day