OpenELEC Template usb passthrough issues


Recommended Posts

I am working on consolidating my HTPC's with Openelec VM's. Everything is working fine, but I am unable to pass-through my IR receiver to my sons room (which is vital). Are there any known issues with certain usb devices? My usb keyabord/mouse work just fine. I have tried multiple usb ports (front/back) with no difference. When the VM starts the IR receiver is just black, but when I press a button the red light turns on and just stays on (instead of indicating a button press).

 

OpenELEC XML

<domain type='kvm' id='6' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>test</name>
  <uuid>fb68ebaa-c7c8-31de-d838-789a6458c6e1</uuid>
  <description>test</description>
  <metadata>
    <vmtemplate name="OpenELEC" icon="openelec.png" os="openelec" openelec="5.95.2_1"/>
  </metadata>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>1</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='1' threads='1'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/cache/appdata/OE/OpenELEC-unRAID.x86_64-5.95.2_1.img'/>
      <backingStore/>
      <target dev='hda' bus='virtio'/>
      <readonly/>
      <boot order='1'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0' multifunction='on'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>
    </controller>
    <filesystem type='mount' accessmode='passthrough'>
      <source dir='/mnt/user/appdata/OpenELEC/'/>
      <target dir='appconfig'/>
      <alias name='fs0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </filesystem>
    <interface type='bridge'>
      <mac address='52:54:00:02:9f:f5'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/test.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x1784'/>
        <product id='0x0008'/>
        <address bus='9' device='2'/>
      </source>
      <alias name='hostdev0'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=02:00.0,bus=pcie.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=02:00.1,bus=pcie.0'/>
  </qemu:commandline>
</domain>

 

USB Devices

Bus 009 Device 002: ID 1784:0008 TopSeed Technology Corp. eHome Infrared Transceiver

Link to comment

Now I get this:

 

Execution error

 

internal error: early end of file from monitor: possible problem:

2015-09-01T12:35:24.166033Z qemu-system-x86_64: -device nec-usb-xhci,masterbus=usb.0,firstport=0,bus=pci.2,multifunction=on,addr=0x3: Property '.masterbus' not found

 

Worked fine for me.  I think you probably didn't delete enough.  When you delete a <controller> section, you need to delete from the <controller part to the </controller> part (and everything in between).  From my VM, I deleted all of this (which is created by default):

 

    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0' multifunction='on'/>
    </controller>

 

And what I added in it's place was this:

 

<controller type='usb' model='nec-xhci'/>

 

Worked like a champ.

Link to comment

After the change, the receiver responds to button presses, but nothing is actually happening on the screen.

 

Hmm, maybe we need to see about including those drivers in OpenELEC.  So the change did result in the receiver responding, whereas before, it wouldn't respond at all.  Is that correct?

Link to comment

Yes. Before when pressing a button on the tenor the receiver would light up red and stay lit. With the new settings, the receiver lights up as buttons are pressed, but Kodi does not respond.

 

Have you tested this IR receiver with OpenELEC or even just Kodi in general on any other systems before?  Just curious you know for sure this IR receiver works with Kodi/OpenELEC.  If not, it doesn't mean we couldn't make it work somehow, but would at least help narrow down if we need to add something to the OpenELEC virtual disk image itself or if it's something we need to change in how we assign the device to the VM.

Link to comment
  • 11 months later...

Did you ever find a resolution to this? I have the same issue and have tried multiple different VM setups and the only one I can get the remote to function properly in is ESXi. My goal was GPU passthrough to my slingbox, which works great in unraid and or KVM with Fedora but to no avail the remote simply will not work the way it should.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.