對於錯誤error (209053): unexpected error in jtag server -- error code 89,它產生的原因在於,在linux系統下,Quartus ii的驅動USB-Blaster只能有root用戶使用,而普通用戶是無權使用的。解決思路是更改USB-Blaster的使用權限,使得普通用戶也能使用。對此altera也有給出相應的解決方案,詳細見USB-Blaster Driver for Linux。
為使大家更易在linux下操作,現將具體的步驟介紹如下:
首先打開終端,獲得root權限。
在路徑/etc/udev/rules.d
下創建文件51-usbblaster.rule
s(因為很多時候該目錄下是沒有此文件的)
touch /etc/udev/rules.d/
51-usbblaster.rule
s
編輯該文件
gedit /etc/udev/rules.d/
51-usbblaster.rule
s
在51-usbblaster.rule
s中輸入:
$ pwd /etc/udev/rules.d $ ls -lZ 51-usbblaster.rules -rw-rw-r--. 1 root root unconfined_u:object_r:udev_rules_t:s0 411 6. úno 15.23 51-usbblaster.rules $ cat 51-usbblaster.rules # USB-Blaster BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6001", MODE="0666" BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6002", MODE="0666" BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6003", MODE="0666" # USB-Blaster II BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6010", MODE="0666" BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6810", MODE="0666"
最后同樣在終端里root權限下輸入命令
udevadm control --reload
一般而言,USB-Blaster應該能正常使用了,Programmer這時候也可以下載程序了。但我的Centos 7 + Quartus ii 17.0依然沒有起色,問題依舊,最終得以解決的,全靠這篇文章Altera Quartus, USB-Blaster, jtagd, udev, USB permissions
做法是將前面創建的文件51-usbblaster.rule
s中的后兩段
# USB-Blaster BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6001", MODE="0666" BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6002", MODE="0666" BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6003", MODE="0666" # USB-Blaster II BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6010", MODE="0666" BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6810", MODE="0666"
改為
# USB-Blaster SUBSYSTEMS=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="0666" SUBSYSTEMS=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6002", MODE="0666" SUBSYSTEMS=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6003", MODE="0666" # USB-Blaster II SUBSYSTEMS=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6010", MODE="0666" SUBSYSTEMS=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6810", MODE="0666"
然后再執行
udevadm control --reload
最后完美解決了在linux下用Quartus ii 17.0下載程序的問題!感謝thomaswood和woky