Frequently Asked Questions

Frequently asked questions about software licensing.


Serial number status

Status Description
FULFILLED A license has been successfully generated by the customer for a serial number.
RENEWAL EMAIL SENT A month before the support and maintenance for a product has expired, a renewal email is sent to the licensee.
AWAITING RENEWAL Support and maintenance has expired and is waiting for the customer to renew.
PARTIAL FULFILLMENT Not all of the seats on a floating license have generated licenses.
REHOSTED The license file has been Rehosted for the customer following a request and is waiting for the customer to regenerate the license file.
NEW A new serial number that has not been generated.
RENEWED The customer has renewed support and maintenance.

Back to top


License status

Status Description
AWAITING RENEWAL Support and maintenance has expired and is waiting for the customer to renew.
AWAITING REHOST The license file has been rehosted for the customer following a request and is waiting for the customer to regenerate the license file.
FULFILLED A license has been generated.
AWAITING FULFILLMENT The license generation may have failed, please contact license.support@arm.com.
FULFILLMENT FAILED The license generation attempt failed, please contact license.support@arm.com.

Back to top


Can I change a three server license into a single server license?

If you have a three server floating license for Arm development tools, the top of the license file will look something like this:

SERVER this_host  001234567890 8224
SERVER this_host2 000987654321 8224
SERVER this_host3 80abcdef 8224
VENDOR armlmd
USE_SERVER
INCREMENT ...

You cannot "convert" this license into a single server license by commenting out two of the three server lines. Doing this will break the encryption in the file and result in licensing failure. The only fields you can modify yourself are the server hostnames (this_host*) and the port number (default value 8224). Installing your floating license file is covered in more detail in the FAQ: 'How do I install my floating license?'

If you want to convert your three server license file to a single server file, you will need to rehost your license. See the FAQ: 'How do I move my license to another machine?' for more information and a link to the online rehost forms.

Back to top


Can I define the order in which different version licenses are issued?

If you are managing a floating license server that handles licenses for multiple versions of the Arm development tools, then you may wish to ensure that the licenses for your latest toolchain are not consumed by older tools when older licenses are available. The way to achieve this is dependent upon the version of the license server software you are using. The version of FLEXnet/FLEXlm used by the client tools is not important.

FLEXnet v10.8 or later
When you request a particular feature, for example, v3.0 of the Arm compiler, and that version is defined in any of the INCREMENT lines within your license file, then the server software will issue a license for that exact version of the feature.

However, if you request a version of a feature that is not defined in any of the INCREMENT lines within your license file, then by default the highest available version of that feature will be checked out first. For example, if you have a mixed RVDS v3.1 and v3.0 license, and request a v1.2 compiler license, by invoking the ADS v1.2 compiler, the v3.1 compiler license will be issued first.

You can override this behavior for a particular INCREMENT line by adding a SORT=nnn value into the server license file. The nnn value can range from 001 to 255. The lower the value, the higher the sorting priority. The default SORT value of 100 is used when SORT is not defined.

For example:

INCREMENT compiler armlmd 3.0 permanent 5 271940CDEFA0
SORT=010 DUP_GROUP=UHD ISSUER="ARM Ltd" ...

As long as the SORT value for the 3.0 compiler is lower than that for the v3.1 compiler, the 3.0 compiler license will be offered by the license server first.

Further information on sorting priorities in license files can be found in Appendix B of Macrovision's FLEXnet Licensing End User Guide.

FLEXlm v9.2 or earlier
If you are using v9.2 or earlier of the FLEXlm license server software then there is no guaranteed order in which licenses for different tools versions will be issued. You might find that using an options file helps to control license increment use order. For more information please see the FAQ: 'Can I reserve floating licenses for specific users?'

Back to top


Can I reserve floating licenses for specific users?

As a floating license administrator, you can set aside specific features for named users or named client computers by using an options file.  You can also prevent certain users or computers from being issued with a license of a particular type.  This is particularly useful if you have a license that enables more than one version of the Arm development tools and you want to control what users have access to what versions.

To use an options file, first you must write it, then configure your license server to use it.

Writing your options file
You can create an options file in any text editor.  We recommend that your options file has an .opt extension.  When complete, copy the options file to each of your Arm license servers.

A sample options file is shown here, with some of the key syntax demonstrated.  In this example, it is assumed that the license file contains both RVDS 4.0 and ADS 1.2 seats.  There are two defined project groups with defined users, and a set of build computers.  The administrator wants to limit the number of seats of a given feature on a group basis, and also wants to reserve RVDS 4.0 compiler seats for particular users and clients.  A specific user is not to be granted an RVDS 4.0 compiler license.

In detail, the following permissions and restrictions are required:


  • The build computers in the host_group "buildbox" must always have 2 compiler seats available, of no particular version.

  • Users in group "project talisker" (user1 to user5) must not be given more than three fromelf licenses of any version between them.

  • Users in group "project_macallan" must always have one seat of compiler version 4.0 available.

  • user7 cannot ever obtain a compiler license of version 4.0, despite being in group "project_macallan".


The options file to enable the above would look like this:

# License Options File example by Arm Limited
# -------------------------------------------
# This example should be modified as required for your own licensing
# environment.
#
# Turn off case sensitivity for group and hostnames
# (Only valid in FLEXnet 10.x.  In FLEXlm 9.x, you need to ensure that
#  case of groups and hostnames is consistent, and comment out the
#  following line.)
#
GROUPCASEINSENSITIVE ON # Groups are defined here
# --> use the form:  GROUP group_name user_list
#
GROUP project_talisker user1 user2 user3 user4 user5
GROUP project_macallan user6 user7 user8 # Host Groups are defined here
# --> use the form:  HOST_GROUP group_name host_list
#
HOST_GROUP buildbox buildpc01 buildpc02 # Define usage restrictions below
# --> use the form:  OPTION feature[:keyword=value]
# type {name | group_name}
#
RESERVE 2 compiler               HOST_GROUP buildbox
MAX 3 fromelf                    GROUP project_talisker
RESERVE 1 compiler:version=4.0   GROUP project_macallan
EXCLUDE compiler:version=4.0     USER user7

The RESERVE option puts aside a defined number of seats. You can specify an exact version of the feature (e.g., 4.0) if required.
The MAX option puts a limit on the number of seats of a given feature.
The EXCLUDE option prevents a user or group from being granted a license. This overrides any settings to include the user.

Other options are available and are described in Chapter 5 of Macrovision's FLEXnet End User Guide.

Configuring your license server to use the options file
You will need to edit your Arm tools license file so that the options file is called on the VENDOR line. The example below shows how you would do this at the top of your license file. This must be done on each of your Arm license servers.

     SERVER my_server 0012345678AB 8224
     VENDOR armlmd options=armlmd.opt
     USE_SERVER

Now restart your license server(s). Check your server log, as it should report something like this:

18:10:06 (armlmd) Using options file: "armlmd.opt"
18:10:06 (armlmd) Server started on my_server for:
<<feature list omitted>>
18:10:06 (armlmd) MAX 3 USER_GROUP project_talisker for fromelf
18:10:06 (armlmd) RESERVING 2 compiler/3F9C8C64C676 licenses for HOST_GROUP buildbox
18:10:06 (armlmd) RESERVING 1 compiler/3F9C8C64C676 license for USER_GROUP project_macallan
18:10:06 (armlmd) EXCLUDE USER user7 from compiler

If user7 now tries to get a license for the v4.0 compiler, they will see an error message like this:

Error: C3397E: Cannot obtain license for Compiler (feature compiler) with license version >= 4.0:
All licenses are reserved for others
The system administrator has reserved all the licenses for others.
Reservations are made in the options file. The server must be restarted for options file changes to take effect.
Feature:       compiler
License path:  8224@my_server FLEXnet error:  -101,147
For further information, refer to the FLEXnet End User Manual, available at "www.macrovision.com".

Further information on options files can be found in chapter 5, "The Options File", in Macrovision's FLEXnet End User Guide.

Back to top


Can I use the Arm tools with a remote license server?

Although it is technically possible for a client machine to obtain a license from a remote license server across a wide area network (WAN), this is not a supported mode of operation for Arm development tools and we strongly discourage you from attempting to do it. When setting up your licensing system, you should ensure that client machines have access to local license servers (i.e., across your site's local area network (LAN)).

If you do attempt to use a WAN server, the additional network delays connecting to the server will dramatically increase the time taken by the Arm build tools to build your code. In many cases builds may actually fail if the time delays caused are too great. The high license traffic caused will also greatly increase the traffic on your WAN, which could lead to more general problems on your network.

Back to top


Do Arm's development tools support BORROW licenses?

For a number of reasons, Arm does not support the use of the FLEXlm/FLEXnet BORROW attribute in its development tool license files.

If you need to use your development tools away from the network that your license server is on, then you will require a node locked license.

If you have a number of different machines that will need to have access to the development tools whilst away from your license server network, then you should obtain one or more node locked licenses that are locked to network cards that can easily be transferred between machines as required, such as a USB or PCMCIA network card.

Back to top


Do I need to upgrade my license server if I upgrade my Arm development tools?

If you are upgrading your Arm development tools from one version to a newer one, you may need to upgrade your license server software in order to support new license file formats. As a rule you should use the license server software provided with the latest version of the Arm development tools that you have.

The version of an existing FLEXlm/FLEXnet license server component can be identified in one of two ways. At the command prompt, type:

          lmutil lmver <daemon>
or        <daemon> -vsn

where <daemon> is the lmgrd or armlmd license server daemon.

The version of the FLEXlm/FLEXnet utilities supplied with your copy of Arm RealView Development Suite can also be determined by noting the version number in the FLEXlm directory, Utilities\FLEXlm<version>.Users of other tools must use the command prompt method above.

How to upgrade the license server software

  1. Shut down your existing license server using the command: lmutil lmdown.

  2. Install your new Arm development tools license file on the server. See the FAQ entry: 'How do I install my floating license?' If you are adding additional seats to your license file, see the FAQ entry: 'How do I merge my license files?'If you have instead upgraded your license to support a new version of the tools, you must delete your old license file before installing the new one.

  3. Replace the existing lmgrd and armlmd executables with new ones from your latest Arm development tools CD-ROM. You may wish to copy over all the new license utilities, including lmutil.

  4. Restart your license server.

If you are using a Windows license server you can carry out steps 1 and 4 above using the lmtools.exe graphical license management utility.

Note

Back to top


Do RVDS floating licenses support license queuing/wait for license?

Yes.  RVDS 2.x, 3.x and 4.x floating licenses support license queuing, when hosted with the appropriate version of the FLEXlm/FLEXnet server software.

When a server hosts an appropiate license requested by a client, but no seats are currently available, that request is queued.  The request will then be dealt with when a seat becomes available.  On the client you will see the following message:

C:>armcc --vsn
Waiting for license...

In the server's log you will see something similar to this:

DENIED: "compiler" <user1> (Licensed number of users already reached (-4,342))
(user requests license, but no seats available)
DENIED: "compiler" <user1> (Licensed number of users already reached (-4,342))
QUEUED: "compiler" <user1>
(the request is queued)
IN: "compiler" <user2>
(a seat is returned)
OUT: "compiler" <user1>
(queued request dealt with)

License queuing is not supported for ADS licenses. If your license server hosts a mix of ADS and RVDS licenses, this may prevent license queuing from working. This is the typical error message seen on the client:

SIGN= keyword required but missing from the license certificate.
 This is probably because the license is older than the application.
 You need to obtain a SIGN= version of this license from your vendor.
Feature: compiler
License path: <port>@<server>
FLEXnet Licensing error:-114,147

This can be worked around by using the sort=xxx option in your license file.  The sort option is described in the article: Can I define the order in which different version licenses are issued?

For this work around you need to set a lower sort value for the ADS licenses compare to the RVDS licenses.  The ADS tools does not support the sort=xxx option, therefore only the RVDS licenses can be changed.  The default sort value is 100, so here are some example sort values you could use for the RVDS licenses:

RVDS 2.2 sort=122

RVDS 3.0 sort=130

RVDS 3.1 sort=131

RVDS 4.0 sort=140

Back to top


Do upgrade/update seats replace existing seats?

If during the update or upgrade process you are provided with a new serial number, then this update *replaces* the previous entitlement.

You must delete the previous FLEXnet license key from all relevant computers and license servers as a condition of receiving the update/upgrade. This is because your new license is a replacement seat, not an additional seat, and acquisition of the new license automatically terminates the old one. Use of the old FLEXnet license key in that situation is not authorized by Arm or its licensors. If you instead require an extra seat rather than simply upgrading/updating your existing FLEXnet license key to enable the latest version, then you will first need to purchase a new seat license (not an update or upgrade). Quotations for new seats are available upon request from Arm or your local Arm authorized reseller.

Note
Arm FLEXnet license keys are backwards compatible - thus a license for RVDS 4.0 will also enable RVDS 3.1. For more details please see FAQ: 'What version of the tools will an RVDS license enable?'

Back to top


Does Arm offer dongle based licenses?

Not directly. Windows users can effectively have a license dongle by hosting a node-locked license to a removable network adapter. Typically this would be a USB or PCMCIA Ethernet device.

Arm tools licenses are locked to a specific machine using a host ID.  This can be a disk serial number, or an Ethernet address.  Locking a license to the Ethernet address of a removable device allows the license to be moved between machines, as it will work on whichever machine the adapter is currently connected to.

Note for ADS 1.1/1.0 users:
ADS 1.1 and 1.0 use an older version of FLEXlm/FLEXnet than RVDS.  Although the same basic approach will work, there is an extra restriction.  The network adaptor must be connected to a network (e.g. have an Ethernet cable connected to it) before it is recognized by FLEXlm/FLEXnet.

Back to top


Does Arm support the use of virtual machines as license servers for Arm software tools?

Arm does not officially support the use of virtual machines as license servers for tools such as DS-5. Supported platforms for FLEXnet can be found in the FLEXnet Licensing End User Guide.

Back to top


FLEXnet lmgrd daemon not found on Ubuntu

Running lmgrd on an Ubuntu machine might result in the following error:

./lmgrd: No such file or directory

The FLEXnet lmgrd license manager daemon is not officially supported on Ubuntu, but is supported on any completely Linux Standard Base (LSB) compatible operating system.

Ubuntu users from at least version 9.10 onwards on both 32-bit and 64-bit versions of the OS will need to install the corresponding LSB support package for the version of Ubuntu they are using, if it is not already present.

Running the command: apt-get install lsb as root from the command line should ensure that the full required package is installed.

Note
Running the command: cat /etc/lsb-release does not necessarily mean that the full package is installed.

Back to top


How can I improve the build time of my application?

Modern applications can often consist of many thousands of source files which can take a considerable amount of time to compile and link. Also, the many different techniques that Arm compilation tools use to optimize for smaller code size and higher performance can increase build times as well. This article considers various ways of decreasing the time your code takes to build.

What happens when the compiler is invoked?
When you invoke the compiler, three steps are carried out:

  1. The compiler is loaded and begins to execute.


    This will normally take a fixed period of time.

  2. The compiler tries to obtain a license.


    Assuming a license is available, this should take a similar period of time for each request. If a floating license is used, this will depend on network traffic and whether a license is free for checkout on the server. Note that whereas compilation tools in ADS 1.2 will fail if no license is available, RVCT and Arm Compiler will in most circumstances wait for a license to become available.

    The process of obtaining a floating license is more involved than obtaining a node-locked license. With a node-locked license, the compiler simply has to parse the file to check that there is a valid license.

    With a floating license, the compiler has to check where the license is, send a message through the TCP/IP stacks over the network to the server, then wait for a response. When this is received, it then needs to check whether it has been granted a license. Then, after the compile has completed the license has to be returned back to the server.

    Floating licenses provides flexibility, but at the cost of speed. If speed is your priority, then you should consider obtaining node-locked licenses for your build machines, or some node-locked licenses locked to USB network cards which can be moved between machines as required.

    Setting the environment variable TCP_NODELAY to 1, on client and server machines, improves FlexNet license server system performance when processing license requests. However, this must be used with caution, as it may cause an increase in network traffic.

    For more information on floating licenses please see the License Management FAQ entry: 'Optimizing license checkouts from a floating license server.'

  3. The compiler compiles your code.


    The time taken for this step is dependent on the complexity and size of the files being compiled. Compiling a small number of larger files may be quicker than compiling a large number of smaller files. This is because the longer compiling time per file may be offset by the smaller amount of time spent loading/unloading the compiler and obtaining licenses.

    Taking this one stage further, it is possible to have a single invocation of armcc (and single license checkout) to compile many files. To do this, instead of having a build script like:

    armcc file1.c ....
    armcc file2.c ....
    armcc file3.c ....
    :
    :

    you could instead use:

    armcc file1.c file2.c file3.c ..... 

    Alternatively, you could list all your .c files in a single "via" file, invoked with:

    armcc --via sources.txt 

    This mechanism dramatically reduces license checkouts and compiler load/unloads and can give huge improvements in performance. It does have some limitations:

    • All files will be compiled with the same options.

    • It may be difficult to convert existing build systems.

    • Usability depends on source file structure and dependencies.

    • An IDE may be unable to report which file had compile errors.

    Note

    • After finding an error, Arm Compiler and RVCT will not compile subsequent files. The much older ADS compiler will attempt to compile all subsequent files.

    • Compiling at optimization level -O3 enables multifile compilation, which may increase build times. If you wish to disable multifile compilation use the --no_multifile option.

The effect of include paths
Include paths can also increase build times. You should try to keep the number of include paths to a minimum. If you have a lot of include paths, make sure the files you need to include the most often exist in directories near the start of the include search path.

You should also try to avoid including headers more than once, which can increase compile times. You can guard against including headers multiple times. For example, if you have a header file 'foo.h', then add:

#ifndef foo_h
#define foo_h
:
// rest of header file as before
:
#endif /* foo_h */

Use of parallel make
If you are using a makefile-based build environment you could consider using parallel make (functionality provided by some make tools, such as gnu make). To do this you typically use "make -j N", where N is the number of compile processes you want to have running in parallel. Even on a single machine with a single processor, this can give you a performance boost by allowing you to hide network delays and general I/O accesses (for example, loading/saving files to disk) by fully using the CPU during these times with another compile process.

If you have multiple processor machines then you can make use of even more parallelism by using "make -j N*M"(where M is the number of processors).

Operating System Choice
Linux generally gives better build speed than Windows.

If you are using Windows, there are ways to "tune" the performance of the OS (at a general level) which may help to increase the percentage of CPU time being used for your build. At a simple level, turning off virus checking software can help, but an internet search for "tune windows performance" provides a lot of information.

In general, Arm development tools will work on Windows and Linux platforms that were in common use at the time of development. Testing will have been carried out on all of the supported platforms for that product. For more information, please refer to the documentation and/or release notes for the version of tools you are using.

Back to top


How can I make use of multiple license sources?

Scenario
I want to ensure that my tools will try to check out features from one license source (for example a local node locked license) before additional sources are tried.

Answer
The recommended way to control how Arm licenses are found is to create an environment variable called ARMLMD_LICENSE_FILE and assign to this the location of the license source.

For a Windows PC with a node locked license this will typically look something like:

ARMLMD_LICENSE_FILE=C:\Program Files\ARM\FlexLM\license.dat

If a valid license feature cannot be found from this location an error will be reported.

However, you can add additional locations to this environment variable to extend search path. For example:

ARMLMD_LICENSE_FILE=C:\Program Files\ARM\FlexLM\license.dat;8224@my_server

In the above instance the license server 'my_server' will only be used if the license feature cannot be found within the original location.

Back to top


How can I prevent occasional build failures caused by license management errors when using floating licenses?

A typical build process, for example, an overnight build, may contain many thousands of Arm compilation tool invocations. Each of the tool invocations will involve network communication between the client (build) machine and the license server.

If a short term "network glitch" occurs at the critical moment in the handshaking between the client machine and the license server, then the Arm tool will fail to obtain a license. This can lead to build failures as below: 

  • Many tool invocations will correctly generate a corresponding object file.

  • A single tool invocation that fails with one of the errors below, and hence generates no object file.

  • The remaining tools invocations correctly generate corresponding object files.

  • A final link step that fails due to the single missing object file.

In order to prevent such short term "network glitches" breaking the build process, the Arm compilation tools provide a license retry mechanism.  This mechanism causes the Arm tool to repeatedly attempt to check out a license if it receives one of the following FLEXnet error codes back from the license server:

  • -15 "Cannot connect to server".

  • -20 "Application server busy".

  • -33 "Bad encryption handshake with server".

  • -96 "License server machine is down or not responding".

  • -97 "The desired vendor daemon is down".

Up to 10 attempts will be made to reobtain a license. Each attempt will be recorded in the license server debug log as below:

Retrying - GMT : Tuesday Sep 25 14:51:46 2007
Failed to checkout: feature compiler, version 2.2, result: -15

This license retry mechanism is implemented in RVDS 2.2 Service Pack 1 (SP1) and later:
armcc and armlink - added in RVCT 2.2 build 576
armasm and fromelf - added in RVCT 2.2 build 593

The command line option to enable the license retry mechanism is --licretry. The following environment variables allow command line options to the tools to be added to all invocations of the tool, without the need to change build infrastructures.

RVCT 2.2 (release version is 349)
RVCT22_CCOPT (all release builds)
RVCT22_ASMOPT (build 593 onwards)
RVCT22_LINKOPT (build 593 onwards)

RVCT 3.0 (release version is 441)
RVCT30_CCOPT (all release builds)
RVCT30_ASMOPT (all release builds)
RVCT30_LINKOPT (all release builds)

RVCT 3.1 (release version is 569)
RVCT31_CCOPT (all release builds)
RVCT31_ASMOPT (all release builds)
RVCT31_LINKOPT (all release builds)

RVCT 4.0 (release version is 400)
RVCT40_CCOPT (all release builds)
RVCT40_ASMOPT (all release builds)
RVCT40_LINKOPT (all release builds)

Arm Compiler toolchain 4.1 (release version is 462)
ARMCC41_CCOPT (all release builds)
ARMCC41_ASMOPT (all release builds)
ARMCC41_LINKOPT (all release builds)

Arm Compiler toolchain 5.0 (release version is 90)
ARMCC50_CCOPT (all release builds)
ARMCC50_ASMOPT (all release builds)
ARMCC50_LINKOPT (all release builds)

Example usage:

set ARMCC50_CCOPT=--licretry

Note that this option is not the default, as the most common reason for seeing the one of the above errors is that there is actually a "real" problem with the network or the license server setup. Therefore, we highly recommend reading the Troubleshooting floating licensing issues article before using the license retry mechanism.

Back to top


How can I tell how many licenses are in use?

The number of seats in use "now"
To find out how many floating license seats are in use at a given point of time, you should run the command:

lmutil lmstat -a

on the server. Note that the license server log is not intended to be used for usage reporting, and this is stated in the log header text.

The output from the lmstat utility will look similar to this:

C:\\Flexlm>lmutil lmstat -a
lmutil - Copyright (c) 1989-2006 by Macrovision Corporation. All rights reserved.
Flexible License Manager status on Tue 6/2/2009 13:50
[Detecting lmgrd processes...]
License server status: 8224@myserver
    License file(s) on myserver C:Licensesmylicensefile.txt:
    myserver: license server UP (MASTER) v10.8.8.0
Vendor daemon status (on myserver):
    armlmd: UP v10.8.8.0
Feature usage info:
Users of rvd_arm:  (Total of 10 licenses issued;  Total of 1 license in use)
  "rvd_arm" v4.0, vendor: armlmd
  floating license
    ngnere clientpc CLIENTPC (v4.0) (myserver/8224 301), start Thu 6/2 14:01
Users of rvd_rtos:  (Total of 10 licenses issued;  Total of 0 licenses in use)
Users of rvd_trace:  (Total of 10 licenses issued;  Total of 0 licenses in use)

In this example, at the time the time the command was run, there were 10 seats in total for the rvd_arm feature and one of these was being used by the user "ngnere" on the computer "clientpc". This leaves 9 seats free.

The maximum number seats in use over a period of time
The lmstat command only gives the usage that moment in time.  What can be useful to know is the maximum number seats that were checked out during a given time period - for example during an overnight build.  The lmstat command does not give this information, but there ways in which it can be estimated.

  • lmstat

  • By writing an appropriate script, you can run the lmutil lmstat -a command on a regular basis and then analyze the output using a text parser, so that the number of users of a particular FEATURE or INCREMENT line over a period of time can be determined. You will need to decide how frequently you take a license usage snapshot and balance that against how much CPU time is needed to collect those data.

    An example script of how this can be done is available for download below:

    lmstat Parser (example script).

  • Log file

  • The license server logs all license check-outs and check-ins. The log file name is specified when starting the license server (lmgrd -c <license file>  -l <log file>). Here is an example extract:

    ...
    (armlmd) IN: "compiler" user@client
    (armlmd) OUT: "compiler" user@client
    (armlmd) OUT: "armlink" user@client
    (armlmd) IN: "compiler" user@client
    (armlmd) OUT: "compiler" user@client
    (armlmd) IN: "compiler" user@client
    (armlmd) OUT: "compiler" user@client
    (armlmd) IN: "compiler" user@client
    (armlmd) OUT: "compiler" user@client
    ...

    This log can be parsed by a script to calculate the maximum number of checked-out seats for a given feature/increment. Below is an example available to download:

    log file parser.

    This approach does have a number of limitations. In particular it relies on you having the complete server log, as the script relies on counting all the check-outs and check-ins to get an accurate result.

    If you want to analyze seat usage for a particular time period it helps to have a log file that only covers that period. This could be done by re-starting the server, but this is not always possible/convenient. The alternative is to use the lmswitch command to start a new log file. Please refer to the FLEXnet End User Guide for information on the use of this command.

    Note
    The perl scripts provided as part of this FAQ are provided "as is" and without support entitlement.

Back to top


How do I find my Arm serial number?

This KA covers the serial number formats used by different products, and how to find them.

Development Tools
RVI/RVT/DSTREAM
Versatile Development Boards
Versatile Express Development Boards

Why might I be asked to provide a serial number?

The most common reason is to check your support status.  Development tools and boards typically come with a time limited support entitlement, we may ask you for your serial number to check that your entitlement is valid.

I've lost my serial number, can you tell me what it is?

Usually yes, but to speed up this process please ensure you provide as much information as possible.  For example we will need: Company Name, Product, and Purchase date. 

Note
If you purchased the board or tool from a distributor, you should contact them for assistance.

Development Tools
The most common format of a development tools serial number is a 15 digit code, split into three fields:

 XXXXX-XXXXX-XXXXX 

Older tools may have a 20 digit code, split into four fields:

 XXXXX-XXXXX-XXXXX-XXXXX 

Time limited products such as Evaluation versions of RVDS or DS-5 use a different format.  Again there is a current and older format:

 LMXXXXX-XXXXX-XXXXXXXXX (current format) WTXXXXX-XXXXXXXXXX (old format) 

You can find your serial number in the tools license file.  The ARMLMD_LICENSE_FILE environment variable on your client machine should point at the license file or a license server. 

 set ARMLMD_LICENSE_FILE (Windows) print $ARMLMD_LICENSE_FILE (Linux) 

If the environment variable is pointing directly at a license file, navigate to the file and open it in a text editor. 

If the environment variable is pointing at a license server (e.g. 8224@my_lic_server), then you will need to query the server.  To do this, open a command prompt and enter:

 lmutil lmcksum 

In the license file, or in the server output, look for "SN=".  The code that follows this is your serial number.

Note
You may have multiple licenses (from different serial numbers) in the same file. We would normally suggest providing all the unique serial numbers.

RVI/RVT/DSTREAM
RVI, RVT, and DSTREAM units have 14 digit serial number, split into a 10 digit and 4 digit field:

XXXXXXXXXX-XXXX

For RVI, RVT and DSTREAM units, the serial number is printed on a sticker on the under-side of the unit. For RVT units the stick is normally not visible while it is connected to a RVI.

For RVI units, be careful not to confuse the serial number and the unit's MAC address. The MAC address is a 12 digit code.  This is also printed on a sticker, normally found on the rear of the unit.


Versatile Development Boards
Versatile development boards normally have a 14 digit serial number, split into a 10 digit and 4 digit field:

 XXXXXXXXXX-XXXX 

Some older boards may have an eight digit serial number, as a single field:

 XXXXXXXX 

The serial number is printed on a sticker, which can normally be found on the underside of the board. 

For baseboards, be careful not to confuse the serial number and the MAC address.  The MAC address is a 12 digit code, again printed on a sticker.


Versatile Express Development Boards
The Versatile Express Motherboard, CoreTile Express and LogicTile Express each have a 14 digit serial number, split into a 10 digit and 4 digit field:

 XXXXXXXXXX-XXXX

The serial number can be found on a printed sticker placed on the PCB board or by reading the EEPROM of the Versatile Express board. The location of the serial number sticker will vary depending on the type of Versatile Express board.

For the Versatile Express Motherboard, the serial number that relates to the Motherboard can usually be found printed on a sticker around the PCIe slots. See picture below. Be careful not to confuse the serial number and the MAC address.  The MAC address is a 12 digit code, again printed on a sticker.

The serial number of a particular Versatile Express board can also be obtained from the board's EEPROM contents. The following instructions explain how to read the EEPROM:

  1. Connect a serial terminal (38400, 8, n, 1) to the UART0 connector on the rear panel of the Versatile Express system. 

  2. Connect 12 volt power to the Versatile Express system. 

  3. At the Cmd> prompt on the serial terminal, issue the command 'eeprom'. 

  4. At the EEPROM> prompt on the serial terminal, issue the command 'readcf x y'. Where 'x' is the site number (Motherboard = 0, Daughterboard site 1 =1, Daugterboard site 2 = 2) and 'y' is the stack position of the board. For example, to read the Motherboard serial number:

  5. EEPROM> readcf 0 0

Back to top


How do I find my host ID?

A host ID (or hostid) is an identifier unique to a particular computer, and is used by FLEXnet to lock licenses to a particular machine. If the host ID provided at the time the license is generated is wrong, then the license does not enable the tools.

The method of obtaining a host ID differs depending on the type of license, the hardware platform, and operating system used.

  • Node-Locked Licenses: For node-locked licenses you must use the host ID of the client machine. Node-locked licenses are normally locked to the physical address, also known as MAC address, of the computer network card. If you change your network card, you must apply to Arm for a new license.

  • Floating License: For floating licenses you must use the host ID(s) of the license server(s) hosting the licenses - not that of the client workstation(s).

FLEXnet tools

If you have the FLEXnet tools installed, you can get a list of the recognized host IDs by executing the following from a terminal on Linux or a command (run) prompt on Windows:

lmutil lmhostid

The host ID is the 12 digit value, without the dashes.  So in the example above, the host ID is 001124642313.

Note
Be aware that for recent versions of Linux that use the new Consistent Network Device Naming scheme, lmutil lmhostid returns all zeros. Arm recommends that you use ifconfig for these version of Linux.

Alternative methods of finding the host ID

You can also find the host ID manually using:

OS Command Server Host ID Type Comments
Windows ipconfig /all ETHERNET The hostid is returned as the 12 digit hex ‘Physical Address’. Remove the hyphens, ‘-’, before entering it.
Linux /sbin/ifconfig eth0 ETHERNET Returns a 12 digit hex ‘HWaddr’. Remove the colons.  Only eth0 can be used to obtain the host ID.
Solaris /usr/bin/hostid LONG Returns the 8 digit hex host ID.

Note

  • The Server Host ID Type is required when you request your license from the Arm web licensing portal. See the FAQ entry, 'How do I obtain my license file,' for more information.

  • If you are requesting a three server (redundant server) license then you must have a valid and different host ID for each of the three machines.

If the client PC has multiple network adapters the command returns multiple Physical Addresses. On a Windows machine, any Physical Address can be used - as long as it is visible when running the tools. Beware of using wireless adapters because they might be disabled when not in use to save power.

Back to top


How do I install my floating license?

This FAQ is intended for customers who have already created and downloaded a FLEXlm floating license file from the Arm License Management Website.

Installing and configuring a floating license involves four steps:

  1. Install the license server utilities on the server(s).

  2. Install the license file on the server(s).

  3. Start/restart the license server(s).

  4. Configure the client machine(s) to obtain licenses from the server(s).

If you just want to replace the license file on an existing Arm license server, you must stop and restart the license server(s) before you can use a new license (see step 3 below), and step 4 above can be skipped. Step 1 can also be skipped provided that you are using the same version of the server utilities provided with the latest Arm development tools. 

Below is a brief summary of how to install an Arm development tool license. Detailed information on how to install the license server utilities and set up the client machine(s) is described in your Arm development tool's documentation (see "References" at the end of this article).

  1. Installing the server software

  2. For Development Studio 5 (DS-5) the correct version of the FLEXlm license server utilities are provided as part of an installation, for example, in DS-5 for Windows, the server utilities are located at: 

    C:\Program Files\DS-5\sw\FLEXnet_

    For other Arm development tools, the FLEXlm license server utilities for supported server platforms can be downloaded from:
    https://silver.arm.com/browse/bx002 (login/registration required) or https://developer.arm.com/products/software-development-tools/license-management/downloads (no login required)

    Copy the appropriate set of files into a destination directory (for example, C:\FLEXlm) on your license server. This directory should be on your PATH.  

    On Linux license servers run the makelinks.sh script in the license utilities directory on the server:

    sh ./makelinks.sh

    You should use the license server utilities provided with the latest Arm development tools that you have, as changes to license file formats may mean that an older license server will not support a new tools license. For more information, see the FAQ: 'Which version of the license server daemons should I run?'


  3. Installing the license

  4. Copy the license you have obtained from the web licensing system to each of the servers you are using. We recommend that you put the license file in the same directory as your license utilities. You may need to make some changes to the license file's SERVER line(s):

    • Replace this_host with the corresponding server name.

    • Add in the server port number after the host ID number. Typically this will be 8224 for Arm licenses.

    Your modified server line should then be of the following format:

    SERVER <servername> <host ID> <port>  

  5. Starting/restarting the license server(s)

  6. To stop and start the license server on Windows, run the lmtools.exe program in your license utilities directory. Stop any existing service by navigating to the Start/Stop/Reread dialog and clicking the Stop Server button. On the Configure Services dialog, add paths for the lmgrd daemon, license file, and log file. Click on the Save Service button. Then go to the Start/Stop/Reread dialog, and click on the Start Server button.

    You can also start the license server from the command line on all platforms. Navigate to your license utilities directory. To stop a license service enter the following command and when prompted enter "y" to confirm:

    lmutil lmdown -c 

    To start a license service enter the following:

    lmgrd -c  -l 

  7. Configuring the client

  8. The final step is to see if the client computers can obtain their license from the license server(s).  One way to do this is to create an environment variable called ARMLMD_LICENSE_FILE on the client. The value of this environment variable should be of the form port@host, where port is the port number of the license server, and host is the hostname of the server. If you have a three server license you must include three port@host values. All three servers must have been configured and started before you can use the license.

    Here is one method of setting the Arm licensing environment variable for a three server system for a Windows 7 client. Navigate to: Control Panel → System and Security → System → Advanced system settings Environment Variables. Add a (System or User) variable named ARMLMD_LICENSE_FILE and set it to a value of the form:

    8224@my_serverA;8224@my_serverB;@my_serverC

    You would of course use the real port and server names for your own license servers. Note that the third server in this example has no port number defined as this server is using a default port in the range between 27000 and 27009

    If you are using a Unix client machine, you should set the environment variable using the relevant command for your shell (for instance, setenv if using csh or tcsh), and separate the servers with : (colon) rather than ; (semicolon).

    If you are using Windows and the latest Arm development tools, you could instead use the Arm License Manager to configure your license environment on the client. This is discussed in the documentation links above.

Note
It is strictly forbidden to attempt to install seats which have since been replaced by upgrade/update seats. For more details, please see the FAQ: 'Do upgrade/update seats replace existing seats?'

References

Development Studio 5 (DS-5)

Keil Microcontroller Development Kit (MDK-Arm)

RealView Development Suite (RVDS)

Arm Developer Suite (ADS)

Downloads

Back to top


How do I install my node locked license?

First, obtain your license from the Arm web licensing portal (login/registration required). Save the license file as license.dat and place it into C:\Program Files\ARM (or wherever you have chosen to install the tools).

Next, follow the appropriate instructions below for the Arm development tools license that you are installing:

  • DS-5 (Windows and Unix/Linux)

    Arm recommends that you use the Arm License Manager installed with your tools to configure your licenses. This will configure the ARMLMD_LICENSE_FILE environment variable. For details on how to use the Arm License Manager, refer to chapter 3.1 of the Arm DS-5 License Management Guide.

    Alternatively, licenses can be installed manually by following the appropriate instructions from chapter 3 of the the Arm DS-5 License Management Guide:


  • RVDS versions 2.2 - 4.1 (Windows only)

    Arm recommends that you use the License Wizard, installed with your tools, to configure your licenses.  This will configure the ARMLMD_LICENSE_FILE environment variable. You can start the License Wizard from the Windows Start menu, for example:  Start → Programs → Arm → License Wizard v4.x.

    For details on how to use the Arm License Wizard, refer to chapter 3 of the Arm FLEXnet License Management Guide.


  • Older Arm development tools (Windows only)

    Create a new, or modify an existing, Windows environment variable called ARMLMD_LICENSE_FILE to point to C:\Program Files\ARM\license.dat (or the equivalent full path to your license file).  In most versions of Windows you can do this in the Control Panel, for example, on Windows 7 navigate to System and Security System → Advanced system settings → Environment Variables.

Note

  • For RVDS versions 2.2 - 4.1 and older Arm development tools, node-locked licenses are only supported on Windows.

  • It is strictly forbidden to attempt to install seats which have since been replaced by upgrade/update seats. For more details, please see the FAQ: 'Do upgrade/update seats replace existing seats?'

Back to top


How do I merge my license files?

Node Locked Licenses
Licenses can be combined if the host IDs embedded in each INCREMENT are the same.
To merge license files, copy all of the INCREMENT lines from your separate license files into a new single license file.

Floating Licenses
Licenses can be combined if:

  • The number of SERVER lines in each file is the same.

  • The host ID field of each SERVER line in one file exactly matches the host ID field of each SERVER line in the other file.

You you can merge floating licenses together automatically using Arm's web licensing portal, 'ConnectLM', or manually.

Automatic Method
In ConnectLM you can navigate to: Licensing > Licenses » Merge » Merge Licenses.  Then you can search for licenses for a particular host ID.  All licenses with that particular host ID will be returned, allowing you to select which ones you would like to merge, before clicking the Merge button.

Manual Method
To combine the license files, use a text editor and open one license file, copy the other license file into the text editor and then remove the duplicate SERVER, VENDOR and USE_SERVER lines, e.g.:

SERVER this_host <hostid> 
VENDOR armlmd
USE_SERVER

Be sure to always use the newest version of lmgrd used by either product and the newest version of each vendor daemon.

There are some examples that show this in more detail in the FLEXnet End User Guide which can also be found in the FLEXlm/FLEXnet subdirectory of your tools installation.

Note
You are not entitled to use the mechanism for merging licenses to merge seats which have since been replaced by upgrade/update seats.

Back to top


How do I move my license to another machine?

If you have already obtained your license file from Arm but need to move it to another computer within the same company (same legal entity, e.g. from pc1 at xyz Inc. to pc2 at xyz Inc.), then you will need to obtain a new license file with a new host ID. (For more details of host IDs please see the FAQ entry: 'How do I find my host ID?'

Note
A reason for this would be PC hardware failure.

  • Node Locked Licenses

    • If your host ID is obtained from your ethernet card, then a new license will be required if your ethernet card is replaced.

    • If your host ID is obtained from your hard disk volume number, then a new license will be required if your hard disk is reformatted or replaced.

  • Floating Licenses

    • For Floating licenses, the host ID will be that of the license server or license servers. Therefore a new license will only be required if the host ID of the license server(s) changes.

  • Conversion of Node locked to Floating license

    • If you wish to convert a node locked license to be floating then this will always incur a charge, as detailed in the rehost request pages.

To rehost your license, please submit a rehost request. The link below will take you to the Arm web licensing portal. Click the 'Rehost' link in the left-hand-side menu and accept the Rehost License Request (Disclaimer). Then enter either your tools serial number or host ID of your client machine.

Request License Rehost

Note
You are not entitled to attempt to rehost seats which have since been replaced by upgrade/update seats.
For more details, please see the FAQ: 'Do upgrade/update seats replace existing seats?'

Back to top


How do I obtain my license file?

Before you can use a full copy of Arm's development tools, you will need to obtain your license file.

In order to do this you will first of all need to have the following:

  1. The serial number of your product.

    This will be of the form similar to LMxxxxx-xxxxx-xxxxxxxxxx (where 'x' represents an alphanumeric character) and can normally be found on a sticker on the product box and on a card inside the product (the number of characters immediately after LM may be different). Products purchased between March 2005 and July 2008 will have a serial number of the form xxxxx-xxxxx-xxxxx and evaluation serial numbers during this period are of the form WTxxx-xxxxxxxxx (the number of characters immediately after WT may be different).  Before March 2005 serial numbers were of the form xxxxx-xxxxx-xxxxx-xxxxx.

  2. The host ID of the machine the tools will be licensed from. For more details please see the FAQ entry: How do I find my host ID?

Once you have this information, you can obtain your license file using our web licensing portal at https://silver.arm.com/licensing/.  If you are using a Windows platform and a newer version of the Arm development tools (RVDS 2.2 and later) you can use the Arm License Wizard to access the Arm web licensing portal.

Back to top


How do I transfer my license to another company?

Under Arm end user licensing practices:

  • Each seat of your Arm development tools is licensed only to the single legal entity who initially accepts it at installation (or single individual if you are a sole trader and are not operating in a company, partnership or other legal structure).

  • Each license can only be transferred to another legal entity with Arm's written consent, and no-one else (except in some cases certain on-site subcontractors) can use it.

For example, the EULA for RVDS 3.1 includes the following statements:

"THIS END USER LICENCE AGREEMENT ("LICENCE") IS A LEGAL AGREEMENT BETWEEN YOU (EITHER A SINGLE INDIVIDUAL, OR SINGLE LEGAL ENTITY) AND ARM LIMITED..."

"PERMITTED USERS: The Software and Licence Keys shall be used only by your employees, or by your bona fide sub-contractors for whose acts and omissions you hereby agree to be responsible to ARM to the same extent as those of your employees, and provided always that such sub-contractors; (i) work only onsite at your premises; (ii) are aware of the terms of this Licence; (iii) are contractually obligated to use the same only for your benefit, and (iv) agree to assign all their work product and any rights they create therein in the supply of such work to you. Only the single individual, company or other legal entity to whom ARM is supplying this Licence may use the Software and Licence Keys. You shall not allow third parties (including but not limited to any subsidiary, parent or affiliated companies, or offsite contractors you may have) to use the Software or Licence Keys unless ARM specifically agrees otherwise with you on a case by case basis."

"RESTRICTIONS ON TRANSFER OF LICENSED RIGHTS: The rights granted to you under this agreement may not be assigned, sublicensed or otherwise transferred by you to any third party without the prior written consent of ARM. You shall not rent or lease the Software, or share it with contractors or third parties."

Equivalent or similar statements are contained in EULAs for older versions of Arm development tools.

If you want to transfer your tools licence (whether permanently or temporarily) to another company, entity, or sole trader, you will need to fill in and submit the form below.

Below are some examples of what we mean by a 'transfer', for the purposes of the standard Arm tools EULAs:

  • Licensee's assets (including the Arm tools licence) are acquired by another company.

  • Licensee is a company whose shares were acquired by another company and the acquirer now wants to transfer the tools licence out of licensee, or combine the licence into a central pool of licences available to a broader corporate group.

  • Licensee is a company that merges with another company (whether or not licensee is a surviving entity).

  • Licensee tries to relocate the licence, permanently or temporarily, to an offsite contractor.

  • Licensee makes the licence available to a subsidiary, parent or affiliated company (including but not limited to one in a different time zone or another country), for example as a permanent or temporary transfer, or to provide design services or offshore contract resource back to the original licensee.

(In those examples, "Licensee" refers to the entity that initially accepts the terms of the EULA for that licensed seat of software.)

If Arm are to consider a transfer, Arm will normally require that licences for all relevant serial numbers are legally transferred from the original licensee to new one. Please therefore raise a support case in the link below and list each serial number associated with the transfer, together with all other relevant details.

Once we have this information you will be contacted as soon possible.

Open a case


Licensing problem diagnostic scripts

The files below are scripts which contain a set of commands to help our Technical Support team diagnose licensing problems.  There are 4 scripts which cover all types of licensing. The diagnostics will collect as much relevant information as possible about your Arm tools and license configuration.

Files: Description:
get_win_server_data.bat contains the Windows server script
get_win_client_data.bat contains the Windows client script (also used for node-locked script)
get_unix_server_data.sh contains the UNIX server script
get_unix_client_data.sh contains the UNIX client script

Download Scripts

Please download the archive from the link above, go to the appropriate 'Anchor Link' below and follow the set of steps therein to help us diagnose your licensing problems.

While this is usually enough information to diagnose license problems, we may ask you to run a few more tests and send us the information.

Anchor Links:


Node-locked license (Windows only)

  1. Run get_win_client_data.bat (it may take a minute or so for the batch file to finish).

  2. Send the following information to Arm at license.support@arm.com:

    • get_win_client_data.txt file that is created by the get_win_client_data.bat file.

    • Exact text of the error that you are seeing (send the text ONLY - please do not send screenshots).

    • Any additional information describing your license problem.

Floating license running on a Windows server

  1. Extract the file get_win_server_data.bat into the FLEXlm directory on your server (where the license file and the FLEXlm software are).

  2. Run get_win_server_data.bat (it may take a minute for the batch file to finish).

  3. Send the following information to Arm at license.support@arm.com:

    • win_server_data.txt file (created by the get_win_server_data.bat file).

    • debug.log file from the FLEXlm directory on your license server.

    • Exact text of the error that you are seeing (send the text ONLY - please do not send screenshots).

    • Any additional information describing your license problem.

Floating license running on a UNIX license server

  1. Extract the file get_unix_server_data.sh into the FLEXlm directory on your server (where the license file and the FLEXlm software are).

  2. Run the get_unix_server_data.sh file (it may take a minute for the script to finish).

  3. Send the following information to Arm at license.support@arm.com:

    • get_unix_server_data.txt file that is created by the get_server_data.sh file.

    • debug.log file from the FLEXlm directory on your license server.

    • Exact text of the error that you are seeing (send the text ONLY - please do not send screenshots).

    • Any additional information describing your license problem.

Floating license and your Arm tools are running on a Windows PC client

  1. Extract the file from get_win_client_data.bat into a temporary directory on your PC.

  2. Run get_win_client_data.bat file (it may take a minute or so for the batch file to finish).

  3. Verify that you can see the license server on your network by:

    • Opening a command line window.

    • Executing the command “ping server_name” (You can find the license server name in your license file.

  4. Send the following information to Arm at license.support@arm.com:

    • win_client_data.txt file that is created by the get_license_data.bat file.

    • Exact text of the error that you are seeing (send the text ONLY - please do not send screenshots).

    • Text results from the ping command test described above.

    • Any additional information describing your license problem.

Floating license and your Arm tools are running on a UNIX (Solaris or Linux) client

  1. Extract the file from get_unix_client_data.sh into a temporary directory on your PC.

  2. Run get_unix_client_data.sh file (it may take a minute or so for the batch file to finish).

  3. Verify that you can see the license server on your network by:

    • Opening a command line window.

    • Executing the command “ping server_name” (You can find the license server name in your license file.

  4. Send the following information to Arm at license.support@arm.com:

    • unix_client_data.txt file that is created by the get_unix_client_data.sh file.

    • Exact text of the error that you are seeing (send the text ONLY - please do not send screenshots).

    • Text results from the ping command test described above.

    • Any additional information describing your license problem.

Back to top


On what virtual platforms will my Arm development tools work?

The underlying FlexNet Licensing technology in ArmCompiler 5.03 and DS-5 v5.14 onwards now supports several virtual machine platforms, as specified in the table below. While Flexera, who provides FlexNet Licensing, documents these supported platforms, Arm has not tested and validated development tools like DS-5 running on these platforms.  Therefore Arm might not be able to support users running the Arm Compiler or DS-5 on virtual platforms, if they encounter compatibility issues.

The following development tools:

  • Arm Compiler v5.03 and later

  • DS-5 v5.14 and later

  • MDK-Arm v4.70 and later


should work for these virtual platforms:

  • VMware ESX 4.0 and 4.1/ESXi 4.0 and 4.1

  • Microsoft Hyper-V Server 2008 R2 (including SP1)


on the following operating systems:

  • Windows 32-bit platforms

    • Windows Server 2008,including SP2

    • Windows Vista,including SP1 (Ultimate) and SP2 (Business, Enterprise and Ultimate)

    • Windows 7 (Professional, Enterprise, Ultimate)

    • Windows Server 2003,including SP2 and R2

  • Windows 64-bit platforms

    • Windows Server 2008, including SP2 and R2

    • Windows Vista, including SP1 (Ultimate) and SP2 (Ultimate)

    • Windows 7 (Professional)

    • Windows Server 2003, including SP2 and R2

  • Linux 32-bit platforms

    • RedHat Enterprise Linux 4, 5, 6

    • SUSE Linux Enterprise 9, 10, 11

  • Linux 64-bit platforms

    • RedHat Enterprise Linux 4, 5, 6

    • SUSE Linux Enterprise 9, 10, 11


Related:

Back to top


Optimizing license checkouts from a floating license server

When using a license server (or servers), each time a client machine invokes one of the Arm tool executables, a license checkout request will be sent across the network to the license server to obtain a license. There are a number of ways of configuring a client machine to check out a floating license from a license server and it is worth ensuring that your system is configured in such a way that the time taken for these checkout requests is minimized.

  • Use the ARMLMD_LICENSE_FILE environment variable to point to your license server(s). This environment variable is examined first by the tools, so it is preferable to use this rather than LM_LICENSE_FILE (the generic FLEXnet/FLEXlm environment variable).

  • Set ARMLMD_LICENSE_FILE to 'port@servername' rather than pointing it to a local copy of the license file. This removes the delay incurred by the tools having to process the local copy of the license file to find out the name of the license server. Note that this variable can also be used to specify multiple locations (using a list separated by semi-colons on Windows, or colons on Unix) and each location will be checked in turn until a valid license is found.

  • Check for network problems. If everything is working as it should be, then the time taken to grant a license should be proportional to the time taken to 'ping' the server on which the license resides.

    If the checkout takes longer, DNS resolution issues can be a cause of such problems. If this is the case you can sometimes overcome the problem by substituting the server's IP address for the server name where it appears in the license search paths.

    i.e. for an environment variable 'port@servername' you can specify 'port@xxx.xx.x.xxx'

    or for a server line in the license file of the form:

    SERVER servername 123a456b789c 8224

    you can specify:

    SERVER xxx.xx.x.xxx 123a456b789c 8224

    This usually solves the problem.

  • Check for server issues, particularly if you have set up ARMLMD_LICENSE_FILEto point to multiple servers.

    If any of the license search paths points to a server which is no longer running the license management software then this will cause a delay while FLEXlm waits for the license request to time out before moving onto the next location in the search path. You should ensure that there are no spurious entries here which may cause such a delay.

    There can be a problem if you are using a triple server licensing model and the first server listed in the license file is not currently running. If this is the case the FLEXlm tools will wait until a request to this server has timed out. To work around this problem, simply edit the order of the servers in the ARMLMD_LICENSE_FILE variable on the client computer. 

Back to top


Server log reports "Invalid license key (inconsistent authentication code)"

This message can indicate that you are running a older version of the FLEXlm/FLEXnet license server software that is not compatible with the license file that you have installed. This can happen if you upgrade your development tools, for example from ADS 1.2 to RVDS 4.1.  The latest version of FLEXnet is available from the following locations:

Another cause for this error message is that you have changed non-user editable parts of your license file.  For example, you may have a three server license and have commented out two of the three server lines.  The only parts of the license that you are allowed to modify are the host name (not host ID) and the port number.  You can, however, add certain arguments to your license file provided that you follow the syntax provided in the FLEXlm/FLEXnet user documentation.  For instance you can define a port number for the armlmd vendor daemon, or a path to armlmd, in your license file.

Back to top


Troubleshooting floating license issues

The aim of this guide is to make it easier for you to diagnose and solve floating licensing problems with the Arm tools. The guide is intended to help you identify an error, and navigate the product documentation and Knowledge Article database to solve it.

Before proceeding further with the guide it is recommended you review the steps for setting up a floating license server, and its client workstations, in the Arm FLEXnet License Management Guide

The guide makes number a number of assumptions:

  • You are familiar with operating system(s) installed on the server and client machines.

  • The operating system(s) being used are on the supported platforms list for the Arm product(s) you have.

  • You are using the FLEX binaries (lmgrdarmlmdlmutil, etc..) provided by Arm.

  • You have the FLEX binaries on your PATH, on both the server and client.

  • You are using Arm's RealView Development Suite (RVDS) tools (although the information is largely generic to all FLEXnet managed tools from Arm).

For a Windows install of RVDS, the installer will by default add the FLEX binaries to the PATH.  For Linux installs, you will need to source the configuration script generated by the installer (e.g. RVDS40Env.posh).

If after following the steps in this FAQ you are still unable to use your tools, please contact license.support@arm.com.

Part 1: Client or Server?

The first step in the diagnostic is to determine whether the client machine is able to successfully communicate with the server. To do this, run two quick tests:

  1. On the client

    Open a command prompt and enter:

    lmutil lmstat -a

    This command queries all the license servers on the search path (ARMLMD_LICENSE_FILE and LM_LICENSE_FILE). The output will look something like this:

    c:\>lmutil lmstat -a
    lmutil - Copyright (c) 1989-2006 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
    Flexible License Manager status on Thu 1/29/2009 12:52 

    [Detecting lmgrd processes...]
    License server status: 8224@my_lic_server           <- Name of server
    License file(s) on my_lic_server: C:\\license.dat:  <- License file location on server

    my_lic_server: license server UP (MASTER) v10.8     <- lmgrd version

    Vendor daemon status (on my_lic_server):            <- the daemons running

    armlmd: UP v10.8                                    <- daemon version

    Feature usage info:                                 <- list of components and current users

    Users of compiler: (Total of 1 license issued; Total of 0 licenses in use)

    Or, if the connection fails the output will look something like this:

    c:\>lmutil lmstat -a
    lmutil - Copyright (c) 1989-2006 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
    Flexible License Manager status on Thu 1/29/2009 12:52
    
    [Detecting lmgrd processes...]
    Error getting status: Cannot connect to license server system. (-15,10:10061 "WinSock: Connection refused")
  2. On the server

    Now run the test again, but this time on the server machine. On the server, open a command prompt and enter:

    lmutil lmstat -a

    The output will be of the same format as on the client. Based on the results of the two tests you have an indication on where the problems lies:

    On the Client On the Server See section on...
    NA FAIL Server Problems
    FAIL SUCCEED Client or Connection Problems
    SUCCEED SUCCEED Client Problems

 

Part 2: Connection/Client problems

If the server software (lmgrd) is running correctly, then the next step is to determine why the client is unable to check-out a license.

On the client, open a terminal and enter the command:

armcc --vsn

The command tells the compiler to attempt a license check-out. The output will look something like this:

C:\>armcc --vsn
ARM C/C++ Compiler, RVCT4.0 [Build 400]
Error: C9932E: Cannot obtain license for Compiler (feature compiler) with license version >= 4.0:
Cannot connect to license server system.
The license server manager (lmgrd) has not been started yet,
the wrong port@host or license file is being used, or the
port or hostname in the license file has been changed.
Feature: compiler
Server name: 10.1.72.146          
License path: 8224@my_lic_server 
FLEXnet Licensing error:-15,10.  System Error: 10061 "WinSock: Connection refused"
For further information, refer to the FLEXnet Licensing End User Guide,
available at "www.macrovision.com".

The error message gives much useful information.  For now it is the FLEXnet Licensing error  (-XXX,XXX) and the License path lines which are of most interest.

The license path is where the tools are looking for licenses.  It can contain a number of entries, each will either be <port>@<server> (e.g. 8224@my_lic_server or 8224@192.168.10.1) or the path to a license file.  In the case of license files, these should be a copy of the license file on the server (this gives the server's hostname/IP address and port).  It is recommended that you use the <port>@<host> syntax.

The error code gives the reason for the failure, the most common codes are listed below:

Note
It is possible that there is more than one reason the tools are unable to connect to the server.  The error message from the tools will only give the first error.  So once you have resolved this issue, you should re-run the command to check for further errors!

The following gives a list of common error codes:

FLEX error -4: Licensed number of users already reached
FLEX error -12: Invalid data returned from server system
FLEX error -15: Cannot connect to license server system
FLEX error -18: License server system does not support this feature
FLEX error -25: License server system does not support this version of the feature
FLEX error -38: User host on EXCLUDE list for feature
FLEX error -39: User host not on INCLUDE list for feature
FLEX error -68: License BORROW support not enabled
FLEX error -96: License server machine is down or not responding
FLEX error -97: The desired vendor daemon is down
FLEX error -114: SIGN= keyword required, but is missing from license certificate
FLEX error -9990: Invalid error code

Note
This test uses armcc to check-out a license. It may be that this check-out succeeds, but the check-out for other tools fail. If this is the case for you, run the tool that is failing and see what error code it reports. The codes are common across Arm development tools.

 

Part 3: Server problems

If the lmutil command failed on the server, it is likely that the FLEXnet server software (lmgrd and/or armlmd) is not running.  You should confirm, using Task Manager on Windows or the ps command on Linux. 

If the processes are listed, these may be stale processes left over from a crash.  Usually you will have to manually kill these stale processes before attempting to re-start the server software.  BEWARE - it is possible to run multiple lmgrd servers (but not armlmd) on the same physical machine - refer to here.

Once you have killed any stale processes try manually re-starting the lmgrd software.  The command is as follows:

lmgrd -c /path/to/license.dat -z

Replacing "/path/to/license.dat" as appropriate.  The -z flag causes the server to print all log and diagnostic information to the console.  This is not usually desirable, but useful for troubleshooting.  Alternatively, you can replace -z with -l <filename>, which directs the messages to a file. 

If the server starts up correctly, you will see something similar to this:

C:\>lmgrd -c license.dat -z
(lmgrd) -----------------------------------------------
(lmgrd)   Please Note:
(lmgrd)
(lmgrd)   This log is intended for debug purposes only.
(lmgrd)   In order to capture accurate license
(lmgrd)   usage data into an organized repository,
(lmgrd)   please enable report logging. Use Macrovision's
(lmgrd)   software license administration  solution,
(lmgrd)   FLEXnet Manager, to  readily gain visibility
(lmgrd)   into license usage data and to create
(lmgrd)   insightful reports on critical information like
(lmgrd)   license availability and usage. FLEXnet Manager
(lmgrd)   can be fully automated to run these reports on
(lmgrd)   schedule and can be used to track license
(lmgrd)   servers and usage across a heterogeneous
(lmgrd)   network of servers including Windows NT, Linux
(lmgrd)   and UNIX. Contact Macrovision at
(lmgrd)   www.macrovision.com for more details on how to
(lmgrd)   obtain an evaluation copy of FLEXnet Manager
(lmgrd)   for your enterprise.
(lmgrd)
(lmgrd) -----------------------------------------------
(lmgrd)
(lmgrd)
(lmgrd) pid 524
(lmgrd) Done rereading
(lmgrd) FLEXnet Licensing (v10.8.5.0 build 31891 i86_n3) started on my_lic_server (IBM PC) (2/5/2009)
(lmgrd) Copyright (c) 1988-2006 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
(lmgrd) US Patents 5,390,297 and 5,671,412.
(lmgrd) World Wide Web:  http://www.macrovision.com
(lmgrd) License file(s): license.dat
(lmgrd) lmgrd tcp-port 8224
(lmgrd) Starting vendor daemons ...
(lmgrd) Started armlmd (pid 132)
(armlmd) FLEXnet Licensing version v10.8.5.0 build 31891 i86_n3
(armlmd) Server started on my_lic_server for:      compiler
(armlmd) EXTERNAL FILTERS are OFF
(lmgrd) armlmd using TCP-port 1142

If the server appears to have started correctly, re-run "lmutil lmstat -a" to check that you are able to query it successfully. If this also succeeds, then monitor the server as the problem may come during operation rather than start up.

Otherwise, you will see an error message at some point after the notice. How far through the start up sequence it got before the error gives an indication of where the issue lies. Below are common messages to see in the output:

 

Part 4: Error code descriptions

-4: Licensed number of users already reached
A license file provides a fixed number of seats for each component. If all the seats are in use, further requests will not be satisfied. Normally, the server will queue a request until a seat becomes available - so that the client does not see a failure. On the client you would see something like this:

C:>armcc --vsn
Waiting for license...

There are cases where this queuing mechanism fails, and this is when you would see this error message on the client. Please see the following Knowledge Article for more information: Do RVDS floating licenses support license queuing/wait for license?


-12: Invalid data returned from server system
This message is normally only seen with older tools, such as ADS 1.2. It means that the something is interfering with the communication between the server and client. This is covered in more detail in the following FAQ: 'Why am I getting a FLEXlm -12,122 license error?'


-15: Cannot connect to license server system
The hostname or IP address specified in the license path is valid. However, the tools were unable to open a connection to a FLEX license server on the specified port. Possible causes include:

  • The FLEX server software (lmgrd) has not been started.
    If "lmutil lmstat -a" succeeded on the server then the server software is be running.

  • On the client, you have specified the wrong port on ARMLMD_LICENSE_FILE/LM_LICENSE_FILE.
    Check the port listed in the server's lmutil output, does it match the setting on the client?

  • A firewall is blocking the connection.
    It is possible that something is blocking communication, typically a firewall.  This is covered in more detail in the following FAQ: 'Why am I getting a FLEXlm -15 license error, even though my license server is running?'


-18: License server system does not support this feature
The tools were able to connect to the license server successfully. However, the server does not host the feature that the client was trying to check-out. This can happen for a number of reasons. For example, RVDS is sold as Professional and Standard editions. The Professional edition includes additional features. If you were to try using the Professional edition with a Standard license, you could see this error.

Another explanation could be that you have multiple license servers. For example, one server for Arm licenses and another third party licenses. In which case this could indicate that you are specifying the wrong server on the search path.  Check the value of ARMLMD_LICENSE_FILE on the client, and that this matches the Arm license server. 

Note
Remember that you can specify multiple license sources on the search path!

-25: License server system does not support this version of the feature
The tools were able to connect to the license server successfully. The server hosts the feature that was requested - but not the correct version. This usually indicates that you are trying to use an older license with a more recent tool.  For example, using the RVDS 4.0 tools with an RVDS 3.1 license.

Note
You may see this message in license server logs, even when the check-out succeeded. This is due how the server operates internally when it hosts a mix of licenses, and can be ignored. For further information please see FAQ: 'Why am I getting DENIED messages in my server log?'


-38: User host on EXCLUDE list for feature

-39: User host not on INCLUDE list for feature
The FLEX server allow licenses to be reserved for certain users, or groups of users.  This is done using an options file. 

These messages can be seen when a user attempts to check out a license reserved another user/group.  For more information on option files, please see the following FAQ: 'Can I reserve floating licenses for specific users?'


-68: License BORROW support not enabled

Arm's tool licenses do not support the FLEX borrow feature. Attempting to user borrow will result in this error. For further information, please see the following FAQ: Do Arm's development tools support BORROW licenses?


-96: License server machine is down or not responding
There are several variants of this message:

-96,7 "WinSock: Host not found (HOST_NOT_FOUND)"
This message is a networking fault being flagged by the host operating system (in this case Windows). It shows that the OS failed to translate the hostname into an IP address. Check that the correct name is being specified, and that your network's name resolution is working correctly. If these are correct, try using the "ping" command to check that the client can see the server on the network. 

Alternatively, try using the server's IP address instead of the hostname.

-96,491
This usually indicates the port being used by armlmd is being blocked, possibly by a firewall.  Check on the server which port is being used by the daemon and that it is open on the server's firewall. 

By default, the armlmd port number is not specified. It is assigned by the host operating system at server start. If the server has a firewall it is advisable to set the port manually.  In the license file change:

VENDOR armlmd

To:

VENDOR armlmd port=XXXX

Where XXXX is the port number you wish to use.


-97: The desired vendor daemon is down
In this case the tools were able to contact the license server (lmgrd), but the vendor daemon (armlmd) did not respond.  This usually indicates that armlmd has crashed.  Check the server's debug log, you should see a message indicating that lmgrd lost its connection to armlmd.  Shut down lmgrd, and check that there are no stale lmgrd or armlmd processes.  Then re-start lmgrd.


-114: SIGN= keyword required, but is missing from license certificate
This message is displayed when the server attempts to issue an old format license to a more recent tool.  For example, trying to issue an ADS license to RVDS.  Normally this will not happen, however there are cases where it can. For further information, please see the FAQ: 'Do RVDS floating licenses support license queuing/wait for license?'

Note
You may see this message in license server logs, even when the check-out succeeded. This is due how the server operates internally when it hosts a mix of licenses, and can be ignored. For further information please see the FAQ: 'Why am I getting DENIED messages in my server log?'

license manager: can't initialize: No SERVER lines in license file.
License path:  /path/to/license.dat
FLEXnet Licensing error:-13,66

The license file is missing the SERVER line.  This could be because it has been edited, or accidentally commented out.  Try re-downloading the license file from Arm's website.  Alternatively, you may be passing a node-locked license file, which can not be hosted in this way.

(lmgrd) License server manager (lmgrd) startup failed:
(lmgrd) CreateProcess error code: 0x6   File= armlmd.exe

lmgrd has launched and parsed the license. It has tried to launch the Arm vendor daemon (armlmd), but was unable to locate the executable.  lmgrd will have searched on the PATH, and within the same directory as itself.  Check the location of armlmd (armlmd.exe on Windows) and ensure that it is on the search path.  Alternatively you can specify the location in the license file.  The file from Arm will have this line:

VENDOR armlmd

Change to:

VENDOR /path/to/armlmd

(lmgrd) The TCP port number in the license, <port number> , is already in use.
The port specified on the SERVER line of the license file is in use.  This is usually caused by having a lmgrd process already running, for example a stale process. 

Alternatively, if lmgrd has previously crashed the OS may not yet had released the port. 

It is possible, but rare, that the port is being used by another application.

(armlmd) Invalid license key (inconsistent authentication code)
There are two common causes for this error: 

  • The hostid in the license file does not match the machine.  You will need to rehost the license to use this machine.

  • The license file has been edited.  Only a few sections of the license file can be edited, editing any other section will result in this error.  Re-download the license file from the Arm web licensing portal.

(armlmd) EXPIRED: <feature name(s)>
The feature specified has expired.  If all the features in the license file have expired the server will fail to start.

(lmgrd) MULTIPLE "armlmd" license server systems running.
You can run multiple FLEXnet license servers on the same machine - if they are for different vendors' licenses.  However, only one instance of armlmd (the Arm vendor daemon) can be running on the machine.  If armlmd is already running when the server software starts it fail with this error:

(armlmd) EXITING DUE TO SIGNAL 32
(lmgrd) armlmd exited with status 32 (Exited because another server was running) 
(lmgrd) MULTIPLE "armlmd" license server systems running.

There are two common causes of this error.  You be trying to run two instances of the license server on the same machine - both hosting Arm licenses.  This is not supported.  You will need to merge the license files, and host them from a single instance of the server software.  Merging license file is covered here.

Alternatively, if lmgrd has previously exited uncleanly it is possible that armlmd did not close down.  You should check for stale instances of armlmd, and terminate them.  On Linux this can be done with the "ps -ax | grep armlmd" command.  On Windows you can use Task Manager.


-9999: INVALID error code
Unfortunately this error message is not very informative.  It is usually caused when the server is passed a node-locked license.  This configuration is not supported, and leads to this error message.  The message is only seen at the point a client attempts to use the license, not when the license it initially parsed.  You confirm whether this is the cause by running "lmutil lmstat -a" on the either the server or a client.  If a node-locked license is present on the server, the lmstat output will include one or more lines similar to this:

Users of : (Uncounted, node-locked)

To resolve this issue you must remove all the node-locked licenses from the license file.

(lmgrd) CreateProcess error code: 0x36b1 File= armlmd.exe
This error can be seen when using Microsoft Windows for the license server.  The armlmd daemon requires libraries from Microsoft Visual Studio, if they are not present this error is seen.

license manager: can't initialize:No SERVER lines in license file
If you see this when starting the license server:

... 
(lmgrd) license manager: can't initialize:No SERVER lines in license file. 
(lmgrd) License Path: "license.dat" 
(lmgrd) FLEXnet Licensing error:-13,66

This shows that your license file does not contain a SERVER line. The SERVER line in a license file should be near the top of the file, and the format is:

SERVER   
VENDOR armlmd

 Possible causes include:

  • Passing the wrong file to lmgrd.  Check the command used to start the server, and verify the file path.

  • Passing a node-locked license to lmgrd.  This is not supported, only license files containing floating licenses should be passed to lmgrd.

  • You have edited the license file, and removed the SERVER line. 

Back to top


Troubleshooting node-locked license issues

The aim of this guide is to make it easier for you to diagnose and solve node-locked licensing problems with the Arm tools.


Part 1: Identifying the error message

We first need to identify what is going wrong. To do this open a command prompt window and execute the command armcc --vsn or armclang --vsn. Depending upon the version, the output of this command should look something like this:

C:\>armcc --vsn
Error: C9555E: License checkout for feature compiler5 with version 5.0201508 has been denied by Flex back-end. Error code: -10
Feature has expired.                              type of error
Feature:       compiler5 
Expire date:   31-oct-2015 
License path:  C:\license.dat                     path to license file(s)
FlexNet Licensing error:-10,32                    error code
For further information, refer to the FlexNet Licensing documentation, available at "www.flexerasoftware.com".  
Product: DS-5 Professional 5.23.0 [5230020]
Component: ARM Compiler 5.06 update 1 (build 61)
Tool: armcc [4d35ad]

The error message gives a lot of information, but initially we are interested in the Error  and FlexNet Licensing error fields. Between them these two fields give the type of failure. Another useful field is the License path, as this tells you where the tools are looking for a license file.

This command may complete successfully, depending upon what is the cause of your problem. In this case you need to record the error message next time you see it.

Once you have the error code and message, move on to part 2.


Part 2: Common node-locked license errors

Flex error -1: Cannot find license file
Flex error -5: No such feature exists
Flex error -8: Invalid (inconsistent) license key
Flex error -9: Invalid host. The hostid of this system does not match the hostid specified in the license file.
Flex error -10: Feature has expired
Flex error -21: Application version > License version
Flex error -89: This platform not authorized by license
Flex error -103: Terminal Server remote client not allowed
C3397E - Q0555E: No RVI-ME device found on USB


Part 3: Further support

If the error code you are seeing does not match any of those listed above, or the you have not been able to resolve your issue, contact Arm License Support for further assistance. The e-mail address is license.support@arm.com and your email should include:

  • A copy of your license file(s), as installed on the system.

  • The complete text of any error messages.

  • Which tools you are trying to run, for example Arm Compiler 5.06 update 1 installed as part of DS-5 5.23.

For users of RVDS 2.2 or later, please also run the License Wizard's diagnostic option and include the output with your e-mail. 

For users of other tool suites, please download the client diagnostic script from the Licensing Problem Diagnostic Scripts page. Run it on your machine and include its output with your e-mail.

Flex error -1: Cannot find license file
This means that the tools are unable to find a license file. This is normally because you have not yet installed a license file, or the license file has been moved since installation. To rectify, follow the instructions in this FAQ: 'How do I install my node locked license?'

Flex error -5: No such feature exists
This error means that a license file was found, but did not contain a license (valid or invalid) for the feature you are trying to use.  Typically this will be caused by:

  • Trying to use a feature which is an optional add-on for which you do not have a license
    For example multi-core debug support in RVD was an optional add-on in RVDS 2.x. Trying to connect to more than one target simultaneously would lead this error message being reported.

  • Corrupted license file
    It is possible that part of your license file has been deleted. In which case you should download a fresh copy of the license from your account on the Arm website (https://silver.arm.com/licensing).

Flex error -8: Invalid (inconsistent) license key
This error message indicates that you have a corrupted license file. This could be accidental, or because you have tried to edit the license file. Only the comment sections of Arm tools licenses can be edited (those lines starting with a # character). You can not not edit any other part of the file without it becoming invalid.
To fix, download a fresh copy of the license file from your account on the Arm web licensing portal and then follow the instructions in: 'How do I install my node locked license?'

Flex error -9: Invalid host. The hostid of this system does not match the hostid specified in the license file.
This error message occurs when the host ID the license has been locked does not match that of the system.

Arm tools licenses are locked to a specific machine using a hostid.  For node-locked licenses the hostid can be the disk serial number of the C drive, or the MAC address of an Ethernet adapter. The hostid in the license file must be visible on on your system at all times, otherwise the tools will not work.

There are several possible reasons why the hostid might not match:

  • Typing error while registering your serial number.

  • The hostid of the system has changed (e.g. due to replacing the Ethernet adapter).

  • Trying to use the license file on a different machine.

To correct this, you will need to rehost the license to the correct hostid. How to do this is covered in the following FAQ: 'How do I move my license to another machine?'

Flex error -10: Feature has expired
The license file the tools are trying to use is a temporary license, and it has expired. If you have a permanent license file already you will need change the ARMLMD_LICENSE_FILE to point at the permanent license instead. You can do this manually, or by using the License Wizard. See the following FAQ for more information: 'How do I install my node locked license?'

Flex error -21:  Application version > License version
This means that a license of the right type has been found, but it has a lower version number than is required. For example, trying to run the RVCT 3.0 compiler with a RVCT 2.1 license.

If you have recently upgraded to a newer version of the tools, it is possible that it is still trying to use the old license file. The "License path" section of the error message shows the licenses file(s) the tools are trying to use. Navigate to this file, and check whether it is the correct file for the version of the tools you are using. If it is the incorrect file, run through the instructions in the following FAQ to install the newer license: 'How do I install my node locked license?'

Flex error -89: This platform not authorized by license
Some Arm licenses restrict usage of the tools to specific platforms (e.g. Linux). This error message is seen when a platform not authorized by the license is used. For information please see: Why am I getting FLEXnet -89 error message?'

Flex error -103: Terminal Server remote client not allowed
Arm tools licenses do not support the use of terminal servers (e.g. ssh) or remote desktopping software (e.g. Microsoft Windows Remote Desktop utility). For more information see the following FAQ: 'Why am I getting a FLEXlm -103,122 license error?'

C3397E - Q0555E: No RVI-ME device found on USB
This message should only be seen when using one of the RVDK packages (e.g. RVDK for Oki, RVDK for ST). The RVDKs require both a valid license file and also the supplied RVI-ME unit to be plugged in before they will operate. This error message shows that a license file was found, but that the RVI-ME is either not plugged in or is not installed correctly.

To fix, check that the RVI-ME is plugged in. If it is, you may need to re-install the driver.

Back to top


What do "SafeCast Error 401 + 1", "SafeCast Error 407 + 1" and "SafeCast Error 408 + 1" mean?

These errors occur when attempting to use the Evaluation Tools without having already launched one of the GUI tools, i.e. AXD Debugger, or RealView Debugger. Once you have launched one of these applications using its GUI, your tools will become unlocked and the 45 day counter will begin.

Back to top


What does the error "The CodeWarrior IDE is licensed and a valid license was not found...." mean?

CodeWarrior in Arm Developer Suite requires a separate license file in addition to the ADS license file. This license file is installed by default into the ADS installation directory and is called license.dat. Because the ADS license file is also called license.dat, the CodeWarrior license file is sometimes moved or deleted by the user in error (for example when installing the ADS license file).

This will result in an error of the form: "The CodeWarrior IDE is licensed and a valid license was not found. Please contact the Metrowerks licensing department.... etc."

Solution
The problem can easily be corrected by locating the file license.dat in the root directory of the ADS CD, and copying this into the ADS installation directory.

If the ADS software is in:

    <install_folder>\ARM\ADSv1_2\

The CodeWarrior license file should be copied to:

    <install_folder>\ARM\ADSv1_2\license.dat

And the generated ADS license file should be in:

    <install_folder>\ARM\ADSv1_2\licenses\license.dat

Back to top


What is a suitable number of floating license seats required for building my application?

There are a number of factors that need to be considered when deciding how many licenses (license seats) are needed to build an application as quickly as possible using the ArmCompiler toolchain:

  • How many client machines (clients/users) will be using the tools?

  • Are the client machines multi-core machines?

  • Will the clients be running parallel builds?

  • Will the clients be running the tools simultaneously or will some users have different shift patterns?

  • Are the clients all using the same version of the compilations tools?

  • Do you operate "Build Farms"? Also known as "Compile Farms".

  • What existing licenses are available?

  • Do the licenses enable different versions of the compilation tools?

All the above considerations, and more, will influence the number of seats required to fulfil your usage requirements.

Parallel Builds 
Most C/C++ development environments depend on some version of the make program to manage the build process. A make program can be invoked using the -j flag, for example:

> make -j 4

The argument given to -j is the number of jobs the make program should attempt to run in parallel. The above command would invoke a parallel build, running four jobs in parallel. Each job requests one seat, so in this case the client would attempt to check out four seats. If there are sufficient seats available, the client should observe optimal build times. If the license server only has one seat available, the additional requests will be queued and the client would not benefit from using the -j option.

It is common to run parallel builds on multi-core machines (machines containing a processor with more than one CPU/core) to  improve build times.  If the operating system is capable of scheduling different jobs to different CPUs, then it is possible to run separate jobs on each core.  So for a quad-core machine to operate at its optimum performance, when running a parallel build, it will require at least four seats, otherwise the build might be delayed.  For example, if the client machine is a quad-core machine and runs a parallel build using a single seat license, it will request four seats and will check out one seat. The remaining requests will be queued until the seat is returned to the license pool.  Whilst the license seat is checked-out, the remaining requests are likely to result in the following message:

Warning: C9933W: Waiting for license...

Build Farms
A build farm, also known as a server farm or compile farm, is a type of super-client that contains one or more "servers" that client machines access to build applications/projects.  For example, a build farm might be used for an overnight build.  Build farms typically support parallel jobs (mentioned above), and also remote access to allow cross-platform development.

A number of clients send their builds to the "server farm" which then runs the builds, requesting seats from the license server. Server farms typically run more than one build in parallel using multiple cores, which can lead to a very high frequency of attempts to checkout a license.

Different versions of Arm tools
Arm licenses are backward compatible, so the latest license will enable the use of all versions of the tools up to and including that version of the license. Conversely, the tools require a license of the same version number or higher to operate.

When you have clients running different versions of the tools, you must ensure that you have sufficient seats of licenses to enable the use of the different tools, especially if your license file contains a mix of license versions.  Also, it is recommend to use an options file to prevent older versions of the Arm Compiler consuming licenses that enable newer versions of the Arm Compiler. For more information, please see the FAQ: Can I reserve floating licenses for specific users?

Conclusion

It is important when planning your license requirements to take into account all of the above points. It is also very important when upgrading your client machine specifications, that your server(s) are of a suitable specification to handle the clients' demands.

Back to top


Which version of the license server daemons should I run, and where do I find them?

Arm's development tools use FlexNet (formerly FLEXlm) license management from Flexera Software. Utilities are provided for running a license server on the platforms supported by the tools.

What software is needed to run a license server?
License server software consists of two parts:

  • The Arm license server vendor daemon (armlmd).

  • The Flexera Software FlexNet license server daemon (lmgrd).

Which platforms are supported?
A list of supported platforms can be found in the product documentation, and also in the following FAQs:

Where can I get the license utilities?
The latest Arm supported versions can also be downloaded from the Arm website:

For DS-5 users, the utilities are available in the following directory:

<installdir>/sw/FLEXnet_<version>

For RVDS users, the utilities are included on the install media:

<install media>/Utilities/FLEXlm/

If you are using RVDS 3.0 or later, the utilities for all platforms can be copied from the Utilities/FLEXnetsubdirectory of your RVDS installation at %ARMROOT%/Utilities/FLEXlm.

Which version of armlmd/lmgrd should I use?
You should use the version of armlmd/lmgrd supplied with your tools, or the latest version available from the Arm website.  It is strongly recommended that that you use matching armlmd/lmgrd versions.

It may be possible to use an older version of armlmd/lmgrd than supplied with the tools, but this is NOT recommended or supported.

The table below lists the minimum version of the FlexNet/FLEXlm utilities required to successfully run a license server for the corresponding Arm toolchain in the left column.

Arm toolchain Libraries version of FlexNet/FLEXlm utilities
DS-5 v5.19 and later 11.12.1.0
DS-5 v5.11 to v5.18.1 11.10.1.0
DS-5 v5.9 to v5.11 11.9.1.1
DS-5 v5.6 to v5.8 10.8.10.0
DS-5 v5.0 to v5.5 10.8.7.0
Arm Compiler 6.01 11.12.1.0
Arm Compiler 6.00 update 2 11.12.1.0
Arm Compiler 6.00 11.10.1.0
Arm Compiler 5.05 11.12.1.0
Arm Compiler 5.04 11.10.1.0
Arm Compiler 5.03 11.10.1.0
Arm Compiler 5.02 10.8.10.0
Arm Compiler 5.01 10.8.10.0
Arm Compiler 5.00 10.8.7.0
Arm Compiler 4.1 10.8.7.0
RVDS 4.1 10.8.5.0
RVCT 4.0 build 471 and later 10.8.7.0
RVDS 4.0 10.8.5.0
RVCT 3.1 build 836 and later 10.8.7.0
RVDS 3.1 10.8.5.0
RVDS 3.0 10.8.5.0
RVDS 2.2 9.2+
RVDS 2.1, 2.1.1 9.2+
RVDS 2.0 9.0#, 9.2+
ADS 1.2.1 9.0#, 9.2+
RVD 1.6.1 8.1b*
RVCT 2.0 8.1b
RVCT 1.2 8.1b
RVARMulator 1.3.1 8.1b
ADS 1.2 7.2i

 +For Red Hat Linux 9, a separate version of the FLEXlm 9.2 utilities is available, and is supplied as flexlm92_redhat9.tar.

#For Solaris 2.6, FLEXlm 9.2 tools must be used instead of FLEXlm 9.0.

*Standalone versions of RVD 1.6.1 were shipped with FLEXlm 8.2a tools; this version of the utilities is not compatible with RVCT 2.0 licenses.

Back to top


Why am I getting DENIED messages in my server log?

DENIED is not actually an error message, it is a report in the server log. This message may occur if insufficient seats are available or with combined/merged license files, where the license server contains multiple entries for different versions of the same component.

Example 1
Consider a merged RVDS v4.0 and RVDS v4.1 license. If you invoke the RVDS v4.1 compiler on a "client" machine, the server may first attempt a checkout against the "version 4.0 compiler INCREMENT". If this occurs a "DENIED" message appears in the server log.

The license server will then continue reading through the license file until it finds the correct RVDS v4.1 license, and then checks "OUT" that license feature. When the compilation is completed, the compilation license is then checks back "IN". You can see this happening in the example from a server log:

6:35:09 (armlmd) DENIED: "compiler" joeblogg@myserver (License server does not support this version of this feature (-25,334))
6:35:09 (armlmd) OUT: "compiler" joeblogg@myserver
6:35:09 (armlmd) IN: "compiler" joeblogg@myserver

Example 2
A DS-5 Professional license contains packages for some of the features, for example:

PACKAGE compiler5_pack armlmd 5.0 contains "compiler compiler5 neon_compiler compiler_pro"

The following INCREMENT line effectively enables the PACKAGE line: 

INCREMENT compiler5_pack armlmd 5.0

Additionally, if you have upgraded your license there is likely to be an UPGRADE line: 

UPGRADE compiler5_pack armlmd 5.0 5.0201209

The UPGRADE line describes the period of your maintenance. 5.0201209 means: "version 5.0 valid until 2012-09".

When invoking the compiler (armcc) version 5.01, the license mechanism will look at the compiler5_pack armlmd 5.0 5.0201209 line.  The first version it finds is 5.0 and reports a denial as that does not match with the request.

It then finds compiler5_pack armlmd 5.0 5.0201209 and checks out a license as can be seen from the following extract from your log file:

15:23:30 (armlmd) DENIED: "compiler5_pack" joeblogg@myserver (No such feature exists. (-5,341:104 "Connection reset by peer"))
15:23:30 (armlmd) OUT: "compiler5_pack" joeblogg@myserver

This is not an error. It is just reporting the sequence of events as they happen.

How to avoid these messages appearing in the server log
If you do not wish to see these DENIED messages then you can disable them as follows:

At the top of the license file on the server will look something like:

SERVER myserver 87654321 8224
VENDOR armlmd
USE_SERVER

If you change this to something like:

SERVER myserver 87654321 8224
VENDOR armlmd options=c:\\flexlmopt.txt
USE_SERVER

And create the file "c:\\flexlmopt.txt" containing the line:

NOLOG DENIED

This will prevent these DENIED messages.

Note

  • It is possible that you are seeing this message because you have have upgraded your tools from a previous version and you have not deleted your old license file, which is a strict part of our upgrade policy.

  • Licenses for newer tool versions, e.g., RVDS v4.1 licenses, will enable older versions of the tools, e.g., RVDS v4.0.

  • Please be aware that under high server loads the server log entries may not be complete.

Back to top


Why am I getting a FLEXlm -103, 122 license error?

You will see this error message, if you try to run a node-locked license under Windows Remote Desktop or Terminal Server.

The FLEXnet End User Guide states the following about the attribute TS_OK:

"FLEXlm detects when a node-locked uncounted license is running under Windows Terminal Server. To run on Terminal Server remote machines, TS_OK must be added to the FEATURE line. Without TS_OK, a user running on a Terminal Server client is denied a license."

Arm does not support the use of the TS_OK attribute.  Therefore, node-locked licenses do not work under Windows Remote Desktop or Terminal Services.

However, floating licenses will work under such an environment.

Back to top


Why am I getting a FLEXlm -12, 122 license error?

Floating license failures can occur with Arm Developer Suite (ADS) versions 1.2, 1.2.1, and RealView Compilation Tools (RVCT) version 1.2 running on Windows clients (Arm tools that incorporate FLEXlm 7.2 libraries). These failures appear as a FLEXlm -12,122 error.

Assuming that your client-server network communications are otherwise working (for instance, you can ping the server from the client), the cause of these failures is the interaction between the FLEXlm components linked into the Arm tools and certain software which can lead to Windows TCP/IP stack problems on the client. These particular problems are specific to the FLEXlm version 7.2 as used by ADS v1.2x and RVCT v1.2 and do not affect any other Arm tools.

Upgrading the FLEXlm server will not help. The problem lies within FLEXlm client code incorporated into the Arm tools mentioned above. This client code cannot be upgraded in any way.

The following are known to cause problems:

  • Antivirus Software.

  • Firewalls/VPN.

  • "Spyware".

  • TCP/IP Stack.

Each of these are explained below.

Antivirus Software
The antivirus software on the client may be causing problems with the TCP/IP stack.

Try uninstalling (rather than simply disabling) the antivirus software on the client computer and attempting the license checkout again. Macrovision state that particular configurations of the antivirus or firewall software can cause problems with FLEXlm 7.2.

In particular, there are known interactions between McAfee software (VirusScan7, Internet Security 5, and Firewall 4) and FLEXlm.

McAfee recommend upgrading the McAfee software, or uninstalling it. Disabling the software is not sufficient. We have found that removing McAfee VirusScan 7 does not necessarily resolve the licensing problem without a TCP/IP stack reset (see 4 below).

Firewalls/VPN
There are known issues with the Microsoft ISA client firewall. The solution from Macrovision is to remove this firewall software; however we have found that if this software is installed it must be enabled for license checkouts to succeed.

Spyware
We believe that certain “Spyware” can cause the -12,122 failure. Finding and removing spyware may fix the problem.

TCP/IP Stack
Removing then reinstalling the TCP/IP protocol on Windows has been seen to fix the problem. This carries some risk to your system so you may want to create a backup, or a Windows XP system restore point.

  • Windows 2000
    On Windows 2000, you can uninstall and re-install the TCP/IP drivers to clear the stack.

    1. Open Settings -> Control Panel from the Start menu.

    2. Select Network and Dial-up Connections. This will open a dialog with your available connections.

    3. Double click on the Local Area Connection (LAN) item. This will open a Local Area Connection Status dialog.

    4. Click on the Properties button. This opens a Local Area Connection Properties dialog.

    5. In the Components list, select the Internet Protocol (TCP/IP) entry, then click the Uninstall button. Close the dialog by clicking on OK. You may need to restart your computer.

    6. Reinstall the Internet Protocol by repeating steps 1 to 5, then click on the Install button. This opens a Select Network Component Type dialog. Choose Protocol, then click the Add button. This opens a Select Network Protocol dialog.

    7. In the Manufacturers list, select Microsoft. In the Network Protocol list, select Internet Protocol (TCP/IP). You may need to insert your Windows 2000 disk and browse to find the protocol. Click OK to install. You may need to restart your computer.

    8. Resetting the TCP/IP stack is now complete.

  • Windows XP
    On Windows XP you will need to modify the registry to clear the TCP/IP stack, as you cannot uninstall the TCP/IP drivers.

    1. Save your current registry settings. Open the registry editor (Start->Run...regedit). Open this registry branch:

       HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip 

      Then select Registry -> Export Registry File.

    2. Reset the TCP/IP stack. In Windows XP this can be done using the "netsh" command:

       netsh int ip reset [log_file_name] 

      This is fully described in the Microsoft knowledge base article 299357.

      On Windows XP you may also have corrupted Winsock2 registry keys. Corrupted keys may cause networking problems. To resolve this, you need to first delete the corrupted keys and then reinstall the TCP/IP protocol.

To delete the corrupted registry keys:

  1. Click Start, and then click Run.

  2. In the Open box, type regedit, and then click OK.

  3. In Registry Editor, locate the following keys, right-click each key, and then click Delete:

     HKEY_LOCAL_MACHINESystemCurrentControlSetServicesWinsock
    HKEY_LOCAL_MACHINESystemCurrentControlSetServicesWinsock2
  4. When you are prompted to confirm the deletion, click Yes.

Note
Restart the computer after you delete the Winsock keys. Doing so causes the Windows XP operating system to create new shell entries for those two keys. If you do not restart the computer after you delete the Winsock keys, the next step does not work correctly.

To install TCP/IP:

  1. Right-click the network connection, and then click Properties.

  2. Click Install.

  3. Click Protocol, and then click Add.

  4. Click Have Disk.

  5. Type C:Windowsinf, and then click OK.

  6. On the list of available protocols, click Internet Protocol (TCP/IP), and then click OK.

  7. Restart the computer.

If after attempting all of the above you are still unable to successfully check out a license, please contact Arm License Support (license.support@arm.com) with details of your product serial number, operating system and what happened when you tried the suggested fixes.

Back to top


Why am I getting a FLEXlm -15 license error when using Parallel Make on Windows XP?

If you see this error part way through a parallel make (make -j) then this may be because the operating system has run out of dynamically allocated TCP ports.

FLEXlm licensing software uses typical client server protocols for each license checkout. The client application (for example the compiler) will query the operating system for a dynamically allocated port that is not already in use. Although these ports will be reclaimed by the OS after a period of time, a problem can occur if a large number of license checkouts are made in a short period, leading the OS to run out of free ports and a FLEXlm -15 error.

By default, Windows XP can dynamically allocate ports in the range 1025 to 5000, the DOS command: 'netstat -n'can be used to show if all these ports are in use.

This problem is only likely to be seen when performing parallel builds on fast (multi core) machines.

A solution may be to reduce the parallelism of the build. Alternatively, a registry change can be made to increase the number of ports that Windows will dynamically allocate as described below.

  1. Save your current registry settings. Open the registry editor (Start->Run...regedit). Open this registry branch:

    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
  2. On the Edit menu, point to New, and then click DWORD Value.

  3. Type MaxUserPortand then press ENTER.

  4. Double-click the MaxUserPort value, and then type the maximum value in decimal or hexadecimal.

    You must type a number in the range of 5000–65534 (decimal). Setting this parameter to a value outside of the valid range causes the nearest valid value to be used (5000 or 65534 ).

  5. Click OK and quit registry editor.

You must restart the computer for changes to the MaxUserPort registry setting to take effect.

Back to top


Why am I getting a FLEXlm -15 license error, even though my license server is running?

If you get the following error message on your client when you try to use a licensed feature, even though your license server has definitely been started, then the communication between the server and client has probably been blocked.

"<command line>": Error: A1439E: Cannot obtain license for "<featurename>" with license
 version >=x.x: Cannot connect to license server
 The server (lmgrd) has not been started yet, or
 the wrong port@host or license file is being used, or the
 port or hostname in the license file has been changed.
Feature:       <featurename>
Server name:   <server>
License path:  <license path>
FLEXlm error:  -15,xx.  System Error: 10061 "WinSock: Connection refused"
For further information, refer to the FLEXlm End User Manual,
available at "http://www.globetrotter.com".

On Solaris or Linux, the equivalent system error message is "Connection refused". 

There are a number of different causes for this error message.

  • The license server name is too long.
    There is a character limit on host names imposed by the FLEXlm licensing software.  If the license server's hostname is longer than the limit, you should alias it to something shorter in the hosts file (see below) or alternatively use the IP address directly.  For Arm tools using FLEXlm versions 8.1b and older (for instance, RVCT 2.0 and ADS 1.2.x), the limit is 32 characters.  For tools using newer versions of FLEXlm (such as RVDS 2.x), the limit is 64 characters.

  • The license server and clients are on different subnets.
    To solve this problem, first try modifying the value of the ARMLMD_LICENSE_FILE environment variable on the client to use the license server's fully qualified domain name (for example, "port@myserver.mycompany.comport@myserver").  If this fails to allow the client to access the server, try using the license server's IP address instead of the fully qualified domain name in the above environment variable.

  • If you are still unable to connect to the server and get the same error condition, you may need to modify the "hosts" file on your client so that it maps the fully qualified domain name of the server to its IP address.  It is strongly recommended that you consult with your company's IT department first before modifying this file.  Add an entry of the form:

    123.456.789.012    myserver.mycompany.com 

    On Solaris or Linux, the hosts file is /etc/hosts.  On Windows XP or 2000, the hosts file is
    C:WINNTSYSTEM32DRIVERSETCHOSTS.  You may need administrator privileges to edit these files. 

  • Firewalls
    Another cause of the problem is if the license server and client are on opposite sides of a firewall.  The firewall can block requests from the client despite the server being operational.  To work around this, you must first define the ports to be used by both the lmgrd and armlmd license server daemons, and then reconfigure your firewall to allow accesses to these ports.

  • Modify the top of your license server file to include port numbers for both the SERVER and VENDOR lines:

    SERVER myserver <myserver_hostid> 8224
    VENDOR armlmd port=<portnumber>

    The lmgrd port number for Arm licenses is, by default, 8224, but you can change this to another valid number if you wish.  For more information, please refer to the FLEXlm End User Guide, version 9, section B.1.3 (the document, enduser.pdf, can be found in the Utilities/FLEXlm directory of your Arm RealView tools CD-ROM).  This explains how to set the vendor daemon port number.

    Please note that Arm does not support the use of WAN-based license.

Back to top


Why am I getting a FLEXlm -15, 10 license error?

This error message usually means that the FLEXlm license management daemons are not running and the client cannot connect to license server.  Reasons for this error include:

  • The license server has not yet been started
    It is possible for the FLEXlm error message -15,10 to occur because the license server has not been started. For more information on starting a license server please see section 4.3 - 'Starting the license server' in the Arm FLEXlm License Management Guide.

  • The wrong port@host is being used
    Your license file may contain an invalid port number.  The default port number used by Arm is '8224'.  See section 4.2 of the Arm FLEXlm License Management Guide for more information about port numbers.

  • The port or hostname in the license file has been changed
    You may have accidentally edited your license file.  If this is the case, then replace your license file with the original file you received from https://silver.arm.com/licensing or by email and repeat the installation of your floating license by carefully following the instructions from the FAQ:  How do I install my floating license?

  • The client has not been configured to obtain a license from the server
    The client may not have an environment variable, ARMLMD_LICENSE_FILE, which references the license server or the local license file.  Alternatively you may not have installed a local copy of the server license file on the client computer.  For more information, please see the Floating License Installation document within the FAQ:  How do I install my floating license?

If you are still seeing the same error message after trying all of these possible solutions and your license server is definitely operational, refer to the FAQ,  Why am I getting a FLEXlm -15 license error, even though my license server is running?

If you still have problems, contact license.support@arm.com with full details of your license server and client configuration, license file(s), and status of the lmgrd and armlmd tasks on the server.

Back to top


Why am I getting a FLEXnet -89 license error?

Some Arm licenses are for a specific platform, for example, a DS-5 Microsoft Windows node-locked license.  When working with this type of license, the tool will perform a run-time check to ensure the correct platform is being used.  If the required platform is not found you will see the following error message:

Error: C3397E: Cannot obtain license for <Tool> (feature <feature>) with license version >= <version>:
This platform not authorized by license
Feature: <feature>
Platforms: i86_r <> I86_N
License path: /path/to/license/file.dat
FLEXlm error: -89,310
For further information, refer to the FLEXlm End User Manual,
available at "www.macrovision.com".

In order to use your license you will have to switch to a supported platform for the license.

Back to top


Why am I getting a FlexNet -7, 10015 license error?

FlexNet error -7,10015 can occur when the version of the FlexNet Publisher software running on your license server is older than the version required by the tool that is being invoked.

For example, unless your license server is running FlexNet 11.12.1.0 or later, invoking armcc version 5.05 will result in the following error:

Error: C9555E: License checkout for feature compiler5 with version 5.0201409 has
been denied by Flex back-end. Error code: -7
No socket connection to license server manager.
Feature: compiler5
License path: 8224@servername
FlexNet Licensing error:-7,10015
For further information, refer to the FlexNet Licensing documentation,
available at "www.flexerasoftware.com".
Product: ARM Compiler 5.05
Component: ARM Compiler 5.05 (build 41)
Tool: armcc [4d0eb9]

To resolve this issue, please download and install the latest version of the license server software from https://silver.arm.com/browse/BX002 (login/registration required) or https://developer.arm.com/products/software-development-tools/license-management/downloads (no login required).

See also:


Why do I see "license checkout" or "not supported" errors?

This article applies specifically to:

  • Arm Compiler 5.02 and later.

  • DS-5 version 5.20 and later.

  • Keil Microcontroller Development Kit (MDK-Arm) version 5.12 and later.

Arm tools including Development Studio 5 are managed using Flexera Software's FlexNet Publisher product. Users normally only need to carry out the following steps to enable use of the tools:

  1. Purchase and download an Arm tools (FlexNet) license.

  2. Download and install the toolchain.

  3. Install the license by following some basic instructions provided in the following FAQs:

You may, however, also need to select a tool variant.

Tool variants
Arm toolchains are available in different flavors, for example:

  • Keil MDK-Arm Professional and Keil MDK-Arm Standard edition.

  • DS-5 Professional Edition and DS-5 Ultimate Edition.

These are known as "tool variants". Each tool variant supports different feature sets. Despite there being different variants of a given toolchain, the installer (32-bit or 64-bit) does not support custom installations which means that all components and features are installed and your license determines which components and features may or may not be used. For example, a DS-5 Ultimate Edition license permits the use of all of the installed components whereas a DS-5 Professional Edition license, for instance, does not permit development for the Armv8 architecture.

Depending on your license(s), you might be able to select from a number of different tool variants.

Tool variant-related error messages
In rare circumstances, an Arm Compiler configuration problem may occur if:

  • The tool is invoked by a user who has not configured which tool variant they would like to use.

  • The user has selected the wrong tool variant for their license.

  • The tool is unable to locate the <install_dir>/sw/mappings directory.

Typical error messages are of the form: 

  • Error: C9555E: License checkout for feature <feature_name> with version <version_number> has been denied by Flex back-end. Error code: -5.
  • Error: L9580E: <feature_name> is not supported by this product.
  • Fatal error: L3903U: Argument '<feature_name>' not permitted for option 'cpu'.
  • error: License checkout for feature <feature_name> was denied by product definition.
  • error: <feature_name> is not supported by this product.
  • Error: A9511E: Product definition file was not found.

For example:

  • error: Cortex-A53 is not supported by this product
  • test.c: Error: A9511E: Product definition file was not found. The following paths were searched: - C:\Keil_v5\ARM\ARMCC\Bin\.elmap - C:\Keil_v5\ARM\ARMCC\Bin\..\..\sw\mappings\.elmap - C:\Keil_v5\ARM\ARMCC\Bin\..\..\..\sw\mappings\.elmap - C:\Keil_v5\ARM\ARMCC\Bin\..\sw\mappings\.elmap test.c: Error: A9545E: Info key CT.ProductName could not be found in product definition

Resolving tool variant-related error messages
Arm recommends using the Arm Compiler in a supported environment such as Eclipse for DS-5, the DS-5 Command Prompt, or µVision IDE for MDK-Arm.

Resolving tool variant related error messages within Eclipse IDE
The toolkits listed by the Arm License Manager are determined by the licenses that are available. For example, the Arm DS-5 Ultimate Edition option will only appear in the list if the available licenses support Arm DS-5 Ultimate Edition.

  1. Launch Eclipse for DS-5.

  2. Open the Arm License Manager window from the Help menu.

  3. Confirm that the Configuration tab contains your license, and if not use the Add License... feature.

  4. Select the toolkit from the drop down list.

Resolving tool variant related error messages µVision IDE
Check that you have installed the correct license file within the License Management window. If you are still experiencing issues using the tools contact Keil Support.

Resolving tool variant related error messages the DS-5 Command Prompt
Make sure that you use the select_toolchain or select_default_toolchain command before attempting to use the tools.

Resolving tool variant related error messages with Streamline
If you are experiencing tool variant related error messages when using the Streamline profiling tool, contact Arm Technical Support.

Resolving tool variant related error messages when using Arm tools in a non-Arm supplied environment
If you intend to use Arm Compiler in an alternative environment, for example, a standard Command Prompt in Windows, you will need to manually configure your tool variant. For the latest versions of Arm Compiler it is recommended to set the tool variant using the ARM_TOOL_VARIANT environment variable. Older versions of Arm Compiler do not use the ARM_TOOL_VARIANT environment variable and instead it is necessary to use the --tool_variant=<opt> option.

The value of ARM_TOOL_VARIANT or --tool_variant=<opt> should be set according to the table below.

License Tool variant <opt>
DS-5 Ultimate Edition
ult
DS-5 Ultimate Evaluation Edition
ulteval
DS-5 Professional Edition pro
DS-5 Professional Evaluation Edition ds5eval
DS-5 Altera Edition altera
DS-5 Starter Kit for Renesas RZ renrz_sk
DS-5 Renesas RZ Edition renrz_tk
DS-5 Starter Kit for Vybrid Controllers vf6xx_sk
DS-5 Vybrid Controller Edition vf6xx_tk
MDK-Professional Edition mdk_pro_flex
MDK-Standard Edition mdk_std_flex
MDK-Cortex-M Edition mdk_cm_std_flex

If DS-5 has been correctly configured, the prefix can be found in the Product Information reported in the Diagnostics tab of the Arm License Manager:

Arm Compiler 6
When using Arm Compiler 6.01 or later set the ARM_TOOL_VARIANT environment variable as follows:

ARM_TOOL_VARIANT=<opt>

When using Arm Compiler version 6.00 set environment variables as follows:

ARMCOMPILER6_ASMOPT=--tool_variant=<opt>
ARMCOMPILER6_CLANGOPT=--tool_variant=<opt>
ARMCOMPILER6_FROMELFOPT=--tool_variant=<opt>
ARMCOMPILER6_LINKOPT=--tool_variant=<opt>

Alternatively, specify the option directly on the command-line, for example:

armclang --tool_variant=<opt> --target=aarch64-arm-none-eabi -c main.c

Arm Compiler 5
When using Arm Compiler 5.04 update 3 or later set the ARM_TOOL_VARIANT environment variable as follows:

ARM_TOOL_VARIANT=<opt>

When using Arm Compiler 5.02, Arm Compiler 5.03, and earlier releases of Arm Compiler 5.04, set environment variables as follows: 

ARMCC5_ASMOPT=--tool_variant=<opt>
ARMCC5_CCOPT=--tool_variant=<opt>
ARMCC5_LINKOPT=--tool_variant=<opt>
ARMCC5_FROMELFOPT=--tool_variant=<opt>

Alternatively, specify the option directly on the command-line, for example:

armcc --tool_variant=<opt> -c main.c

Other information

On Windows, if you want to create a shortcut to Eclipse for DS-5 or add (pin) Eclipse for DS-5 to your taskbar, ensure that the Target location points to:

<installdir>\bin\eclipse.exe

and not:

<installdir>\sw\eclipse\eclipse.exe 

See also:

Attachments:

Back to top


Why do I see C9931W or C9933W reported as an error?

Arm Compiler is a license managed product. When one of the Arm Compiler tools acquires a license that has an expiry date in the near future, that tool reports diagnostic 9931. For example:

Warning: C9931W: Your license for Compiler (feature compiler) will expire in 28 days

If a license server is being used, it can be the case that all suitable licenses are already in use by other tool invocations. In these circumstances, the Arm Compiler tools will queue until a license becomes available after reporting diagnostic 9933:

Warning: C9933W: Waiting for license...

By default, the Arm Compiler reports both of the above messages with warning severity.

Some build environments use the --diag_error=warning option in order to upgrade all warning messages to error severity. For many releases of Arm Compiler, this includes diagnostics 9931 and 9933:

Error: C9931W: Your license for Compiler (feature compiler5) will expire in 14 days
Error: C9933W: Waiting for license...

To avoid this issue, either:

  • Add --licretry --diag_suppress=9931,9933to the command-line options specified in the build system for the armasm, armcc, armlink, and fromelf.

  • Set environment variables as below.

Arm Compiler 4.0

ARMCC40_ASMOPT=--licretry --diag_suppress=9931,9933
ARMCC40_CCOPT=--licretry --diag_suppress=9931,9933
ARMCC40_FROMELFOPT=--licretry --diag_suppress=9931,9933
ARMCC40_LINKOPT=--licretry --diag_suppress=9931,9933

Arm Compiler 4.1

ARMCC41_ASMOPT=--licretry --diag_suppress=9931,9933
ARMCC41_CCOPT=--licretry --diag_suppress=9931,9933
ARMCC41_FROMELFOPT=--licretry --diag_suppress=9931,9933
ARMCC41_LINKOPT=--licretry --diag_suppress=9931,9933

Arm Compiler 5

ARMCC5_ASMOPT=--licretry --diag_suppress=9931,9933
ARMCC5_CCOPT=--licretry --diag_suppress=9931,9933
ARMCC5_FROMELFOPT=--licretry --diag_suppress=9931,9933
ARMCC5_LINKOPT=--licretry --diag_suppress=9931,9933

Arm Compiler 6

ARMCOMPILER6_ASMOPT=--licretry --diag_suppress=9931,9933
ARMCOMPILER6_FROMELFOPT=--licretry --diag_suppress=9931,9933
ARMCOMPILER6_LINKOPT=--licretry --diag_suppress=9931,9933

See also:

Back to top


Why do I sometimes see licensing error messages displaying the feature name "bsp_<feature>"?

From RVCT 4.0 patch 5 (build 697) to Arm Compiler 5.04 update 2 (build 82) inclusive, the license checkout behavior for certain features is as described below:

  • If the standard <feature> checkout does not succeed, an attempt will be made to find a 'bespoke feature' named bsp_<feature>.

  • If the 'bespoke feature' checkout also does not succeed, two license errors will be reported: One for <feature>and another for bsp_<feature>.

The following example shows a license checkout failure that demonstrates this behavior:

C:\>armcc --vsn
ARM C/C++ Compiler, RVCT4.0 [Build 697]
Error: C9932E: Cannot obtain license for Compiler (feature compiler) with license version >= 4.0
Cannot connect to license server system.
The license server manager (lmgrd) has not been started yet, the wrong port@host or license file is being used,
or the port or hostname in the license file has been changed.
Feature: compiler
Server name: 10.1.2.3
License path: 8224@Server;
FLEXnet Licensing error:-15,10. System Error: 10061 "WinSock: Connection refused"
For further information, refer to the FLEXnet Licensing documentation, available at "www.acresso.com".
Cannot obtain license for Compiler (feature bsp_compiler) with license version >= 4.0
Cannot connect to license server system.
The license server manager (lmgrd) has not been started yet, the wrong port@host or license file is being used,
or the port or hostname in the license file has been changed.
Feature: bsp_compiler
Server name: 10.1.2.3
License path: 8224@Server;
FLEXnet Licensing error:-15,10. System Error: 10061 "WinSock: Connection refused"
For further information, refer to the FLEXnet Licensing documentation, available at "www.acresso.com".

Your license file will typically not contain these 'bespoke features', in which case no benefit is gained by the tools searching for bsp_<feature>.

The armasmarmccarmlink, and fromelf tools can be prevented from searching for features named bsp_<feature> by using the --licensing=flex option.

Back to top