Altera Quartus 2 on Fedora 11

On the past months I was enrolled in a “Hardware Description Languages” course where we work with FPGAs implementing several hardware designs, the class cover VHDL and Verilog and I feel quite comfortable working with Verilog. As target platform I use an Altera DE2 devboard and Quartus II IDE;

Installing Quartus II is quite trivial on Fedora 11

1. Install tcsh shell

su -c “yum install tcsh”

2. From www.altera.com/download

Download Quartus II web-install script

3. Give executable permissions to the script

chmod +x 90_altera_webinstall.sh

4. Install dependencies for the installer script (Only for 64 bit systems)

su -c “yum install glibc.i586 glibc-devel.i586”

su -c “yum install libSM.i586 libzip.i586 libXi.i586 libXrender.i586 libXrandr.i586”

su -c “yum install freetype.i586 fontconfig.i586”

5. Run the Quartus II web-install script

./90_altera_webinstall.sh

Follow the installer

altera-webinstall

altera-webinstall-02

altera-webinstall-03

6. Edit ~/.bashrc file and add the path for “quartus/bin”

export PATH=$PATH:/<quartus-install-dir>/quartus/bin

7. Open a new terminal and launch Quartus II IDE

quartus –64bit

With the previous steps you have Quartus II installed, you can now create your own design and simulate them, for downloading your designs to the FPGA you will need a helper script that will start/stop the jtag demon and to create a udev rule file to allow all user to access the usb-blaster device.

On DE2 development platform usb-blaster is used to interface the Jtag server and the FPGA. I have found some references about using usb-blaster in Linux by adding udev rules to properly handle the usb programmer.

8. Create a udev rules file at /etc/udev/rules.d/ such as 30-usb-blaster.rules

Add the following lines

# Altera DE2 USB blaster udev rules
# Adrian Alonso <aalonso00@gmail.com>
#
SUBSYSTEM==”usb”,SYSFS{idVendor}==”09fb”,SYSFS{idProduct}==”6001″,MODE=”0666″,SYMLINK+=”usb-blaster”

Basically when the Usb-blaster is connected to the computer, the udev rules are triggered and based on the idVendor and idProduct values a dev node is created /dev/usb-blaster whit the permissions for Read/Write for every user.

Reload udev rules

su -c “udevcontrol –reload_rules”

*Note: This is only necessary the first time to enable the new rules.

9. Copy the next script and place the script at /<quartus-install-dir>/quartus/bin/
*Note: Change the JTAGD variable for the correct path.
————————————————————————————————–
#!/bin/bash
# Jtag server for usb-blaster
# Based on Dalon Jtagd script
# Reference: http://forum.niosforum.com/forum/index.php?showtopic=5486
# Adrian Alonso <aalonso00@gmail.com>
# Fix stop demon

# Source functions library
source /etc/rc.d/init.d/functions

RET=0
PROG=”jtagd”
PID_FILE=/var/run/jtagd.pid
JTAGD=/opt/altera9.0/quartus/bin/jtagd

start ()
{
echo -n $”Starting $PROG sever:”
$JTAGD && success || failure
RET=$?
pidofproc $PROG >> $PID_FILE
echo
}

stop ()
{
local pid
pidfileofproc $JTAG >> pid
if [ -n $pid]; then
echo -n $”Stopping $PROG server”
killproc $JTAGD
else
failure $”Stooping $PROG”
fi
echo
}

case “$1″ in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $”Usage: $0 {start|stop|restart}”
RET=1
esac

exit $RET
————————————————————————————————–

10. Start the Jtag server by

<script-name.sh> start

11. Create a jtag config file

touch /home/<user>/.jtag.conf

Yes, the file is empty, when launching the programmer from Quartus IDE it only checks if this file exits.

12. From Quartus II launch the programmer and select the device “usb-blaster” to be able to download your design.

programmer

13. SOPC builder fix

When I try to start the SOPC builder I just saw an splash screen and nothing happened, looking at the run time log files “sopc_builder_log.txt” (is placed on your main project directory), libXtst library is missing so just installing it will solve the problem.

su -c “yum install libXtst.i586”

spoc_builder

14. Working with NIOS IDE

Install dependency libraries

su -c “yum install gtk2.i586 libcanberra-gtk2.i586”

Create a script named nios2.sh and add the following lines (Make the proper changes)
————————————————————————————————–
#!/bin/bash
# User specific aliases and functions
export QUARTUS_64BIT=1
QUARTUS_BASE=/opt/altera9.0
export QUARTUS_ROOTDIR=$QUARTUS_BASE/quartus
export SOPC_KIT_NIOS2=$QUARTUS_BASE/nios2eds
export SOPC_BUILDER_PATH=$QUARTUS_BASE/nios2eds
unset GCC_EXEC_PREFIX
export PERL5LIB=/usr/lib/perl5/5.10.0
bash –rcfile $QUARTUS_ROOTDIR/sopc_builder/bin/nios_bash
————————————————————————————————–
Running the script will set the shell with all the environment variables needed to use the nios2 ide.

Start nios2-ide from the shell

nios2-ide

nios2-ide

There should be  a better way to wrap around 64bit libraries and avoid to install 32bit libraries to work with Quartus II.

Advertisement

29 thoughts on “Altera Quartus 2 on Fedora 11

  1. Hello, I tried your howto several times on fedora 11 – 32bit.
    However I get

    $quartus
    Aborted

    The only thing I don’t have it is the glibc.i586 but I have glibc.i686

    any help ?

    1. Hi, you can enable debug mode and look in the log files from any library missing or try to find out what is the problem with your installation.
      In a terminal:

      export LD_DEBUG_OUTPUT=quartus-debug.log
      export LD_DEBUG=files

      And start Quartus IDE

      This will generate several log files that you can look to find out what is missing from your installation.

  2. I have this error:

    /usr/lib/gconv/ISO8859-1.so: error: symbol lookup error: undefined symbol: gconv_end (fatal)

    1. Hi, gconv utilities are provided by glibc, try installing the packages:

      su -c “yum glibc-utils glibc-common glibc-devel glibc-headers glibc-static”

      Let me now if this help you.

  3. Hi,

    I have tried to follow your instructions, but the installer fails when it tries to resolv the hostname of the altera server. Perhaps you could send me the output of yum list installed?

    1. Send you an email with my i586/i686 installed package list; Probably openssl.i686 package is what is missing;

      1. The installer still fail to resolv the name of the Altera server. I thought it was a problem with my network, but I’ve just changed ISP, and the problem remain.

        Anyway, it is not your problem so I won’t bother you anymore. I just want to suggest an alternative solution for those of us who have problems with Altera Quartus: Install CentOS 5.2 in a VM. Works perfectly for me; I now start quartus by running:

        $ ssh -X quartus.local /opt/altera9.0/quartus/bin/quartus

  4. The infamous Aborted has a simple solution, or at least one of them…
    I made a couple of installations on a laptop (both 32 and 64bits) and all I got was
    $quartus
    Aborted
    I tried every thing traced the winMain and the crach inside rpcss “Not enough memory” tried to get help from winMain.

    The solution was so simple, the hostname must be in /etc/hosts or in the dns.
    So simply add
    127.0.0.1 localhost.localdomain localhost
    or update you dhclient

    1. Great! That worked; finally I can run Quartus under Fedora 11 x86_64. A small correction to your instruction:

      127.0.0.1 localhost.localdomain localhost

      should be
      127.0.0.1 localhost.localdomain localhost myhostname.mydomainname myhostname

      but I guess you already knew that.

      Note that this should only be neccessary if myhostname.mydomainname is not resolved by your dns server.

    2. Hans Schillstrom, you just save my brain and a lot of hours of pain, Thank you very much.

  5. Hi
    Thanks for this tutorial aalonso, but I have this problems have you any idea of that?

    [root@portatilfosc bin]# quartus -64bit
    quartus: /opt/altera9.1/quartus/linux/libuuid.so.1: no version information available (required by /usr/lib/libSM.so.6)
    quartus: error while loading shared libraries: /opt/altera9.1/quartus/linux/libccl_err.so: cannot restore segment prot after reloc: Permission denied

    and running in anquegi

    [anquegi@portatilfosc bin]$ quartus -64bit
    quartus: /opt/altera9.1/quartus/linux/libuuid.so.1: no version information available (required by /usr/lib/libSM.so.6)
    quartus: error while loading shared libraries: /opt/altera9.1/quartus/linux/libccl_err.so: cannot restore segment prot after reloc: Permission denied

    thanks for your time

    regards

    1. It’s a permission problem either change the owner of the `/opt` directory to your username or as you did
      install quartus on your home directory.

  6. HI I install on my home directory and I get this:

    [anquegi@portatilfosc ~]$ quartus -64bit
    quartus: /home/anquegi/quartusii/quartus/linux/libuuid.so.1: no version information available (required by /usr/lib/libSM.so.6)
    quartus: symbol lookup error: /usr/lib/libXi.so.6: undefined symbol: XESetWireToEventCookie

    thanks for yout time

    1. Hi,
      It seems that libX11 suffer some changes and `XESetWireToEventCookie` was removed or renamed, let me install Quartus on my
      Fedora 12 laptop and up date the instructions, I you find how to work around this issue let me know.
      Happy holidays 😉

    2. Hi, I reinstall Quartus in my Fedora 12 laptop, couldn’t find the installer script so I downloaded the 91_quartus_free_linux.tar tarball
      untar and run the installer script, at first run `quartus –64bit` I saw the same error’s installing the next libraries
      sudo yum install libSM.i686 zlib.i686 libXext.i686
      Solve the lookup symbol error.

  7. Hi,

    I have installed quartus 9.1 on my Fedora 11 system. Everything works fine, but when i try to execute “eclipse-nios2” to create C applications, the following error appears:

    Gtk-Message: Failed to load module “gnomebreakpad”: /opt/altera9.1/quartus/linux/libstdc++.so.6: version `GLIBCXX_3.4.11′ not found (required by /usr/lib/bug-buddy/libbreakpad.so.0)

    I have installed gplibc libraries but the version is 2.10.2-1. Do you what could be wrong? Have you ever experienced this error?

    Thanks a lot for your help and congratulations for this tutorial.

    1. Umm it appear that libstdc++ is missing try installing
      sudo yum install libstdc++.i686

      1. I have found out the following:

        [root@mic-s3 ~]# strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
        GLIBCXX_3.4
        GLIBCXX_3.4.1
        GLIBCXX_3.4.2
        GLIBCXX_3.4.3
        GLIBCXX_3.4.4
        GLIBCXX_3.4.5
        GLIBCXX_3.4.6
        GLIBCXX_3.4.7
        GLIBCXX_3.4.8
        GLIBCXX_3.4.9
        GLIBCXX_3.4.10
        GLIBCXX_3.4.11
        GLIBCXX_3.4.12
        GLIBCXX_FORCE_NEW
        GLIBCXX_DEBUG_MESSAGE_LENGTH

        [root@mic-s3 ~]# strings /opt/altera9.1/quartus/linux/libstdc++.so.6 | grep GLIBCXX
        GLIBCXX_3.4
        GLIBCXX_3.4.1
        GLIBCXX_3.4.2
        GLIBCXX_3.4.3
        GLIBCXX_3.4.4
        GLIBCXX_3.4.5
        GLIBCXX_3.4.6
        GLIBCXX_3.4.7
        GLIBCXX_3.4.8
        GLIBCXX_3.4.9
        GLIBCXX_FORCE_NEW

        When I execute ‘eclipse-nios2’, it uses the library /opt/altera9.1/quartus/linux/libstdc++.so.6 which is not updated (only until GLIBCXX_3.4.9). However, my library strings /usr/lib/libstdc++.so.6 is actually apdated (until GLIBCXX_3.4.12). It would be possible to use this library instead of the previous one to execute ‘eclipse-nios2’?

        Thanks a lot for your help again!

      2. The easies and dirty way to do it is to create a symbolic link, so libstdc++ provided by Altera points to the library installed in your system.

        /opt/altera9.1/quartus/linux/libstdc++.so.6 –> /usr/lib/libstdc++.so.6

        Let me know if this helps you.

        Regards

  8. Hi Aalonso
    I got the same error
    “quartus: /opt/altera9.1sp1/quartus/linux/libuuid.so.1: no version information available (required by /usr/lib/libSM.so.6)
    quartus: symbol lookup error: /usr/lib/libXi.so: undefined symbol: XESetWireToEventCookie”
    even after doing what is suggested here
    “sudo yum install libSM.i686 zlib.i686 libXext.i686”

    any ideas?
    thanks for your time

  9. I tried to install the Altera software on my x86_64 linux pc and got:
    ./altera_installer_gui: symbol lookup error: /usr/lib/libXi.so.6: undefined symbol: XESetWireToEventCookie

    So I tried updating my packages:

    yum install libSM.i586 libzip.i586 libXi.i586 libXrender.i586 libXrandr.i586
    Loaded plugins: presto, refresh-packagekit
    Setting up Install Process
    No package libSM.i586 available.
    No package libzip.i586 available.
    No package libXi.i586 available.
    No package libXrender.i586 available.
    No package libXrandr.i586 available.
    Error: Nothing to do

      1. you can also LD_PRELOAD the proper libX11 library after the install fails

        cd altera_installer/bin
        LD_PRELOAD=/usr/libX11.so.6 ./altera_installer_gui –standalone –install=quartus

        or, if you are running ia32 libs on a amd64 machine:

        LD_PRELOAD=/usr/lib32/libX11.so.6 ./altera_installer_gui –standalone –install=quartus

  10. Hi.

    I had the problem listed ballow running Quartus II 9.1sp2 on Kubuntu 10.10:

    “quartus: /opt/altera9.1sp1/quartus/linux/libuuid.so.1: no version information available (required by /usr/lib/libSM.so.6)
    quartus: symbol lookup error: /usr/lib/libXi.so: undefined symbol: XESetWireToEventCookie”
    even after doing what is suggested here
    “sudo yum install libSM.i686 zlib.i686 libXext.i686″

    I fixed fix the problem using the solution from the post listed below:

    http://www.alteraforum.com/forum/showthread.php?t=22481&highlight=quartus+II+9.1

    Thanx Aalonso and all of you for this great post. 😉

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s