Synplify Pro on Linux Mint 18.1: The cheat sheet

This post was written by eli on July 8, 2018
Posted Under: FPGA,Linux,Software

Introduction

I needed to run Synplify Pro for a short trial period on my Fedora 12 machine (yup, it’s 2018, and still). And I have a full Mint 18.1 as a chroot jail on that machine for installing contemporary software.

So these are my notes on the go. Consider everything below as run om Mint 18.1 x86_64 (which is an Ubuntu derivative), except for the licensing manager, which I eventually ran directly on the Fedora 12 oldie (x86_64 as well).

I should point out, that Synopsys officially supports only Red Hat based distributions (SUSE and RHEL), which explains why small tweaks were necessary. But once that is over with, all was fine.

Synopsys offers extensive documentation for all this, of course. As the title implies, this should be considered as a cheat sheet, nothing more.

Download the stuff

In essence, three parts are needed: Synopsys’ installer program, the tool to run and the licensing manager. In my case, I downloaded all inside the following directories (into separate directories on my own computer):

  • /rev/installer_v4.1
  • /rev/s_fpga_d_vN-2018.03-SP1
  • /rev/scl_v2018.06

These three directories happened to be everything under /rev/ in my case (this is what they prepared for me, I suppose). So I grabbed it all. This included some large files for Windows, which I surely didn’t need, but it’s easier to fetch all files and wait longer than to use my own brain, for example.

Make the system ready

C-shell is used by the installation scripts (and others, possibly):

# apt-get install csh

Synplify itself expects a LSB (Linux Standard Base), in particular a symlink in /lib64/ for the ELF loader.

# apt-get install lsb-core

Without this, the licensing related program go something like:

$ ./lmhostid
-bash: ./lmhostid: No such file or directory

And then you go “But what??? The file is there!” and you’re right, the file is there, but the ELF loader which the executable requests isn’t, because it’s /lib64/ld-lsb-x86-64.so.3. I’ve discussed this issue in another post.

Also, some scripts have their shebang to /bin/sh (!). Unfortunately, Debian’s standard symlink for /bin/sh goes to /bin/dash (because working out of the box is for the weak). So

# cd /bin
# mv sh old-sh
# ln -s bash sh

If you don’t change this symlink, the typical error goes “synplify-pro-exec/fpga/N-2018.03-SP1/bin/config/execute: Syntax error: “(” unexpected (expecting “;;”)”

Then create another symlink from /usr/tmp to /tmp, because the licensing deamon creates the lock file there. As root:

# cd /usr
# ln -s /tmp

Installing

Refer to the Synopsys’ installation guide for how to run through the installation. This is just a brief.

Installing doesn’t require being root, if the target directories are owned by the user.

First, install the installer. In the directory where the installer was downloaded to, go

$ ./SynopsysInstaller_v4.1.run

And extract the installer into some other directory.

Navigate to the directory to which the installer was installed, and go

$ ./setup.sh

for a GUI installer, or

$ ./installer

for the textual stuff (but the ssh’ers).

The installer should be run (at least) twice: Once to install the tool of interest, and a second time to install the licensing manager.

For each time tell the installer where Synopsys’ installation files were downloaded to, and then to where the installed program should go. Both are different directories for each of the two installations.

Editing the licensing file

Edit the SERVER line, replacing “hostname1″ with the actual host name (as returned by “uname -n”).

There is no need to change the VENDOR line. At least in my case, it worked fine as is.

Check the licensing file

Be sure it’s valid. Navigate to where the licensing manager was installed (e.g. scl/2018.06/linux64/bin), and go (below is a successful validation for a temporary key):

$ ./sssverify /path/to/license.txt 

Integrity check report for license file "/path/to/license.txt".
Report generated on 06-Jul-2018 (SCL_2018.06)
---------------------------------------------------------
Checking the integrity of the license file...
Valid SSST feature found.
Licensed to Temp Keys for New Customers
Siteid: 5.1, Server Hostid: 200247EDD334, Issued on: 7/4/2018
License file integrity check PASSED!
---------------------------------------------------------
You may now USE this license file to start your license server.
Please don't edit or manipulate the contents of this license file.

Or use the -pinfo flag for a list of licensed features:

$ ./sssverify -pinfo /path/to/license.txt
=============================================================================================
	PRODUCT TO FEATURE MAPPING REPORT GENERATED ON 6/7/2018
---------------------------------------------------------------------------------------------
License File: /path/to/license.txt
Site ID: NEWSITE
Host ID: 200247EDD334
Key File Date: 07/04/2018
SCL Version: SCL_2018.06
=============================================================================================

=============================================================================================
Product: *****			 Serial Number: (SN=0:0)
---------------------------------------------------------------------------------------------
Feature Name                     Expiry-Date  Daemon       Version Quantity        Start-Date
---------------------------------------------------------------------------------------------
SSST                             22-Jul-2018  snpslmd      1.0            1       04-Jul-2018
=============================================================================================

=============================================================================================
Product: *****			 Serial Number: (SN=4881-0:503161)
---------------------------------------------------------------------------------------------
Feature Name                     Expiry-Date  Daemon       Version Quantity        Start-Date
---------------------------------------------------------------------------------------------
synplifypro_altera               22-jul-2018  snpslmd      2018.03        1
=============================================================================================

Start the licensing manager

OK, this is the only place where I left my Mint chroot jail, because I got

18:07:13 (snpslmd) Cannot open daemon lock file
18:07:13 (snpslmd) EXITING DUE TO SIGNAL 41 Exit reason 9
18:07:13 (lmgrd) snpslmd exited with status 41 (Exited because another server was running)

and then it just worked on Fedora 12, so what the heck with that. There is a word that the licensing manager doesn’t work on reiserfs, and I also spotted with strace that this failure occurs immediately after getdents() system calls on the root directory, which was a fake root in my case. So maybe because of that, maybe something else I didn’t get right, or more precisely: Didn’t bother to get right.

Anyhow, root aren’t required, and neither is any environment variable.

$ cd /path/to/scl/2018.06/linux64/bin
$ ./lmgrd -c /path/to/license.txt

And of course, if you’re really into it, make a service for this on your machine.

Is there a licensing manager running?

Is it up?

 ./lmstat
lmstat - Copyright (c) 1989-2017 Flexera Software LLC. All Rights Reserved.
Flexible License Manager status on Fri 7/6/2018 20:59

License server status: 27020@myhost.localdomain
    License file(s) on myhost.localdomain: /path/to/license.txt:

myhost.localdomain: license server UP (MASTER) v11.14.1

Vendor daemon status (on myhost.localdomain):

   snpslmd: UP v11.14.1

What’s its process (for killing)?

$ ps aux | grep lmg
eli      27499  0.0  0.0  17760  1428 pts/15   S    17:41   0:00 ./lmgrd -c /path/to/license.txt

Shut down the licensing manager

$ ./lmdown -c /path/to/synplify-pro-exec/license.txt

This works however only if the licensing manager went up OK. Otherwise, it might say it shut down the daemon, but there’s still a process running.

Running Simplify Pro

Finally there.

Be sure that the licensing manager is up and running, and go:

$ SNPSLMD_LICENSE_FILE='27020@localhost' ./synplify_pro &

Synopsys’ docs tell us to set and export the environment variable, but this way works, and this is how I like it.

Add a Comment

required, use real name
required, will not be published
optional, your blog address