Booting Original FW

From WikiDLXTV
Jump to: navigation, search

It is possible to take the original firmware from WD, and turn it into a bootable root.bin. This will allow you to boot from it without having to reflash your device.

Requirement: WDLXTV 0.4.5.3 or newer, USB disk with at least 450 MB of space

NOTES: This method must be completely done from the WDTV itself. In fact it won't work as-is under Linux (due to the cramfs format used by WD). Also, it will work with the Live Plus firmware - just rename the .bin file to wdtvlive.bin (or, update the script to match the Live Plus filename).

  1. Download the WDTV firmware you wish to try
  2. Download the following script: http://www.lostrealm.ca/files/mkrootbin.sh.gz. Or, create it yourself:
 #!/bin/sh
 echo -e "### Stripping WD firmware..."
 tail -c +33 wdtvlive.bin > wdtvlive.stripped.bin
 
 echo -e "\n### Creating empty root.bin..."
 dd if=/dev/zero of=root.bin-104 bs=1024k count=250
 mkfs.ext3 ./root.bin-104
 
 echo -e "\n ### Mounting filesystems..."
 mkdir /tmp/wdfw
 mkdir /tmp/newfw
 
 mount -o loop root.bin-104 /tmp/newfw
 mount -o loop wdtvlive.stripped.bin /tmp/wdfw
 
 echo -e "\n### Transfering content to root.bin..."
 rsync -avHS /tmp/wdfw/* /tmp/newfw
 
 mkdir -p /tmp/newfw/boot
 mkdir -p /tmp/newfw/dev
 mkdir -p /tmp/newfw/mnt/boot
 mkdir -p /tmp/newfw/mnt/fwup
 mkdir -p /tmp/newfw/opt
 mkdir -p /tmp/newfw/proc
 
 echo -e "\n### Flushing filesystems..."
 sync && sync && sync
 
 echo -e "\n### Unmounting filesystems..."
 umount /tmp/newfw
 umount /tmp/wdfw
 
 echo -e "\n### Removing original WD files..."
 rm wdtvlive.stripped.bin wdtvlive.bin
 
 echo -e "All done!  To set your WDTV to boot from that file, run the following command:\n\nconfig_tool -c ROOT_TAG='104'\nconfig_tool -s\nconfig_tool -s\nsync && reboot\n"
 echo -e "\nTo reboot on your flashed firmware, boot without the USB disk plugged in."
 echo -e "Once booted, plug it back, log into SSH, and run the following commands:\n\nconfig_tool -c     ROOT_TAG=\nconfig_tool -s\nconfig_tool -s\nsync && reboot\n"
 
  1. Copy wdtvlive.bin and the unpacked content of mkrootbin.sh.gz on your USB disk.
  2. Telnet/SSH to your WDTV, then go to the directory on your USB disk (probably inside /tmp/media/usb/USB1/something/ or USB2/something )
  3. Run the script:


   ./mkrootbin.sh


Be patient. You will be updated throughout the various steps. If you get asked to confirm that you are sure you want to create a new filesystem, answer Y)es.

Once done, follow the instruction displayed at the end to enable booting from the newly created root.bin-104. NOTE: if you are using an older WDLXTV than 0.4.5.3, simply rename root.bin-104 for root.bin, then reboot.






ANOTHER METHOD WITH SIMILAR PATHS FOR WDTV LIVE PLUS and setup ready for Modding Original Firmware.



It is possible to take the original firmware from WD, and turn it into a bootable root.bin. This will allow you to boot from it without having to reflash your device.


Requirement: 1.03.49_B_WDLXTV.COM_WDLXTV_PLUS-0.4.5.3 firmware, or newer, flashed on WDTV Live Plus HD

Requirement: USB disk with at least 450 MB of space.


This is the route I chose but there are other options available. Also this can be done with the older "live" with a few differences in instruction, but very similar.




Using KAD's instructions for "Creating an osd.bin" Set up your computer for linux.


- If you already have a Linux distro skip to step 10.


- If you have a Windows OS, i.e. XP, VISTA, Windows7 follow these steps:


1. Download and install VMWare Player to windows. (VMWare Player is free. It creates a Virtual OS running at the same time in another Window; No need of another computer)

http://www.vmware.com/products/player


2. Downloaded Kubuntu (kubuntu is a free linux OS distribution)

http://www.kubuntu.org/getkubuntu/download


Create the Linux OS Virtual machine:

3. From start menu > all programms > run "VMware Player"

4. click "Create a new virtual machine"

5. Select bullet "installer disk image file" and locate kubuntu-####.iso

6. Make sure and select a hard drive location to install with enough storage space, at least 8 GB. (I use an external Hard Drive)

7. install requires a reboot

8, Once back in Windows, run VMware player

9. Run the virtual machine "Ubuntu" and log in with chosen username and password.




10. Click "Kickoff application launcher" (or start Menu-ish button, bottom left corner in Ubuntu)



Requred File:


11. Open the Ubuntu "Web browser" (Rekonq) and download "cramfs-16k-binaries.tgz" to desktop folder.

http://forum.wdlxtv.com/download/file.php?id=4




12. Open "File Manager" (Dolphin) Make sure you are at >Home

13. click desktop directory.

14. Click on "cramfs-16k-binaries.tgz" file, it will open an extraction program, extract the files.

15. Go to the directory of the files extracted "cramfsck-16k" and "mkcramfs-16k".

We have to copy the files to the root/usr/bin location, it isn't as easy as copy and paste because it will tell you access denied so we will do it via terminal (bash).


16. In Dolpin go to the menu select "Tools" then "Open Terminal" (bash)

type out:

sudo cp cramfsck-16k /usr/bin/ 

(hit enter type out password hit enter on keyboard. Note: password will not show keystrokes, just go with it)

sudo cp mkcramfs-16k /usr/bin/ 

(sudo is kind of a fancy name for Administator privileges, you only have to type in the password once, unless enough time has passed, in which it will ask again later.)


17. Close terminal.

You can do all this in linux, but some of us still cling to windows plus it will give us a chance to practice switching between desktops



Required File:


18. In Windows, Download the current firmware for your device and save it to your desktop.

(this is live plus location) http://www.wdc.com/wdproducts/updates/?family=wdfwdtv_liveplus




19. Right click the file "wdtvliveplus_x_xx_xx_B.zip", select extract all and follow instructions to unzip folder.

20. switch to to Ubuntu (click on the tab at bottom).

I had an issue with just using the Ubuntu desktop, like I would windows, so here was my work around:


21. Open Dolphin to the desktop directory.

22. Drag Ubuntu window so you can see the new Firmware Folder on windows Desktop created earlier.

23. Switch to windows (Click on windows desktop)

24. Drag "wdtvliveplus_x_xx_xx_B" folder to the Dolpin window > Home > Desktop> wait a few seconds till the + icon appears then release. Click on Ubuntu window and select "copy here" (occasionally this dialog doesn't show up. in this situation, Try it a few more times. sometimes doing something else or switching to a different folder and going back, may work. Also you can't just do a standard copy in windows and paste the file in Ubuntu because it will only show the path in the clipboard. However you can go the other way, copy in Ubuntu and paste in Windows) (another method is using a USB stick, plug and unplug with a safe removal, I am not a fan, but it works)




25. In Ubuntu Dolphin go to copied folder "wdtvliveplus_x_xx_xx_B"

28. Open Terminal while in "> home > desktop > wdtvliveplus_x_xx_xx_B"

29. Now we strip the file. Type out the following commands: (Note: you can copy the text by selecting with cursor and "ctrl+C" and when in terminal right click and select paste.)

tail -c +33 wdtvlive2.bin > wdtvlive2.stripped.bin
cramfsck-16k -x dump wdtvlive2.stripped.bin

(Note: it will say "warning: file extends past end of filesystem", this is normal)




30. You have two choices if you like using GUI then skip to step 31.

Or while in terminal type:

mkdir -p dump/boot
mkdir -p dump/dev
mkdir -p dump/mnt/boot
mkdir -p dump/mnt/fwup
mkdir -p dump/opt
mkdir -p dump/proc
mkdir -p root

and then Skip to step 36.




31. Go back to dolphin and open the new "dump" folder, create the following folders:

boot

dev

opt

proc

(Right click on an empty space in current directory, Go to Create New > Folder)


32. Open "mnt" folder, create the following folders:

boot

fwup


33. Go back to "> home > desktop > wdtvliveplus_x_xx_xx_B" directory

34. Create new > Folder and call it "root" (this folder will be the mounting point for accessing files within "root.bin") Note: Don't type in the "" (this is for those people who tech support has to ask, "Have you plugged in the device?"; and this solves their problem)


35. Switch tab to terminal.




36. To create a "root.bin" file with right dimension type the following:

dd if=/dev/zero of=root.bin bs=1024k count=250

(Change count to suite needs 250 means 250 MegaBytes)


37. To format new "root.bin" to ext3 type:

mkfs.ext3 ./root.bin


38. it will say:


./root.bin is not a block special device.

Proceed anyway? (y,n)


The answer is Yes:

y (enter)




38. Now we mount it, here is a command you will be typing many times if you decide to mod the OSD:

sudo mount -o loop root.bin root

(this extracts all the files to the temporary folder, in this case "root". Changes are linked between the folder and file so when you edit a file after you mount it the "root.bin" will be updated automatically. I use the "dump" folder as my backup. so that I keep the original files intact)


39. now we copy the Files over from the "dump" folder to the "root" Folder. I went to Dolpin in "dump" folder and selected all the files by draging a box around them, did a right click copy; and went to the "root" folder and right click pasted.

40. Now we Umount it:

sudo umount root

(this closes the connection to the "root.bin" file)




41. Copy the "root.bin" to a Fat32 formatted USB stick to the root directory /

42. Plug USB drive into a WDTV live Plus slot.

43. Reboot




If the device isn't seeing the root.bin file, and goes directly to WDLXTV firmware, then try this Wiki:

http://wiki.wdlxtv.com/USB_Boot

(it solved my problem)