LinuxForum.Fans
Тема

Код для прошивки

Автор: arxx 6 сообщений 3538 просмотров
#206758

Есть программа mfgtool, которая прошивает китайские планшеты. В ней есть конфигурационный файл ucl.xml. Вот фрагмент кода

text
<LIST name="SD-Android" desc="Android w/o swap">
   <CMD type="boot" body="BootStrap" file="u-boot-mx51.bin" >Loading OS image.</CMD> 
   <CMD type="load" file="uImage" address="0x90100000"
    loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Kernel.</CMD>
   <CMD type="load" file="initramfs.cpio.gz.uboot" address="0x90800000"
    loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Initramfs.</CMD>  
   <CMD type="jump" > Jumping to OS image. </CMD>
   <CMD type="find" body="Updater" timeout="180"/>
   <CMD type="push" body="mknod block,mmcblk0,/dev/mmcblk0,block"/>
   <CMD type="push" body="$ mknod /dev/zero b 1 5">Create zero device node</CMD>
   <CMD type="push" body="$ dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=10">clean up</CMD>
   <CMD type="push" body="send" file="mksdcard-android.sh.tar">Sending partition shell</CMD>
   <CMD type="push" body="$ tar xf $FILE "> Partitioning...</CMD>
   <CMD type="push" body="$ sh mksdcard-android.sh /dev/mmcblk0"> Partitioning...</CMD>
   <CMD type="push" body="$ mknod /dev/mmcblk0p1 b 179 1"/>
   <CMD type="push" body="$ mknod /dev/mmcblk0p2 b 179 2"/>
   <CMD type="push" body="$ mknod /dev/mmcblk0p3 b 179 3"/>
   <CMD type="push" body="$ mknod /dev/mmcblk0p4 b 179 4"/>
   <CMD type="push" body="$ mknod /dev/mmcblk0p5 b 179 5"/>
   <CMD type="push" body="$ mknod /dev/mmcblk0p6 b 179 6"/>
   <CMD type="push" body="send" file="files/android/u-boot-no-padding.bin">Sending u-boot.bin</CMD>
   <CMD type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=1k seek=1">write u-boot.bin to sd card</CMD>
   <CMD type="push" body="send" file="files/android/uImage">Sending kernel uImage</CMD>
   <CMD type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=1M seek=1">write kernel image to sd card</CMD>
   <CMD type="push" body="send" file="files/android/uramdisk.img">Sending uramdisk uImage</CMD>
   <CMD type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=4M seek=1">write ramdisk to sd card</CMD>
   <CMD type="push" body="$ mkfs.ext4 /dev/mmcblk0p2">Formatting SYSTEM partition</CMD>
   <CMD type="push" body="$ mkfs.ext4 -O^extent /dev/mmcblk0p4">Formatting RECOVERY partition</CMD>
   <CMD type="push" body="$ mkfs.ext4 /dev/mmcblk0p5">Formatting DATA partition</CMD>
   <CMD type="push" body="$ mkfs.ext4 -O^extent /dev/mmcblk0p6">Formatting CACHE partition</CMD>
   <CMD type="push" body="!3">Reboot...</CMD>
   <CMD type="find" body="BootStrap" timeout="180"/>
   <CMD type="init" body="Memory" file ="files/old/mx51to2.ddr.xml" />
   <CMD type="load" file="files/old/uImage" address="0x90100000"
        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Kernel.</CMD>
   <CMD type="load" file="files/old/initramfs.cpio.gz.uboot" address="0x90800000"
        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Initramfs.</CMD>
   <CMD type="load" file="files/old/u-boot.bin" address="0x97800000"
        loadSection="OTH" setSection="APP" HasFlashHeader="FALSE" >Loading OS image.</CMD>    
   <CMD type="jump" > Jumping to OS image. </CMD>
   <CMD type="find" body="Updater" timeout="180"/>
   <CMD type="push" body="mknod block,mmcblk0,/dev/mmcblk0,block"/>
   <CMD type="push" body="mknod block,mmcblk0/mmcblk0p1,/dev/mmcblk0p1,block"/>
   <CMD type="push" body="$ mkfs.vfat /dev/mmcblk0p1">Formatting SDCARD partition</CMD>
   <CMD type="push" body="!3">Firmware Update Complete!</CMD>
  </LIST>

Есть такая тема, что она не подходит под мой планшет. Планшет прошивается только если в него вставлена флешка (microSD). Причем этот код правит именно вставленную флешку, а не встроенную. Помогите пожалуйста подправить код, чтобы правилась именно встроенная память. По идентификаторам диспетчера устройств встроенная флешка отличается от вставленной. Если нужна какая-нибудь дополнительная информация, то я постараюсь предоставить ее. Заранее благодарю за помощь.
P.S. Я пишу сюда, потому что после "Jumping to OS image" девайс в программе начинает определяться как linux storage. И команда mknod тоже вроде никсовая, и файловая система ext4.

#206834

Кажется тебе надо прошивать в NAND. Я не знаю такой програмы как mfgtool, по этому подсказать ничего дельного не могу.
Однако предварительно тебе надо знать, что записано в NAND и не повредит ли перезапись, т. к. там может оказаться какой-нибудь важный код.

#206920

Эта программа под процессоры Cortex A8. В описании читал, что она использует не программные доступы, а хардварные, т.е. угробить можно, если там что-то просто сгорит. А то, что в нанд - я думаю как раз и нужно затереть. Было бы идеально восстановить загрузчик в нанд через эту программу, но не знаю как, хотя у меня есть файл прошивки "boot.bin". Программа доступ открывает, но у меня не хватает знаний (.

#207139

Я планшеты и телефоны никогда не прошивал (только КПК), поэтому точных советов дать не могу.
Ничего сгореть не может, это точно. Нужно знать карту флеша, имена устройств, от этого отталкиватся.
Это всё можно посмотреть в dmesg и /dev
Можно токаже сделать дамп и посмотреть, что там содержится.

#207257
text
dmesg
[ 1433.304080] usb 2-4: new high speed USB device number 2 using ehci_hcd
[ 1433.896640] usbcore: registered new interface driver uas
[ 1433.901271] Initializing USB Mass Storage driver...
[ 1433.902006] scsi6 : usb-storage 2-4:1.0
[ 1433.902445] usbcore: registered new interface driver usb-storage
[ 1433.902452] USB Mass Storage support registered.
[ 1434.902504] scsi 6:0:0:0: Direct-Access     Linux    File-Stor Gadget 0325 PQ: 0 ANSI: 2
[ 1434.955816] sd 6:0:0:0: Attached scsi generic sg2 type 0
[ 1434.965629] sd 6:0:0:0: [sdb] Attached SCSI removable disk

Перевел в другой режим

[ 1820.103151] usb 2-4: USB disconnect, device number 2 [ 2051.412088] usb 2-5: new high speed USB device number 3 using ehci_hcd [ 2051.557328] scsi7 : usb-storage 2-5:1.0 [ 2052.558428] scsi 7:0:0:0: Direct-Access Linux File-Stor Gadget 0325 PQ: 0 ANSI: 2 [ 2052.734011] sd 7:0:0:0: Attached scsi generic sg2 type 0 [ 2052.743478] sd 7:0:0:0: [sdb] Attached SCSI removable disk [ 2197.934634] usb 2-5: USB disconnect, device number 3 [ 2198.432097] usb 2-5: new high speed USB device number 4 using ehci_hcd [ 2198.568086] usb 2-5: device descriptor read/64, error -71 [ 2198.808097] usb 2-5: device descriptor read/64, error -71 [ 2199.024096] usb 2-5: new high speed USB device number 5 using ehci_hcd [ 2199.160087] usb 2-5: device descriptor read/64, error -71 [ 2199.400087] usb 2-5: device descriptor read/64, error -71 [ 2199.616087] usb 2-5: new high speed USB device number 6 using ehci_hcd [ 2200.040085] usb 2-5: device not accepting address 6, error -71 [ 2200.152096] usb 2-5: new high speed USB device number 7 using ehci_hcd [ 2200.576189] usb 2-5: device not accepting address 7, error -71 [ 2200.576259] hub 2-0:1.0: unable to enumerate USB device on port 5 [ 2200.908101] usb 5-5: new full speed USB device number 2 using ohci_hcd [ 2201.067177] usb 5-5: not running at top speed; connect to a high speed hub

lsusb Bus 002 Device 002: ID 066f:37ff SigmaTel, Inc.

В другом режиме Bus 005 Device 004: ID 15a2:0041 Freescale Semiconductor, Inc.

Насчет дампа - подскажите как его сделать. И еще, у меня есть бинарный файл Boot.bin. Я думаю если его прошить в нанд(сделать из него загрузочный сектор) возможно ли, что девайс сможет прошиться обычным путем с флешки? Забыл сказать, планшет на андроид 2.2

#207407

Должно быть что-то типа такого:

text

dev:    size   erasesize  name
mtd0: 006b0000 00020000 "Boot PROM Filesystem"
mtd1: 00700000 00020000 "Logical"
mtd2: 07900000 00020000 "JFFS2"

Должны быть блочные устройства /dev/mtdblockX
Дамп делается утилитой nanddump (или как-то так) - Это всё делается на устройстве!
Нужно знать карту NAND со всеми адресами, дабы знать с какого месте писать твою прошивку.

Тебе нужно куда-нибудь на http://forum.china-iphone.ru где обсуждается этот планшет.

Войдите или зарегистрируйтесь, чтобы ответить.