Edit post
subject
Title
edit
``` #!/bin/bash ... vive_ids=`python3 - <<END from subprocess import check_output ids = {'0bb4:0306', '28de:2101', '0bb4:2c87', '28de:2000'} special_id = '0bb4:2c87' special_added = False if __name__ == '__main__': busdevs = [] usbs = check_output('lsusb').decode().strip().split('\n') special_bd = None for usb in usbs: usb = usb.split() usb_id = usb[5] if usb_id not in ids: continue bd = int(usb[1]), int(usb[3].replace(':', '')) if usb_id == special_id: if special_added: special_bd = bd special_added = True busdevs.append(bd) buf = '' for bd in busdevs: if bd == special_bd: buf += '-device usb-host,hostbus={},hostaddr={},bus=ehci.0 '.format(bd[0], bd[1]) else: buf += '-device usb-host,hostbus={},hostaddr={},bus=xhci.0 '.format(bd[0], bd[1]) print(buf) END` qemu-system-x86_64 \ ... -device ich9-usb-uhci3,id=uhci \ -device usb-ehci,id=ehci \ -device nec-usb-xhci,id=xhci \ ${vive_ids} \ ... ``` The solution works fine. The tracking/performance is just perfect. ~~except that unfortunately it fails if both `0bb4:2c87` is added, the VM will crash, which means the integreated camera can't be used...~~ ~~The only solution for that is passing through a whole PCI USB controller...~~ The integreated camera can now be used.
Content
vpn_key
Password
Preview
Powered by
Simple Blog