我这里以我们的all in one主板为例,我们主板,查找USB设备时,可以看到有两个芯片组,一个是板载的不能原生直通,一个是可以原生直通的,现在我就来演示如何把不能原生直通的这个USB芯片开启直通。
目前我要直通的这个板载USB芯片组处于灰色状态,直通状态显示不支持
一、第一步我们记录下这个设备的供应商ID、设备ID以及类ID
其中查看顺序为1.供应商ID 2.设备ID。类ID为查询ID这个稍后不用填入直通列表
二、开启ESXI的SSH功能
三、查询确认ID,这一步不是必须的,只是验证一下
lspci -v | grep "Class 0c03" 这的0C03就是类ID0XC03
四、添加直通代码
vi /etc/vmware/passthru.map
在最后添加
# Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI
8086 8C31 d3d0 default
其中8086是供应商ID 8C31是设备ID d3d0和default固定值
然后保存退出,并重启启动ESXI
esc
:wq
现在当我们重启完成,就已经显示可以设置直通了,直通状态显示禁用,现在我们就可以去切换直通了。
如图所示,在文件最后添加两行,第一行在#号+空格后面照抄你的USB控制器名称,第二行一共写四组代码,第一组是供应商ID,第二组是设备ID,第三组和第四组分别照抄d3d0和false,每组之间用tab制表符隔开。
保存文件并重启服务器后,回到管理-硬件,现在你的USB控制器就已经是可选直通的设备了,勾选以后仍然需要重启服务器。
好了,ESXi搞定了,我们再来搞群晖。
首先,SSH登录群晖后台,然后编辑/etc.defaults/synoinfo.conf
在里面分别找到internalportcfg
和usbportcfg
这两个值
我的internalportcfg=”0xffff”
,usbportcfg=”0x30000″
,这两个值都是16进制,转换成2进制的话分别是00001111111111111111
和00110000000000000000
,这两个2进制数值的每一位,都是代表系统设备的一个端口,internal port
代表的是SATA设备,也就是可以作为存储设备的内置硬盘,就是说我的虚拟机系统一共有16个SATA端口,而usb port
自然就是USB端口了,直通之后有两个USB端口可用。
现在,我们就是要让系统把这两个USB端口都当作SATA端口来对待,那么就是要把usb port
对应的这两个位都换到internal port
里面。说起来很复杂,其实就是把internal port
的值变成两个数相加的结果,也就是”0x3ffff”
,而usb port
就变成了0
。
0xffff 0x30000 0x3ffff
0xfff 0x300000 0x300fff