Recovery of Bricked Device


From SamyGO
Revision as of 19:11, 28 December 2010 by Juzis28 (talk | contribs) (Added instructions how to restore TV from Debug console)
Jump to: navigation, search

If you write bad boot.img to tv.

A) Connect to TV by ex-link cable.

B) Enable USB support. Command "/lib/modules/rc.local"

C) Enable NAND support. Commands

 # insmod /lib/modules/fsr.ko
 # insmod /lib/modules/rfs.ko
 # insmod /lib/modules/fsr_stl.ko

D) Erase old bad image. Command "bml.erase /dev/bml0/7"

E) Write original (work) image. Command "bml.restore /dev/bml0/7 /dtv/usb/sd1/boot.img"

It all!!! Happy new Year.

Restore TV from u-boot

Go here

Restore firmware (exe.img, appdata.img) images (CI only)

Before to start

To restore TV you need:

  • Settings in Service menu are set before TV broke - do it now, if your TV isn`t broken - insurance for future :)
  • Enter Service Menu ( quickly push [INFO] [MENU] [MUTE] [POWER] on your remote control )
  • Change setting for your RS232C interface to "debug" ( Control -> Sub Option -> RS-232 Jack -> [ Debug | UART | Logic ] )
  • Change setting for Watchdog to "off", so that the device doesn't reboot while you are in uBoot menu ( Control -> Sub Option -> Watchdog -> [ on | off ] )

  • Make or buy Service Cable - ExLink
  • You need images to restore (or dumps of partitions you made before. How to make dumps read here.)
  • If you use firmware files from firmware upgrade file (you can download it from here, make sure, that you have UNxored exe.img and appdata.img on USB/update (NOT exe.img.enc and NOT appdata.img.enc). How to unXOR images read here.

Prepare USB

  • 1. Format USB to FAT32
  • 2. Copy required images to /update directory on USB.
  • 3. Place exe.img and appdata.img to USB/update
  • 4. Reboot TV, go to TOP Debug menu
  • 5. Enter Ctrl+c to get to console. TV from this moment does not respond to RC.
  • 6. Mount USB disk with next command
sh +x /sbin/start_usb.sh
  • 7. Check if USB is mounted
cd dtv/usb
ls

You get something like:

log     sda1
  • 8. Check images on USB/update
cd sda1/update 
ls

You get:

Image             exe.img           oneboot.bin       uboot_env.bin
Image_serial      fnw.bin           rootfs.img        validinfo.txt
appdata.img       info.txt          serial_temp       version_info.txt
boot.img          onboot.bin        u-boot.bin
  • 9. Prevent TV from rebooting when exeDSP is stopped
/mtd_boot/MicomCtrl 23
  • 10. Kill exeDSP
killall -9 exeDSP
  • 11. unmount /mtd_exe/ and /mtd_appdata/
umount /mtd_exe/
umount /mtd_appdata/
  • 12. Write ‘exe.img and appdata.img’ to TV
fsrrestore /dev/bml0/8 exe.img;
fsrrestore /dev/bml0/9 appdata.img;
fsrrestore /dev/bml0/10 exe.img;
fsrrestore /dev/bml0/11 appdata.img;
  • 13. Mount the updated images
mount -t auto /dev/tbml8 /mtd_exe
mount -t auto /dev/tbml9 /mtd_appdata
  • 14. Start exeDSP again (Do not worry if screen is bottom to up, after restart TV you get normal operating TV)
/mtd_exe/rc.local

Flash another partitions from console

  • 15. If you need restore some other partitions, you can do it as example:
cat /dev/usb/sda1/update/u-boot.bin > /dev/bml0/2
cat /dev/usb/sda1/update/fnw.bin > /dev/bml0/4
cat /dev/usb/sda1/update/Image > /dev/bml0/5
cat /dev/usb/sda1/update/rootfs.img > /dev/bml0/6
cat /dev/usb/sda1/update/boot.img > /dev/bml0/7

or you can use bml tool:

bml.restore /dev/usb/sda1/update/u-boot.bin /dev/bml0/2
bml.restore /dev/usb/sda1/update/fnw.bin /dev/bml0/4
bml.restore /dev/usb/sda1/update/Image /dev/bml0/5
bml.restore /dev/usb/sda1/update/rootfs.img /dev/bml0/6
bml.restore /dev/usb/sda1/update/boot.img /dev/bml0/7

Make dumps

bml.dump /dev/bml0/2 /dev/usb/sda1/dump/bml0_2_dump
bml.dump /dev/bml0/3 /dev/usb/sda1/dump/bml0_3_dump
bml.dump /dev/bml0/4 /dev/usb/sda1/dump/bml0_4_dump 
bml.dump /dev/bml0/5 /dev/usb/sda1/dump/bml0_5_dump 
bml.dump /dev/bml0/6 /dev/usb/sda1/dump/bml0_6_dump 
bml.dump /dev/bml0/7 /dev/usb/sda1/dump/bml0_7_dump 
bml.dump /dev/bml0/8 /dev/usb/sda1/dump/bml0_8_dump
bml.dump /dev/bml0/9 /dev/usb/sda1/dump/bml0_9_dump
bml.dump /dev/bml0/10 /dev/usb/sda1/dump/bml0_10_dump
bml.dump /dev/bml0/11 /dev/usb/sda1/dump/bml0_11_dump

How is your USB recognised you can see

mount

Finish!

--Juzis28 19:11, 28 December 2010 (UTC)