I am trying to get Lirc (0.9.0) to run on a Ubuntu 11.10 server VM running under ESXi 5 Update 1.  I have tried both the Hauppauge HDPVR zilog and MCEUSB blasters and am getting strange behavior from both.  The USB interfaces are setup for pass-through from the host to the VM.  On the VM they appear like this:

Bus 001 Device 003: ID 2040:4902 Hauppauge HD PVR
Bus 002 Device 002: ID 0609:031d SMK Manufacturing, Inc. eHome Infrared Receiver


For the Hauppauge everything seems fine from a configuration perspective:

Mar 28 22:28:22 pvr kernel: [    3.919235] lirc_dev: IR Remote Control driver registered, major 250
Mar 28 22:28:22 pvr kernel: [    3.920763] lirc_zilog: module is from the staging directory, the quality is unknown, you have been warned.
Mar 28 22:28:22 pvr kernel: [    3.921001] lirc_zilog: Zilog/Hauppauge IR driver initializing
Mar 28 22:28:22 pvr kernel: [    3.922374] lirc_zilog: probing IR Rx on Hauppage HD PVR I2C (i2c-0)
Mar 28 22:28:22 pvr kernel: [    3.922407] lirc_zilog: probe of IR Rx on Hauppage HD PVR I2C (i2c-0) done. Waiting on IR Tx.
Mar 28 22:28:22 pvr kernel: [    3.922409] lirc_zilog: probe of IR Rx on Hauppage HD PVR I2C (i2c-0) done
Mar 28 22:28:22 pvr kernel: [    3.922414] lirc_zilog: probing IR Tx on Hauppage HD PVR I2C (i2c-0)
Mar 28 22:28:22 pvr kernel: [    3.923363] init: apport post-stop process (806) terminated with status 1
Mar 28 22:28:22 pvr kernel: [    3.923834] i2c i2c-0: lirc_dev: driver lirc_zilog registered at minor = 0
Mar 28 22:28:22 pvr kernel: [    3.923836] lirc_zilog: IR unit on Hauppage HD PVR I2C (i2c-0) registered as lirc0 and ready
Mar 28 22:28:22 pvr kernel: [    3.923837] lirc_zilog: probe of IR Tx on Hauppage HD PVR I2C (i2c-0) done
Mar 28 22:28:22 pvr kernel: [    3.923846] lirc_zilog: initialization complete
Mar 28 22:28:22 pvr lircd-0.9.0[860]: lircd(default) ready, using /var/run/lirc/lircd

but when I change channels, I get random variations of the same theme:

Apr  6 23:33:37 pvr lircd-0.9.0[875]: accepted new client on /var/run/lirc/lircd
Apr  6 23:33:37 pvr kernel: [ 1137.812351] lirc_zilog: i2c_master_send failed with -5
Apr  6 23:33:37 pvr kernel: [ 1137.812409] lirc_zilog: sending to the IR transmitter chip failed, trying reset
Apr  6 23:33:37 pvr kernel: [ 1137.981302] lirc_zilog: i2c_master_send failed with -5
Apr  6 23:33:37 pvr kernel: [ 1137.981397] lirc_zilog: sending to the IR transmitter chip failed, trying reset
Apr  6 23:33:38 pvr kernel: [ 1138.325592] lirc_zilog: Zilog/Hauppauge IR blaster firmware version 2.1.0 loaded
Apr  6 23:33:38 pvr lircd-0.9.0[875]: removed client
Apr  6 23:33:38 pvr kernel: [ 1138.590482] lirc_zilog: i2c_master_recv failed with -5 -- keeping last read buffer
Apr  6 23:33:38 pvr kernel: [ 1138.603331] lirc_zilog: i2c_master_recv failed with -5 -- keeping last read buffer
Apr  6 23:33:38 pvr lircd-0.9.0[875]: accepted new client on /var/run/lirc/lircd
Apr  6 23:33:39 pvr lircd-0.9.0[875]: removed client
Apr  6 23:33:39 pvr kernel: [ 1139.508257] lirc_zilog: i2c_master_recv failed with -5 -- keeping last read buffer
Apr  6 23:33:39 pvr kernel: [ 1139.521092] lirc_zilog: i2c_master_recv failed with -5 -- keeping last read buffer
Apr  6 23:33:39 pvr lircd-0.9.0[875]: accepted new client on /var/run/lirc/lircd
Apr  6 23:33:40 pvr kernel: [ 1140.259766] lirc_zilog: i2c_master_send failed with -5
Apr  6 23:33:40 pvr kernel: [ 1140.259862] lirc_zilog: sending to the IR transmitter chip failed, trying reset
Apr  6 23:33:40 pvr kernel: [ 1140.603172] lirc_zilog: Zilog/Hauppauge IR blaster firmware version 2.1.0 loaded
Apr  6 23:33:40 pvr kernel: [ 1140.648052] lirc_zilog: i2c_master_send failed with -5
Apr  6 23:33:40 pvr kernel: [ 1140.648148] lirc_zilog: sending to the IR transmitter chip failed, trying reset
Apr  6 23:33:40 pvr kernel: [ 1140.807998] lirc_zilog: i2c_master_send failed with -5
Apr  6 23:33:40 pvr kernel: [ 1140.808094] lirc_zilog: sending to the IR transmitter chip failed, trying reset
Apr  6 23:33:41 pvr kernel: [ 1141.150442] lirc_zilog: Zilog/Hauppauge IR blaster firmware version 2.1.0 loaded
Apr  6 23:33:41 pvr lircd-0.9.0[875]: write failed
Apr  6 23:33:41 pvr lircd-0.9.0[875]: Input/output error
Apr  6 23:33:41 pvr lircd-0.9.0[875]: error processing command: SEND_ONCE blaster 1_138_KEY_9
Apr  6 23:33:41 pvr lircd-0.9.0[875]: transmission failed
Apr  6 23:33:41 pvr lircd-0.9.0[875]: removed client

So I figured the HDPVR setup was not going to be stable, so I switched over to the trusted MCEUSB I've used for years and irsend hangs.

When the system is booted, the first command sent is:
   /usr/bin/irsend SEND_ONCE 3100 out_9
which irsend responds: "irsend: timeout" and any subsequent commands hang indefinitely without indication of what the problem is.

if I restart lirc, the problem goes away and lirc appears to operate correctly with the mceusb, for example:

root@pvr:~# /usr/bin/irsend SEND_ONCE 3100 out_select out_cancel2
irsend: timeout
root@pvr:~# /usr/bin/irsend SEND_ONCE 3100 out_select out_cancel2
^C
root@pvr:~# /etc/init.d/lirc restart
 * Stopping remote control daemon(s): LIRC                                  [ OK ]
 * Loading LIRC modules                                                     [ OK ]
 * Starting remote control daemon(s) : LIRC                                 [ OK ]
root@pvr:~# /usr/bin/irsend SEND_ONCE 3100 out_select out_cancel2
root@pvr:~# /usr/bin/irsend SEND_ONCE 3100 out_select out_cancel2
root@pvr:~# /usr/bin/irsend SEND_ONCE 3100 out_select out_cancel2
root@pvr:~# /usr/bin/irsend SEND_ONCE 3100 out_select out_cancel2
root@pvr:~# /usr/bin/irsend SEND_ONCE 3100 out_select out_cancel2
root@pvr:~# /usr/bin/irsend SEND_ONCE 3100 out_select out_cancel2

Oddly enough, if I restart lirc before sending the first command after a reboot the system operates normally for the MCEUSB, but not for the hdpvr

Pointers and suggestions would be appreciated.