Those of us still developing cores for devices containing Cyclone III chips are stuck with an ancient version of Quartus II, namely version 13.1. Those who still need to target the venerable Cyclone II or Max7000 series can’t even bask in that luxury – they’re stuck with version 13.0sp1.
And neither version works reliably on a modern Linux installation.
I first bumped into this problem a few years ago. My daily driver machine runs Linux Mint – currently a version from 2020, and Quartus 13 works just fine here (in fact its jtagd works better than the one supplied with newer versions!). I will need to update before too much longer, though. I’m putting it off, because I know a lot of the stuff I use on a daily basis will break.
(Yes, this blog entry can be filed under “The Shitshow that is Binary Software Distribution on Linux.)
Today I needed to do a quick build from another machine which has a more up-to-date distro, and found myself hunting once again for a solution to this problem. And the stars must have aligned just right, because this time around I actually found a solution, in the form of a blog post from 2023: https://zkre.xyz/posts/quartus/
To summarise the problem, there seems to be a bug in the version of the Threading Building Block library, libtbb, shipped with Quartus 13. On newer distros this bug manifests as the build process hanging – on my machine it hangs somewhere between 9% and 12% of the Analysis stage, but I think the exact symptom varies from machine to machine.
Updating the library fixes the problem – but you can’t just present a brand new version of the library to a more-than-a-decade-old binary and expect it work!
No, we need a version of the library new enough to have the bugfix, but old enough to be compatible with the Quartus binary – and the blog post identifies https://vault.centos.org/7.5.1804/os/x86_64/Packages/tbb-4.1-9.20130314.el7.x86_64.rpm as a suitable candidate. Using rpmextract we can grab the relevant libraries and copy them over the ones in /path/to/quartus/linux64/
I also found a gist at https://gist.github.com/bkw777/a6a2888f482802f2e520165858268cd3 with some useful installation hints for Quartus 13, which gives an alternative source for the replacement library: http://old-releases.ubuntu.com/ubuntu/pool/universe/t/tbb/libtbb2_4.1~20130613-1.2_amd64.deb
So it looks like I can cross Quartus 13 off the list of software that will be broken when I next update my Linux distro!