在WSL2中的Vivado如何连接到FPGA开发板

在windows系统中,通过Vivado连接到FPGA开发板只需要安装好Vivado软件和Cable驱动即可,Linux也是同理,而WSL需要考虑的就很多了。

在WSL2中使用Vivado连接到开发板大致分为以下几步:安装USBipd、安装Cable驱动、将USB端口映射到WSL里,修改dev权限,最后Vivado打开检测。

1、安装usbipd

WSL不像VMWare虚拟机之类能够自动识别插入的外接设备,需要借助usbipd库来实现主机设备到WSL的映射,关于usbipd库的微软官方在这个地方提供了一个很好的教程,建议学习,此处引用之:

安装usbipd-win,我使用winget命令,以管理员权限打开命令行,输入 winget install --interactive --exact dorssel.usbipd-win,即可自动安装。

2、安装Cable驱动

安装Cable驱动的过程与Linux下安装的相同,AMD提供了一个很好的教程,此处引用之:

定位到Vivado安装目录下的/data/xicom/cable_drivers/lin64/install_script/install_drivers/,然后运行下面的install_drivers可执行文件(需要root权限)。

cd ${vivado_install_dir}/data/xicom/cable_drivers/lin64/install_script/install_drivers/
sudo ./install_drivers

至此,应该安装完毕。

3、将USB端口映射到WSL里

安装完成驱动之后,可以开始连接FPGA的JTAG接口和电脑,在电脑的设备管理器中,应该能找到一个新增的设备,这个地方我是通过插拔的设备变动判断出来,在我的电脑上JTAG对应的设备如图所示(我并没有在windows中安装驱动)

确认了这个设备之后,在windows中以管理员权限打开命令行,输入usbipd list,能够看到usb设备列表,如图所示,能够发现jtag对应的usb设备,如图所示:

可以看到,其设备编号是5-1,相当于bus5上的设备1,之后都以5-1表示这个设备。

之后,将该设备绑定到usbipd上,并且添加到WSL中:

usbipd bind -b 5-1
usbipd attach --wsl -b 5-1

此时再使用usbipd list查询,可以看到设备已经被attached:

至此,设备成功连接到wsl中。windows部分的操作完成,之后的操作在WSL中进行。

修改WSL中dev权限

正常来说,这个时候已经能够在WSL里识别到加进去的USB设备,在WSL中输入lsusb,如图所示:

但是由于权限原因,Vivado无法访问这个设备,理论上你可以使用root权限运行vivado,也许就ok了,此处采用的方法是修改usb设备的权限,我这里比较粗暴,直接将usb设备全部赋予权限。

chmod -R 777 /dev/bus/usb/

至此,应该所有的任务都完成了,打开vivado,Open HardWare Manager,进行一个Autoconnect,应该能成功找到设备,如图所示:

可能遇到的问题

在我的实践中,似乎插拔设备后可能会发生变动,导致原先的配置失效。如果遇到疑似失效的情况,请使用usbipd listlsusb分别在windows和wsl中检查设备是否正常存在。

如何取消:

如果usb设备已经添加到wsl中(attached),使用usbipd detach -b 5-1来取消链接一个usb设备。此时设备状态是shared,使用usbipd unbind -b 5-1来取消共享设备,此时恢复到原来的状态。

posted @ 2025-04-02 21:26  fmq03  阅读(102)  评论(0)    收藏  举报