问题表现
使用学校电脑安装vivado并连接板子,连接失败,未发现目标设备,同时没有报错;
烧写器上的状态灯不亮;
解决方案
排除问题
- 将板子连接到其他学校电脑上,失败,排除单个电脑的问题;
- 将板子连接到个人电脑上,成功,排除板子的问题;
- 将U盘连接到学校电脑上,成功,排除USB接口不上电的可能;
- 将板子连接到学校电脑上,打开设备管理器,出现未知设备,排除USB接口电压不足,并怀疑驱动器未安装;
安装驱动器(cable drivers)
网上搜索vivado设备驱动器的安装问题,很多解决方案是上网下载一个驱动器,但是vivado自己其实自带了一个驱动器安装程序,就在vivado安装目录下,在一个cable_drivers文件夹中,名为install_drivers_wrapper.bat,其大致路径为安装目录下的./data/xicom/cable_drivers/nt64/install_drivers_wrapper.bat
此安装程序需要管理员权限;
使用管理员权限打开,没有反应;
使用管理员权限打开cmd,使用命令行打开,报错:
ERROR: Must have admin privileges to run this installer
看着自己的管理员权限感到无所适从;
打开该安装文件,内容如下:
@echo off
rem #
rem # COPYRIGHT NOTICE
rem # Copyright 1986-2017 Xilinx, Inc. All Rights Reserved.
rem #
call install_drivers.cmd %*
exit /b %errorlevel%
调用了一个叫做install_drivers.cmd的文件,也在同一目录下,打开该文件,发现两处报无管理员权限错误的代码,分别如下:
- :
net session >nul 2>&1
if %errorlevel% NEQ 0 (
@echo ERROR: Must have admin privileges to run this installer>>%log%
@echo ERROR: Must have admin privileges to run this installer
exit /b 10
)
- :
call check_windrvr6.exe>>%log%
set /a windrvr6_ret=!errorlevel!
if !windrvr6_ret! EQU 1 (
@echo ERROR: Must have admin privileges to run this installer>>%log%
@echo ERROR: Must have admin privileges to run this installer
exit /b 20
)
尝试下是哪里出了问题,在第一段代码中加入输出错误码的代码:
net session >nul 2>&1
if %errorlevel% NEQ 0 (
@echo ERROR: Must have admin privileges to run this installer>>%log%
@echo ERROR: Must have admin privileges to run this installer
@echo %errorlevel%
exit /b 10
)
cmd运行驱动器安装文件,输出了2,说明是这段代码报了错,错误来自于这段代码的第一句,一个批处理指令:
net session
cmd运行一下这个指令,得到错误:
没有启动服务器服务
开开心心去找这个错误的解决方案,使用下面的方法打开服务器服务~
没有启动服务器服务的处理方法
之后成功安装驱动程序,成功连接板子~
合理吐槽
该驱动器安装程序将所有来自指令:net session;的报错一律认定为没有admin权限,这一操作实在是令才疏学浅的我难以理解并逐步头秃;
附:关于板子连接失败的另一个问题:44-494错误
由于未知原因,有时将板子连接到我的个人电脑后,烧写器的状态灯也不会亮,但是由于驱动器已安装,在设备管理器中可以找到这一设备;
同时,使用vivado连接设备,会报44-494错误,但是报错之后灯就亮了,此时只需在vivado的Tcl Console中输入:
disconnect_hw_server
断开报错的连接,再连一遍,即可解决问题;
P.S. 关于这次问题的解决,十分感谢实验箱厂商龙芯公司全程的帮助!