dlinyj: (Default)
[personal profile] dlinyj
Уж простят меня люди не в теме, но я пишу о том что мне важно и интересно!

Итак, открываем шампанское, заряжаем салюты и громко кричим ура: картинку удалось вывести на экран. Для этого даже была набросана и скомпилированна программа


Тот самый график, о котором я писал ранее


О моих терханиях можно почитать в комментариях к тому посту http://dlinyj.livejournal.com/609201.html

Собственно говоря, я поставил тулчейн, который мне посоветовал [Bad username or site: @ livejournal.com] мне не подошёл. И какие ухищрения я не использовал, заставить работать программу я не смог (спасибо за помощь [livejournal.com profile] vshmuk и [livejournal.com profile] paracloud ) . Путём многократного гугления, а так же с наводки товарища [livejournal.com profile] 22021977 оказалось, что для данного устройства энтузиастами пишется целый свой линукс! http://openinkpot.org/wiki (А вы говорите vogue-плееры) А следовательно должен быть и рабочий тулчейн.

Поиском "prs-505 toolchain" он был найден тут http://code.google.com/p/prs-plus/downloads/detail?name=arm-toolchain-sony-300.tar.gz&can=4&q= . После чего хелло ворд завёлся без проблем (даже без статика!). Ну дальше дело техники, согласно http://systemsand.me/sony-prs-300prs-505-hack/ набросал небольшую программку

/* showpic.c */
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <string.h>


#define FBIO_EINK_GET_TEMPERATURE        0x46A1    //Returns temperature in degree Celsius
#define FBIO_EINK_DISP_PIC                0x46A2    //Displays picture

int main (int argc, char* argv[])
{
    printf ("Show image\n");

    int *fb, *image;
    int pio_fd = open ( "/dev/fb0", O_RDWR);
    int f_image = open ( argv[1], O_RDWR);                                 //open file into arg
    int t= ioctl (pio_fd, FBIO_EINK_GET_TEMPERATURE, NULL);    //configure framebuffer

    fb= mmap(0, 800*600, PROT_WRITE, MAP_SHARED, pio_fd, 0);    //map device into memory
    image= mmap(0, 800*600, PROT_READ, MAP_SHARED, f_image, 0); //load image into memory
    
    memcpy(fb,image,800*600);
    ioctl (pio_fd, FBIO_EINK_DISP_PIC, 0);
    
    close(pio_fd);
    close(f_image);
    return 0;
}




Дефайны взял из кода драёвера с сайта Sony http://www.sony.net/Products/Linux/Audio/PRS-505.html файл 8track20070714.tgz (спасибо [livejournal.com profile] paracloud за наводку.

Компилировал примитивнной коммандой с минимум опций : path to toolchain/arm-unknown-linux-gnu-gcc -static showpic.c -o showpic

Без статика не захотел работать. Дальше после монтирования всех устройств, запускаем:
root@(none):/tmp/t1# ./showpic send.raw 
Show image
root@(none):/tmp/t1# 


И наслаждаемся картинкой в заглавии :).

Из неприятных багов было замечено, что картинку после гнуплота надо повернуть. Лечится переписыванием скрипта гнуплота.

Теперь осталось научится гасить консоль, пока не знаю как. Из процессов активно-запущенных, никто не вызывает подозрение
ps aux
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.8  1292  532 ?        S    00:00   0:00 init
root         2  0.0  0.0     0    0 ?        SW   00:00   0:00 [keventd]
root         3  0.0  0.0     0    0 ?        SWN  00:00   0:00 [ksoftirqd_CPU0]
root         4  0.0  0.0     0    0 ?        SW   00:00   0:00 [kswapd]
root         5  0.0  0.0     0    0 ?        SW   00:00   0:00 [bdflush]
root         6  0.0  0.0     0    0 ?        SW   00:00   0:00 [kupdated]
root         7  0.0  0.0     0    0 ?        SW   00:00   0:13 [mtdblockd]
root        31  0.0  0.0     0    0 ?        SWN  00:00   0:00 [jffs2_gcd_mtd16]
root        52  0.0  0.0     0    0 ?        SW   00:00   0:00 [sdbdrv_thread]
root        68  0.0  0.0     0    0 ?        SW   00:00   0:06 [file-storage-ga]
root        69  0.0  0.0     0    0 ?        SW   00:00   0:00 [fsg-mediacheck]
root       147  0.0  1.7  2264 1072 ?        S    00:00   0:00 /bin/bash /opt/so
root       150  0.0  2.1  2348 1348 ?        S    00:00   0:00 -bash
root       151  0.0 30.6 40968 19180 ?       SL   00:00   0:12 /opt/sony/ebook/a
root       154  0.0 30.6 40968 19180 ?       SL   00:00   0:00 /opt/sony/ebook/a
root       155  0.0 30.6 40968 19180 ?       SL   00:00   0:00 /opt/sony/ebook/a
root       156  0.0 30.6 40968 19180 ?       SL   00:00   0:00 /opt/sony/ebook/a
root       158  0.0 30.6 40968 19180 ?       SL   00:00   0:00 /opt/sony/ebook/a
root       159  0.0 30.6 40968 19180 ?       SL   00:00   0:00 /opt/sony/ebook/a
root       183  0.0 30.6 40968 19180 ?       RL   00:01   0:00 /opt/sony/ebook/a
root       184  0.0 30.6 40968 19180 ?       SL   00:01   0:00 /opt/sony/ebook/a
root       239  0.0  1.3  2660  844 ?        R    04:53   0:00 ps aux



Поговаривают, что можно сделать usb-gadget, типа чтобы книжка виделась USB-Ethernet. Но это отдельный гемморой. Готов выслушать мысли и предложения.

Date: 2012-10-04 03:58 pm (UTC)
From: [identity profile] nemo-q.livejournal.com
класс!
Со стороны с таким графиком как осцил

Date: 2012-10-04 04:09 pm (UTC)
From: [identity profile] e-pipe.livejournal.com
Крут! Ничего не скажешь!
(deleted comment)

Date: 2012-10-04 06:59 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Честно говоря, это на столько обработанные данные, что они почти теряют всякий смысл. Ну в двух словах парметры случайного процесса.

Date: 2012-10-04 07:14 pm (UTC)
From: [identity profile] alex p (from livejournal.com)
Крутяка.
Для какой цели будет использоватьяс дисплей?

Date: 2012-10-04 07:35 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Ну пока оно не допиленно, но в будущем именно для этой - отображение графиков и данных опытов.

Date: 2012-10-04 09:43 pm (UTC)
From: [identity profile] 22021977.livejournal.com
Поздравляю :)

Date: 2012-10-05 04:10 am (UTC)
From: [identity profile] masterspammer.livejournal.com
А если на видимом по USB ram-диске создать файл устройства (тупо скопировать туда /dev/fb0), то можно будет слать туда данные и по сети.

Date: 2012-10-05 03:03 pm (UTC)
From: [identity profile] free-artp.livejournal.com
Вау! Круто. Уже давно чесались руки поискать тулчейн и поиграть с сонькой, но все так и осталось в "хотелках". А киндл не пробовал? Он мог бы по вай-ваю данные брать.

Черная зависть.

Date: 2012-10-05 05:00 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
>> А киндл не пробовал?

Да я пробовал только то, что было под рукой :))). Вайфай эт да, было бы удобно.

Date: 2012-10-26 08:05 pm (UTC)
From: [identity profile] jury093.livejournal.com
>Теперь осталось научится гасить консоль, пока не знаю как. Из процессов активно-запущенных, никто не вызывает подозрение

если речь идет об экране, то у меня работает вот такая команда
root@arm9g45:~# echo -e "\033[9;1]\033[14;1]" > /dev/tty1
автовыключение через 1 минуту, прописав 0 можно выключить автовыключение..

народ еще юзает setterm, но это если она есть у тебя на рутовой..

для мгновенного выключения у меня поставлен ключ с управлением через gpio АРМа..
вполне вероятно, что у твоей соньки тоже есть прибамбас, упсс.. посмотрел фотку - это же ЕИнк? имхо, нечему там выключаться..

Date: 2012-10-26 08:21 pm (UTC)
From: [identity profile] jury093.livejournal.com
>Поговаривают, что можно сделать usb-gadget, типа чтобы книжка виделась USB-Ethernet. Но это отдельный гемморой. Готов выслушать мысли и предложения.

а смысл? у тебя на соньке есть WiFi? и есть драйвер? тогда можно пробовать заморачиваться..
иначе выгоднее собрать гаджет usb-flashdrive..

Date: 2012-10-27 08:41 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Этот девайс на столько стар, что вайфаем там даже и не пахло. А флешгаджет там есть и так.

Date: 2012-10-27 09:48 am (UTC)
From: [identity profile] jury093.livejournal.com
тогда и смысла нет
суть гаджета - организовать некий интерфейс, в твоем случае "сетевое устройство" (ethernet, wifi, bluetooth,ppp etc), где транспортом выступает usb..
сетки нет -> гаджет нереален..

Date: 2012-10-27 09:53 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Ну да, конечно, рассказывайте. Вот например у девайса для журнала Vogue прикрутили гаджет USB-Ethernet. В результате, когда втыкаешь его по USB, он видится как сеть и с ним можно работать по сети, что весьма удобно. Хотя физиченски сетевухи у него нет.

Date: 2012-10-27 11:06 am (UTC)
From: [identity profile] jury093.livejournal.com
зачем нужны такие извращения?!
сделать то можно почти что угодно, но в чем глубинный смысл? это примерно, как ходить в виндюках на собственный винчестер через сетевую шару.. или шилом в глазу ковырятся..

Date: 2012-10-27 11:41 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Вы серьезно не понимаете прелесть такого решения или шутите?

Date: 2012-10-27 06:30 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Мне неудобно намекать на вашу некомпетентность, но всё же я поясню.

Смотрите, в обычном режиме у воговского плеера всего два серъёзных интерфейса для связи с внешним миром: USB и UART. По первому монтируется флешка, на которую можно записать файл, по второму отладочная консоль и всё. Я конечно умалчиваю о GPIO и АЦП, но на мой взгляд они не играют большой роли.
Т.е. для работы с железкой надо работать через консоль юарта и кидать файлики через флешку, по моему не сильно разбежишься.

Когда поднимаешь USB-Ethernet, то появляется возможность по сети:
1. Перебрасывать файлы;
2. Поднять SSH (отпадает нужда в дополнительном интерфейсе UART);
3. Пробрасывать любые нужные протоколы, например вот сделать VNC-монитор: http://habrahabr.ru/post/121118/
4. Profit...

И всё это, только имея один гаджет. Так что не стоит его недооценивать.

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

Date: 2012-10-27 08:06 pm (UTC)
From: [identity profile] jury093.livejournal.com
>Мне неудобно намекать на вашу некомпетентность, но всё же я поясню.
не-не, считай меня некомпетентным и закроем тему..
извини, что влез в журнал..

Date: 2012-10-27 08:10 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Отчего ж, мне всегда приятно расширения круга моих читателей. Тем более линуксойдов.

Я не хотел обидеть, если что. Мир, дружба, linux :)))

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 01:41 pm
Powered by Dreamwidth Studios