Как распаковать/смонтировать initrd.bin на Заурусе?

КПК с Linux, установка Linux на iPaq и другие модели, программы
Закрыто
Dadooda
Аспирант (2 lvl)
Сообщения: 88
Зарегистрирован: Пн фев 02, 2004 14:29

Как распаковать/смонтировать initrd.bin на Заурусе?

Сообщение Dadooda » Чт авг 04, 2005 17:37

Люди

Подскажите плиз как можно цивильными методами распаковать или смонтировать initrd.bin из прошивок.

Цель - доставать из прошивок нужные файлы.
Последний раз редактировалось Dadooda Вс авг 07, 2005 01:28, всего редактировалось 1 раз.

ViV
Академик (6 lvl)
Сообщения: 1138
Зарегистрирован: Ср апр 21, 2004 17:34

Сообщение ViV » Чт авг 04, 2005 20:44

Ставишь модуль jffs2 и монтируешь файл как loop-устройство. Если нужны файлы из pdaxrom, скачай builder и гляди в нем.
Macbook Air 13, iPhone 4S

Dadooda
Аспирант (2 lvl)
Сообщения: 88
Зарегистрирован: Пн фев 02, 2004 14:29

Сообщение Dadooda » Пт авг 05, 2005 09:39

ViV писал(а):Ставишь модуль jffs2 и монтируешь файл как loop-устройство. Если нужны файлы из pdaxrom, скачай builder и гляди в нем.
Попробовал смонтировать initrd.bin от Cacko 1.22 как jffs2, не вышло:

# mount -t jffs2 -o ro,loop /mnt/card/initrd.bin /mnt/misc
mount: Mounting /home/system/var/mnt/card/initrd.bin on /mnt/misc failed: Invalid argument

jffs2 в ядре есть, /dev/root смонтирован как jffs2.

Вообще initrd.bin от Cacko начинается словами SHARP!1.20

Может быть чтобы он стал файловой системой нужно ему от головы отрезать немного лишних байтов? Наверняка знаток Антон Масловский знает ответ :)

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Пт авг 05, 2005 10:19

Dadooda писал(а):Вообще initrd.bin от Cacko начинается словами SHARP!1.20

Может быть чтобы он стал файловой системой нужно ему от головы отрезать немного лишних байтов? Наверняка знаток Антон Масловский знает ответ :)
Натюрлих, а именно 16 оных, если не ошибаюсь. Приеду на работу, уточню.

ViV
Академик (6 lvl)
Сообщения: 1138
Зарегистрирован: Ср апр 21, 2004 17:34

Сообщение ViV » Пт авг 05, 2005 10:54

Я, вообще-то, предлагал ставить модуль и монтировать файл на десктопе, на завре этот модуль, естественно, есть. 8) Но раз надо что-то отрезать, то все равно уже.
Macbook Air 13, iPhone 4S

Dadooda
Аспирант (2 lvl)
Сообщения: 88
Зарегистрирован: Пн фев 02, 2004 14:29

Сообщение Dadooda » Пт авг 05, 2005 12:09

maslovsky писал(а):
Dadooda писал(а):Вообще initrd.bin от Cacko начинается словами SHARP!1.20

Может быть чтобы он стал файловой системой нужно ему от головы отрезать немного лишних байтов? Наверняка знаток Антон Масловский знает ответ :)
Натюрлих, а именно 16 оных, если не ошибаюсь. Приеду на работу, уточню.
Очень жду точную цифру. Пробовал отрезать 16 - не помогло.

Dadooda
Аспирант (2 lvl)
Сообщения: 88
Зарегистрирован: Пн фев 02, 2004 14:29

Сообщение Dadooda » Вс авг 07, 2005 21:55

В принципе со всем разобрался, сколько байтов отрезать и пр. Действительно 16 если смотреть по первым байтам jffs2-файловых систем.

Проблема моя была в том, что по умолчанию jffs2 можно монтировать только с MTD-устройств, а я пытался из loop-девайса. На десктопе всё смонтировать скорее всего получится из loop или RAM (попробую в понедельник), но очень нужно на самом Заурусе, из файла через loop device.

Посему очень прошу: люди добрые, кто собирал ядро 2.4.20 или позднее, соберите и выложите мне модуль blkmtd.o а также утилитку losetup.

На ZUG один кекс хвалился что собрал и выложил архивчик mtdtools.tar.gz, но у них как назло заглючил форум (ошибка в PHP-коде), когда исправят - неизвестно. Кстати если у кого есть этот mtdtools.tar.gz - дайте плиз.

Можно слать на мыло: alex-spam@rdc.ru

Спасибо

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Пн авг 08, 2005 16:33

Выслал. Заодно добавил модуль в прошивку (losetup там уже есть)

jkukka
Кандидат (3 lvl)
Сообщения: 175
Зарегистрирован: Вт май 03, 2005 17:22

Сообщение jkukka » Ср авг 10, 2005 12:10

maslovsky писал(а):Выслал. Заодно добавил модуль в прошивку (losetup там уже есть)
А вот на десктопе не получилось смонировать. Оно MTD хочет.

ViV
Академик (6 lvl)
Сообщения: 1138
Зарегистрирован: Ср апр 21, 2004 17:34

Сообщение ViV » Ср авг 10, 2005 12:31

на десктопе нужен модуль эмуляции - mtd_blkmtd
Macbook Air 13, iPhone 4S

jkukka
Кандидат (3 lvl)
Сообщения: 175
Зарегистрирован: Вт май 03, 2005 17:22

Сообщение jkukka » Ср авг 10, 2005 13:18

Чтобы не потерялось:
modprobe mtdcore
modprobe jffs2
modprobe mtdram total_size=64536 erase_size=16
modprobe mtdchar
mknod /dev/mtdblock0 b 31 0
modprobe mtdblock
losetup -o 16 /dev/loop0 ./initrd.bin
dd if=/dev/loop0 of=/dev/mtdblock0
losetup -d /dev/loop0
mount -t jffs2 /dev/mtdblock0 /mnt
ls /mnt

rmmod mtdblock
rmmod mtdram
rmmod jffs2
rmmod mtdchar
rmmod mtdpart
rmmod mtd_blkdevs
rmmod mtdcore

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Ср авг 10, 2005 13:20

Положу тему в архив

Dadooda
Аспирант (2 lvl)
Сообщения: 88
Зарегистрирован: Пн фев 02, 2004 14:29

Сообщение Dadooda » Ср авг 10, 2005 17:25

jkukka писал(а):Чтобы не потерялось:
modprobe mtdcore
modprobe jffs2
modprobe mtdram total_size=64536 erase_size=16
...
rmmod mtd_blkdevs
rmmod mtdcore
Это всё понятно, но здесь используется mtdram. Если монтировать на Завре, никакого RAMа не хватит - нужно напрямую из loop'а.

Кто запостит рабочий пример с использованием blkmtd.o на Завре?

Dadooda
Аспирант (2 lvl)
Сообщения: 88
Зарегистрирован: Пн фев 02, 2004 14:29

Сообщение Dadooda » Чт авг 11, 2005 02:15

Dadooda писал(а):Кто запостит рабочий пример с использованием blkmtd.o на Завре?
Так и быть приведу рабочий пример сам, тем более что пишу с Завра на котором только что это сделал.

# сюда будем монтировать
mkdir cacko
# инитим девайсы
losetup -o 16 /dev/loop0 initrd.bin
modprobe blkmtd device=/dev/loop0
# ВАЖНО: узнаём номер mtd
cat /proc/mtd
...
mtd4: 01afe000 00020000 "blkmtd: /dev/loop0"
...

# у меня девайс был mtd4 посему пришлось сделать
mknod /dev/mtdblock4 b 31 4
# монтируем. -o loop НЕ НУЖЕН
mount -t jffs2 /dev/mtdblock4 cacko -o ro
# после mount у меня на C1000 была пауза секунд 20
# вернувшись в шелл смотрим что там смонтировалось
ls cacko/*

После отмонтирования можно сделать
rmmod blkmtd
losetup -d /dev/loop0

Закрыто

Вернуться в «КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее»