我是Linux的新手,我正在尝试安装AlteraQuartus 2 WEb Edition和NIOS2 EDS以与Nios2处理器一起使用。
然而,在安装Quartus之后以及我尝试执行jtagconfig时。
即使在运行/altera/nios2eds/nios2_command_shell.sh
后,我也看不到下面的内容1。)[Nios2 EDS] $ 2.)无法锁定链(端口权限不足)
请帮助,
答案 0 :(得分:8)
要检查这是否确实是端口权限问题,请以root身份运行jtagd
(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
如果上述成功,这确实是一个端口权限问题。要永久修复它,请尝试使用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
(如果jtagd
已在运行,则上述错误消息是典型的。)
(上面是http://www.fpga-dev.com/altera-usb-blaster-with-ubuntu/。请参阅该页面了解更多详情。)
答案 1 :(得分:6)
"权限不足"或者"许可被拒绝"或者与* nix 通常无权限相关的任何内容意味着您必须以用户root
(或具有权限的其他用户)运行该命令,但root
具有所有权限它们)。
因此jtagconfig
运行root
:
$ sudo jtagconfig
或者,以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"
然后,运行:
$ sudo udevadm control --reload
这应该会更改USB-Blaster下载电缆设备的权限,以便任何用户都可以访问它(如果这是您想要的),这样您就可以在没有jtagconfig
的情况下发布sudo
。这五个idProduct
都是已知的USB-Blaster下载电缆USB产品ID(对于Altera供应商ID,0x09fb
)。
如果你想了解更多细节,我写了一个相当完整的Arch Linux wiki page about Altera softwares on Linux。