无法锁定链(​​端口权限不足)

use*_*930 7 linux embedded embedded-linux intel-fpga

我是Linux的新手,我正在尝试安装AlteraQuartus 2 WEb Edition和NIOS2 EDS来使用Nios2处理器.

但是,在安装Quartus之后以及我尝试执行jtagconfig时.

即使在运行/altera/nios2eds/nios2_command_shell.sh之后,我也看不到类似下面的内容

1.)[Nios2 EDS] $ 2.)无法锁定链(​​端口权限不足)

请帮忙,

Car*_*arl 8

要检查这是否确实是端口权限问题,请通过jtagd以root身份运行(Altera工具和驱动程序之间的守护程序)来启动故障排除.首先,您必须确保它jtagd没有运行,因为如果它已经以用户身份运行,尝试以root身份启动它将无效.

$ sudo killall -9 jtagd   # Kill jtagd, ...
$ sudo killall -9 jtagd   # ...and verify jtagd is indeed not running.
jtagd: no process found   # Good, verified.
$ sudo jtagconfig         # Will also start jtagd as root
1) CV SoCKit [2-1]
  02D020DD   5CSEBA6(.|ES)/5CSEMA6/..
  4BA00477   SOCVHPS
Run Code Online (Sandbox Code Playgroud)

如果上述成功,这确实是一个端口权限问题.要永久修复它,请尝试使用udev规则,如@eepp所示.

(在旁注中,如果尚未运行,jtagd将由启动jtagconfig的同一用户启动jtagd.因此@eepps命令也可以正常工作,但jtagd应该首先被杀死.)

为了进一步解决问题,jtagd使用一些调试命令行选项运行可以提供有用的信息:

$ jtagd --foreground --debug
JTAG daemon started
Using config file /etc/jtagd/jtagd.conf
Remote JTAG permitted when password set
Cant bind to TCP port 1309 - exiting
Run Code Online (Sandbox Code Playgroud)

(如果jtagd已经在运行,则上述错误消息是典型的.)

(以上内容摘自http://www.fpga-dev.com/altera-usb-blaster-with-ubuntu/.有关详细信息,请参阅该页面.)


eep*_*epp 6

"权限不足"或"权限被拒绝"或与*nix上没有权限相关的任何内容通常意味着您必须以用户root身份运行该命令(或者作为具有权限但root拥有所有权限的其他用户).

所以运行jtagconfigroot:

$ sudo jtagconfig
Run Code Online (Sandbox Code Playgroud)

或者,以root身份将其放入新文件中/etc/udev/rules.d/51-altera-usb-blaster.rules:

SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666"
Run Code Online (Sandbox Code Playgroud)

然后,运行:

$ sudo udevadm control --reload
Run Code Online (Sandbox Code Playgroud)

这应该会更改USB-Blaster下载电缆设备的权限,以便任何用户都可以访问它(如果这是你想要的),所以你应该可以jtagconfig不用sudo.这五个idProduct是所有已知的USB-Blaster下载电缆USB产品ID(用于Altera供应商ID 0x09fb).

如果你想了解更多细节,我在Linux上写了一篇关于Altera软件的相当完整的Arch Linux wiki页面.

  • `jtagd`应该在以root身份启动`jtagconfig`之前被杀死,否则,如果`jtagd`已经作为用户运行,它将继续这样做并且以root身份启动`jtagconfig`将不起作用.我冒昧地张贴了一个单独的答案. (3认同)