Table of Contents
Как я ставил ядро на таблетку
Ну начал я с того, что запорол рабочую систему на таблетке, пытаясь сделать то, что описано тут . Как оказалось, того, что там написано, было не достаточно. Ну так вот теперь возвращаю таблетку в рабочее состояние. Для этого я скачал здесь The latest OS 2008 DIABLO release for Nokia N810. Теперь надо поставит ось на таблетку для этого выключаем девайс, подключаем его к компу и делаем следующую вещь:
flasher-3.5 -F RX-44_DIABLO_5.2008.43-7_PR_COMBINED_MR0_ARM.bin -f -R
ну а дальше нужно просто включить устройство (а можно включить его на зарядку). Все к моей радости заработало, дальше буду опять его портить.
root file sistem
Теперь занимаемся изменением rootfs (чистенькая rootfs может быть получена здесь, но раз уж я скачал The latest OS 2008 DIABLO release for Nokia N810, то оттуда и возьму)
# flasher-3.5 --unpack -F RX-44_DIABLO_5.2008.43-7_PR_COMBINED_MR0_ARM.bin
на что мне отвечают примерно следующее:
flasher v2.4.5 (Jun 25 2009) SW version in image: RX-44_DIABLO_5.2008.43-7_PR_MR0 Image 'kernel', size 1536640 bytes Version 2.6.21-200842maemo1 Image 'initfs', size 2327808 bytes Version 0.95.22-200842maemo1w38b3 Image 'rootfs', size 125435904 bytes Version RX-34+RX-44+RX-48_DIABLO_5.2008.43-7_PR_MR0 Image '2nd', size 8192 bytes Valid for RX-44: 0808 Version 1.1.16-200844maemo2 Image 'xloader', size 9216 bytes Valid for RX-44: 0808 Version 1.1.16-200844maemo2 Image 'secondary', size 100736 bytes Valid for RX-44: 0808 Version 1.1.16-200844maemo2 Image '2nd', size 8192 bytes Valid for RX-44: 0801, 0802, 0803, 0804, 0805, 0806, 0901, 0902 Version 1.1.16-200844maemo2 Image 'xloader', size 9216 bytes Valid for RX-44: 0801, 0802, 0803, 0804, 0805, 0806, 0901, 0902 Version 1.1.16-200844maemo2 Image 'secondary', size 100736 bytes Valid for RX-44: 0801, 0802, 0803, 0804, 0805, 0806, 0901, 0902 Version 1.1.16-200844maemo2 Unpacking kernel image to file 'zImage'... Unpacking initfs image to file 'initfs.jffs2'... Unpacking rootfs image to file 'rootfs.jffs2'... Unpacking 2nd image to file '2nd.bin-RX-44:0808'... Unpacking xloader image to file 'xloader.bin-RX-44:0808'... Unpacking secondary image to file 'secondary.bin-RX-44:0808'... Unpacking 2nd image to file '2nd.bin-RX-44:0801,0802,0803,0804,0805,0806,0901,0902'... Unpacking xloader image to file 'xloader.bin-RX-44:0801,0802,0803,0804,0805,0806,0901,0902'... Unpacking secondary image to file 'secondary.bin-RX-44:0801,0802,0803,0804,0805,0806,0901,0902'...
появилось много всяких разных файлов…
теперь попробуем смонтировать rootfs.jffs2 у себя на компьютере, для этого делаем следующее
mknod /tmp/mtdblock0 b 31 0 modprobe mtdblock modprobe mtdram total_size=65536 erase_size=256 modprobe jffs2 dd if=/pathtoimage/rootfs.jffs2 of=/tmp/mtdblock0 mkdir /media/jffs2 mount -t jffs2 /tmp/mtdblock0 /media/jffs2
из всего произведенного я знаю только две последние комманды и догадываюсь для чего нужна пятая команда (остальные загружают нужные модули ядра, наверно), но это сработало (по крайней мере у меня, кстати подсмотрено как смонтировать rootfs.jffs2 в этой статье)
Чтобы разобрать смонтированный раздел нужно сделать следующее (подсмотрено там же)
umount /media/jffs2 modprobe -r jffs2 modprobe -r mtdram modprobe -r mtdblock
Теперь, зачем все это нужно… Как я понял, таким образом мы можем понаставить всяких разных пакетов в эту систему, а потом просто скопировать ее на устройство. Пакеты устанавливать можно так (ну естественно пакеты для соответствующего устройства)
dpkg -x $HOME/arm_debs/mypackage_arm.deb
Пока не пробовал, если честно.
Как заставить работать таблетку со своим ядром
Для начала берем работающее ядро здесь и разбираем его.
# flasher-3.5 --unpack -F RX-44_DIABLO_5.2008.43-7_PR_COMBINED_MR0_ARM.bin
Появляется несколько файлов, нас интересуют два из них: initfs.jffs2 и rootfs.jffs2. Далее нам нужно собрать свое ядро (я пока воспользовался стандартной конфигурацией, которую можно получить так: make nokia_2420_defconfig) Если все прошло удачно появится образ ядра (подробнее про сборку можно посмотреть тут ). Теперь сбрасываем наш образ ядра и rootfs.jffs2, initfs.jffs2 на таблетку:
# flasher-3.5 -f -k /your_path_to_kernel_image/zImage -n /your_path/initfs.jffs2 -r /your_path/rootfs.jffs2 -R
флаг f служит для прошивки, но можно запускать ядро с компьютера, для этого следует использовать флаг l.