# [UBL Local License Server (LLS) setup](https://learn.arm.com/install-guides/license/ubl_license_admin/)

## About this Install Guide

| Reading time: | 15 min |
|---------------|--------|
| Last updated: | 22 Jun 2026 |
| Author: | Ronan Synnott, Arm [View](https://linkedin.com/in/ronansynnott) |
| Official docs: | [View](https://developer.arm.com/documentation/107573) |

This guide shows you how to install and use the tool with the most common configuration. For advanced options and complete reference information, see the official documentation. Some install guides also include optional next steps to help you explore related workflows or integrations.

## How do I access the Arm license portal?

To generate your licenses you need access to the Arm user-based licensing portal, with the account that the licenses were assigned to.

Verify you can access the following and see your assigned licenses before you begin.

```
https://developer.arm.com/support/licensing/user-based
```

## How do I set up the license server?

UBL license server software is supported on a variety of operating systems or virtual machines.

The license server uses a number of standard Linux utilities, including Python and Java.

```
sudo apt update
sudo apt install -y openjdk-11-jre-headless python-is-python3
```

See [Hardware and software requirements](https://developer.arm.com/documentation/107573/latest/Installing-and-populating-the-license-server/Hardware-and-software-requirements) in the [User-based Licensing Administration Guide](https://developer.arm.com/documentation/107573).

### How do I download and install the server software?

The local license server (LLS) software can be downloaded from:

```
https://lm.arm.com/downloads
```

Expand the tarball (named `flexnetls-armlmd-<version>.tar.gz`), and install the license server software.

```
tar -xf flexnetls-armlmd-1.2024050.0.tar.gz
sudo ./flexnetls-armlmd-1.2024050.0/install_license_server
```

Additional options are described in the [License Server Administration Guide](https://developer.arm.com/documentation/107573/latest/Installing-and-populating-the-license-server/Install-your-license-server).

The installer will automatically start the license server software. When complete, you will see output similar to:

```
__output__ License server service flexnetls-armlmd is starting, and will start automatically on system start-up.
__output__ Waiting for license server... (up to 120 seconds, or press CTRL-C to stop waiting)
__output__ License server running and ready to accept requests at http://<external server name or IP address>:7070
```

### How do I add the install directory to the search path?

It is recommended to add the server install directory to the `PATH` so that license server commands can be easily called. For example the default location:

```
export PATH=/opt/flexnetls-armlmd/bin:$PATH
```

### How do I set the administrator password?

You must set an appropriate administrator password to be able to execute subsequent commands. Use the following:

```
armlm_change_admin_password
```

> **Note**: The administrator password is only stored locally. If you forget the password, you must uninstall and reinstall the license server. See the [License Server Administrator Guide](https://developer.arm.com/documentation/107573/latest/License-server-administration/Reset-the-administrator-password).

### How do I verify the server hostid?

The default `hostid` was selected by the license server installer. To view the selected hostid use:

```
armlm_show_hostid
```

which will output all available hostids, and highlight as `selected` the one that will be used. For example:

```
__output__ {
__output__   "selected" : {
__output__     "hostidType" : "ETHERNET",
__output__     "hostidValue" : "001122334455"
__output__   },
__output__   "hostids" : [ {
__output__     "hostidType" : "ETHERNET",
__output__     "hostidValue" : "001122334455"
__output__   }, {
__output__     "hostidType" : "ETHERNET",
__output__     "hostidValue" : "445566778899"
__output__   } ]
__output__ }
```

If you wish to change the `selected` hostid, edit the `/server/local-configuration.yaml` file. See the [documentation](https://developer.arm.com/documentation/107573/1-2024500/Installing-and-populating-the-license-server/Configure-your-license-server) for full details.

```
# Specify the hostid to be used. Syntax: 001122334455/ETHERNET. Has to be one
# of the hostids reported by armlm_show_hostid.
active-hostid: 445566778899/ETHERNET
```

### How do I register the license server with Arm?

Create a license server identity file (`identity.bin`) using:

```
armlm_generate_server_identity
```

Access the Arm user-based licensing portal.

```
https://developer.arm.com/support/licensing/user-based
```

Navigate to `Manage License Servers`, and click on `Register Local License Server`. Upload the identity file.

### How do I add licenses to the server?

Click on `Add Products` and select the quantity of the available licenses to assign to that server. When satisfied, click on `Add Products` and a license file will be generated.

If not automatically downloaded or if to consolidate with existing licenses, click on `Download all licenses allocated to this server`.

Install the license file on the license server with:

```
armlm_update_licenses --data-file <license_file>
```

You will see the following output when successful.

```
__output__ Licenses have been successfully updated. No confirmation is required.
```

The licenses are now ready to use by the [end-users](https://learn.arm.com/install-guides/license/ubl_license_enduser/).

## How do I change installed licenses per server?

### How do I add more licenses to the server?

To **add** licenses to the server, update the licenses assigned to the server appropriately in the portal.

Download and install the new license file on the server, as described [above](#addlicenses).

### How do I delete licenses from the server?

To **remove** licenses, first update the licenses assigned to the server appropriately in the portal.

Download and install the new license file on the server, as described [above](#addlicenses).

You must then generate a `confirmation` that the licenses have been removed from that server:

```
armlm_generate_server_confirmation
```

Upload the generated `confirmation.bin` file to the portal. The licenses will be returned to your pool for reassignment to another server.

> **Note**: You must delete all licenses from a server before decommissioning.

If the license server is no longer in use, you can delete it from the portal by clicking `Obsolete server`.

## How do I monitor license server status and usage?

### How do I check server status?

To check the status of the server application, use:

```
armlm_check_server_status
```

A working server will output:

```
__output__ License server running and ready to accept requests at http://<external server name or IP address>:7070
```

### How do I check license usage?

To list the number of licenses (total and used) use:

```
armlm_list_products
```

Example output:

```
__output__ 1 product found on license server:
__output__
__output__ Hardware Success Kit (Early Access), HWSKT-EAC0, 2 seats, 1 seat used
__output__     Order Id: 0000000000, valid until: 2023-Dec-31 23:59:59 UTC, 2 seats, 1 seat used
```

### How do I check which users are active?

To list the current active users of the licenses use:

```
armlm_list_users
```

Example output:

```
__output__ User   Product Code   Product Name                          Last Access                Held Until
__output__ ----   ------------   ------------                          -----------                ----------
__output__ usr1   HWSKT-EAC0     Hardware Success Kit (Early Access)   2023-Jun-13 12:40:30 UTC   2023-Jun-20 12:40:30 UTC
```
