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

Тот самый график, о котором я писал ранее
О моих терханиях можно почитать в комментариях к тому посту http://dlinyj.livejournal.com/609201.html
Собственно говоря, я поставил тулчейн, который мне посоветовал
Поиском "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 (спасибо
Компилировал примитивнной коммандой с минимум опций : 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. Но это отдельный гемморой. Готов выслушать мысли и предложения.