Quartus 13.1 (Web Edition) installation tips 1. 32-bit compatibility libraries A few 32-bit compatibility libraries should be available, some even _before Quartus installation_ because the Altera installer needs them. The Altera Software Installation and Licensing document lists the RPM packages to be installed for a Red Hat Linux Enterprise system, the problem about getting those libraries installed with Ubuntu is to find out which Ubuntu packages contain them. This is not so easy, since no complete list of the needed libraries is available. Those needed to let the Altera Installer operate properly are listed in the following document: https://www.altera.com/support/support-resources/knowledge-base/solutions/rd05302012_638.html The following packages are installed in my own Ubuntu 16.04 system, where Quartus 13.1 seems to work: libc6-i386 lib32ncurses5 libxtst6:i386 (*) libXext:i386 libX11-6:i386 libxau6:i386 libxdmcp6:i386 libfreetype6:i386 libfontconfig1:i386 libexpat1:i386 (*) N.B. this package is not found by search in the Synaptic Package Manager, yet it does exist in the Xenial main repository... install it from the command line by: sudo apt-get install libxtst6:i386 2. Shell environment variables Certain environment variables should be set before starting Quartus for the first time. Since the Quartus installation process may start it the process completes, maybe it's good to set-up the shell environment before installing Quartus. This is done in my Ubuntu 16.04 installation by adding the following lines in the .profile file in my home directory: export QUARTUS_64BIT=1 export QUARTUS_ROOTDIR="/opt/altera/13.1/quartus" export SOPC_KIT_NIOS2="/opt/altera/13.1/nios2eds" export LD_LIBRARY_PATH="$QUARTUS_ROOTDIR/linux" and by replacing PATH="$HOME/bin:$HOME/.local/bin:$PATH" with PATH="$HOME/bin:$HOME/.local/bin:/opt/gezel/bin:$QUARTUS_ROOTDIR/bin:$QUARTUS_ROOTDIR/sopc_builder/bin:$QUARTUS_ROOTDIR/University_Program/Monitor_Program/bin:$PATH" which also extends $PATH with paths for the Gezel executables and for Altera University Program (see below) executables. N.B. I actually keep two versions of the .profile file: one as above, the other one without the LD_LIBRARY_PATH line; .profile is actually a symlink to either file, depending on whether I need to run the Qsys tool under Quartus during the session (then the LD_LIBRARY_PATH line is needed), or otherwise run Acroread during the session (in which case the LD_LIBRARY_PATH line would confuse acroread with quartus libraries, so it should _not_ be there). 3. Two-phase download and installation As mentioned in the Quartus 13.1 download page: http://dl.altera.com/13.1/?edition=web updates are available, yet their download and installation should be performed _after_ download of the base tarball and Quartus installation from are completed. So, see first the Download and install instructions under the Combined Files tab in the aforementioned page and press the fat arrow on the right of Quartus-web-13.1.0.162-linux.tar (not the _Updates Available_ link, which is close to the fat arrow but leads to the Updates tab). When the installation of the base software is done, then you may switch to the Updates tab and thereby perform the second phase, see Download and install instructions under this tab. You only need to download and install the Quartus II Software v13.1 Update 4, since it includes all previous updates. 4. University Program Installer A separate download and installation which should follow the previous ones is that of Altera's University Program software, which includes the Altera Monitor Program, a few IP cores, and more. Download the University Program Installer tarball, altera_upds_setup.tar, from: https://www.altera.com/support/training/university/materials-software.html#University-Program-Installer Then extract the tarball contents and follow the instructions found in the readme.txt file under the extracted directory, EXCEPT that: a. the software should _not_ be installed with root privileges, since otherwise no user environment variables would be set; b. the instructions given in the usb_blaster.txt file (in the same directory) to configure the USB-Blaster cable under RHEL 5 and above should be modified according to section 5 below. 5. USB-Blaster cable configuration Add the following lines to file /etc/udev/rules.d/51-usbblaster.rules (create the file with this path if it does not exist): # Altera USB-Blaster for Quartus FPGA Software SUBSYSTEMS=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666" SUBSYSTEMS=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666" SUBSYSTEMS=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666" # USB-Blaster II SUBSYSTEMS=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666" SUBSYSTEMS=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666" then follow remaining instructions in usb_blaster.txt, starting from step 2 therein. 6. Library fix The libstdc++ shared library included in the Quartus installation is not fit to interoperability with Ubuntu 16.04 applications, causing module load failures such as the following one: /opt/altera/13.1/quartus/linux64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/x86_64-linux-gnu/libproxy.so.1) Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so /usr/lib/firefox/firefox: /opt/altera/13.1/quartus/linux64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/firefox/firefox) Here is a workaround to this and other similar troubles: in directory /opt/altera/13.1/quartus/linux64 : mv -vf libstdc++.so.6 libstdc++.so.6.orig ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 . 7. Monitor Program fix After downloading the Nios system to the FPGA, the subsequent loading of an executable gives the following alert in the Terminal pane (at the bottom left corner) of the Monitor program window: bash: /opt/altera/13.1/University_Program/Monitor_Program/bin/nios-monitor-terminal: File o directory non esistente but such a file does exist, however, in directory: /opt/altera/13.1/University_Program/Monitor_Program/bin/bin/ Moreover, data rendering in the disassembly pane is messy, unusable as a matter of fact. partial workaround: cd /opt/altera/13.1/University_Program/Monitor_Program/bin ln -s bin/nios-monitor-terminal* . the bash alert no longer shows up, yet disassembly data rendering is still messy... the problem with this is just the two-subcolumn widths of the Goto instruction column on the left (the problem does not arise with version 16.0 of the software). -- Author: Giuseppe Scollo, University of Catania, DMI Date: 15 October 2016