unRAID/Arcade build


Recommended Posts

just tested another random keyboard I had laying around and it worked perfectly.

 

ive been struggling to pass through any of the rear usb 2.0 ports because they show up on the same pci device as my onboard usb3 device hosting the unraid flash device. I've got a 2-port usb3 header adapter coming in the mail. if I can't safely pass that through to the VM i'll go the route of usb pci card... I've gotta have the control panel keyboard emulator for this to work as an arcade.

 

 

root@Tower:~# lsusb

Bus 004 Device 002: ID 8087:8000 Intel Corp.

Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 003 Device 002: ID 8087:8008 Intel Corp.

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 002: ID 0781:5583 SanDisk Corp.

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 008: ID d209:0301 Ultimarc I-PAC Arcade Control Interface

Bus 001 Device 006: ID 0557:2419 ATEN International Co., Ltd

Bus 001 Device 005: ID 0557:7000 ATEN International Co., Ltd Hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@Tower:~# readlink /sys/bus/usb/devices/usb1
../../../devices/pci0000:00/0000:00:14.0/usb1
root@Tower:~# readlink /sys/bus/usb/devices/usb2
../../../devices/pci0000:00/0000:00:14.0/usb2
root@Tower:~# readlink /sys/bus/usb/devices/usb3
../../../devices/pci0000:00/0000:00:1a.0/usb3
root@Tower:~# readlink /sys/bus/usb/devices/usb4
../../../devices/pci0000:00/0000:00:1d.0/usb4

Link to comment

the pcie usb adapter has been ordered. I played with a bunch of settings the past couple of days, but never could get the devices to separate from a single controller. only one VM needs audio/video pass through and I still have 5 on-board sata ports (but only 3 license spots) so there's no real issue with using up the two pcie slots for this particular VM.

Link to comment

woohoo!

 

received and installed one of these tonight:  http://www.amazon.com/gp/product/B005ARQV6U

 

i spent about 45 minutes troubleshooting the usb devices before I realized there was some sort of funky override taking place with my RDP client, causing the USB devices to be unusable. got everything to a state where I could control from the arcade cabinet and it all works fine. I'm up and running with video, usb audio, and my usb keyboard emulator for the control panel. to keep the image size down I have all of the emulator application files and roms stored on the array itself and there's no apparent performance or in-game lag as a result. nor is there any apparent issue with running the VM from my velociraptor cache drive instead of SSD.

 

scanline effects are hardware based, so the processing overhead is minimal. I actually bumped the VM down to 4GB's of RAM and it runs just fine.

 

Link to comment

woohoo!

 

received and installed one of these tonight:  http://www.amazon.com/gp/product/B005ARQV6U

 

i spent about 45 minutes troubleshooting the usb devices before I realized there was some sort of funky override taking place with my RDP client, causing the USB devices to be unusable. got everything to a state where I could control from the arcade cabinet and it all works fine. I'm up and running with video, usb audio, and my usb keyboard emulator for the control panel. to keep the image size down I have all of the emulator application files and roms stored on the array itself and there's no apparent performance or in-game lag as a result. nor is there any apparent issue with running the VM from my velociraptor cache drive instead of SSD.

 

scanline effects are hardware based, so the processing overhead is minimal. I actually bumped the VM down to 4GB's of RAM and it runs just fine.

Woot!!  That's awesome to hear!!

Link to comment
  • 2 weeks later...

why is it that every time i reboot the server my VM loses the vdisk stored on my cache drive? It's still there, and it's still mapped in the config, but i just get the following via VNC.

 

boot.jpg

 

i can't seem to find the proper search query for a solution and so far no attempt to rebuild the VM config has given me useful results. I end up having to rebuild the entire VM/OS from scratch.

Link to comment

So I went poking around in the KVM bios after exiting the shell and checked the boot order section. Based on the assigned PCI address the drive is there, but it listed as "miscellaneous device". If I select it the OS boots up fine, and now boots fine every time I power off the VM and power it back on.

 

what gives?

Link to comment

i had a power glitch the other day and ever since then I have had issues with KVM locking up unraid. I've rebuilt the VM a dozen times or so, and reloaded the OS half as many times. Works great in VNC mode, but as soon as I switch over to the graphics card and edit the XML for USB PCI passthrough it just tanks. #frustrating

Link to comment

i had a power glitch the other day and ever since then I have had issues with KVM locking up unraid. I've rebuilt the VM a dozen times or so, and reloaded the OS half as many times. Works great in VNC mode, but as soon as I switch over to the graphics card and edit the XML for USB PCI passthrough it just tanks. #frustrating

 

That is an odd one. Can you tie it down to either the graphics passthrough or the USB passthrough? Have you done a memtest to check your RAM?

Link to comment

looks like it's video, though I have no idea why now it's not working when it was before. The only difference is a power outage.

 

the VM booted up fine with the USB PCI card + VNC. Powered down the VM and changed to the video card, re-added the USB PCI in the XML and booted up.

 

The screen locked up at the windows 8.1 boot logo and the VM ultimately shutdown. I imagine that if I power up the VM again it will lock the web gui.

 

VM Log

2015-10-13 23:50:59.063+0000: starting up libvirt version: 1.2.18, qemu version: 2.3.0
Domain id=4 is tainted: high-privileges
Domain id=4 is tainted: custom-argv
Domain id=4 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)
2015-10-13 23:53:07.722+0000: shutting down

 

system log

Oct 13 18:53:07 Tower kernel: qemu-system-x86[20946]: segfault at 0 ip           (null) sp 00002b63b5a71a08 error 14 in ld-2.17.so[2b63b01b4000+23000]
Oct 13 18:53:07 Tower kernel: br0: port 3(vnet0) entered disabled state
Oct 13 18:53:07 Tower avahi-daemon[21624]: Withdrawing workstation service for vnet0.
Oct 13 18:53:07 Tower kernel: device vnet0 left promiscuous mode
Oct 13 18:53:07 Tower kernel: br0: port 3(vnet0) entered disabled state
Oct 13 18:53:07 Tower kernel: xhci_hcd 0000:07:00.0: enabling device (0400 -> 0402)
Oct 13 18:53:07 Tower kernel: xhci_hcd 0000:07:00.0: xHCI Host Controller
Oct 13 18:53:07 Tower kernel: xhci_hcd 0000:07:00.0: new USB bus registered, assigned bus number 3
Oct 13 18:53:07 Tower kernel: xhci_hcd 0000:07:00.0: hcc params 0x002841eb hci version 0x100 quirks 0x00000090
Oct 13 18:53:07 Tower kernel: hub 3-0:1.0: USB hub found
Oct 13 18:53:07 Tower kernel: hub 3-0:1.0: 1 port detected
Oct 13 18:53:07 Tower kernel: xhci_hcd 0000:07:00.0: xHCI Host Controller
Oct 13 18:53:07 Tower kernel: xhci_hcd 0000:07:00.0: new USB bus registered, assigned bus number 4
Oct 13 18:53:07 Tower kernel: usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
Oct 13 18:53:07 Tower kernel: hub 4-0:1.0: USB hub found
Oct 13 18:53:07 Tower kernel: hub 4-0:1.0: 4 ports detected
Oct 13 18:53:08 Tower kernel: usb 3-1: new high-speed USB device number 2 using xhci_hcd
Oct 13 18:53:08 Tower kernel: hub 3-1:1.0: USB hub found
Oct 13 18:53:08 Tower kernel: hub 3-1:1.0: 4 ports detected
Oct 13 18:53:08 Tower kernel: usb 3-1.3: new full-speed USB device number 3 using xhci_hcd
Oct 13 18:53:08 Tower kernel: usb 3-1.3: config 1 has an invalid interface number: 3 but max is 2
Oct 13 18:53:08 Tower kernel: usb 3-1.3: config 1 has an invalid interface number: 3 but max is 2
Oct 13 18:53:08 Tower kernel: usb 3-1.3: config 1 has an invalid interface number: 3 but max is 2
Oct 13 18:53:08 Tower kernel: usb 3-1.3: config 1 has no interface number 2
Oct 13 18:53:08 Tower kernel: input: Yoyodyne Consulting ODAC-revB as /devices/pci0000:00/0000:00:1c.4/0000:07:00.0/usb3/3-1/3-1.3/3-1.3:1.0/0003:262A:1048.000B/input/input14
Oct 13 18:53:08 Tower kernel: hid-generic 0003:262A:1048.000B: input,hidraw0: USB HID v1.00 Device [Yoyodyne Consulting ODAC-revB] on usb-0000:07:00.0-1.3/input0
Oct 13 18:53:08 Tower kernel: usb 3-1.4: new full-speed USB device number 4 using xhci_hcd
Oct 13 18:53:08 Tower kernel: usb 3-1.4: ep 0x81 - rounding interval to 32 microframes, ep desc says 40 microframes
Oct 13 18:53:08 Tower kernel: usb 3-1.4: ep 0x82 - rounding interval to 32 microframes, ep desc says 40 microframes
Oct 13 18:53:08 Tower kernel: usb 3-1.4: ep 0x83 - rounding interval to 64 microframes, ep desc says 80 microframes
Oct 13 18:53:08 Tower kernel: input: Ultimarc MINI-PAC Ultimarc MINI-PAC as /devices/pci0000:00/0000:00:1c.4/0000:07:00.0/usb3/3-1/3-1.4/3-1.4:1.0/0003:D209:0301.000C/input/input15
Oct 13 18:53:09 Tower kernel: hid-generic 0003:D209:0301.000C: input,hidraw2: USB HID v1.11 Keyboard [ultimarc MINI-PAC Ultimarc MINI-PAC] on usb-0000:07:00.0-1.4/input0
Oct 13 18:53:09 Tower kernel: input: Ultimarc MINI-PAC Ultimarc MINI-PAC as /devices/pci0000:00/0000:00:1c.4/0000:07:00.0/usb3/3-1/3-1.4/3-1.4:1.1/0003:D209:0301.000D/input/input16
Oct 13 18:53:09 Tower kernel: hid-generic 0003:D209:0301.000D: input,hidraw4: USB HID v1.11 Mouse [ultimarc MINI-PAC Ultimarc MINI-PAC] on usb-0000:07:00.0-1.4/input1
Oct 13 18:53:09 Tower kernel: input: Ultimarc MINI-PAC Ultimarc MINI-PAC as /devices/pci0000:00/0000:00:1c.4/0000:07:00.0/usb3/3-1/3-1.4/3-1.4:1.2/0003:D209:0301.000E/input/input17
Oct 13 18:53:09 Tower kernel: hid-generic 0003:D209:0301.000E: input,hidraw5: USB HID v1.11 Device [ultimarc MINI-PAC Ultimarc MINI-PAC] on usb-0000:07:00.0-1.4/input2
Oct 13 18:54:32 Tower emhttp: cmd: /usr/local/emhttp/plugins/dynamix/scripts/tail_log libvirt/qemu/Arcade.log
Oct 13 18:59:35 Tower kernel: mdcmd (56): spindown 2
Oct 13 18:59:38 Tower emhttp: cmd: /usr/local/emhttp/plugins/dynamix/scripts/tail_log libvirt/qemu/Arcade.log

 

Running with PCIe ACS override. The card wouldn't show up at all without it. Is it possible something corrupted in my KVM/libvirt/bios install? How do I reload those components without blowing away the rest of my unRAID and Docker configs?

Link to comment

my current xml

 

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Arcade</name>
  <uuid>2bbf46ff-3330-7af4-94fe-46e3ef378e33</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.2'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
    </hyperv>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='2' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <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/KVM/Arcade/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/Miscellaneous/Iso/en_windows_8.1_professional_vl_with_update_x64_dvd_4065194.iso'/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/Miscellaneous/Iso/virtio-win-0.1.110.iso'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:a4:4b:8b'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Arcade.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
  </qemu:commandline>
</domain>

 

pci devices

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3 Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:01.1 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5)
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5)
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d5)
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d5)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation C222 Series Chipset Family Server Essential SKU LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
00:1f.6 Signal processing controller: Intel Corporation 8 Series Chipset Family Thermal Management Controller (rev 05)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Caicos HDMI Audio [Radeon HD 6400 Series]
02:00.0 Serial Attached SCSI controller: LSI Logic / Symbios Logic SAS2308 PCI-Express Fusion-MPT SAS-2 (rev 05)
03:00.0 PCI bridge: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge (rev 03)
04:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 30)
05:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
06:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
07:00.0 USB controller: VIA Technologies, Inc. Device 3483 (rev 01)

 

iommu groups

 

/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/2/devices/0000:00:01.1
/sys/kernel/iommu_groups/3/devices/0000:00:14.0
/sys/kernel/iommu_groups/4/devices/0000:00:1a.0
/sys/kernel/iommu_groups/5/devices/0000:00:1c.0
/sys/kernel/iommu_groups/6/devices/0000:00:1c.2
/sys/kernel/iommu_groups/7/devices/0000:00:1c.3
/sys/kernel/iommu_groups/8/devices/0000:00:1c.4
/sys/kernel/iommu_groups/9/devices/0000:00:1d.0
/sys/kernel/iommu_groups/10/devices/0000:00:1f.0
/sys/kernel/iommu_groups/10/devices/0000:00:1f.2
/sys/kernel/iommu_groups/10/devices/0000:00:1f.3
/sys/kernel/iommu_groups/10/devices/0000:00:1f.6
/sys/kernel/iommu_groups/11/devices/0000:01:00.0
/sys/kernel/iommu_groups/11/devices/0000:01:00.1
/sys/kernel/iommu_groups/12/devices/0000:02:00.0
/sys/kernel/iommu_groups/13/devices/0000:03:00.0
/sys/kernel/iommu_groups/13/devices/0000:04:00.0
/sys/kernel/iommu_groups/14/devices/0000:05:00.0
/sys/kernel/iommu_groups/15/devices/0000:06:00.0
/sys/kernel/iommu_groups/16/devices/0000:07:00.0

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.