diff --git a/install-pvusb-backend.sh b/install-pvusb-backend.sh index 4e6f3bb0..fedd2717 100755 --- a/install-pvusb-backend.sh +++ b/install-pvusb-backend.sh @@ -11,7 +11,9 @@ cp misc/usb_remove /usr/lib/qubes/usb_remove cp misc/vusb-ctl.py /usr/lib/qubes/vusb-ctl.py cp misc/qubes_usb.rules /etc/udev/rules.d/99-qubes_usb.rules -# FIXME: /usr/lib64/python2.6/site-packages/xen +# FIXME: need better way to deploy libraries needed by xen.vusb_util +[ -d /usr/lib64/python2.7/site-packages ] && + tar xzf install-pvusb-xen.tgz -C /usr/lib64/python2.7/site-packages # Load PVUSB backend modprobe xen-usbback diff --git a/install-pvusb-xen.tgz b/install-pvusb-xen.tgz new file mode 100644 index 00000000..a9b980bc Binary files /dev/null and b/install-pvusb-xen.tgz differ diff --git a/install-pvusb.sh b/install-pvusb.sh new file mode 100755 index 00000000..40c6ca05 --- /dev/null +++ b/install-pvusb.sh @@ -0,0 +1,31 @@ +#!/bin/sh -xe + +#usbvm=usbvm +usbvm= +appvm=netvm + +# --- Copy files --------------------------------------------------------- +for vm in $usbvm $appvm ; do + (cd .. && tar c qubes-core) | qvm-run -p $vm 'tar x' +done + +# --- Init dom0 ---------------------------------------------------------- +sudo ./install-pvusb-dom0.sh + +# --- Init usbvm (or dom0) ----------------------------------------------- +if [ -z "$usbvm" ] ; then + sudo ./install-pvusb-backend.sh +else + qvm-run -p $usbvm 'script -qc "cd qubes-core && sudo ./install-pvusb-backend.sh" /dev/null' + + usbvm_xid=`xl list | awk "(\\$1==\"$usbvm\"){print \\$2}"` + if [ -z "$usbvm_xid" ] ; then + echo "Can't determine usbvm_xid" + else + xenstore-write /local/domain/${usbvm_xid}/qubes-usb-devices '' + xenstore-chmod /local/domain/${usbvm_xid}/qubes-usb-devices n0 b${usbvm_xid} + fi +fi + +# --- Init appvm --------------------------------------------------------- +qvm-run -p $appvm 'script -qc "cd qubes-core && sudo ./install-pvusb-frontend.sh" /dev/null'