linux usb blaster权限的设置

xiaoxiao2021-02-28  6

(抄自于http://blog.csdn.net/xforce_zuoxiang/article/details/18092023,并表示谢意)

因为usb 默认只有root才有权限访问,所以只要把权限修改一下即可,usb blaster 链接上电脑

$ lsusb Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 003: ID 09fb:6001 Altera Blaster Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

说明 /dev/bus/usb/001/003这个文件现在就是我们的Altera Blaster设备

$ cd /dev/bus/usb/001 $ ls -l 总用量 0 crw-rw-r-- 1 root root 189, 0 5月 30 20:55 001 crw-rw-rw- 1 root root 189, 2 5月 30 21:14 003

  很明显只有root组的用户才有权限使用usb

$ sudo chmod 666 ./003

给用户组以外的用户加上写权限即可

 不过由于003路径这个是系统分配的,有的时候就不是这个路径了,所以如果下不进去的时候,就lsusb一下看看有没有更改到别的路径,然后重新chmod一下就可以了。不过这样每次都需要改还是麻烦,PC应该为人服务而不是人为PC服务,所以我们用udev设置规则让每次检测到usb blaster的设备mode改成666(rw-rw-rw-)就行了很简单就是在/etc/udev/rules.d这个默认的规则目录下新建一个以rules为后缀的文件来书写我们的文件,并且名字虽然可以任意不过前两个数字最好要保证比之前存在的要大,就是这个是决定优先顺序的,我在这里建了一个名为80-usbblaster.rules:sudo nano /etc/udev/rules.d/80-usbblaster.rules然后里面添加这句话:ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="666"保存就OK了,这个意思是是说idendor是09fb且idProduct是6001的时候,mode要设置成666,之后这个USBBLASTER用起来就相当方便了。

 至此,USB的权限问题设置完成,由于原作者使用的是ubuntu14+quartus12,看样子就可以直接使用了,但对于我们,问题远没有结束

内核变动的修改

ubuntu9.1及以后版本的内核中,USB fs不在使用,故不再存在/proc/bus/usb这个目录,而不幸的是,QuartusII9.1使用的是这个目录来驱动USB Blaster.

使用下面的两条来修正这些改变:

mount --bind /dev/bus /proc/bus ln -s /sys/kernel/debug/usb/devices /proc/bus/usb/devices

 

完整的步骤如下: $ sudo killall jtagd $ sudo chmod 755 /sys/kernel/debug/usb/devices $ sudo chmod 755 /sys/kernel/debug/usb $ sudo chmod 755 /sys/kernel/debug $ sudo mount --bind /dev/bus /proc/bus $ sudo ln -s /sys/kernel/debug/usb/devices /proc/bus/usb/devices $ sudo <quartus_directory>/bin/jtagd $ sudo <quartus_directory>/bin/jtagconfig 可以看到,在修正之前,修改了权限,否则jtagd依然没有办法使用普通用户权限去访问devices

 当可以使用DEBUG的方式来启动jtagd

$ ./jtagd --foreground --debug --user-start --config /etc/jtagd/jtagd.pgm_parts JTAG daemon started Using config file /etc/jtagd/jtagd.pgm_parts No remote JTAG because stops when idle

然后检查一下jtagconfig是否可以检测到USB BLASTER

$ ./jtagconfig 1) USB-Blaster [USB 1-1.4] 020B20DD EP2C8

此时是已经插入了开发板了,如果没有接开发板则显示

1) USB-Blaster [USB 1-1.4]  Unable to read device chain (JTAG chain broken)

只要可以找到USB-Blaster就OK了.

有的把jtagd作为一个系统服务,看个人需要, 在Quartus烧写的时候,会自动启动它,超时不使用时,会自动退出,似乎没有很大的必要.

参考:

http://ubuntuforums.org/showthread.php?t=1441742

http://www.fpga-dev.com/altera-usb-blaster-with-ubuntu/

http://www.fpga-dev.com/altera-usb-blaster-with-ubuntu/

环境变量的设置在64位环境,如果没有设置环境变量,则启动Quartus的时候,要加上 --64bit参数,否则会提示找不到共享库,虽然共享库已经存在,但实际上是因为是启动了32位的程序导致的.

有人设置了自己的环境变量来解决此问题,目前自己直接在启动加参数.

其它问题

似乎有人在安装MODSIM和DSP BUILDER的时候也有些麻烦,目前还没有安装,到时候如果有了问题再记录补充.

ubuntu14.04中安装QuartusII9.1步骤

标签:

原文地址:http://www.cnblogs.com/littlestone08/p/5544000.html

转载请注明原文地址: https://www.6miu.com/read-1600061.html

最新回复(0)