Помогите с образами Kindle DX
Goto page 1, 2, 3, 4  Next
 
Libroom Forum IndexAmazon KindleKindle DX
AuthorMessage

dr_g100k
Зрелый участник форума

Зрелый участник форума



Joined: 15 Aug 2009
Posts: 31



Posted: 06.10.2009 01:01    

Здравствуйте, в этой теме libroom.net/viewtopic.php?t=11562 я пытался открыть доступ в интернет с устройства через usb. Нашел пару мест, где kindle выходит через амазоновский прокси, вроде решение нашел, но, как на зло, закоментировал слишком много строчек в конфиге Embarassed
Девайс перестал загружаться...
Залез в загрузчик и доломал все окончательно Crying or Very sad
Теперь я остался без корневой файловой системы (ядро пишет что не может определить ее тип) и kindle dx превратился в 3,3 Гб флешку. Такое положение вещей мне совсем не нравится (ну а кому бы понравилось?)
По сему прошу помощи.
Один китайский господин вернул к жизни устройство после тех же самых манипуляций. Даже обещал мне помочь, но месяц назад скрылся и больше не появляется.
Действия по восстановлению он описал таким образом:
1. Выяснить пароль от mmc0
2. Из recovery menu экспортировать mmc0
3. Создать новую файловую систему на этом разделе и залить на нее образ от другого устройства.

Таким образом хочу попросить у владельцев "живых" kindle dx пару образов.
образ загрузчика (чтобы пароль сгенерировать) и образ корневой фс.

Как образы сделать, если нет ни у кого до сих пор, расскажу.
Бэкапы - они всегда нужны (теперь-то я точно знаю)
Тем более, что уже не один я такой, кто систему "завалил", а еще сколько будет?

Помогите, люди добрые...
 
View user's profile ^

DrManual
Член клуба The eBook

Член клуба The eBook



Joined: 28 Dec 2006
Posts: 458


Location: Москва

Posted: 06.10.2009 13:06    

Пишите как сделать "образ" если не сильно тернисто - постараюсь
 
View user's profile ^

dr_g100k
Зрелый участник форума

Зрелый участник форума



Joined: 15 Aug 2009
Posts: 31



Posted: 06.10.2009 20:29    

О, спасибо!

1. Нужно Включить usbnetwork
Здесь http://www.mobileread.com/forums/attachment.php?attachmentid=31008&d=1 245552146 лежит update в котором, есть busybox
После установки этого update в корне вашего раздела, доступного по usb появится каталог usbnet
В каталоге есть файл usbnetwork - это скрипт который запускает сервисы ssh и telnet.
В скрипте нужно поменять HOST_IP - на любой ip адрес, KINDLE_IP на адрес в той же подсети
Пример:
HOST_IP=192.168.1.1
KINDLE_IP=192.168.1.2
по желанию можно закоментировать (# в начале строки) запуск telnet

скрипт будет выглядеть вот так

Code:

#!/bin/sh

# Tweak these to match your setup
HOST_IP=192.168.1.1
KINDLE_IP=192.168.1.2

U=/mnt/us
R=$U/usbnet

# Check if we already have ethernet gadget driver running
lsmod | grep g_ether > /dev/null && exit 2

# Unload mass storage gadget and load ethernet one
rmmod g_file_storage || exit 1
modprobe g_ether host_addr='EE4900000000' dev_addr='EE1900000000' || exit 1
ifconfig usb0 ${KINDLE_IP} || exit 1
route add default gw ${HOST_IP}

# start telnet & ssh daemons
#$R/busybox telnetd
$R/dropbear

exit 0

Сохраняем файл и Перезагружаем устройство.

Нажимаем HOME.
В поиске (можно любую клавишу нажать, выползет поисковое меню) набираем строку ;debugOn нажимаем ввод
ищем еще раз только теперь `usbNetwork (знак ` - это не то же самое что ')
нажимаем ввод

Подключаем устройство к компьютеру через usb
После этого у Вас дожен обнаружиться новый сетевой интерфейс.
Дальше, в зависимости от операционной системы, либо устройство найдет драйверы (как это делает linux и MacOS) либо нужно подсунуть драйвер (для Windows XP у меня где-то есть)
На новом сетевом интерфейсе забиваем вручную адрес, который указали в HOST_IP
Далее через любой эмулятор терминала (опять надо знать какая ОС: в *nix тут и говорить нечего, в Windows самый популярный Putty http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)
заходим на kindle

ssh 192.168.1.2
пользователь, естесстно, root
пароля нет.

Если видим такую вот картинку


Code:

#################################################
#  N O T I C E  *  N O T I C E  *  N O T I C E  #
#################################################
Rootfs is mounted read-only. Invoke mntroot rw to
switch back to a writable rootfs.
#################################################

Значит все получилось

Чтобы вернуться в нормальный режим (когда при подключении открывается fat раздел с книгами) просто перезагрузитесь.

Это была самая трудная часть

Если это Вас не испугало, буду писать дальше.
И еще, сориентируйте меня, пожалуйста, по поводу "нужно писать подробнее" или "быстро и по существу"


Last edited by dr_g100k on 09.10.2009 10:32; edited 1 time in total
 
View user's profile ^

DrManual
Член клуба The eBook

Член клуба The eBook



Joined: 28 Dec 2006
Posts: 458


Location: Москва

Posted: 07.10.2009 15:30    

Извините, но мои кривуки точно такие манипуляции не осилят. Жаль, что потратили столько времени. Но может более рукастые откликнуться.
 
View user's profile ^

dr_g100k
Зрелый участник форума

Зрелый участник форума



Joined: 15 Aug 2009
Posts: 31



Posted: 09.10.2009 10:27    

Эх, жаль.
Буду ждать кого-нибудь ещё.
Если кто-то зайдёт по ssh покажите, пожалуйста, здесь вывод команды mount
Дальше смогу написать только после этого.
 
View user's profile ^

boroda
Developer

Developer

Donate

Joined: 03 Jul 2003
Posts: 6203


Location: США

Posted: 09.10.2009 15:26    

dr_g100k

Сделайте лучше update script, это будет намного проще запустить. Smile Я бы все для вас сделал, но на руках нет KDX.

Возьмите обычный шрифтовый апдейт, исправьте в нем update.sh, чтобы все, что вам нужно, дампить в /mnt/us

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

У меня с того времени, когда игрался с KDX, остался дамп (там вывод файл-системы, плюс df-k, /proc/mounts, /proc/mtd, /proc/filesystems). Надеюсь, пригодится.

Code:

/proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   sockfs
nodev   pipefs
nodev   anon_inodefs
nodev   futexfs
nodev   tmpfs
nodev   inotifyfs
nodev   devpts
   ext3
nodev   ramfs
   msdos
   vfat
nodev   nfs
nodev   rpc_pipefs
nodev   fuse
   fuseblk
nodev   fusectl
-----------------------------
-----------------------------
/proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00010000 "Bootloader1"
mtd1: 00380000 00010000 "Kernel1"
mtd2: 00008000 00002000 "BoardId"
mtd3: 00020000 00010000 "Bootloader2"
mtd4: 00380000 00010000 "Kernel2"
mtd5: 00010000 00010000 "BootEnv"
mtd6: 00020000 00010000 "Diags"
mtd7: 00006000 00002000 "Vectors"
mtd8: 00010000 00010000 "unused0"
-----------------------------
-----------------------------
/proc/mounts
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,noatime,nodiratime,data=ordered 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /dev tmpfs rw 0 0
devpts /dev/pts devpts rw 0 0
rwfs /mnt/rwfs tmpfs rw 0 0
shm /dev/shm tmpfs rw 0 0
rwfs /var tmpfs rw 0 0
/dev/mmcblk0p2 /var/local ext3 rw,sync,data=ordered 0 0
fsp /mnt/us fuse.fsp rw,nosuid,nodev,user_id=0,group_id=0 0 0
/dev/loop/0 /mnt/base-us vfat rw,noexec,noatime,nodiratime,fmask=0022,dmask=0022,codepage=cp437,ioch arset=iso8859-1,utf8 0 0
-----------------------------
df -k before remount
-----------------------------------
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mmcblk0p1          408685    320763     71498  82% /
tmpfs                    63576        28     63548   0% /dev
rwfs                     32768       272     32496   1% /mnt/rwfs
shm                      63576         0     63576   0% /dev/shm
rwfs                     32768       272     32496   1% /var
/dev/mmcblk0p2           33494      4211     27554  13% /var/local
fsp                    3560252     26940   3533312   1% /mnt/us
/dev/loop/0            3560252     26940   3533312   1% /mnt/base-us
-----------------------------------
 
View user's profile ^

dr_g100k
Зрелый участник форума

Зрелый участник форума



Joined: 15 Aug 2009
Posts: 31



Posted: 09.10.2009 20:40    

boroda wrote:
dr_g100k

Сделайте лучше update script, это будет намного проще запустить. Smile Я бы все для вас сделал, но на руках нет KDX.

Возьмите обычный шрифтовый апдейт, исправьте в нем update.sh, чтобы все, что вам нужно, дампить в /mnt/us

Таким образом пользователям нужно будет всего лишь выполнить псевдо-апдейт, а это большинство из них уже умеет.
[/code]

Я уже подумал об этом, мне не хватало данных.
Спасибо за дамп.

Теперь я знаю откуда начинать искать.

Ушел писать скрипт.
 
View user's profile ^

Nifty
Искушенный участник форума

Искушенный участник форума



Joined: 07 Aug 2008
Posts: 59



Posted: 11.10.2009 05:47    

У меня есть KDX и usbnetwork установлен, и полный дамп fs есть, и сделал я его до того как начал ковырять девайс Wink

Если еще надо - пишите, помогу чем смогу.
 
View user's profile ^

dr_g100k
Зрелый участник форума

Зрелый участник форума



Joined: 15 Aug 2009
Posts: 31



Posted: 12.10.2009 10:25    

Nifty wrote:
У меня есть KDX и usbnetwork установлен, и полный дамп fs есть, и сделал я его до того как начал ковырять девайс Wink

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

Чтобы по 10 раз скрипт не отлаживать, выложу его после того как восстановлю систему.

Но, сначала нужно выяснить пароль от mmc0

Выдерните, мне пожалуйста, загрузочное ядро

Code:

dd if=/dev/mtd/1ro of=image bs=1024 count=3584
dd if=image of=img.gz bs=1 skip=$((0x32a0))
gunzip img.gz
dd if=img of=initramfs.cpio.gz bs=1 skip=$((0x14a40))


Не знаю каким образом человек выяснил смещения (если кто знает, просветите)

Если всё правильно, то, по идее, этот образ можно будет запустить через qemu-arm
 
View user's profile ^

Nifty
Искушенный участник форума

Искушенный участник форума



Joined: 07 Aug 2008
Posts: 59



Posted: 12.10.2009 21:41    

dr_g100k wrote:

Не знаю каким образом человек выяснил смещения (если кто знает, просветите)

Если всё правильно, то, по идее, этот образ можно будет запустить через qemu-arm


Подозреваю, что он просто искал в дампе сигнатуры gzip архивов Smile

ЗЫ: добрался до kdx, ковыряюсь...
 
View user's profile ^

dr_g100k
Зрелый участник форума

Зрелый участник форума



Joined: 15 Aug 2009
Posts: 31



Posted: 13.10.2009 09:45    

Образы все получил, БОЛЬШОЕ СПАСИБО Nifty

Сегодня попробую 2 варианта восстановления:
1. Через скрипт, который создаст заново файловую систему на корневом разделе и запишет все файлы
2. Попытаюсь экспортировать устройство mmc0, а дальше вручную создам файловую систему и перепишу файлы
Хотел попробовать первый вариант вчера ночью, но под рукой не оказалось linux, а ни Снежный леопард, ни Солярис не умеют создавать файловые системы ext2, так и пришлось ставить ubuntu на макбук.
 
View user's profile ^

dr_g100k
Зрелый участник форума

Зрелый участник форума



Joined: 15 Aug 2009
Posts: 31



Posted: 14.10.2009 11:49    

Как я выяснил пароль от коневого раздела.
Для начала распаковал образ initrmfs, который предоставил Nifty
внутри есть /bin/recovery-util - это как раз та программка, которая выполняет следующие действия:
recovery menu
1. Открывает в мир mmc0 (корневой раздел)
2. Стирает mmc0
3. Инициализирует, размечает и форматрует флешку.
4. Открывает в мир fat раздел
5. Совершает update коренвого раздела при наличии rootfs.tar.gz на fat разделе

Удивительно, что в initramfs нет способа создавать файловые системы ext2, зато есть mkdosfs
так что в случае пункта 3 recovery menu отформатируется только fat раздел. Мне это не совсем понятно, но сэкономленные байты разработчиками амазона отметают возможность п.1 из моего прошлого поста.
Остаётся выяснить пароль у recovery-util.
Запускаю программу в терминале (№1) через эмулятор qemu-arm
параметры:
-L initramfs каталог с распакованной initramfs
-g 1234 сервер отладчика localhost:1234

Code:

$ qemu-arm -L initramfs -g 1234 -cpu arm1136 initramfs/bin/recovery-util

В другом терминале (№2) запускаю gdb надо только найти (или собрать) gdb, который умеет работать с arm elf, тот который для x86 не подойдёт

Вывод писать не буду, только ввод.

Code:

$ gdb
(gdb) b * 0x128d8
(gdb) b * 0x128e8
(gdb) continue

Здесь я поставил точки останова на входе в функцию получения серийного номера и функцию проверки пароля

В терминале №1 вхожу в recovery menu, выбираю Export mmc0 ввожу чего-нибудь и нажимаю ввод.
Программа остановилась на первой точке в терминале №2

Смотрю адрес, на который указывает регистр процессора r0 и вписываю по этому даресу серийный номер kindle dx это тот который на задней крышке с B004 начинается.

Code:

(gdb) info reg - Выяснить на какую ячейку  указывает r0 (к примеру там 0x12311)
(gdb) set{char}0x12311='B' - Записать по этому адресу
(gdb) set{char}0x12312='0'
... ит.д. весь номер
(gdb) x/sw 0x12311 - проверяю, нет ли ошибки
(gdb) continue


С gdb имел дело впервые, так что если есть возможность записать строку сразу, а не каждый char в отдельности, поделитесь, пожалуйста. Я сначала решил {char*} но gdb мне сказал, что если хочешь указатели, будь добр найди мне malloc

Далее программа останавливется на 2 точке. Сравнение введенного пароля с эталонным, на который указывает регистр sp
Code:

(gdb) info reg - Адрес в регистре sp (к примеру 0x43212)
(gdb) x/sw 0x43212

В появившейся строчке пароль, начинается он всегда на fiona, а дальше 4 шестнадцатиричные цЫфры.
 
View user's profile ^

igorsk
Developer

Developer



Joined: 12 Jan 2007
Posts: 619



Posted: 14.10.2009 12:05    

Выложи recovery-util, посмотрю, как генерируется пароль.
 
View user's profile ^

dr_g100k
Зрелый участник форума

Зрелый участник форума



Joined: 15 Aug 2009
Posts: 31



Posted: 14.10.2009 16:42    

igorsk wrote:
Выложи recovery-util, посмотрю, как генерируется пароль.

ОК домой вот попаду.
по ldd ещё библиотека нужна, её тоже скину.

Добавлено спустя 3 часа 55 минут 33 секунды:

recovery-util
 
View user's profile ^

dr_g100k
Зрелый участник форума

Зрелый участник форума



Joined: 15 Aug 2009
Posts: 31



Posted: 15.10.2009 10:06    

Сегодня, в 03:24 мой kindle dx, после 2ух месячного молчания, вновь произнёс "Wellcome to kindle" голосом некоего Тома. УРА! (Голос, я, кстати, сразу поменял на Саманту ) Smile
Пришлось, правда, поковыряться.
Первым делом отформатировал корневой раздел (после того как открыл mmc0 через usb)
Разделов оказалось аж 4 штуки, ядро искало корень на первом, поэтому отформатировал 1

Code:

# mkfs.ext3 /dev/sdc1 - Форматирую
# mount /dev/sdc1 /mnt - Монтирую
# mkdir -p /mnt/mnt/{us,base-us,rwfs} - Небыло в архиве, так что сделал сам
# cd /mnt && tar -vxf ~/rootfs.tar.gz - Распаковал образ


После перезагрузки стартовые скрипты отформатировали, подключили и настроили все остальные разделы.
Но вот /etc/rc5.d/S95framework ну никак не желал стартовать и уводил устройство в циклическую перезагрузку. Мало того, логов он никаких не выдавал (или я их не смог найти)
удалил этот скрипт, система показала login
Это уже что-то.
Ещё одно устройство: /dev/fb/0 отказывалось работать
создал его заново, заработало

Code:

# mknod c /dev/fb/0 29 0


Потом запустил вручную конечный скрипт framework

Code:

# /opt/amazon/ebook/bin/start.sh start

На экране устройства появился юзергайд Smile
Восстановил загрузочный скрипт, и, не долго думая и выясняя почему же на старте скрипт не срабатывал, я сделал factory reset
Закрутилось, завертелось и на экране появилось письмо Thank you.

Всем спасибо, готов ответить на Ваши вопросы.
 
View user's profile ^

dr_g100k
Зрелый участник форума

Зрелый участник форума



Joined: 15 Aug 2009
Posts: 31



Posted: 18.10.2009 23:07    

Скрипт, который вытаскивает файловую систему лежит Здесь. У меня вытаскивалась около часа. Запускать только через Update Your Kindle, через перезагрузку не работет.
Уважаемые господа, у кого зарегистрированный kindle dx, не могли бы закинуть куда-нибудь образ вашей системы для анализа?
 
View user's profile ^

REALexMSG
Член клуба The eBook

Член клуба The eBook



Joined: 01 Sep 2005
Posts: 23302


Location: Москва, Россия

Posted: 19.10.2009 09:34    

dr_g100k
я могу вытащить - только если не сложно по шагам действия опишите...
_________________
Sony PRS-500, Sony PRS-505, ...
Продажа в Москве и пересылка по России Sony Reader, Amazon Kindle, B&N Nook, Apple iPad и аксессуаров
 
View user's profile ^

dr_g100k
Зрелый участник форума

Зрелый участник форума



Joined: 15 Aug 2009
Posts: 31



Posted: 19.10.2009 09:54    

REALexMSG wrote:
dr_g100k
я могу вытащить - только если не сложно по шагам действия опишите...


О, замечательно!
Подключаете kindle через usb к компу. бросаете в корень открывшегося раздела
вот этот файл, отключаете устройство.
потом нажимаете Home потом menu выбираете Settings ещё раз нажимаете menu выбираете Update Your Kindle
ждёте около часа (очень долго, я по началу подумал что всё зависло).
Когда устройство САМО перезагрузится подключаете его по usb в корне вместо того файла, который вы скопировали появится файл rootfs.img.gz размер 300~400 мегабайт. одну копию себе сохраните (мало ли чего). Потом мне в личку постучитесь, я скажу куда файл выложить.
 
View user's profile ^

Nifty
Искушенный участник форума

Искушенный участник форума



Joined: 07 Aug 2008
Posts: 59



Posted: 19.10.2009 11:05    

dr_g100k wrote:
О, замечательно!
Подключаете kindle через usb к компу. бросаете в корень открывшегося раздела
вот этот файл, отключаете устройство.
.................


Тьфу, и почему я не догадался здесь спросить Smile
 
View user's profile ^

REALexMSG
Член клуба The eBook

Член клуба The eBook



Joined: 01 Sep 2005
Posts: 23302


Location: Москва, Россия

Posted: 19.10.2009 11:12    

dr_g100k
а если у меня на нем лежат файлы русификации - их перед этим удалить?

Posted after 34 minutes 30 seconds:

ну вообщем процесс начался Ж-)

Posted after 15 minutes 51 seconds:

образ rootfs.img.gz весом в 237мб у меня. пишите куда закинуть
_________________
Sony PRS-500, Sony PRS-505, ...
Продажа в Москве и пересылка по России Sony Reader, Amazon Kindle, B&N Nook, Apple iPad и аксессуаров
 
View user's profile ^
Libroom Forum IndexAmazon KindleKindle DXAll times are GMT + 4 Hours
Goto page 1, 2, 3, 4  Next
Page 1 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© Libroom, 2021