Установка Quartus и DS-5 под Linux

При установке DS-5 и Quartus под Linux могут возникнуть некоторые проблемы.

После установки Quartus не видит Jtag. Запускаем из /quartus/bin/:

quartus/bin$ ./jtagconfig
No JTAG hardware available

Как это лечится. Запускаем:

quartus/bin$ ./jtagd --foreground --debug
No USB device change detection because libudev.so.0 not found

Запускаем:

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1 /usr/lib/libudev.so.0

Теперь:

quartus/bin$ ./jtagd --foreground --debug
JTAG daemon started
Using config file /etc/jtagd/jtagd.conf
Remote JTAG permitted when password set
USB-Blaster port (/dev/bus/usb/001/007) open failed (13)

Устанавливаем права на тот порт, к которому подключен jtag:

sudo chmod 666 /dev/bus/usb/001/007

Теперь всё работает:

quartus/bin$ ./jtagconfig 
1) CV SoCKit [1-1]
  02D020DD   5CSEBA6(.|ES)/5CSEMA6/..
  4BA00477   SOCVHPS

В DS-5 заходим в Run/Debug Configuration. Выбираем в левом списке, например, DS-5 Debugger/Altera-SoCFPGA-BareMetalBoot-GNU, выбираем на вкладке Connection: Bare Metal Debug/Debug Cortex-A9_0. Выбираем Target Connection: USB-Blaster. Нажимаем кнопку Browse, получаем следующее:

The script file ( device_browser.py ) failed during execution

Перед запуском eclipse нужно установить системные переменные QUARTUS_ROOTDIR и LD_LIBRARY_PATH.
Они должны указывать, однако, не на установленный ранее Quarus (если он был установлен), а на директории /home/user/intelFPGA/16.1/qprogrammer и
/home/user/intelFPGA/16.1/qprogrammer/linux64 (я устанавливал DS-5 в /home/user, а не в /root, как он предлагает при установке). Итак,

intelFPGA/16.1/embedded/ds-5/bin$ export QUARTUS_ROOTDIR=/home/user/intelFPGA/16.1/qprogrammer
intelFPGA/16.1/embedded/ds-5/bin$ export LD_LIBRARY_PATH=$QUARTUS_ROOTDIR/linux64:$LD_LIBRARY_PATH
intelFPGA/16.1/embedded/ds-5/bin$ ./eclipse &

Всё работает!

Если всё-таки не работает
При переподключении USB JTAG может отвалиться. Симптомы такие:

1. Проверяем подключение, получаем:
user@debian:~/intelFPGA/16.1/embedded$ jtagd --foreground --debug

JTAG daemon started

Using config file /etc/jtagd/jtagd.conf

Remote JTAG permitted when password set

Can't bind to TCP port 1309 - exiting

Это значит, что jtagd уже запущен.
2. Набираем: netstat -lpn
Получаем:
(Not all processes could be identified, non-owned process info

will not be shown, you would have to be root to see it all.)

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -              

tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -              

tcp        0      0 127.0.0.1:1309          0.0.0.0:*               LISTEN      3965/jtagd

То есть pid процесса в данном случае 3965.
Убиваем процесс: kill -9 3965
3. Запускаем снова:
user@debian:~/intelFPGA/16.1/embedded$ jtagd --foreground --debug

JTAG daemon started

Using config file /etc/jtagd/jtagd.conf

Remote JTAG permitted when password set

USB-Blaster port (/dev/bus/usb/001/011) open failed (13)

4. Устанавливаем права на указанный порт:
sudo chmod 666 /dev/bus/usb/001/011
5. Проверяем: jtagconfig --enum
1) CV SoCKit [1-4]

02D020DD   5CSEBA6(.|ES)/5CSEMA6/..

4BA00477   SOCVHPS

Теперь всё работает.

Ещё ссылка: http://www.fpga-dev.com/altera-usb-blaster-with-ubuntu/