Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
13 years ago

nios2-terminal and jtag

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.

10 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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!
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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)
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    '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.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I thinks the problem is with jtagd.

    It is not recognising the attached device.

    Can anyone help me there?

    Thank you.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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?