Beta [cfupdater] Custom Firmware Updater

The wiki installation steps and notes imply they are subject to the same restrictions as firmware updates.
I have never tried to use the bundle installation method so have no experience of whether it is more/less tolerant of other USB sticks
The CF upgrade when using the USB stick method is dependent on the bootloader and the limited number of devices it supports. The bundle method uses the CF mdev/run-and-gun script to mount a filesytem on a device and search for bundles under the normal linux environment.
This is great news and I will try it out tomorrow
Well that was very civilized!
CF upgraded without needing to leave the armchair :doublethumbsup:
Kneeling in front of the TV trying out different USB sticks is something that I can do without these days!
Only problem is I cant read the progress messages on the front panel these days - I must get round to removing the filter sometime

humax# /mod/sbin/cfupdater  /mod/HDR_FOX_T2_upgrade.hdf                                                                               
HDF Tool v1.0.4, by af123, 2011-2015.                                                                                                 
Opening /mod/HDR_FOX_T2_upgrade.hdf, 24392564 bytes.                                                                                 
  Blocks:     752                                                                                                                     
  Model:      4                                                                                                                       
  System ID:  80bc.7e00                                                                                                               
x  1.hdfbin-1-000000.raw          (22626304 bytes)                                                                                   
x  2.hdfbin-1-1e00000.raw         (1910535 bytes)                                                                                     
Processed in: 28.15s                                                                                                                 
New version is 3.14                                                                                                                   
    | The telnet connection will close shortly.                           |                                                           
    |                                                                     |                                                           
    | The firmware upgrade will then be applied and a reboot will follow. |                                                           
    | Progress is shown on the front panel display.                       |                                                           
If you need remote progress, then you can telnet back into the box after the connection has closed then tail -f /tmp/cfupdate.log
I've just updated one of my boxes remotely. Some comments:
1. I forgot to go to maintenance mode before running the updater - it only gave me a warning and appeared to carry on doing something (the pause after printing the system ID line). I bottled out using Ctrl-C. Should this generate an error rather than a warning? What are the consequences of not doing it from maintenance mode?
2. The device was not responsive to the network during the procedure, so the above command couldn't be used and I had no remote progress.
3. After uninstalling cfupdater, it still left the /mod/cfupdater directory, although it was empty. I'd expect this to be removed.

Apart from that, it's fab!
To answer your comments...
  1. If you are not in maintenance mode it extracts the files from the hdf file, does some sanity checks and creates some scripts but will then abort. It will not reprogram the flash or prevent the system from running normally. This was used as a debugging aid.
  2. It should respond to the network. Were you using the web based telnet client or another telnet client?
  3. Fair enough.
2. Normal telnet, but it didn't respond to Ping either. The switch logs and DHCP server logs show a disturbance on rebooting to maintenance mode, and another after the flash had been programmed as it rebooted to normal mode. So the ethernet interface was up and on the correct IP address, but nothing was responding. Curious.
Last edited:
I have had problems with the telnet daemon failing to restart previously but haven't seen that in a while.
I think I may have got to the bottom of this, network configuration or lack of. Do you have a file /mod/boot/network on your system?
I have had problems with the telnet daemon failing to restart
Irrelevant if it doesn't respond to Ping. There is something more fundamental wrong.
There might be some clues in cfupdate.log which should get copied to /mod/tmp
Nothing relating to networking. This is the start and it continues in much the same vein:
New version is 3.14
SIGQUIT not supported, attempting workaround...
umount: can't umount /old_root: Device or resource busy
    1 ?        Ss     0:02 init
   26 ?        Ss     0:00 /bin/sh /etc/init.d/rcS
Flash Partition mtd0 (rootfs)...
^MErasing 128 Kibyte @ 0 --  0 % complete ^MErasing 128 Kibyte @ 0 -- 100 % complete
Copied 131072 bytes from /mod/cfupdater/tmp/1.hdfbin-1-000000.raw to address 0x00000000 in flash
Skipped identical block at offset 20000
^MErasing 128 Kibyte @ 40000 --  0 % complete ^MErasing 128 Kibyte @ 40000 -- 100 % complete
Copied 131072 bytes from /mod/cfupdater/tmp/1.hdfbin-1-000000.raw to address 0x00040000 in flash
Do you have a file /mod/boot/network on your system?
No. Never heard of that. Should I have?
Version 0.0.2 is now available in the beta repository.

This adds support for the HD-FOX T2 and should fix the issues above.

Thanks to @af123 for his help in testing this.
Woo hoo! I'm a bit tied up for a couple of days, but I'll be giving this a thorough test on 3.13a.
Great minds and all that!

It also occurs to me that just being able to feed it a .raw file would be useful too, as packing .raw files into a .hdf (which takes an annoyingly long time) only for it to be unpacked again by cfupdater as the first step seems like such a waste of time.