Humax PVR

From Smop.co.uk

Jump to: navigation, search

I need to update this with some fixes which make the program much more reliable

If you have a Humax 9200T PVR you might want to connect it to your Linux box and shuffle data back and forth. Unfortunately there is only a closed source windows program to do this.

Fortunately Andy Chappell wrote a open source windows program to do this. When I say "open source", the reply Alan Pope got was:

 No licence really. If you get anywhere with your mods then just add your
 name to the credits and let me have a copy of the source/binaries so I can
 stick it onto the web site.

This wiki is my way of documenting what I've found and what I've written

Contents

Progress

  • initial connect/disconnect [done - but need to investigate resetting]
  • basic commands [done, needs testing - relative/absolute path, deletion]
  • transfer commands
  • FUSE integration
  • patches from Tristan Keen for nice speedup

You can download the latest client.

Next

Bulk-Only Reset fails - do we need to point it to a Bulk endpoint rather than control? spec says: The device shall NAK the status stage of the device request until the Bulk-Only Mass Storage Reset is complete. So maybe the reset has to keep trying the CSW until it is okay (print in a loop whilst this happens.

xfer itself fails:

recvDataCmd reports bulk read of only 13 of 61440 bytes
readBulkCSW failed to read CSW

now 13 bytes just so happens to be the size of a CSW... so it'd be interesting to see what the guts of readBulkCSW would make of those 13 bytes...

After that, time to have a look at why it fails. Perhaps looking at why renaming claims to work (but in fact doesn't) would be interesting...

Design

Andy's program is a standalone windows box. I intend to do things a little differently - perhaps make it much more like an FTP client, or maybe link it into FUSE. This would have the benefit of making the code much simpler and cleaner - doing one thing well - the Unix way (tm). You would basically just mount() the Humax onto your Linux machine then use cp/mv etc as normal.

Porting wholesale to Unix would probably be quite easy, some things that need doing:

  • remove priority setting
  • add compatability functions for strcpy_s, strcat_s
  • replace _getch and _kbhit with Unix versions
  • change host filesystem code to understand unix filesystems (probably a large code simplification)

Useful docs

First off, some useful sites:

Andy also writes:

 One thing worth noting is that it is possible to have a transfer going while performing other tasks
 at the same time (e.g. renaming/deleting files). See the code for chase-transfers regarding this.

Bugs found

Humax USB codes

Personal tools