WDLXTV – enhanced WDTV firmware

WDLXTV is a souped up unofficial firmware for the Western Digital WDTV. It is based off of the 1.03.01 firmware, but with many extra features. Similar to my dvdmod firmware, this is a permanent flash, just like an official upgrade. This firmware is an option for those whos hardware is stable with Zoranders ext3-boot, or those who don’t do much firmware programming to take advantage of ext3-boot. Once again, ext3-boot is for (sorta) pro’s and testers whereas WDLXTV is for everyday use. Rest assured, WDLXTV like ext3-boot, can still be extended and customized in many ways.

Features included in WDLXTV:

  • external dvd drive capability with cd-manager-0.7 **fixed**
  • ext2 & ext3 filesystem support ** (un)officially supported now **
  • ext2 & ext3 hotplugging
  • all media (including network shares & optical devices) can be viewed in ‘All Videos’
  • USB Hub support
  • mounting of WDTV Optware package (if available) at boot, for access to ~1300 additional programs
  • mounting of app bin packs (if available) at boot, for plugNplay addtional functionality
  • mounting of OSD overlay (if available) at boot, for full theming (sample)
  • limited USB Ethernet support
  • IP via DHCP (by default, configurable)
  • Samba/CIFS support aka windows share mounting (requires Samba app pack)
  • Experimental wireless adapter support (thx to Zorander) (requires wireless-mod-wdlxtv app pack)
  • Ximeta NDAS device support (requires ndas app pack)
  • Telnet server
  • pure-ftp server (requires pure-ftpd app pack)
  • configurable to automount NFS shares (requires nfs app pack)
  • user customizable background & screen saver images ** new **
  • selectable 4/8/10/12/21 video thumb view (see Changelog)
  • selectable 4/6/8 file list view (see Changelog)
  • sleectable 10/15 photo/music thumb view (see Changelog)
  • user customizable init.d scripts for full os customization ** new **
  • emergency flash recovery


NOTE: I am not responsible for anything crazy that might happen during the process of flashing this firmware. Nothing should go wrong and everything should work accordingly, BUT if it does…

To flash this firmware:

  • Place it on a memory stick along with wdtv.ver and insert it into your WDTV.
  • When asked if you want to upgrade your firmware, say yes.
  • The WDTV will reboot and after several minutes the whole flashing process will complete and reboot again.
  • Upon successful flash you will see WDLXTV in the about screen of system settings.
  • The firmware no longer needs to be on anything attached to the wdtv.

Without a usb ethernet cable connected the firmware will appear no different than dvdmod, but if you attach a supported usb ethernet adapter the possibilities grow. You can telnet in and configure an NFS share (as of WDLXTV-0.5.5+ requires app pack) to automount if available at boot. There is no Samba or exported file shares, these took up too much precious space and were assembled into an app.bin pack. There is a pure-ftp server (as of WDLXTV-0.5.5+ requires app pack) running though should you need to transfer to the WDTV. There is also the ability to load the Optware for WDTV package that I assembled and have access to many additional programs instantly. If there is an opt.bin located on any boot device it will be mounted in /opt and all internal configuration will be adjusted. Optware provides only additional functionality, the WDTV will act completely self sufficient without it. In addition special app.bin packs, if located on any boot device will be loaded. Currently there is one that comes with lighttpd, an http server, along with php and a gui to configure settings on the WDTV.

In addition if there are any app.bin packs, containing self sufficient application packages, on a boot drive they will be loaded similarly to Optware. There is a good Webserver release that allows you to configure internal settings on the WDTV from a web gui. It is highly recommended. Just like app.bin packs, OSD overlays are possible as well…this is for future development. If you find you don’t like the firmware you can downgrade to an official version using instructions found at the wdtv firmware hacking wiki.

You are highly suggested to download core-extras.app.bin. It contains the modules to support XFS and ReiserFS filesystems, and several other filesystem binaries that didn’t fit in WDLXTV. HFS/HFS+ users are recommended to download this as I had to remove fsck_hfs to make room.

Notes/Limitations:

  • DO NOT remove any drive containing opt.bin, osd.bin, or app.bin files (while WDLXTV is running) as it will cause the system to become unstable

  • Media Library MUST be ON.
  • Media Library can be on or off.
  • DVD’s, NFS shares, and ext2/ext3 drives are only visible in Folder View.
  • To see xfs/reiserFS/NFS/dvd mounts you must have an officially supported (fat, ntfs, hfs, hfs+) drive attached.
  • net.config is a file to set custom network settings, it will override default settings inside the WDTV.
  • net.mounts are where you can place NFS shares that you would like loaded at boot.
  • HFS users should download core-extras.app.bin for missing binaries.
  • more notes to come probably…

Changelog:

0.5.8.1
* fixed typo preventing S00custom-options from executing
* persistent video resume filename correction: video_resume_points_table
* dos2unix /conf/net.mounts & /conf/net.config to fix windows editing

0.5.8
* now based on firmware 1.03.01!!!
* persistent video resuming enabled if empty file called: video_resume_table exists at root of device at boot
* WDLXTV can disable all 'WDLXTV' features (config_tool -c WDLXTV=OFF)
* crazymount can be disabled (config_tool -c CRAZYMOUNT=OFF)
* crazymount can be set to load apps ONLY (config_tool -c CRAZYMOUNT=APPSONLY)
* Optical drivers can be disabled (config_tool -c DISABLEOPTICAL=YES)
* rc startup scripts can be disabled (config_tool -c RC=OFF)
* list.watch can be disabled (config_tool -c LISTWATCH=OFF)
* mount.watch can be disabled (config_tool -c MOUNTWATCH=OFF)
* plug.watch can be disabled (config_tool -c PLUGWATCH=OFF)
* NTP can be delayed (for possible NTP+remote fix] (config_tool -c NTP_DELAY=10)
* net.mounts execution can be delayed [possible sluggish remote fix] (config_tool -c NET_MOUNTS_DELAY=10)
* all this disabling is untested & experimental!!!!!!!!

0.5.7.2
* disable NTP to fix (maybe) sluggish remote & video resume issues (from ssh/telnet console: config_tool -c NTP=OFF)

0.5.7.1
* re-enabled screen_saver.png
* added missing icons & xml from official FW1.02.11
* rewrote mount.watch
**** removed active device polling/activity -- no disk activity
**** redesigned .addMounts background implementation
**** accomodate devices with no UUID better
* disable .addMounts for a directory (for app.bins) by non-destructively adding entry to /conf/config:IGNORE_SCANDIR
* list.watch monitors /conf/config for changes before acting
* small patches to xmount, crazymount, & plug.watch
* /conf/fstab now available, by UUID only
* crazyboot & plug.watch respect fstab
* users are enabled (experimental)

0.5.7
* Now based on firmware 1.02.11
* includes Ernis patched mount.watch (untested!!)

0.5.6.2
* custom USB slot icons can be enabled (look at S00custom-options)
* Optical drive thumb if no image present on media
* re-insanified crazyboot
* fixed typo in mount.watch
* fixed app.bin's residing on NTFS partitions
* crazyboot fix if no app.bin's contained on device with .thumbDB dir
* workaround for .addMounts on NTFS drive with locally plugged media connected at boot
*** if you use .addMounts the device will not be ejectable from the OSD due to the extra mounts it contains ***
*** if you don't like this, don't use .addMounts ; ) ***
*** Optical drives are only visible in folder view ***

0.5.6.1
* all app.bin's are disabled during upgrade process (aka no rcS's are executed)

0.5.6
* shaved 25s+ off boot time!!! :-D
* rearranged boot cycle
* rewrote device mounting subsystem
* sane-ified crazyboot
* better hub support
* all media files can now show up in various media library enabled areas :-D
*** requires file called .addMounts on root of device you'd like extra mounts contained ***
*** cycle media library off&on to rescan files ***
* LaurentG's asstd patches
* added 15 thumb view to music/photo (default=10 - refer to S00custom-options to change to 15)
* ability to relocate/have persistent (+++fast) thumbnail database on a device
*** requires directory named .thumbDB on root of attached device ***
* 24 loopback devices
* check S00custom-options for setting to permanently set timezone
* few other minor things maybe
**** download updated nfs.app.bin ****

0.5.5
* based on firmware 1.02.10
* fixed (finally) optical drive functionality
* USB Hub support for more than one device per slot
* LaurentG's mount.watch to allow disabling of Media Library :-)
* LaurentG's additional thumb browse views
* LaurentG's other assorted patches
* changed selector of thumb views (look at S00custom-options for examples)
* 32 (real) loopback devices now (thx disco)
* techflaws corrected deutsch translation
* NFS & pure-ftp server removed due to size constraints

0.5.3.2
* OSD tweaks
* changed now playing view format
* added selectable 4, 6, 8 item list view (default=8) (via shell: config_tool -c THUMBNUM=X)
* added selectable 4, 8, 12 thumb browse view (default=12) (via shell: config_tool -c LISTNUM=X)
* increased font size of title to 32 in thumb view
* removed 2 unused binaries
* updated build scripts to dynamically generate all version info
* sample S00custom-options provided

0.5.3.1
* fixed crazymount typo preventing app.bin's from loading

0.5.3
* fixed osd mounting typo in crazymount
* cleaned up symlink'd dirs
* removed plug.watch (deprecated with [un]official ext2/3 support)
* added Rezmus's additional font sizes OSD tweak
* fixed S00custom-option execution
* chmod 700'd /root
* fixed timezone functionality
* increased loopback devices from 8 -> 24
* option to prevent device connected at boot from spinning down on power off (if device contains file called .keepalive it will not be spun down)


0.5.2
* based on firmware 1.02.07, ext2/ext3 filesystem support is official!!!
* more md5sums added for corruption checking
* a single startup script can be placed in /conf, called S00user-script
   * syntax errors in S00user-script will prevent your
     osd from booting, be careful!
* crazymounts wait is now user extendable, default = 10 seconds
   * if /conf/crazymount.wait exists and contains a single integer,
     delay will be extended (useful for drives that are slow to settle)

0.5.1
* emergency flash upgrade/freeze recovery now added
   * requires a full firmware image called emergency-wdtv.bin and
     a file called emergency-flash on the root of a device at boot
* Custom background and screen saver images can be supplied at boot
   * requires welcome_background_bg.jpg (maxsize=524288) or
     screen_saver.png to exist on a device attached at boot
   * original screen_saver & welcome_background are supplied,
     in case you desire them.
* A custom startup script can be supplied to
  enable/disable/whatever at boot
   * requires a script called S00custom-options on the root
     of a device attached at boot
* OSD overlays must be named as follows:


0.5
* based on firmware 1.02.06

0.4.4.1
* fixed typo's in crazymount, core-extras now works
* attached disks are sync'd every 120s
* rearranged device mounting

0.4.4
* based on firmware 1.02.04

0.4.3.2
* added more logging
* fixed typo in hotplugging script
* ext2/ext3/NFS/CIFS/XFS/reiserFS mounting fixed (for real this time).

0.4.3.1
* fixed NFS/CIFS/XFS/reiserFS mounting (finally noticed it was broken)

0.4.3
* now based off firmware 1.02.03
* screen_saver shrunken for size

0.4.2
* fixed OSD sluggishness
* corrected freezing setup->about screen

0.4.1
* all OSD images are back to original size
* once again removed fsck_hfs for the space (download core-extras.app.bin)
* OSD tweaks (filename listings are much wider)

0.4
* now based on firmware 1.02.00
* fsck_hfs is back in the firmware, no binaries have been removed this time
* thanks to DXR for reducing a handful of large OSD images to give me extra space : )
* fixed background back to Hardwood Night (after a mishap)

0.3
* rewrote hotplugging/unplugging script
* defaults to video on boot
* independant welcome_logo and screen_saver
* Samba/CIFS support aka windows share mounting (requires Samba app pack)
* Experimental wireless adapter support (thx to Zorander) (requires wireless-mod-wdlxtv app pack)
* new logo’s by Pennhaven

0.2.1
* actually fixed hostname issue
* osd tweaks (welcome screen & setup->about) to display IP & hostname
* updated cd.eject to handle usb bus resets a bit better
* updated crazymount
* fixed net.agent to read net.config for custom network settings
* xmount will now dump message to /tmp/messages.log upon failure
* new WDLXTV welcome logo by Pennhaven

0.2
* cleaned up init
* fixed hostname issues
* corrected passwd issue with /etc/shadow for ssh server
* added /root/.ssh/authorized_keys -> /conf/authorized_keys for passwordless ssh (using ssh-keygen)
* added fstab entries to remove annoying fsck message
* redid OSD overlay formatting, can selectively replace any OSD file via an app.bin pack (tutorial to come)
* app.bin packs can contain kernel modules & modules.dep now
* changed WDTV logo to Pennhaven's HD-X logo (thx!)
* changed background to http://oliuss.deviantart.com/art/Hardwood-Night-88299626
* added pre-loading of core-extras.app.bin, for boot time xfs & reiserfs with hotplugging

0.1 - initial release

Downloaded over 150,000 times!

** WDLXTV-0.5.8.1 **

For instructions on modifying start up parameters & possible fixes to the sluggish remote / video freezing bug look here.

NOTE: version numbering got messed up somehow in 0.4.3, if you have problems with the new firmware not being detected for upgrade you might need to open wdtv.ver in a text editor and change VERSION.

if this doesn't work:

VERSION='1.02.07_WDLXTV-0.5.2'

then try replacing the underscore with a dot or vice versa.

VERSION='1.02.07.WDLXTV-0.5.2'

I have gone back to the original version'ing scheme (dot instead of underscore) so this shouldn't be an issue for many people.

Report any problems/bugs/requests to forum.wdlxtv.com.

Don't forget to check out the official WDLXTV / homebrew firmware wiki.

<--I've spent a tremendous amount of time hacking the WDTV firmware, so if you appreciate my efforts please donate a little something using the link below : ) Thanks & enjoy.