dlinyj: (Default)
[personal profile] dlinyj
Сначала я попробовал собрать свою 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


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

Date: 2012-10-02 03:23 pm (UTC)
From: [identity profile] 22021977.livejournal.com
Linux может говорить No such file or directory
и при отсутствии нужной либы
что говорит?
ldd /tmp/hello
ну и
strace /tmp/hello
Edited Date: 2012-10-02 03:32 pm (UTC)

Date: 2012-10-02 03:40 pm (UTC)
From: [identity profile] paracloud.livejournal.com
Правильно.
Можно попробовать статику собрать: arm-none-linux-gnueabi-gcc -static -mcpu=arm920t hello.c -o hello

Date: 2012-10-02 07:20 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Я правильно понимаю, что статикой он берёт либы в себя?

Date: 2012-10-02 09:34 pm (UTC)
From: [identity profile] 22021977.livejournal.com
Да
но для теста, можно собрать и статиком.
Edited Date: 2012-10-03 11:48 am (UTC)

Date: 2012-10-03 09:17 am (UTC)

Date: 2012-10-03 11:17 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Увы...

root@(none):/tmp# ./hello
Segmentation fault
root@(none):/tmp#

Date: 2012-10-03 11:57 am (UTC)
From: [identity profile] paracloud.livejournal.com
Возможно либы в toolchain собраны под более старшую архитектуру arm, слинкованный статикой код дает illegal insn.
Придётся пересобрать и libc под нужный cpu/arch.
Или искать другой toolchain.
Кстати, откуда инфа, что -mcpu=arm920t это подходит для PRS-505?

Date: 2012-10-03 12:02 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Ох, чувствую гемморой :))). С чего начать, чтобы их пересобрать?

Инфа отсюда http://systemsand.me/sony-prs-300prs-505-hack/

В качестве жертвы была приобретена книга SONY PRS 300. Важно отметить, что платформа у 505 и 300 абсолютно идентичная. Внутри находится Freescale i.MXL MC9328MXLVP20 (ARM920T core, 200MHz), 64 MB RAM, 512MB Internal.Инструментарий, который понадобился — паяльный инструмент, осциллограф, логический анализатор и, естественно,PC с Linux.

Date: 2012-10-03 12:00 pm (UTC)
From: [identity profile] paracloud.livejournal.com
Можно попробовать экстрим без libc stdio - с прямым вызовов syscall:
Что то типа (не помню, что там с номерами syscalls на arm - наверное тоже в asm/unistd.h):


     syscall__NR_write
Edited Date: 2012-10-03 12:02 pm (UTC)

Date: 2012-10-03 12:18 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Мысль верная... Но всё равно не пашет. Пересобрал, попробовал...

root@(none):/tmp# ./hello
Segmentation fault
root@(none):/tmp#

Мне кажется тут нужна тяжёлая артилерия, в виде нормального компилятора, мейкфайла и библиотек. Но я даже не представляю с какого конца тут подойти...

Date: 2012-10-03 01:56 pm (UTC)
From: [identity profile] paracloud.livejournal.com
Значит стартовый файл crt0.o который линкует тулчейн, или код который генерит компилятор, не соответсвует target архитектуре.
Короче, нужен нормальный тулчейн (и target библиотеки, очевидно). Ж)

Date: 2012-10-04 02:21 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Не подскажите, где вы сделали этот код?

Date: 2012-10-04 03:38 pm (UTC)
From: [identity profile] paracloud.livejournal.com
Набрал в гугле "C to HTML" и взял первую ссылку - http://www.bedaux.net/cpp2html/

Date: 2012-10-02 07:20 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Спасибо за свежую мысль. С другой стороны, значит нужен компилятор, который будет собирать под конкретные библиотеки :(.

Date: 2012-10-02 09:34 pm (UTC)
From: [identity profile] 22021977.livejournal.com
Скорее его нужно настроить на использование нужных хеадеров.

Date: 2012-10-02 10:04 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Ну какие нужные хедеры, тут примитивнейший хелоу ворд! Самая что ни на есть классика:

#include
[Error: Irreparable invalid markup ('<stdio.h>') in entry. Owner must fix manually. Raw contents below.]

Ну какие нужные хедеры, тут примитивнейший хелоу ворд! Самая что ни на есть классика:

#include <stdio.h>

int main(void)
{
printf("Hello, world\n");
return 0;
}

И он не работает. Полагаю, тут засада в разнице версий либ. А тут уже секс совсем другого уровня.

Date: 2012-10-03 07:20 am (UTC)
From: [identity profile] maddev.livejournal.com
libc.so может не видеть. А хедеры — это не больше, чем работа с исходным кодом (вставка текста из другого файла в нужном месте): они не имеют никакого отношения к результирующему бинарнику.

Date: 2012-10-03 11:17 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Я, к счастью, это прекрасно понимаю
Edited Date: 2012-10-03 11:17 am (UTC)

Date: 2012-10-03 11:23 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Увы, ни ldd ни strace там нет :(((((((((

Date: 2012-10-03 04:34 pm (UTC)
From: [identity profile] 22021977.livejournal.com
Я думаю вам надо ковырять в эту сторону
http://ebookapplications.com/
собственно http://ebookapplications.com/downloads/5
добавлено:
Хм.. бегло посмотрел это MPL_and_GPL_code
похоже это совсем не то... хотя что то полезное от туда возможно и удастся вытянуть
Edited Date: 2012-10-03 04:51 pm (UTC)

Date: 2012-10-03 07:03 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
О какая замечательная ссылочка. Можно попробовать найти людей, кто это делал. Они могут подсказать или дать тулчейн.

>>Хм.. бегло посмотрел это MPL_and_GPL_code

А что это и чем плохо?

Date: 2012-10-03 07:21 pm (UTC)
From: [identity profile] 22021977.livejournal.com
MPL_and_GPL_code мне показалось что это не вся прошивка.. а небольшой обрубок.

до коллекции еще одна прошивка
http://www.the-ebook.org/forum/viewtopic.php?t=14460&postdays=0&postorder=asc&start=0
http://code.google.com/p/prs-plus/downloads/list
точнее тут
http://code.google.com/p/prs-plus/source/checkout
а еще есть
http://openinkpot.org/wiki
Edited Date: 2012-10-03 11:17 pm (UTC)

Date: 2012-10-04 04:54 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Полезно, не видел ещё. Я начинал отсюда http://systemsand.me/sony-prs-300prs-505-hack/ . Самое главное найти тулчейн. Чтобы можно было это собрать. Программа примитивна

Date: 2012-10-03 06:02 pm (UTC)
From: [identity profile] 22021977.livejournal.com
А тут вы были?
http://www.sony.net/Products/Linux/Audio/PRS-505.html

Date: 2012-10-03 07:01 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Да, разумеется. Правда пока все не могу скачать (на работе нет инета).

Правда говорят, что тулчейн собрать не удаётся.

Спасибо за ссылку и внимание к проекту.

Date: 2012-10-03 07:22 pm (UTC)
From: [identity profile] 22021977.livejournal.com
У самого PRS-300 :)
ну и Киндел 3 :)

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 09:28 pm
Powered by Dreamwidth Studios