You are not logged in.

#1 2015-08-20 03:15:12

Cadeyrn
Member
Registered: 2013-04-06
Posts: 170

QEMU/KVM/libvirt: USB passthrough is broken

All I want to do is automatically pass a USB port through to my Windows virtual machine, so that I can use a basic KVM-style (other KVM) button to switch my mouse & keyboard between USB ports, and by proxy, between host and guest, but I can't get it working.

Here are the different ways I'm supposed to be able to accomplish USB passthrough:
-through the XML file with virsh edit using its vendor ID and product ID, OR through virt-manager--those two options are one and the same
-through the XML file using its bus and device number
-through the XML file using its bus and port number
-through the QEMU command line using the qemu:commandline namespace & tag (http://blog.vmsplice.net/2011/04/how-to … tions.html), using either the -device parameter or the -usbdevice parameter (which is apparently deprecated), and all the massive amounts of options and syntaxes I've seen people do there (ex: -usb -device usb-host,hostbus=3,hostport=6.4)
-through the QEMU console (ex: virsh qemu-monitor-command --hmp Windows device_add usb-host,hostbus=3,hostport=6.4,id=mouse)

Absolutely none of them work except for the first one. I can't use the first one, because that would mean permanently binding my mouse and keyboard as long as the VM is turned on. I need hotplugging and port-based switching. All of the other options listed "work", in that they don't give me any complaints or errors (and virsh and qemu will complain about ANYTHING they think is wrong, so that's a good sign), but they don't remotely affect what USB devices are hooked into my virtual machine. Here's the output of lsusb and lsusb -t:

$ lsusb
Bus 002 Device 002: ID 8087:8002 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 004: ID 054c:05c4 Sony Corp. DualShock 4
Bus 005 Device 003: ID 09e8:0075 AKAI  Professional M.I. Corp. 
Bus 005 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:800a Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 018: ID 046d:c051 Logitech, Inc. G3 (MX518) Optical Mouse
Bus 003 Device 017: ID 0c45:760a Microdia 
Bus 003 Device 016: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 003 Device 003: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer
Bus 003 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 003 Device 007: ID 8087:07dc Intel Corp. 
Bus 003 Device 005: ID 046d:0a03 Logitech, Inc. Logitech USB Microphone
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lsusb -t
/:  Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 3, If 0, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 1: Dev 3, If 1, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 2: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 480M
    |__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
    |__ Port 4: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 480M
    |__ Port 5: Dev 16, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 17, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 3: Dev 17, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 18, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 10: Dev 5, If 0, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 10: Dev 5, If 1, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 12: Dev 7, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 12: Dev 7, If 1, Class=Wireless, Driver=btusb, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

Note the Logitech mouse and "Microdia"--that's the keyboard.

But, I think I have an idea of why it isn't working. From what I've gathered on the internet,

virsh qemu-monitor-command --hmp Windows info usbhost

is supposed to give me a list of the USB devices that are officially on the guest. However, when I use that command on my running Windows guest, I get a rather odd list:

$ virsh qemu-monitor-command --hmp Windows info usbhost
  Bus 5, Addr 4, Port 1.2, Speed 12 Mb/s
    Class 00: USB device 054c:05c4
  Bus 5, Addr 3, Port 1.1, Speed 12 Mb/s
    Class 00: USB device 09e8:0075
  Bus 3, Addr 18, Port 5.4, Speed 1.5 Mb/s
    Class 00: USB device 046d:c051
  Bus 3, Addr 17, Port 5.3, Speed 1.5 Mb/s
    Class 00: USB device 0c45:760a
  Bus 3, Addr 3, Port 4, Speed 480 Mb/s
    Class 00: USB device 058f:6362
  Bus 3, Addr 7, Port 12, Speed 12 Mb/s
    Class e0: USB device 8087:07dc
  Bus 3, Addr 5, Port 10, Speed 12 Mb/s
    Class 00: USB device 046d:0a03

Notice that ID, 046d:c051. That's the ID of my mouse. The keyboard is also in there. According to QEMU, my mouse and keyboard, and many other devices, are already passed into the VM, even though there's nothing in the configuration telling libvirt to pass in all those USB devices. But if that's true, why do they still control the host rather than the guest, AND dont show up in Device Manager on the guest?

Here's my domain XML file:

<domain type='kvm'>
  <name>Windows</name>
  <uuid>74652d4e-f4c3-44d3-a0fa-90ded47aadc9</uuid>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static'>8</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram template='/usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd'>/var/lib/libvirt/qemu/nvram/Windows_VARS.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
    <kvm>
      <hidden state='on'/>
    </kvm>
    <vmport state='off'/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='4' threads='2'/>
  </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>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/sbin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/windows.img'/>
      <target dev='sda' bus='scsi'/>
      <boot order='1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/home/jimi/.local/libvirt/images/windows-games.img'/>
      <target dev='sdb' bus='scsi'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/transfer.img'/>
      <target dev='sdc' bus='scsi'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='scsi' index='0' model='virtio-scsi'>
      <driver queues='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </controller>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x2'/>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <interface type='direct'>
      <mac address='52:54:00:8e:4a:b9'/>
      <source dev='eno1' mode='bridge'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x06' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </memballoon>
  </devices>
</domain>

Last edited by Cadeyrn (2015-08-20 03:43:40)

Offline

#2 2015-08-21 07:07:24

MrTUX-10
Member
Registered: 2015-01-06
Posts: 12

Re: QEMU/KVM/libvirt: USB passthrough is broken

Hi,

I'm not exactly sure what the problem is. You want to pass them through automatically, but you wish to be able to switch back and forth between the host and the vm? Have you heard of synergy?
http://synergy-project.org
It is also in the ArchWiki: https://wiki.archlinux.org/index.php/Synergy
That is personally what I use, I find that it works very well for me. I use my VM for gaming. Using the scroll lock key, will lock it in the screen.
Let me know if this helps!

Last edited by MrTUX-10 (2015-08-21 07:10:06)

Offline

#3 2015-08-21 07:15:06

Cadeyrn
Member
Registered: 2013-04-06
Posts: 170

Re: QEMU/KVM/libvirt: USB passthrough is broken

I want to pass a specific USB port rather than a specific device, so that I can have my mouse and keyboard plugged into one port for the host OS and the other port for the guest OS. Synergy isn't as easy to setup or simple to deal with and also costs money, and I've already spent money on a KVM switch (as in a USB hub that plugs into multiple USB ports on a computer (or multiple computers) and switches between all those ports with a button).

At this point, though, I've given up. I understand that what I'm doing SHOULD work, and that it doesn't, and that nobody else seems to have that problem. I'm getting a PCIe USB hub and I'm going to pass that directly into the VM the same way I pass in my video card. That should do it, and I won't have to muck about with this confusingly massive amount of different confusing syntaxes for USB passthrough in QEMU/KVM/libvirt that lack decent, up-to-date documentation.

I'm not marking this thread as SOLVED because the problem wasn't really solved. Sure, I'm gonna work around it with a PCIe card, but I'd still love to get to the bottom of why USB passthrough won't work properly.

Last edited by Cadeyrn (2015-08-21 07:18:39)

Offline

#4 2015-08-21 07:50:20

MrTUX-10
Member
Registered: 2015-01-06
Posts: 12

Re: QEMU/KVM/libvirt: USB passthrough is broken

Why not just pass through the entire hub? I wasn't aware it was possible to pass through a single USB port, however I suppose there is always a way. If i were you, I would just pass through the entire hub. If you're not using a laptop then i am sure you will have at least 2, and you can save yourself some money on the pcie hub. If you're going to buy an pcie hub, i would recommend buying a USB Hub, because then you're still only using one USB port by using the device ID, and also you'll be able to get a lot more ports than a pcie card. The KVM switch you have will work if it's set up correctly, or if its designed for that purpose. My KVM switch is also capable of doing that, however i have an entire external usb hub that i use for my VM. Do you have a link for the one that you have?

Last edited by MrTUX-10 (2015-08-21 07:52:12)

Offline

#5 2015-08-21 07:55:09

Cadeyrn
Member
Registered: 2013-04-06
Posts: 170

Re: QEMU/KVM/libvirt: USB passthrough is broken

I can't pass through the entire hub, either. The options for that didn't work in the same way that the options I mentioned before didn't work. From what I can gather, both of my VMs are only OK with USB devices that are set in the XML file AND set by vendor id and product id, both at the same time. If either of those two things isn't true (i.e. vendor id and product id by the QEMU command line, or bus/port address by the XML file, or bus/port address by the command line, or bus/device address by XML OR commandline, or any combination of the above), it simply doesn't work without a complaint.

Here's the card I just bought: https://www.amazon.com/gp/product/B000MUSQGS

I'm going with a basic outer-port-deal rather than just a hub because I don't want to ALSO buy an adapter to sent that hub outside of my case, and because at this point, I fully trust PCI passthrough and I really don't trust USB passthrough. At least when it comes to QEMU/KVM/libvirt.

Last edited by Cadeyrn (2015-08-21 08:02:13)

Offline

#6 2015-08-21 08:01:55

MrTUX-10
Member
Registered: 2015-01-06
Posts: 12

Re: QEMU/KVM/libvirt: USB passthrough is broken

That would be odd because you have several hubs listed with your lsusb. You have xhci which is 3.0 and you also have 2.0, so you have different hubs. -usbdevice host:3.17 is what i have always used for bus and device, of course the 3.17 is an example of your keyboard.

Offline

#7 2015-08-21 08:02:58

Cadeyrn
Member
Registered: 2013-04-06
Posts: 170

Re: QEMU/KVM/libvirt: USB passthrough is broken

Sorry, I had some things confused in that original post. The post above you is now a completely different one.

Also, host:3.17 is an unacceptable solution for anything automatic or seamless, because the device number changes every time the keyboard gets unplugged or the computer reboots. I thought you meant I do something like host:3 (without the .17), which, again also doesn't work. Actually, 3.17 doesn't work, either. I did try that, even though it wouldn't be a solution for me.

Last edited by Cadeyrn (2015-08-21 08:05:26)

Offline

#8 2015-08-21 08:09:10

MrTUX-10
Member
Registered: 2015-01-06
Posts: 12

Re: QEMU/KVM/libvirt: USB passthrough is broken

Ah, well i apologize. I guess I can't help you. This works for me, and i'm not really understanding your issue. From what i can see above everything looks to be like its working, you just need to tell qemu what to take. I use a sh file to start my VM.

Once you get your pcie card you'll be able to do what you want anyway. I also wanted to add that Synergy is free, however it isn't what you're looking for, but if youre just using a mouse and keyboard and wanting to be able to switch between your host and vm, Synergy will do that for free.
Good luck!

Jesse

Offline

#9 2015-08-21 08:21:07

Cadeyrn
Member
Registered: 2013-04-06
Posts: 170

Re: QEMU/KVM/libvirt: USB passthrough is broken

It'll do that for free? I thought it wasn't free because the program required me to login, and the registration page required me to buy the program.

Tell qemu what to take? All I know is I'm giving it arguments like -usbdevice host:3.17 or -usb -device usb-host,host-bus=3,host-port=6.3 or -usb -device usb-host,host-bus=3,host-addr=17 (not all at the same time of course) and each one *seems* to work, in that it doesn't give me any errors, but the VM never sees my keyboard, which probably has something to do with the fact that the host never stops controlling the keyboard itself--i.e. it's not passing it through at all.

Offline

#10 2015-08-21 08:30:45

MrTUX-10
Member
Registered: 2015-01-06
Posts: 12

Re: QEMU/KVM/libvirt: USB passthrough is broken

Yes it will do that for free. The website (which you will not use to install it) it will ask that you pay for it, (it's $10.00, which is a donation to the devs) was link so you could read about it. to install it

 sudo pacman -S synergy 

I believe the Windows version may require that you pay the 10 dollars, but if this will serve your purpose, i can assure you it's well worth the 10 bucks.
Is there no error output? once the black qemu command window pops up after you have started your vm, try to use usb_add host:xxxx:xxxx or host:3.17 and see what the error returns, again of course use the correct vendor and product or bus and device, there must be some error, or something that it will return somewhere if something is not correct. Did you add the groups correctly?

Last edited by MrTUX-10 (2015-08-21 08:32:48)

Offline

#11 2015-08-21 08:37:22

Cadeyrn
Member
Registered: 2013-04-06
Posts: 170

Re: QEMU/KVM/libvirt: USB passthrough is broken

This is all detailed in my first post. There is no error output. When I use usb_add while it's running, there is STILL no error output. I know sort-of works, because one time I tried adding a device with an id twice, and the second time, it complained that a device with that id was already there. But, it still doesn't actually pass any of my devices through. I think it might have something to do with the fact that, from the beginning of the VM's runtime, info usbhost gives me about half of my total USB devices on my computer, rather than JUST what USB devices have been passed through, and the mouse and keyboard are always in there, even if I don't have any command line options passing them through.

Last edited by Cadeyrn (2015-08-21 08:37:59)

Offline

#12 2015-08-21 08:41:27

MrTUX-10
Member
Registered: 2015-01-06
Posts: 12

Re: QEMU/KVM/libvirt: USB passthrough is broken

Have you checked the device manager under windows? and also which usb controller are you using for your VM? Do you have this same issue with q35? I am not familiar with using XML.

Offline

#13 2015-08-21 08:48:36

Cadeyrn
Member
Registered: 2013-04-06
Posts: 170

Re: QEMU/KVM/libvirt: USB passthrough is broken

I've checked the device manager, but that's a moot point because this problem is identical across 2 VMs: one Windows 10 and one Arch Linux.

The USB controller is the standard usb2 setting using ehci. I've seen it passed into qemu on other setups on the net, so I know it should work.

Both VMs are using the TianoCore edk2 image so that they can be UEFI and properly use OVMF for proper video card PCI passthrough, rather than q35 or I440FX. Do you think that could be the issue? Its BIOS/UEFI firmware?

Offline

#14 2015-08-21 09:32:36

MrTUX-10
Member
Registered: 2015-01-06
Posts: 12

Re: QEMU/KVM/libvirt: USB passthrough is broken

I suppose that could be possible. I haven't used OVMF, but I think you could definitely be onto something there. Could you try using Q35 instead of the i440fx? Again, I haven't used OVMF, so i'm not familar with how well it plays with with the Q35 chipset.
However, this is what I use for my USB drives, perhaps you could give it a shot and report back if it helps or changes things in anyway?
-device ich9-usb-uhci3,id=uhci

I'm assuming you use libvirt and the XML to run your VM?

Last edited by MrTUX-10 (2015-08-21 09:48:36)

Offline

#15 2015-08-21 10:08:02

Cadeyrn
Member
Registered: 2013-04-06
Posts: 170

Re: QEMU/KVM/libvirt: USB passthrough is broken

Yes, I do. Judging by this part of the XML:

<controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x2'/>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>

I think I'm already using that option. As for q35 and i440fx, it's very hard to switch between them and the UEFI. The GUI (virt-manager) has no option to switch, and in fact instead of an option, it has a sentence saying that switching after a VM is set up is very hard and dangerous. Considering that, coupled with the fact that even if q35 and i440fx worked, I wouldn't be able to use them because of my OVMF situation, I don't think I should bother changing my VMs. However, tomorrow I might try making a new VM under q35 and see if the commandline options we've used work there.

Last edited by Cadeyrn (2015-08-21 10:08:17)

Offline

#16 2015-08-21 13:12:26

alphaniner
Member
From: Ancapistan
Registered: 2010-07-12
Posts: 2,810

Re: QEMU/KVM/libvirt: USB passthrough is broken

I think the only way to do what you want is to use pci-passthrough to give the 'entire controller' to the guest (see eg this). But that requires mobo and cpu which support VT-d/IOMMU (just like VGA passthrough, if you've looked into that at all).


But whether the Constitution really be one thing, or another, this much is certain - that it has either authorized such a government as we have had, or has been powerless to prevent it. In either case, it is unfit to exist.
-Lysander Spooner

Offline

#17 2015-08-21 21:13:58

Cadeyrn
Member
Registered: 2013-04-06
Posts: 170

Re: QEMU/KVM/libvirt: USB passthrough is broken

Yeah, I already have that working perfectly with my graphics card. I just have to repeat 2 steps of the process with the USB card.

Offline

#18 2016-11-04 15:04:36

oneubauer
Member
Registered: 2016-11-04
Posts: 1

Re: QEMU/KVM/libvirt: USB passthrough is broken

Cadeyrn: I know this is an old post, but did getting a discrete USB PCI-E card solve your passthrough problem?

I'm pretty much in the same boat as you were. I've got passthrough of my audio and video card working beautifully. I figured I could do the same with one of my on-board USB controllers, which sits alone in it's own IOMMU group, and I disconnect it from the USB kernel module etcetc. Basically I treat it the same way I treat my audio and video card.

Using a hardware USB switcher to flip between inputs seems to essentially crash my whole USB subsystem. I suspect that while the two USB controllers are separate entities on the PCI bus, they are actually the same controller, and this config produces some behaviour that it's not expecting.

So now I want to get a usb card that has nothing to do with anything else, and isolate it to pass through. However, it would save me some money, effort and time if I knew ahead of time whether it has any chance of  solving my problem ;-)
How did you ultimately end up dealing with this?

Offline

#19 2016-11-04 16:11:41

Cadeyrn
Member
Registered: 2013-04-06
Posts: 170

Re: QEMU/KVM/libvirt: USB passthrough is broken

I only ever used a discrete card. It turned out my USB card's problem was the exact same issue as the reset issues that many AMD cards have (Google "AMD qemu reset issues"), which I figured out after switching to AMD graphics. Just like with my AMD video card, that issue was solved by having Windows "Safely Remove" the card before shutting down. From what I've seen, most people using a PCI USB card don't even have the problems I had with mine.

Offline

Board footer

Powered by FluxBB