Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20723 Discussions

nios2-terminal and jtag

Altera_Forum
Honored Contributor II
2,810 Views

Hello all, 

 

I am running Nios2 on Ubuntu 12LTS and I have received the following error when trying to run nios2-terminal:  

$ sudo bash ./nios2-terminal 

./nios2-terminal-wrapped: error while loading shared libraries: libjtag_atlantic.so: cannot open shared object file: No such file or directory 

 

when I type: 

$ locate libjtag_atlantic.so 

it finds libjtag_atlantic.so at: 

/home/cepm-linux-ubuntu/altera/12.0sp2/quartus/linux/libjtag_atlantic.so 

where it should be. 

 

This error resulted in me unable to perform in Eclipse: 

Run As -> Nios II Hardware. 

[Target Connection]: No Nios II target connection paths were located. Check connections and that a Nios II .sof is downloaded 

 

Furthermore, if i ran nios2-configure-sof at Nios2 Command Shell, I received no error - the jtag driver is found 

 

Does anyone have encountered similar problem and found the solution to this problem. 

 

Thank you.
0 Kudos
10 Replies
Altera_Forum
Honored Contributor II
1,730 Views

Where the system looks for shared libraries depends on how the program binary was linked, some global system settings, and the LD_LIBRARY_PATH environment variable. If the application is using dlopen() it also depends on the application code. 

 

In this case I suspect the 'Nios2 command shell' has set some environment variables. You'll need to replicated the important ones.
0 Kudos
Altera_Forum
Honored Contributor II
1,730 Views

I have solved the library issue, now I am receiving the following 

/nios2eds# nios2-terminal 

nios2-terminal: There are no JTAG UARTs available which match the --device and 

nios2-terminal: --instance options you provided. 

 

This happens in Nios2 command shell. 

 

If i run jtagconfig in Nios2 command shell, I recieved: 

nios2eds# jtagconfig 

1) USB-Blaster [8-1] 

020F30DD 

 

It is not recognising the device name.. 

 

Can this be an issue too. If so, how do I overcome this. 

 

Thanks
0 Kudos
Altera_Forum
Honored Contributor II
1,730 Views

I'm not certain if you are experiencing the same problem, but this is another thread related to JTAG issues on Ubuntu. 

 

http://www.alteraforum.com/forum/showthread.php?t=31939&highlight=ubuntu+usbblaster
0 Kudos
Altera_Forum
Honored Contributor II
1,730 Views

Thank you.  

 

This is useful, however I cannot proceed beyond killall jtagd. 

 

I received the following error when I perform the following at command line 

$ killall jtagd 

jtagd(1564): Operation not permitted 

jtagd: no process found 

 

and at the nios2 command shell: 

# killall jtagd 

# jtagconfig 

1) USB-Blaster [8-1] 

020F30DD 

 

The problem is still there.. no luck!
0 Kudos
Altera_Forum
Honored Contributor II
1,730 Views

I am also receiving the following error after killall jtagd: 

 

when using# nios2-configure-sof 

Error (213019): Can't scan JTAG chain. Error code 89. 

 

at command line 

$ jtagconfig 

1) USB-Blaster variant [8-1] 

Unable to lock chain (Insufficient port permissions)
0 Kudos
Altera_Forum
Honored Contributor II
1,730 Views

'Insufficient port permissions' looks like a file permissions check somewhere. Probably your uid/gid doesn't have access to the relevent /dev entry and the programs aren't suid/sgid. 

 

Running as 'root' would confirm this.
0 Kudos
Altera_Forum
Honored Contributor II
1,730 Views

I thinks the problem is with jtagd.  

It is not recognising the attached device. 

 

Can anyone help me there? 

 

Thank you.
0 Kudos
Altera_Forum
Honored Contributor II
1,730 Views

Here is what I get when I run 

$jtagd --foreground 

JTAG daemon started 

Can't bind to TCP port 1309 - exiting 

 

Any help is most appreciated. 

Thank you.
0 Kudos
Altera_Forum
Honored Contributor II
1,730 Views

Finally solve the problem... 

 

It works after I perform the following cut and paste at /etc/udev/rules.d/51-usbblaster.rules 

# USB-Blaster 

SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", GROUP="blaster" 

SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", GROUP="blaster" 

SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", GROUP="blaster" 

 

# USB-Blaster II 

SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", GROUP="blaster" 

SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", GROUP="blaster" 

 

# BeMicro 

SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="a4a0", GROUP="blaster" 

 

I received this info from: http://www.alterawiki.com/wiki/quartus_for_debian_wheezy
0 Kudos
Altera_Forum
Honored Contributor II
1,730 Views

Can't bind to port 1309 means that there is another instance of jtagd already running (you are only allowed one per machine) 

 

The port permissions error means that you need to add udev rules to make usb-blaster nodes readable and writable by your user 

 

In this case I think the real error is that jtagd can not find pgm_parts.txt, which it needs to find out the instruction register lengths and properties of the devices it's found on the jtag chain (I know this because the output of jtagconfig did not contain any names). What's the path reported by `ps aux | grep jtagd` after you run jtagconfig?
0 Kudos
Reply