Difference between revisions of "Boot from USB using u-boot"
m |
m (added instructions to boot kernel over NFS) |
||
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 using pen drive or | + | * TFTP server outside TV on some host in case using pen drive or optionally in case disk drive |
* Regular Linux based system to prepare usb disk/pen drive | * Regular Linux based system to prepare usb disk/pen drive | ||
* Builded rootfs image | * Builded rootfs image | ||
Line 27: | Line 27: | ||
Partition drive using '''fdisk''' or other tool. | Partition drive using '''fdisk''' or other tool. | ||
− | First | + | First partition FAT type. It will be usefull or needed if you don't have network on tv. |
Second partition set as Linux type. | Second partition set as Linux type. | ||
Line 40: | Line 40: | ||
* Download [http://download.samygo.tv/SamyGO%20OE/LaunchCLManager.zip LaunchCLManager.zip] and place as is on /home/root | * Download [http://download.samygo.tv/SamyGO%20OE/LaunchCLManager.zip LaunchCLManager.zip] and place as is on /home/root | ||
+ | |||
=TFTP server for kernel load= | =TFTP server for kernel load= | ||
* Put kernel image to TFTP service directory. (or /tftpboot directory. on my NAS it is on /opt/tftpboot) | * Put kernel image to TFTP service directory. (or /tftpboot directory. on my NAS it is on /opt/tftpboot) | ||
Line 64: | Line 65: | ||
* Set variables and execute commands in u-boot shell to boot linux kernel. | * Set variables and execute commands in u-boot shell to boot linux kernel. | ||
− | =Booting= | + | =Booting TV= |
+ | Now you have to boot kernel from source (USB, tftp or NFS) | ||
+ | |||
==TFTP== | ==TFTP== | ||
− | + | Set network variables first: | |
setenv ipaddr 192.168.1.100;setenv gatewayip 192.168.1.1;setenv serverip 192.168.1.200 | setenv ipaddr 192.168.1.100;setenv gatewayip 192.168.1.1;setenv serverip 192.168.1.200 | ||
Line 72: | Line 75: | ||
where first IP is TV, second gateway is not important in this case, third is address of TFTP server. | where first IP is TV, second gateway is not important in this case, third is address of TFTP server. | ||
− | Boot linux kernel | + | Boot linux kernel over TFTP and rootfs from USB ext3 partition: |
setenv bootargs root=/dev/sda2 console=ttyS1;tftp;bootm | setenv bootargs root=/dev/sda2 console=ttyS1;tftp;bootm | ||
+ | |||
==USB== | ==USB== | ||
− | Boot linux kernel | + | 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 | setenv bootargs root=/dev/sda2 rootdelay=1 console=ttyS1;usb start;fatload usb 0 61000000 uImage;bootm | ||
Line 82: | Line 86: | ||
where /dev/sda2 is linux rootfs. | where /dev/sda2 is linux rootfs. | ||
− | == | + | ==NFS== |
− | If you have NFS server on your home network working, you can boot file system for TV (rootfs from OE | + | If you have NFS server on your home network working, you can boot file system for TV (rootfs) and kernel from OE over NFS! |
− | |||
− | |||
− | * | + | ==='''Prepare rootfs and kernel'''=== |
+ | * [[#Prepare_USB_disk]], or you can simply extract rootfs.tar.gz from OE on your NAS directory: | ||
+ | (i use /mnt/disk1/TV_rootfs for filesystem) | ||
+ | cd /mnt/disk1/TV_rootfs | ||
+ | cp /<path to>/rootfs.tar.gz /mnt/disk1/TV_rootfs | ||
+ | tar xzf rootfs.tar.gz | ||
− | * | + | * Copy kernel file (uImage) to /mnt/disk1/TV_rootfs |
+ | cp /<path to>/uImage /mnt/disk1/TV_rootfs | ||
− | + | * Edit exports to enable your rootfs and uImage on NFS | |
− | + | ||
+ | If you use filesystem on USB, attached to NAS: | ||
root@LS-GL984:~# cat /etc/exports | root@LS-GL984:~# cat /etc/exports | ||
/mnt/usbdisk3 192.168.1.100/255.255.255.0(rw,async,all_squash,anonuid=99,anongid=99,no_subtree_check) | /mnt/usbdisk3 192.168.1.100/255.255.255.0(rw,async,all_squash,anonuid=99,anongid=99,no_subtree_check) | ||
− | + | ||
− | where 192.168.1.100 is my TV IP. 255.255.255.0 is submask, /mnt/usbdisk3 is my USB with TVs file system | + | If you use filesystem on NAS directory: |
+ | root@LS-GL984:~# cat /etc/exports | ||
+ | /mnt/disk1/TV_rootfs 192.168.1.100/255.255.255.0(rw,async,all_squash,anonuid=99,anongid=99,no_subtree_check) | ||
+ | where 192.168.1.100 is my TV IP. 255.255.255.0 is submask, /mnt/usbdisk3 is my USB with TVs file system, /mnt/disk1/TV_rootfs - path to rootfs and kernel on NAS directory. | ||
+ | |||
==='''Boot kernel and rootfs over network'''=== | ==='''Boot kernel and rootfs over network'''=== | ||
− | * Enter to u-boot promt | + | * Enter to u-boot promt. |
− | * set network variables | + | * set network variables to load kernel |
setenv ipaddr 192.168.1.100;setenv gatewayip 192.168.1.1;setenv serverip 192.168.1.200 | setenv ipaddr 192.168.1.100;setenv gatewayip 192.168.1.1;setenv serverip 192.168.1.200 | ||
− | * set network variables | + | * set network variables to load rootfs |
setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.200:/mnt/usbdisk3 rootpath=/home/root ip=192.168.1.102:192.168.1.200:192.168.1.1:255.255.255.0:LS-GL984:eth0:off console=ttyS1 | setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.200:/mnt/usbdisk3 rootpath=/home/root ip=192.168.1.102:192.168.1.200:192.168.1.1:255.255.255.0:LS-GL984:eth0:off console=ttyS1 | ||
− | structure of commandline should be: | + | Now you have to boot kernel. Choose method you prefer (use NFS or TFTP) |
+ | |||
+ | * load kernel over NFS and start booting TV | ||
+ | nfs 0x61000000 192.168.1.200:/disk1/TV_rootfs/uImage;bootm | ||
+ | |||
+ | *load kernel over TFTP and start booting TV | ||
+ | tftp;bootm | ||
+ | |||
+ | |||
+ | P.s. structure of commandline should for NFS should be: | ||
setenv bootargs root=/dev/nfs rw nfsroot=${serverip} rootpath=${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:off console=ttyS1 | setenv bootargs root=/dev/nfs rw nfsroot=${serverip} rootpath=${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:off console=ttyS1 | ||
Where rootpath of OE kernel is /home/root | Where rootpath of OE kernel is /home/root | ||
− | |||
− | |||
− | |||
==Starting TV software== | ==Starting TV software== | ||
Line 145: | Line 164: | ||
samsung-start.sh | samsung-start.sh | ||
+ | |||
Done! | Done! | ||
− | NB! Kernel from OE does not support NAND writing and it does not help to restore bricked device.<br> | + | '''NB!''' '''Kernel from OE does not support NAND writing and it does not help to restore bricked device.''' |
+ | <br> | ||
<br> | <br> | ||
− | --[[User:Juzis28|Juzis28]] | + | --[[User:Juzis28|Juzis28]] 13:57, 1 December 2010 (UTC) |
Revision as of 13:57, 1 December 2010
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 using pen drive or optionally in case disk drive
- Regular Linux based system to prepare usb disk/pen drive
- Builded rootfs image
Follow steps:
Contents
Build OE kernel and rootfs
- Build rootfs image using SamyGO OE Framework.
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
- 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.
- Download firmware upgrade file (e.g T-CHL7DEUC.exe for B65x-B75x) and place as is on /home/root
- Download LaunchCLManager.zip and place as is on /home/root
TFTP server for kernel load
- Put kernel image to TFTP service directory. (or /tftpboot directory. on my NAS it is on /opt/tftpboot)
Note: Do this only if you want faster kernel load image.
- Find proper kernel image in build-samygo/tmp/deploy/images.
It's like: uImage-2.6.18.8-r0-ssdtv.multi-config-multi-config-bXXX.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
- Copy and rename it to uImage into root directory of TFTP service or on FAT partition if you are not using TFTP way.
- Enable serial debug console.
- Enter u-boot prompt shell.
- Set variables and execute commands in u-boot shell to boot linux kernel.
Booting TV
Now you have to boot kernel from source (USB, tftp or NFS)
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.
NFS
If you have NFS server on your home network working, you can boot file system for TV (rootfs) and kernel from OE over NFS!
Prepare rootfs and kernel
- #Prepare_USB_disk, or you can simply extract rootfs.tar.gz from OE on your NAS directory:
(i use /mnt/disk1/TV_rootfs for filesystem)
cd /mnt/disk1/TV_rootfs cp /<path to>/rootfs.tar.gz /mnt/disk1/TV_rootfs tar xzf rootfs.tar.gz
- Copy kernel file (uImage) to /mnt/disk1/TV_rootfs
cp /<path to>/uImage /mnt/disk1/TV_rootfs
- Edit exports to enable your rootfs and uImage on NFS
If you use filesystem on USB, attached to NAS:
root@LS-GL984:~# cat /etc/exports /mnt/usbdisk3 192.168.1.100/255.255.255.0(rw,async,all_squash,anonuid=99,anongid=99,no_subtree_check)
If you use filesystem on NAS directory:
root@LS-GL984:~# cat /etc/exports /mnt/disk1/TV_rootfs 192.168.1.100/255.255.255.0(rw,async,all_squash,anonuid=99,anongid=99,no_subtree_check)
where 192.168.1.100 is my TV IP. 255.255.255.0 is submask, /mnt/usbdisk3 is my USB with TVs file system, /mnt/disk1/TV_rootfs - path to rootfs and kernel on NAS directory.
Boot kernel and rootfs over network
- Enter to u-boot promt.
- set network variables to load kernel
setenv ipaddr 192.168.1.100;setenv gatewayip 192.168.1.1;setenv serverip 192.168.1.200
- set network variables to load rootfs
setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.200:/mnt/usbdisk3 rootpath=/home/root ip=192.168.1.102:192.168.1.200:192.168.1.1:255.255.255.0:LS-GL984:eth0:off console=ttyS1
Now you have to boot kernel. Choose method you prefer (use NFS or TFTP)
- load kernel over NFS and start booting TV
nfs 0x61000000 192.168.1.200:/disk1/TV_rootfs/uImage;bootm
- load kernel over TFTP and start booting TV
tftp;bootm
P.s. structure of commandline should for NFS should be:
setenv bootargs root=/dev/nfs rw nfsroot=${serverip} rootpath=${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:off console=ttyS1
Where rootpath of OE kernel is /home/root
Starting 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://samygo.sourceforge.net --- 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.
--Juzis28 13:57, 1 December 2010 (UTC)