EDA Solutions logo

How to set up a License Manager for Floating Licenses – Galaxy Semiconductor

These instructions are how to serve floating certificate licenses for Galaxy Software.  Galaxy uses Flexera certificate-based model for licensing.  If you already use Flexera and a license management system, you likely can just skip these instructions and just use your Galaxy license file similar to your other vendors.

We will be using the Flexera utility LMTOOLS for Windows and LMGRD for Linux. Flexera also has good documentation online for both of these utilities.

Prerequisites

  • You must have a Galaxy license file with floating licenses.  If you do not, please check this technical note here. Please raise a ticket if you are still unsure of how to acquire your licenses.
  • You must have the latest Galaxy License Package which includes the Flexera utilities, Galaxy vendor daemon, and necessary libraries.

Download all required files

Step 1: Download the Galaxy License Package and unzip to a local folder.

  • Go to the Software Downloads page in the Galaxy Semiconductor support portal, and download Galaxy-License-Package.zip.
  • Windows – We recommend creating a local folder C:\galaxylm and placing all relevant files in that folder.
  • Linux – We recommend creating a local folder /opt/galaxy/galaxylm and placing all relevant files in that folder.
  • For the following instructions, we will use the recommended folders specified above. 
  • Example local folder contents:

Step 2: Rename your license file to ‘galaxy.lic’ and place it in your local folder. 

  1. Open your license file ‘galaxy.lic’ with your favorite text editor.
  2. Add the following information to your ‘galaxy.lic’ license file:

If any of the ports below are unavailable, please choose a different port.

  • Add the port 27000 to the SERVER line
  • Add the path to your vendor daemon to the VENDOR line, after galaxylm
    • Windows – Enclose with double quotes (Ex:  “C:\galaxylm\galaxylm.exe”)
    • Linux – Do not include quotes (Ex: /opt/galaxy/galaxylm/galaxylm)
  • Add PORT=43550 to the end of the VENDOR line
  • Save the file.

Windows Instructions (using lmtools and lmgrd)

If you are currently using lmadmin to serve Galaxy licenses you will need to stop the lmadmin Windows service and set the Startup type to Manual or Disabled.

Step 1: Set the environment variable GEX_SERVER_PROFILE 

  • In the Windows search bar (bottom left corner) search for “environment”
  • Click on “Edit the system environment variables” from the control panel.
  • Add a variable called “GEX_SERVER_PROFILE” with a value of a path, Ex:  “C:/gex_server_profile”

Step 2: Run lmtools and set up a Windows Service

  • Double-click lmtools.exe
  • Click the Configuration using Services button, and then click the Config Services tab.
  • In the Service Name, type Galaxy License Manager
  • In the Path to the lmgrd.exe file field, enter or browse to C:\galaxylm\lmgrd.exe
  • In the Path to the license file field, enter or browse to C:\galaxylm\galaxy.lic 
    • Replace galaxy.lic with whatever your license file is named.
  • In the Path to the debug log file, enter C:\galaxylm\debug.log
  • Check the Use Service checkbox
  • Check the Start Server at Power Up checkbox
  • Click Save Service
  • Click Yes

NOTE: As a result of these steps, a new Windows Service called “Galaxy License Manager” was created.

Step 3: Change the Windows Service to Local System

  • Enter Services in the search bar in Windows, lower left part of screen
  • Choose Services App which will launch the Services window
  • Right-click on the newly created Galaxy License Manager service
  • Click Log On tab
  • Change to Log on as -> Local System account.
  • Click OK

Step 4: Start the Windows Service

  • Enter Services in the search bar in Windows, lower left part of screen
  • Choose Services App which will launch the Services window
  • Right-click on the newly created Galaxy License Manager service

Step 5: Checkpoint.  Using lmtools check the status of the license server

  • Double-click lmtools.exe
  • Click on the ‘Server Status’ tab
  • Click on ‘Perform Status Enquiry
  • You should see both:
    • galaxylm:  UP
    • The increments (or features) that are being served in the licenses.  In the example below the features are GEX-Pro-WW and SYA.  There are more if we were to scroll down. 

Linux Instructions (centos7 using lmgrd and systemd)

Step 1: Set the environment variable GEX_SERVER_PROFILE

  • Run the command below to set an environment variable, replacing the path ‘/opt/galaxy/gex_server_profile’ with the path of your choosing.
export GEX_SERVER_PROFILE=/opt/galaxy/gex_server_profile

Step 2: Check file ownership and permissions

  • Use the chmod command to set the execute bit for all files (sudo might be needed)
sudo chmod 755 /opt/galaxy/galaxylm/* 

Use the chown command to set ownership (sudo might be needed) 

  • Below is only an example. Change ‘galaxy:galaxy’ to the ‘user:group’ appropriately.
sudo chown galaxy:galaxy /opt/galaxy/galaxylm/*

Step 3: Run lmgrd with your license file to test out the functionality

Use this command to run LMGRD:

/opt/galaxy/galaxylm/lmgrd -c /opt/galaxy/galaxylm/galaxy.lic  -l /opt/galaxy/galaxylm/debug.log
  • Use the lmstat utility provided to make sure the licenses are served:
/opt/galaxy/galaxylm/lmutil lmstat -a -c /opt/galaxy/galaxylm/galaxy.lic 

Step 4: Create a service

  1. Create the file galaxylmd.service, and put the contents below in the file, save the file.
[Unit]
Description=Galaxy License Manager
After=network.target network.service

[Service]
Environment=GEX_SERVER_PROFILE=/opt/galaxy/profiles/gex_server_profile
Environment=LD_LIBRARY_PATH=/opt/galaxy/galaxylm
User=galaxy
WorkingDirectory=/opt/galaxy/galaxylm/lmgrd
ExecStart=/opt/galaxy/galaxylm/lmgrd -c /opt/galaxy/galaxylm/galaxy.lic  -l /opt/galaxy/galaxylm/debug.log
Restart=always
RestartSec=30
Type=forking

[Install]
WantedBy=multi-user.target
  1. Set the correct permissions
chmod 664 /etc/systemd/system/galaxylmd.service
  1. The next step is to reload all unit files to make systemd know about the new service.
systemctl daemon-reload
  1. To start the service, run
systemctl start galaxylmd.service
  1. To enable auto-restart on reboot
systemctl enable galaxylmd.service