Go to file
2012-10-21 14:59:39 +02:00
misc dom0/qvm-usb: now use vm.run() to call vusb-ctl bind/unbind 2012-10-21 14:59:38 +02:00
network vm/network: do not fail service on failed xenstore-read 2012-10-13 11:47:32 +02:00
qubes_rpc Merge branch 'hvm-for-master' 2012-10-17 21:41:03 +02:00
rpm_spec Merge branch 'master-for-hvm' into hvm 2012-10-04 05:45:41 +02:00
test dvp/qvm-usb: ignore whitespaces when comparing output of qvm-usb tools 2012-10-21 14:59:36 +02:00
vm-init.d vm/prepare-dvm: wait for Xorg in more deterministic way (#636) 2012-07-22 01:23:45 +02:00
vm-systemd vm/systemd: force exit status 0 in qubes-sysinit 2012-10-15 02:33:36 +02:00
.gitignore gitignore files - add build products 2011-03-06 14:06:24 +01:00
install-pvusb-backend.sh dvp/qvm-usb: fixed global install script 2012-10-21 14:59:39 +02:00
install-pvusb-dom0.sh dvp/qvm-usb: split installation script for non-dom0 usb backend 2012-10-21 14:59:37 +02:00
install-pvusb-frontend.sh dvp/qvm-usb: reworked installation scripts for usbvm and added one for appvms 2012-10-21 14:59:37 +02:00
install-pvusb-xen.tgz dvp/qvm-usb: fixed global install script 2012-10-21 14:59:39 +02:00
install-pvusb.sh dvp/qvm-usb: support multiple appvms 2012-10-21 14:59:39 +02:00
LICENSE Added LICENSE 2010-04-05 21:21:27 +02:00
Makefile vm: kernel-placeholder package to inhibit real kernel pkg in VM (#645) 2012-07-23 23:17:50 +02:00
README.pvusb dom0/qvm-usb: implemented automatic frontend/backend initialization on attach 2012-10-21 14:59:39 +02:00
version_vaio_fixes sony-vaio-fixes v1.6.1 2011-07-25 01:49:07 +02:00
version_vm version 1.7.46 2012-09-27 11:03:26 +02:00

Installation
~~~~~~~~~~~~

In dom0, once:
 qvm-create -l red usbvm

 # FIXME: use your own PCI device IDs
 qvm-pci -a usbvm 00:1d.0
 qvm-pci -a usbvm 00:1d.1
 qvm-pci -a usbvm 00:1d.2
 qvm-pci -a usbvm 00:1d.7

In dom0, after each dom0 reboot:
 sudo ./install-pvusb-dom0.sh
 qvm-start usbvm

In dom0, after each usbvm reboot:
 usbvm_xid=`xl list | awk '($1=="usbvm"){print $2}'`
 xenstore-write /local/domain/${usbvm_xid}/qubes-usb-devices ''
 xenstore-chmod /local/domain/${usbvm_xid}/qubes-usb-devices n0 b${usbvm_xid}

In usbvm, after each reboot:
 sudo ./install-pvusb-backend.sh 

In appvms, after each reboot:
 sudo ./install-pvusb-frontend.sh 

In dom0, after each usbvm and appvm reboot (FIXME):
 sudo ../pvusb-scripts/initpv.py <backend-id> <frontend-id> <device-id>

After the above is done:
 'qvm-usb -l' in usbvm displays a list of local USB devices
 'lsusb' in appvm displays an entry for the root hub

Attach
~~~~~~

In dom0:
 qvm-usb -a [-b <usbvm-name>] [-f <frontend-controller> [--p <frontend-port>]] [--no-auto-detach] <vm-name> <controller>-<port>

Defaults:
 usbvm-name = 'usbvm'
 frontend-controller = 0
 frontend-port = first unused between 1 and 8

Example:
 qvm-usb -a netvm usbvm:4-1

List
~~~~

In dom0:
 qvm-usb -l

Example output:
 usbvm:4-1 1234:5678 My Bluetooth Dongle
 usbvm:4-2 5678:1234 My Wireless Adapter (attached to 'netvm' as '0-1')

Detach
~~~~~~

In dom0:
 qvm-usb -d <vm-name>:<vusb-controller>-<vusb-port>
 qvm-usb -d <vm-name>

Example:
 qvm-usb -d netvm:0-1

Known issues
~~~~~~~~~~~~

* The content of backend/vusb does not get cleaned on domain shutdown (no impact on functionality)
* System keyboard / mouse are listed and can be detached away
* Virtual USB devices (ones created by PVUSB frontend) may be listed
* The installation/configuration is not persistent, not retained between reboots
* No logging / audit trail?
* When an attached device is physically unplugged, USB port remains mapped but not displayed in the list
* We are not attaching actual devices, but USB ports (different behavior from VMWare, might be confusing)
* After device is detached from the frontend and returned back to the backend it is not usable there