Altera USB Blaster driver on Ubuntu 18.04

 In this post I will describe how to get your USB/Terasic-Blaster or any other Blaster clone working on Ubuntu 18.04. With little or any changes this will work on many Linux distros. Quartus version I am using is Quartus II 13.0sp1.

First thing I suggest adding the /bin folder of Quartus installation directory to $PATH. This way you will get access to jtagd and jtagconfig

jtagd is a daemon that provides the interface between Altera Tools accessing the JTAG chain and the USB-Blaster. If not already running, jtagd will be started automatically when the Quartus II or jtagconfig is run. 

jtagconfig can be used to list all connected Blasters and devices attached to them.

USB driver permissions

 The Quartus II will use the Linux built-in usb_device drivers. By default, only root has access to these so we must make sure the user is allowed to access them.

First create a file in /etc/udev/rules.d named 51-usbblaster.rules and make sure it has read permission for root.

  • sudo touch /etc/udev/rules.d/51-usbblaster.rules

Now open it and paste this():

# For Altera USB-Blaster permissions.

# USB-Blaster  

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" 

# USB-Blaster II  

SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="666" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="666"

NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}",\
RUN+="/bin/chmod 0666 %c"

 

For changes to take effect run:

  • sudo udevadm control --reload

Copy devices data for jtagd

Now we must make sure jtagd has access to the devices list and has read access for the user:

  • sudo cp /path/to/altera/13.0sp1/quartus/linux64/pgm_parts.txt /etc/jtagd/jtagd.pgm_parts

Test that everything is working

To test the connection run jtagconfig in your terminal and it will output the name of Blasters connected and the name of any devices connected to them.

  • jtagconfig
     1) USB-Blaster [1-1.5.4]                     
       071280DD   EPM7128S

Now the Quartus II should recognize the Blaster.