Install Microsemi Libero 12.1 on Ubuntu 18.04
This is how I installed Libero SoC v12.1 on Ubuntu 18.04 LTS (Bionic Beaver). What helped me a lot where the instructions to install Libero on Debian and Arch Linux
Get License
Create a directory for the license server (here I use ~/.local/microsemi/license
)
mkdir --p /home/USERNAME/.local/microsemi/license
Download the “Linux Licensing Daemon” from https://www.microsemi.com/product-directory/design-resources/1711-licensing#downloads to the license directory and extract it with
tar xf Linux_Licensing_Daemon.tar.gz
Create an account on
ip link | grep ether
The license file is sent via email. Store the license file License.dat
in
the license directory.
Now the first four lines of the license file must be edited, but not the rest
of the file. In the first line, replace <put.hostname.here>
by
localhost
. In lines 2 to 4 replace PATH
by the absolute path to the
license daemon directory. The first 4 lines schould then look like that:
SERVER localhost 112233445566 1702
DAEMON actlmgrd /home/USERNAME/microsemi/license/Linux_Licensing_Daemon/actlmgrd
DAEMON mgcld /home/USERNAME/microsemi/license/Linux_Licensing_Daemon/mgcld
VENDOR snpslmd /home/USERNAME/microsemi/license/Linux_Licensing_Daemon/snpslmd
Install the depedencies
sudo apt install lsb
And start the license server with
Linux_Licensing_Daemon/lmgrd -c License.dat -log /tmp/lmgrd.log
Install Libero
Download “Libero SoC v12.1 for Linux” from https://www.microsemi.com/product-directory/design-resources/1750-libero-soc#downloads.
The downloaded binary is a self-extracting archive built with InstallAnywhere. Before executing it, set its execute bit must be set and some dependencies have to be installed:
sudo apt install libxtst6:i386 libqtgui4:i386 libxrender1:i386 apt-file
chmod +x Libero_SoC_v12.1_lin.bin
./Libero_SoC_v12.1_lin.bin
Now the graphical installer should be launched. If not, there are still some
library dependencies unresolved. From my experience, the console mode
installation does not work at all. Quit it by typing quit
and try to
install additional X or Qt libraries until the graphical installer is started.
Within the graphical installer, I recommend to change the install path to
/home/USERNAME/.local/microsemi/Libero_SoC-v12.1
and the common directory
to /home/USERNAME/.local/microsemi/common
. Otherwise you need root
permissions whenever Libero updates the IP cores.
libz must be removed:
rm /home/USERNAME/.local/microsemi/Libero:SoC-v12.1/Libero/lib/libz.so.1
Install dependencies:
sudo apt install libmotif-dev libglib2.0-0:i386 libfreetype6:i386 \
libsm6:i386 libfontconfig1:i386 libpulse0:i386 libqt5gui5:i386
libpng12-0 must be installed manually (source: https://www.linuxuprising.com/2018/05/fix-libpng12-0-missing-in-ubuntu-1804.html). Both the 32 bit version (for Libero itself) and the 64 bit version (for the chip planner) are required.
wget http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1.1_i386.deb
wget http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
sudo apt install ./libpng12-0_1.2.54-1ubuntu1.1_i386.deb
sudo apt install ./libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
The Libero scripts have the shebang #!/bin/sh
although bash syntax is used.
Therefore dash must be disabled by
sudo dpkg-reconfigure dash
and choosing “No”.
Before actually starting Libero, some environment variables have to be set:
export LM_LICENSE_FILE=1702@localhost
export SNPSLMD_LICENSE_FILE=1702@localhost
export LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/:/usr/lib/x86_64-linux-gnu/:/usr/lib
/home/USERNAME/.local/microsemi/Libero/bin/libero
Install SoftConsole 6.0
Dpendencies:
sudo apt-get install build-essential libstdc++6:i386
Download the Installer and make it executable:
chmod +x Microsemi-SoftConsole-v6.0.0.116-Linux-x86_64-Installer
./Microsemi-SoftConsole-v6.0.0.116-Linux-x86_64-Installer
Accept the license and set the destination location to
/home/USERNAME/.local/microsemi/SoftConsole_v6.0
Avoid root permission when accessing SoftConsole hardware:
sudo cp ~/.local/microsemi/SoftConsole_v6.0/openocd/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d/