I. 创建/etc/udev/rules.d/51-usbblaster.rules文件,终端运行命令:sudo gedit /etc/udev/rules.d/51-usbblaster.rules
II. 在里面加入下面内容:
# Altera USB-Blaster rule to set mode to 666.
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6001", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
III.终端运行命令:sudo udevadm control --reload-rules
2、usb blaster 配置
因为usb 默认只有root才有权限访问,所以只要把权限修改一下即可,usb blaster 链接上电脑,
终端执行 lsusb
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 004: ID 09fb:6001 Altera Blaster
Bus 003 Device 002: ID 1bcf:0005 Sunplus Innovation Technology Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 1bcf:2883 Sunplus Innovation Technology Inc.
说明 /dev/bus/usb/003/004这个文件现在就是我们的Altera Blaster设备,
然后
cd /dev/bus/usb/003/
执行ls -al
drwxr-xr-x 2 root root 100 Jan 10 17:57 .
drwxr-xr-x 6 root root 120 Jan 11 2014 …
crw-rw-r-- 1 root root 189, 256 Jan 10 16:10 001
crw-rw-r-- 1 root root 189, 257 Jan 10 16:10 002
crw-rw-r-- 1 root root 189, 259 Jan 10 17:57 004
很明显只有root组的用户才有权限使用usb,
sudo chmod 666 ./004
给用户组以外的用户加上写权限即可,
不过由于004路径这个是系统分配的,有的时候就不是这个路径了,所以如果下不进去的时候,就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用起来就相当方便了。
测试过的:
sudo nano /etc/udev/rules.d/80-usbblaster.rules
# Altera USBBlaster
BUS=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6810", MODE="0666", SYMLINK+="usbblaster"
sudo udevadm control --reload-rules
也可能是被jtagd占用了,
sudo killall -9 jtagd
sudo killall -9 jtagd