Quartus® Prime 16.1 (Lite 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 Intel® FPGA 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 in that document. 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 16.1 seems to work (some of these packages are needed by Quartus-installed tools such as ModelSim-Altera): libc6-i386 lib32ncurses5 libxft2 libxft2:i386 libxtst6:i386 libxext6:i386 libx11-6:i386 libxau6:i386 libxdmcp6:i386 libfreetype6:i386 libfontconfig1:i386 libexpat1:i386 By using apt, some of these packages install others in the list; here is how to install all of them (no space after the "\" at end of line): sudo apt-get install libxft2 libxft2:i386 lib32ncurses5 libxtst6:i386 \ libexpat1:i386 libfontconfig1: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: QUARTUS_ROOTDIR_OVERRIDE="/opt/intelFPGA_lite/16.1/quartus" QSYS_ROOTDIR="$QUARTUS_ROOTDIR_OVERRIDE/sopc_builder/bin" QUARTUS_LIBRARY_PATHS="/usr/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/" SOPC_KIT_NIOS2="/opt/intelFPGA_lite/16.1/nios2eds" LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$QUARTUS_LIBRARY_PATHS" then by replacing the PATH definition with: PATH="$HOME/bin:$HOME/.local/bin:$QSYS_ROOTDIR:$QUARTUS_ROOTDIR_OVERRIDE/bin:/opt/intelFPGA_lite/16.1/University_Program/Monitor_Program/bin:$SOPC_KIT_NIOS2/bin:$SOPC_KIT_NIOS2/sdk2/bin:/opt/gezel/bin:$PATH" which also extends $PATH with paths for the Gezel executables and for the Intel® FPGA University Program (see below) executables, and finally by adding: export QUARTUS_ROOTDIR_OVERRIDE QSYS_ROOTDIR QUARTUS_LIBRARY_PATHS SOPC_KIT_NIOS2 LD_LIBRARY_PATH 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 16.1 download page: http://dl.altera.com/16.1/?edition=lite 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-lite-16.1.0.196-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 Prime Software v16.1 Update 2, since it includes all previous updates. 4. University Program Installer A separate download and installation which should follow the previous ones is that of the Intel FPGA University Program software, which includes the Monitor Program, a few IP cores, and more. Download the University Program Installer tarball, intel_fpga_upds_setup.tar, from: https://www.altera.com/support/training/university/materials-software.html#ifup_software_upds 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 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): # Intel FPGA 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 (with no space after the "\" at end of line): sudo mkdir /etc/jtagd sudo cp /opt/intel_fpga/16.1/quartus/linux64/pgm_parts.txt \ /etc/jtagd/jtagd.pgm_parts and restart the machine. Document at http://www.fpga-dev.com/altera-usb-blaster-with-ubuntu/ refers to Ubuntu 14.04, yet the information is valid for 16.04 as well, and it may be useful in case of further problems with the USB Blaster or with the JTAG chain. 6. Fix to a Quartus Prime startup problem The following message shows up when starting Quartus from the command line: Inconsistency detected by ld.so: dl-close.c: 811: _dl_close: Assertion `map->l_init_called' failed! this is fixed by removing, or better renaming (for exampole as follows) the following symlink: cd /opt/intelFPGA_lite/16.1/quartus/linux64 sudo mv libboost_system.so libboost_system_orig.so sudo updatedb N.B: removal is the solution suggested by http://gruvin.me/2016/11/intel-quartus-16-1-fix-for-inconsistency-detected-by-ld-so-dl-close-c/ yet other Quartus-related software, e.g the Intel FPGA OpenCL SDK, badly needs that library, so it's better to be able to restore the symlink upon need. 7. libstdc++ shared 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/intelFPGA_lite/16.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/intelFPGA_lite/16.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/intelFPGA_lite/16.1/quartus/linux64 : mv -vf libstdc++.so.6 libstdc++.so.6.orig ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 . -- Author: Giuseppe Scollo, University of Catania, DMI Document version: 1 Date: 15 October 2017