Proxmox支持将USB设备直接映射给KVM虚拟机使用,也就是所谓的USB Passthrough。
配置步骤可以参考Proxmox wiki上的有关说明,具体地址是https://pve.proxmox.com/wiki/USB_physical_port_mapping
参考Proxmox wiki上的步骤,用u盘进行了测试,整理如下:
1、将需要直通给虚拟机使用的USB设备插到Proxmox服务器上。
2、查看USB设备的总线和端口号。
方法一是依次执行qm monitor ,info usbhost,使用虚拟机监视器查看。示例如下:
qm monitor qm> info usbhost Bus 1, Addr 4, Port 1.6, Speed 480 Mb/s Class 00: USB device 0930:6545, DataTraveler 108
分别是Bus=1和Port=1.6。
方法二是在Proxmox服务器上执行lsusb -t命令。输出示例如下:
lsusb -t 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 |__ Port 6: Dev 4, If 0, Class=Mass Storage, Driver=usbfs, 480M
总线号和端口号,分别是Bus=1和Port=1、Port=6。
以上两种方法是等效的,任意选用一种查到的总线号和端口号就可以。使用lsusb -t查到的端口号是分开显示的,连到一起也是1.6,实际上和第一种方法的结果一致。
3、编辑虚拟机配置文件。
在/etc/pve/qemu-server下找到虚拟机的配置文件,在最后添加usb设备配置信息,格式为“usb0: 总线号-端口号”。对于前面找到的总线号和端口号,应该按如下格式添加
usb0: host=1-1.6
如果有多个设备,可以继续添加“usb1: host=总线号-端口号”、“usb2: host=总线号-端口号”,这里不再赘述。
4、先关闭再开启虚拟机。
注意,这里不是重新启动,而是执行关机操作,再开启虚拟机。这主要是为了强制虚拟机重新读取第3步修改后的配置文件。
5、在虚拟机中查看USB设备,安装驱动程序。
可以在虚拟机中查看USB设备是否已经被发现。对于windows系统,可以使用设备管理器查看,对于linux系统,可以执行lsusb查看。当然,如果虚拟机操作系统没有自带设备驱动程序,还需要你动手安装。具体步骤就参照你的USB设备手册咯。
参考 https://chuansongme.com/n/652459551030