背景
别问为什么这么做,需求决定做法。
环境
Esxi版本:6.7 update3
虚拟机镜像:Linux Mint 20.3 它基于Ubuntu,其它的发行版通常也可以参考
强制打开板载USB控制器的直通功能
打开主机->管理->PCI设备,通常可以看到主板集成的USB控制器在Esxi中默认是显示不支持直通的(灰色)。您可以通过搜索框输入USB筛选USB控制器。
做法
通过ssh进入Esxi的命令行终端并修改相关配置文件。
后果
这取决于你的主板集成了多少USB控制器。例如我的主板只有一个USB控制器连接了所有的USB串口。这意味着直通后将无法在Esxi控制台中分配虚拟USB设备,甚至无法通过连接键盘直接操作Esxi的后台。这可能会在遇到某些故障时带来麻烦,你至少需要先关闭直通功能才能再次使用它们。更好的做法是为主板扩展USB控制器,但这会增加成本,并且对主板的扩展能力有一定要求。
具体操作
回到Esxi的网页控制面板,找到要直通的USB控制器,单击该行在展开的详细信息中找到类ID、设备ID、供应商ID并记录下来。
使用任何ssh工具(我使用了mobaxterm,putty更为常用)。使用你的root账户登录。
将0c03(中间的x忽略)替换为您的类号并输入以下命令:
lspci -v | grep 'Class 0c03'
此时控制台会返回该设备的详细信息
Class 0c03: 8086:9d2f
# Class [类ID]: [供应商ID]:[设备ID]
您的任何一项ID都可能与我不同,请对照之前记下的ID。
这一步的目的是为了确保将要直通的设备无误。如果遇到任何意外情况,请还原修改并返回这一步重复确认。
使用WINSCP等文件管理工具通过root用户连接到Esxi。找到路径/etc/vmware/passthru.map
下的文件,编辑(如没有则在末尾追加):
# Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller
8086 9d2f d3d0 default
分别是 [供应商ID] [设备ID] d3d0直接写不用改 default也直接写。
保存文件更改,同样供应商ID和设备ID请对照您自己的设备修改。
重新引导Esxi。启动后应当可以看到本来不支持的USB控制器变为已禁用,此时切换直通并再次重新引导就可以像正常直通设备一样使用板载USB控制器了。
通过直通后的USB接口使用USB无线网卡
需要注意的是,如果您使用了较早或者Linux支持较差的USB网卡,那么很有可能无法成功安装设备。
网卡型号
产品型号为CF812AC,COMFAST生产销售的千兆双频USB无线网卡。具体芯片型号为rtl88x2bu
分配设备
编辑虚拟机设置,选择添加其他设备->PCI设备,找到开启直通的USB控制器(如没有请先开启直通)。点击保存,启动虚拟机电源。
开机后打开终端,使用命令检查USB设备:
lsusb
此时应当能在其中一个USB根集线器上看到连接的USB网卡。恭喜您,离成功仅一步之遥。
找到对应型号的网卡驱动。https://github.com/cilynx/rtl88x2bu
下载压缩包并解压。如果您熟悉git,您也可以直接clone。这里的关键是您的系统镜像版本和网卡驱动程序版本可能配合的并不是很好,因为使用较新的Linux内核也许无法成功编译较早的驱动程序,反之亦然。我使用了该型号网卡驱动最新的代码仓库地址,因此它在Ubuntu20.04和基于它的其他发行版下可以成功编译。相反,如果您使用了较早的内核版本,也可以寻找老版驱动的仓库。我会贴在文章末尾。
sudo dkms add [驱动解压的位置]
sudo dkms install -m rtl88x2bu -v 5.8.7.1
sudo modprobe 88x2bu
sudo reboot
等待重启,然后您就能在虚拟机中愉快地使用无线网卡了。
Quote
http://www.360doc.com/content/19/1218/07/62659347_880472491.shtml
https://blog.csdn.net/weixin_41631106/article/details/119177099
旧版驱动5.3.1仓库:https://github.com/cilynx/rtl88x2BU_WiFi_linux_v5.3.1_27678.20180430_COEX20180427-5959