Difference between revisions of "Boot from USB using u-boot"


From SamyGO
Jump to: navigation, search
(Prepare USB disk)
Line 11: Line 11:
 
* Serial connection
 
* Serial connection
 
* Usb disk drive or pen drive (at least 256MB)
 
* Usb disk drive or pen drive (at least 256MB)
* TFTP server outside TV on some host in case if you prefer load kernel from network.
+
* TFTP server outside TV on some host in case if you prefer load kernel from network (Do this only if you want faster kernel load or lack network).
 
* Regular Linux based system to prepare usb disk/pen drive (disk drive is preffered for speed)
 
* Regular Linux based system to prepare usb disk/pen drive (disk drive is preffered for speed)
 
* Builded rootfs image and kernel.
 
* Builded rootfs image and kernel.
Line 27: Line 27:
 
Builded rootfs image is located in '''build-samygo/tmp/deploy/images''' directory. File name looks like '''externalboot-base-rootfs-ssdtv-XXXXXXX.tar.gz'''.
 
Builded rootfs image is located in '''build-samygo/tmp/deploy/images''' directory. File name looks like '''externalboot-base-rootfs-ssdtv-XXXXXXX.tar.gz'''.
  
=Prepare USB disk=
+
=Prepare USB drive (and optionally TFTP)=
 
* Partition usb disk/pen drive.
 
* Partition usb disk/pen drive.
  
Line 42: Line 42:
 
Unpack image to second partition with '''root''' rights.
 
Unpack image to second partition with '''root''' rights.
  
* Follow two steps below only if you want install original samsung software (script can also download image from inside booted tv, but it's preffered download and copy into rootfs):
+
* '''Follow two steps below only if you want install original samsung software (script can also download image from inside booted tv, but it's preffered download and copy into rootfs)'''
  
 
* Download [http://wiki.samygo.tv/index.php?title=Old_%26_Good_Firmwares original firmware file from samsung site] (e.g T-CHL7DEUC.exe for B65x-B75x) and place as is on /home/root
 
* Download [http://wiki.samygo.tv/index.php?title=Old_%26_Good_Firmwares original firmware file from samsung site] (e.g T-CHL7DEUC.exe for B65x-B75x) and place as is on /home/root
Line 48: Line 48:
 
* Download [http://download.samygo.tv/SamyGO%20Open%20Embedded/LaunchCLManager.zip LaunchCLManager.zip] and place as is on /home/root
 
* Download [http://download.samygo.tv/SamyGO%20Open%20Embedded/LaunchCLManager.zip LaunchCLManager.zip] and place as is on /home/root
  
=TFTP server for kernel load=
+
* Get proper kernel image:
* Put kernel image to TFTP service directory. (like /tftpboot directory, or for NAS it is on /opt/tftpboot)
 
  
Note: Do this only if you want faster kernel load or lack network.
+
Find proper kernel image in '''build-samygo/tmp/deploy/images''' or download from http://download.samygo.tv/SamyGO%20Open%20Embedded/binaries/ .
 
 
* Find proper kernel image in '''build-samygo/tmp/deploy/images''' or download from http://download.samygo.tv/SamyGO%20Open%20Embedded/binaries/ .
 
  
 
It's like: '''uImage-2.6.18.8-r0-ssdtv.multi-config-multi-config-bXXXX.bin'''.
 
It's like: '''uImage-2.6.18.8-r0-ssdtv.multi-config-multi-config-bXXXX.bin'''.
Line 65: Line 62:
 
T-CHL5DEUC, T-CHL5DAUC - use '''b550'''
 
T-CHL5DEUC, T-CHL5DAUC - use '''b550'''
  
* Copy and rename it to '''uImage''' into root directory of TFTP service or on FAT partition if you are not using TFTP way.
+
* Put kernel image to proper place:
 +
 
 +
==TFTP kernel load method==
 +
 
 +
Copy kernel image into root directory of TFTP service directory like '''/tftpboot''' directory, or for NAS it is on '''/opt/tftpboot''' .
 +
 
 +
And rename kernel image to '''uImage''' .
 +
 
 +
==USB kernel load method==
 +
 
 +
Put kernel image on FAT partition (first).
 +
 
 +
And rename kernel image to '''uImage''' .
  
 +
=U-Boot shell=
 
* Enable [http://wiki.samygo.tv/index.php?title=Enable_Serial_Console_on_non_CI%2B_Devices serial debug console].
 
* Enable [http://wiki.samygo.tv/index.php?title=Enable_Serial_Console_on_non_CI%2B_Devices serial debug console].
  
 
* Enter [http://wiki.samygo.tv/index.php?title=Getting_access_to_u-boot u-boot] prompt shell.
 
* Enter [http://wiki.samygo.tv/index.php?title=Getting_access_to_u-boot u-boot] prompt shell.
 
* Set variables and execute commands in u-boot shell to boot linux kernel.
 
  
 
=Booting TV=
 
=Booting TV=

Revision as of 07:34, 29 May 2011

Note: This instruction apply and booting only to TV with firmwares listed below!

T-CHL5DEUC, T-CHL5DAUC, T-CHE6AUSC, T-CHE7AUSC, T-CHEAUSC, T-CHL7DAUC, T-CHL7DEUC, T-CHU7DAUC, T-CHU7DEUC

This is for advanced users and developers only.


Requirements:

  • Serial connection
  • Usb disk drive or pen drive (at least 256MB)
  • TFTP server outside TV on some host in case if you prefer load kernel from network (Do this only if you want faster kernel load or lack network).
  • Regular Linux based system to prepare usb disk/pen drive (disk drive is preffered for speed)
  • Builded rootfs image and kernel.



Follow steps:

Build OE kernel and rootfs or download prebuilded binaries

Or you can build your self from recent repository:

Builded rootfs image is located in build-samygo/tmp/deploy/images directory. File name looks like externalboot-base-rootfs-ssdtv-XXXXXXX.tar.gz.

Prepare USB drive (and optionally TFTP)

  • Partition usb disk/pen drive.

Partition drive using fdisk or other tool.

First partition FAT type. It will be usefull or needed if you don't have network on tv. Second partition set as Linux type.

Format first partition with mtools or other tool as VFAT type filesystem. Format second partition with ext2fsprogs as ext3.

  • Unpack rootfs image to linux partition on usb disk/pen drive.

Unpack image to second partition with root rights.

  • Follow two steps below only if you want install original samsung software (script can also download image from inside booted tv, but it's preffered download and copy into rootfs)
  • Get proper kernel image:

Find proper kernel image in build-samygo/tmp/deploy/images or download from http://download.samygo.tv/SamyGO%20Open%20Embedded/binaries/ .

It's like: uImage-2.6.18.8-r0-ssdtv.multi-config-multi-config-bXXXX.bin.

For firmwares:

T-CHE7AUSC, T-CHEAUSC, T-CHL7DAUC, T-CHL7DEUC, T-CHU7DAUC, T-CHU7DEUC - use b650

T-CHE6AUSC - use b6000

T-CHL5DEUC, T-CHL5DAUC - use b550

  • Put kernel image to proper place:

TFTP kernel load method

Copy kernel image into root directory of TFTP service directory like /tftpboot directory, or for NAS it is on /opt/tftpboot .

And rename kernel image to uImage .

USB kernel load method

Put kernel image on FAT partition (first).

And rename kernel image to uImage .

U-Boot shell

Booting TV

You can load and boot kernel from USB or TFTP:

TFTP

Set network variables first:

setenv ipaddr 192.168.1.100;setenv gatewayip 192.168.1.1;setenv serverip 192.168.1.200

where first IP is TV, second gateway is not important in this case, third is address of TFTP server.

Boot linux kernel over TFTP and rootfs from USB ext3 partition:

setenv bootargs root=/dev/sda2 console=ttyS1;tftp;bootm

USB

Boot linux kernel from USB FAT partition, rootfs from USB ext3 partition:

setenv bootargs root=/dev/sda2 rootdelay=1 console=ttyS1;usb start;fatload usb 0 61000000 uImage;bootm

where /dev/sda2 is linux rootfs.

Starting main Samsung TV software

After boot system, login over serial console as root and execute followed commands:

  • Install Samsung original software:
samsung-install.sh

Choose your firmware version:

root@localhost:~# samsung-install.sh

--- Installer of Original Samsung Software ---
--- SamyGO http://www.samygo.tv ---


Select proper firmware for your TV:

1. T-CHE6AUSC
2. T-CHE7AUSC
3. T-CHEAUSC
4. T-CHL5DAUC
5. T-CHL5DEUC
6. T-CHL7DAUC
7. T-CHL7DEUC
8. T-CHU7DAUC
9. T-CHU7DEUC

Choice:

Wait while TV installs firmware. It is quite long process, be patient.

  • Start Samsung original software:
samsung-start.sh

Done!

NB! Kernel from OE does not support NAND writing and it does not help to restore bricked device.