

# Setting up the Amazon DCV server
<a name="setting-up"></a>

To use Amazon DCV, install the Amazon DCV server software on the server where you intend to host Amazon DCV sessions. Make sure that the software is properly licensed.

The following topics describe how to install and license the Amazon DCV server. The [Licensing](setting-up-license.md) topic applies to installing on on-premises and on other cloud-based servers only. This is because no license is required to use the Amazon DCV server on an Amazon EC2 instance.

**Topics**
+ [Step 1: Install the Amazon DCV Server](setting-up-installing.md)
+ [Step 2: License the Amazon DCV Server](setting-up-license.md)
+ [Step 3: Set up Amazon DCV Server imaging (Optional)](imaging.md)

# Step 1: Install the Amazon DCV Server
<a name="setting-up-installing"></a>

The following topics describe how to install the latest version of the Amazon DCV server on Windows, Linux, and macOS. Follow these steps if you're installing Amazon DCV on an Amazon EC2 instance or other on-premises or cloud-based server.

**Note**  
If you're upgrading from an earlier version of the Amazon DCV server to the latest version, see [Upgrading the Amazon DCV Server](setting-up-upgrading.md).

**Note**  
Amazon DCV server for macOS is only supported on Amazon EC2 Apple silicon instances.

**Topics**
+ [Installing the Amazon DCV Server on Windows](setting-up-installing-windows.md)
+ [Installing the Amazon DCV Server on Linux](setting-up-installing-linux.md)
+ [Installing the Amazon DCV Server on macOS](setting-up-installing-macos.md)

# Installing the Amazon DCV Server on Windows
<a name="setting-up-installing-windows"></a>

The Amazon DCV server software can be installed on a Windows Server and run your Amazon DCV sessions from there. Before installing the software, check that your server meets the prerequisites for running the software. The process for installing the software can either be done manually through an installation wizard or automatically installed by Amazon DCV.

**Topics**
+ [Prerequisites](setting-up-installing-winprereq.md)
+ [Installing the Server](setting-up-installing-wininstall.md)

# Prerequisites for Windows Amazon DCV server on Amazon EC2 instances
<a name="setting-up-installing-winprereq"></a>

This topic describes how to configure your Windows Amazon EC2 instance before you install the Amazon DCV server. If you're not installing the Amazon DCV server on an Amazon EC2 Windows instance, skip these prerequisites.

**Topics**
+ [Prerequisites for all instances](#setting-up-installing-all)
+ [Prerequisites for accelerated computing instances](#setting-up-installing-graphics)
+ [Prerequisites for other instance families](#setting-up-installing-general)

## Prerequisites for all instances
<a name="setting-up-installing-all"></a>

 From version 2024.0 the Windows version of Amazon DCV has as a requirement Microsoft Visual C\$1\$1 Redistributable for Visual Studio 2022 instead of Microsoft Visual C\$1\$1 Redistributable for Visual Studio 2017. 

The best practice is that Microsoft Visual C\$1\$1 Redistributable for Visual Studio are installed before the Amazon DCV Server installation by the server administrator. The 2024.0 Amazon DCV MSI installer checks for the dependency and if they are not found, will attempt to install the requirement before the Amazon DCV installation. This behavior is a fallback mechanism which will be removed in future release. Administrators that use automation for the installation should work towards updating their automations to install Microsoft Visual C\$1\$1 Redistributable for Visual Studio before the Amazon DCV server. Also please note that Microsoft Visual C\$1\$1 Redistributable may reboot the host as part of the installation. 

## Prerequisites for accelerated computing instances
<a name="setting-up-installing-graphics"></a>

### Prerequisites for GPU graphics instances
<a name="setting-up-installing-graphics"></a>

If you're using a GPU graphics instance (for example, a G2, G3, G4dn, G4ad, or G5 instance), we recommend that you install and configure the appropriate NVIDIA or AMD GPU drivers. The GPU drivers allow for the following:
+ DirectX and OpenGL hardware acceleration for applications
+ Hardware acceleration for H.264 video streaming encoding
+ Customizable server monitor resolutions
+ Increased maximum resolution for server monitors— up to 4096x2160
+ Increased number of server monitors

For instructions on how to install NVIDIA GPU drivers on your GPU graphics instance, see the following topics in the *Amazon EC2 User Guide*.
+ For instances with an NVIDIA GPU (for example, a G2, G3, G4dn, or G5 instance), see [ Installing the NVIDIA Driver on Windows](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/install-nvidia-driver.html).
+ For instances with an AMD GPU (for example, a G4ad instance), see [ Install AMD drivers on Windows instances](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/install-amd-driver.html).

For more information about Amazon EC2 G4ad instances, see the [Deep dive on the new Amazon EC2 G4ad instances ](https://aws.amazon.com/blogs/compute/deep-dive-on-the-new-amazon-ec2-g4ad-instances/) blog post.

### Prerequisites for other accelerated computing instances
<a name="setting-up-installing-accelerated"></a>

If you're using an accelerated computing instance that isn't a GPU graphics instance (for example a P2, P3, or P3dn instance), we recommend that you install and configure the appropriate NVIDIA GPU drivers. The NVIDIA GPU drivers enable hardware acceleration for H.264 video streaming encoding.

For instructions on how to install NVIDIA GPU drivers on your accelerated computing instance, see [ Public NVIDIA Drivers](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/install-nvidia-driver.html#public-nvidia-driver) in the *Amazon EC2 User Guide*.

Installing the NVIDIA GPU drivers on an accelerated computing instance doesn't enhance server monitor limits or resolutions. To add the additional server monitor resolution support, you can install the NVIDIA GRID drivers. For more information, see [NVIDIA vGPU Software](https://www.nvidia.com/object/vGPU-software-driver.html) on the NVIDIA website.

## Prerequisites for other instance families
<a name="setting-up-installing-general"></a>

For instances other than accelerated computing instances, we recommend that you install the Amazon DCV Virtual Display driver if you are on Windows 2016 or are running a Amazon DCV server version before 2023.1. This includes instances in the general purpose, compute-optimized, memory-optimized, and storage-optimized instance families.

Installing the Amazon DCV Virtual Display driver enables the following:
+ Support for up to four monitors
+ Support for custom resolutions
+ Support for 4K UHD resolution

You can't manage server monitors attached by the Amazon DCV server using Windows Control Panel.

**Note**  
The Amazon DCV Virtual Display driver is supported on Windows Server 2016 and later. The driver is not needed if you are on Windows Server 2019 or later with DCV server 2023.1 or later since the Indirect Display Driver (IDD) is packaged with DCV server. IDD is recommended, but the [GetConsoleScreenshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetConsoleScreenshot.html) functionality will not work as expected.

**Important**  
Installing the Amazon DCV Virtual Display driver with any other GPU drivers, such as NVIDIA GPU drivers, might cause conflicts. To avoid conflicts, we recommend that you don't install the Amazon DCV Virtual Display driver in combination with any other GPU drivers.

**To install the Amazon DCV Virtual Display driver on your instance**

1. Download the Amazon DCV Virtual Display driver installer from the [Amazon DCV website](http://download.amazondcv.com).

1. Install the driver by doing one of the following:
   + Run the installation wizard
   + Double-click the installation file
   + Use the following command to run an unattended installation

     ```
     C:\> nice-dcv-virtual-display-x64-Release-88.msi /quiet /norestart
     ```

1. Reboot the instance.

1. Reconnect to the instance.

# Installing the Amazon DCV Server on Windows
<a name="setting-up-installing-wininstall"></a>

You can use an installation wizard to install the Amazon DCV server on a Windows host server. The wizard guides you through a series of steps that show how to customize your Amazon DCV server installation. Alternatively, you can use the command line to perform an unattended installation. This uses default settings to automate the installation procedure.

**Contents**
+ [Using the wizard](#setting-up-installing-windows-wizard)
+ [Using an unattended installation](#setting-up-installing-windows-unattended)

## Using the wizard
<a name="setting-up-installing-windows-wizard"></a>

Use the Amazon DCV server installation wizard for a guided installation.

**To install the Amazon DCV server on Windows using the wizard**

1. Launch and connect to the server on which to install the Amazon DCV server.

1. Download the Amazon DCV server installer from the [Amazon DCV](http://download.amazondcv.com) website.
**Note**  
The Amazon DCV server is available only in a 64-bit version and supported on 64-bit Windows operating systems.
**Tip**  
The [latest packages](http://download.amazondcv.com/latest.html) page of the download website contains links that point to the newest available version. You can use these links to automatically retrieve the newest Amazon DCV packages.

1. Run `nice-dcv-server-x64-Release-2025.0-version_number.msi`. 

1. On the Welcome screen, choose **Next**.

1. On the End-User License Agreement screen, read the license agreement. If you accept the terms, select the **I accept the terms in the License Agreement** check box, and then choose **Next**.

1. (Optional) configure which components will be installed by selecting items in the **Components Selection** screen. To mark a component for installation, select the item and choose **Will be installed on local hard drive**. To omit a component from the installation select the item and choose **Entire feature will be unavailable**.

1. On the DCV Service Configuration screen:

   1. (Optional) To manually configure your server's firewall to allow communication over the required port, select **No, I will manually configure my firewall later**.

   1. (Optional) To manually start the Amazon DCV server after the installation, select **No, I want to start a DCV Service manually**. If you select this option, you can't start a console session automatically after the installation is complete. If you select this option, step 9 is skipped.

1. Choose **Next**.

1. On the DCV Session Management Configuration screen, specify the owner for the automatic console session. Or, to prevent the automatic console session from starting after the installation is complete, select **No, I will create the session manually**.
**Note**  
Complete this step only if you previously chose to allow the server to start automatically.

1. Choose **Install**.

## Using an unattended installation
<a name="setting-up-installing-windows-unattended"></a>

Amazon DCV can install and activate the server software automatically. This is called an "unattended installation". By default, an unattended installation does the following:
+ Adds a firewall rule to allow communication over port 8443.
+ Enables Amazon DCV server auto-start.
+ Creates an automatic console session.
+ Sets the console session owner to the user who performs the installation.

You can override the default actions by appending the following options to the installation command:
+ `DISABLE_FIREWALL=1` — Prevents the installer from adding the firewall rule.
+ `DISABLE_SERVER_AUTOSTART=1` — Prevents the Amazon DCV server from starting automatically after the installation.
+ `DISABLE_AUTOMATIC_SESSION_CREATION=1` — Prevents the installer from starting the automatic console session.
+ `AUTOMATIC_SESSION_OWNER=owner_name` — Specifies a different owner for the automatic console session.
+ `ADDLOCAL=component_list` — Adds elements to the set of elements to be installed.
+ `REMOVE=component_list` — Removes elements from the set of elements to be installed.
**Note**  
The `REMOVE` option is evaluated after the `ADDLOCAL` option. An element that's on both lists isn't installed.

The component\$1list is a comma-separated list that can contain the following values:
+ `audioMicDriver`: Microphone driver
+ `audioSpkDriver`: Speaker driver
+ `printerDriver`: Printer driver
+ `usbDriver`: USB device remotization driver (Disabled by default)
+ `webcamDriver`: Webcam driver
+ `gamepadDriver`: Gamepad driver
+ `webClient`: Web client
+ `webauthn`: Webauthn Redirection
+ `iddDriver`: Indirect Display Driver (Recommended)
+ `webrtc`: WebRTC Redirection Components
+ `ALL`: All components

**To install the Amazon DCV server on Windows using an unattended installation**

1. Launch and connect to the server that you intend to install the Amazon DCV server on.

1. Download the Amazon DCV server installer from the [Amazon DCV](http://download.amazondcv.com) website.
**Note**  
The Amazon DCV server is available only in a 64-bit version and supported on 64-bit Windows operating systems.

1. Open a command prompt window and navigate to the folder where you downloaded the installer.

1. Run the unattended installer as seen in one of the following examples:
   + Install default components:

     ```
     C:\>  msiexec.exe /i nice-dcv-server-x64-Release-2025.0-version_number.msi
     /quiet /norestart /l*v dcv_install_msi.log
     ```
   + Install all components:

     ```
     C:\>  msiexec.exe /i nice-dcv-server-x64-Release-2025.0-version_number.msi
     ADDLOCAL=ALL /quiet /norestart /l*v dcv_install_msi.log
     ```
   + Install a subset of components:

     ```
     C:\>  msiexec.exe /i nice-dcv-server-x64-Release-2025.0-version_number.msi
     ADDLOCAL=audioMicDriver,audioSpkDriver,printerDriver,webcamDriver /quiet /norestart /l*v dcv_install_msi.log
     ```

# Installing the Amazon DCV Server on Linux
<a name="setting-up-installing-linux"></a>

The Amazon DCV server software can be installed on a Linux Server and run your Amazon DCV sessions from there. Before installing the software, check that your server meets the prerequisites for running the software. The process for installing the software can either be done manually through an installation wizard or automatically installed by AWS.

This section describes how to install the Amazon DCV server on Linux.

**Topics**
+ [Prerequisites](setting-up-installing-linux-prereq.md)
+ [Installing the Server](setting-up-installing-linux-server.md)
+ [Performing post-installation checks](setting-up-installing-linux-checks.md)

# Prerequisites for Linux Amazon DCV servers
<a name="setting-up-installing-linux-prereq"></a>

Amazon DCV enables clients to access a remote graphical X session on a Linux server. This provides access to the corresponding Linux desktop. Amazon DCV supports two types of Linux desktop streaming: console sessions and virtual sessions. For more information about console and virtual sessions, see [Managing Amazon DCV sessions](managing-sessions.md).

This topic describes how to install the prerequisites required to use Amazon DCV on a Linux server.

**Topics**
+ [Install a desktop environment and desktop manager](#linux-prereq-gui)
+ [Disable the Wayland protocol (GDM3 only)](#linux-prereq-wayland)
+ [Configure the X Server](#linux-prereq-xserver)
+ [Install the glxinfo utility](#linux-prereq-tools)
+ [Verify OpenGL software rendering](#linux-prereq-opengl)
+ [Install GPU drivers for graphics instances](#linux-prereq-gpu)
+ [Install XDummy driver for non-GPU instances](#linux-prereq-nongpu)

## Install a desktop environment and desktop manager
<a name="linux-prereq-gui"></a>

Install a desktop environment and desktop manager to improve your experience with Amazon DCV on a Linux server.

A desktop environment is a graphical user interface (GUI) that helps you to interact with the Linux operating system. There are several desktop environments, and Amazon DCV works with many of them. A desktop manager is a program that manages the user login screen, and starts and stops the desktop environment sessions and the X server.

The following tabbed content shows the steps for installing the default desktop environment and desktop manager on the supported operating systems and also shows how to configure and start the X server on the supported operating systems.

------
#### [ RHEL, CentOS, and Rocky Linux ]

The default desktop environment for RHEL, CentOS , and Rocky Linux is Gnome3 and the default desktop manager is GDM.

**To install and configure the desktop environment and desktop manager on RHEL, CentOS, and Rocky Linux**

1. Install the desktop environment and the desktop manager packages.
   + RHEL and Rocky Linux

     ```
     $ sudo yum groupinstall 'Server with GUI'
     ```
   + CentOS

     ```
     $ sudo yum groupinstall "GNOME Desktop"
     ```

1. Update the software packages to ensure that the Linux server is up to date.

   ```
   $ sudo yum upgrade
   ```

1. Reboot the Linux server.

   ```
   $ sudo reboot
   ```

------
#### [ Amazon Linux 2 ]

The default desktop environment for Amazon Linux 2 is Gnome3 and the default desktop manager is GDM.

**To install and configure the desktop environment and desktop manager on Amazon Linux 2**

1. Install the desktop environment and the desktop manager packages.

   ```
   $ sudo yum install gdm gnome-session gnome-classic-session gnome-session-xsession
   ```

   ```
   $ sudo yum install xorg-x11-server-Xorg xorg-x11-fonts-Type1 xorg-x11-drivers 
   ```

   ```
   $ sudo yum install gnome-terminal gnu-free-fonts-common gnu-free-mono-fonts gnu-free-sans-fonts gnu-free-serif-fonts
   ```

1. Update the software packages to ensure that the Linux server is up to date.

   ```
   $ sudo yum upgrade
   ```

1. Reboot the Linux server.

   ```
   $ sudo reboot
   ```

------
#### [ Amazon Linux 2023 ]

The default desktop environment for Amazon Linux 2023 is Gnome3 and the default desktop manager is GDM.

**To install and configure the desktop environment and desktop manager on Amazon Linux 2023**

1. Install the desktop environment and the desktop manager packages.

   ```
   $ sudo dnf groupinstall 'Desktop'
   ```

1. Update the software packages to ensure that the Linux server is up to date.

   ```
   $ sudo dnf upgrade
   ```

1. Reboot the Linux server.

   ```
   $ sudo reboot
   ```

------
#### [ Ubuntu 20.x, 22.x, and 24.x ]

For Ubuntu 20.x/22.x/24.x, the default desktop environment is Gnome3 and the default desktop manager is GDM3. Starting with Ubuntu 20.x, LightDM isn't supported anymore with Amazon DCV.

**To install and configure the desktop environment and desktop manager on Ubuntu 20.x/22.x/24.x**

1. Install the desktop environment and the desktop manager packages.

   ```
   $ sudo apt update
   ```

   ```
   $ sudo apt install ubuntu-desktop
   ```

   Install GDM3

   ```
   $ sudo apt install gdm3
   ```

1. Verify that GDM3 is set as the default desktop manager.

   ```
   $ cat /etc/X11/default-display-manager
   ```

   The output is as follows.

   ```
   /usr/sbin/gdm3
   ```

   If GDM3 isn't set as the default desktop manager, use the following command to set it as the default.

   ```
   $ sudo dpkg-reconfigure gdm3
   ```

1. Update the software packages to ensure that the Linux server is up to date.

   ```
   $ sudo apt upgrade
   ```

1. Reboot the Linux server.

   ```
   $ sudo reboot
   ```

**Note**  
When using a version of Amazon DCV older than 2022.2 with **Virtual Sessions**, you may run into [a known GDM issue](https://gitlab.gnome.org/GNOME/gdm/-/issues/650). To make virtual sessions work correctly, you can adopt one of the following solutions:  
**On servers that do not have a GPU**, you can disable the desktop manager because it's not required to run virtual sessions. Configure the system to run in multi-user mode by running the following command before creating virtual sessions:  

  ```
  $  sudo systemctl isolate multi-user.target
  ```
**On servers with a GPU**, in addition to disabling the desktop manager, you need to start an X server on the system before creating virtual sessions. To do this, run the following commands:  

  ```
  $  sudo systemctl isolate multi-user.target
  ```

  ```
  $  sudo dcvstartx &
  ```
Amazon DCV 2022.2 and newer are not affected by this issue.

------
#### [ SUSE Linux Enterprise 12.x ]

The default desktop environment for SUSE Linux Enterprise 12.x is SLE Classic and the default desktop manager is GDM.

**To install and configure the desktop environment and desktop manager on SUSE Linux Enterprise 12.x**

1. Install the desktop environment and the desktop manager packages.

   ```
   $ sudo zypper install -t pattern gnome-basic
   ```

1. Verify that GDM is set as the default desktop manager.

   ```
   $ sudo update-alternatives --set default-displaymanager /usr/lib/X11/displaymanagers/gdm
   ```

   ```
   $ sudo sed -i "s/DEFAULT_WM=\"\"/DEFAULT_WM=\"gnome\"/" /etc/sysconfig/windowmanager
   ```

1. Update the software packages to ensure that the Linux server is up to date.

   ```
   $ sudo zypper update
   ```

1. Reboot the Linux server.

   ```
   $ sudo reboot
   ```

------
#### [ SUSE Linux Enterprise 15.x ]

The default desktop environment for SUSE Linux Enterprise 15.x is SLE Classic and the default desktop manager is GDM3.

**To install and configure the desktop environment and desktop manager on SUSE Linux Enterprise 15.x**

1. Install the desktop environment and the desktop manager packages.

   ```
   $ sudo zypper install -t pattern gnome_basic
   ```

1. Verify that GDM is set as the default desktop manager.

   ```
   $ sudo update-alternatives --set default-displaymanager /usr/lib/X11/displaymanagers/gdm
   ```

   ```
   $ sudo sed -i "s/DEFAULT_WM=\"\"/DEFAULT_WM=\"gnome\"/" /etc/sysconfig/windowmanager
   ```

1. Update the software packages to ensure that the Linux server is up to date.

   ```
   $ sudo zypper update
   ```

1. Reboot the Linux server.

   ```
   $ sudo reboot
   ```

**Note**  
When using a version of Amazon DCV older than 2022.2 with **Virtual Sessions**, you may run into [a known GDM issue](https://gitlab.gnome.org/GNOME/gdm/-/issues/650). To make virtual sessions work correctly, you can adopt one of the following solutions:  
**On servers that do not have a GPU**, you can disable the desktop manager because it's not required to run virtual sessions. Configure the system to run in multi-user mode by running the following command before creating virtual sessions:  

  ```
  $  sudo systemctl isolate multi-user.target
  ```
**On servers with a GPU**, in addition to disabling the desktop manager, you need to start an X server on the system before creating virtual sessions. To do this, run the following commands:  

  ```
  $  sudo systemctl isolate multi-user.target
  ```

  ```
  $  sudo dcvstartx &
  ```
Amazon DCV 2022.2 and newer are not affected by this issue.

------

## Disable the Wayland protocol (GDM3 only)
<a name="linux-prereq-wayland"></a>

Amazon DCV doesn't support the Wayland protocol. If you're using the GDM3 desktop manager, you must disable the Wayland protocol. If you aren't using GDM3, skip this step.

**To disable the Wayland protocol**

1. Open the following file using your preferred text editor.
   + RHEL, CentOS, SUSE Linux Enterprise 15.x, and Amazon Linux 2023

     ```
     /etc/gdm/custom.conf
     ```
   + Ubuntu

     ```
     /etc/gdm3/custom.conf
     ```

1. In the `[daemon]` section, set `WaylandEnable` to `false`.

   ```
   [daemon]
   WaylandEnable=false
   ```

1. Restart the GDM service.
   + RHEL, CentOS, and Amazon Linux 2023

     ```
     $ sudo systemctl restart gdm
     ```
   + Ubuntu

     ```
     $ sudo systemctl restart gdm3
     ```
   + SUSE Linux Enterprise 15.x

     ```
     $ sudo systemctl restart xdm
     ```

## Configure the X Server
<a name="linux-prereq-xserver"></a>

If you intend to use a console session or GPU sharing, you must ensure that your Linux server has a properly configured and running X server.

**Note**  
If you intend to use virtual sessions without GPU sharing, you don't need an X server.

The X server packages are typically installed as dependencies of the desktop environment and the desktop manager. We recommend that you configure the X server to start automatically when your Linux server boots.

**To configure and start the X server on Linux:**

1. Configure the X server to start automatically when the Linux server boots.

   ```
   $ sudo systemctl get-default
   ```

   If the command returns `graphical.target`, the X server is already configured to start automatically. Continue to the next step.

   If the command returns `multi-user.target`, the X server isn't configured to start automatically. Execute the following command:

   ```
   $ sudo systemctl set-default graphical.target
   ```

1. Start the X server.

   ```
   $ sudo systemctl isolate graphical.target
   ```

1. Verify that the X server is running.

   ```
   $ ps aux | grep X | grep -v grep
   ```

   The following shows example output if the X server is running.

   `root 1891 0.0 0.7 277528 30448 tty7 Ssl+ 10:59 0:00 /usr/bin/Xorg :0 -background none -verbose -auth /run/gdm/auth-for-gdm-wltseN/database -seat seat0 vt7 `

## Install the glxinfo utility
<a name="linux-prereq-tools"></a>

The glxinfo utility provides information about your Linux server's OpenGL configuration. The utility can be used to determine whether your Linux server is configured to support OpenGL hardware or software rendering. It provides information about the drivers and supported extensions.

The glxinfo utility is installed as a package dependency of DCV GL. Therefore, if you installed DCV GL, the glxinfo utility is already installed on your Linux server.

------
#### [ RHEL, CentOS, Rocky Linux, Amazon Linux 2, and Amazon Linux 2023 ]

**To install the glxinfo utility**  
Run the following command:

```
$ sudo yum install glx-utils
```

------
#### [ Ubuntu ]

**To install the glxinfo utility**  
Run the following command:

```
$ sudo apt install mesa-utils
```

------
#### [ SUSE Linux Enterprise ]

**To install the glxinfo utility**  
Run the following command:

```
$ sudo zypper in Mesa-demo-x
```

------

## Verify OpenGL software rendering
<a name="linux-prereq-opengl"></a>

On non-GPU Linux servers, OpenGL is only supported in software rendering mode using the Mesa drivers. If you're using a non-GPU Linux server and intend to use OpenGL, ensure that the Mesa drivers are installed and properly configured on your Linux server.

**Note**  
This applies to non-GPU Linux servers only.

**To verify that OpenGL software rendering is available**  
Make sure that the X server is running, and use the following command:

```
$ sudo DISPLAY=:0 XAUTHORITY=$(ps aux | grep "X.*\-auth" | grep -v Xdcv | grep -v grep | sed -n 's/.*-auth \([^ ]\+\).*/\1/p') glxinfo | grep -i "opengl.*version"
```

The following shows example output if OpenGL software rendering is available:

```
OpenGL core profile version string: 3.3 (Core Profile) Mesa 17.0.5
OpenGL core profile shading language version string: 3.30
OpenGL version string: 3.0 Mesa 17.0.5
OpenGL shading language version string: 1.30
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 17.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
```

## Install GPU drivers for graphics instances
<a name="linux-prereq-gpu"></a>

**Topics**
+ [Install and configure NVIDIA drivers](#gpu-nvidia)
+ [Install and Configure AMD Drivers](#gpu-amd)

### Install and configure NVIDIA drivers
<a name="gpu-nvidia"></a>

With Linux servers that have a dedicated NVIDIA GPU, ensure that the appropriate NVIDIA drivers are installed and properly configured. For instructions on how to install the NVIDIA drivers on an Amazon EC2 Linux instance, see [Installing the NVIDIA Driver on Linux Servers](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-nvidia-driver.html) in the *Amazon EC2 User Guide*.

**Note**  
This applies to Linux servers with NVIDIA GPUs only.
The GRID drivers support up to four 4K displays for each GPU installed. The gaming drivers support only one 4K display for each GPU installed.

After you installed the NVIDIA drivers on your Linux server, update the `xorg.conf`.

**To generate an updated xorg.conf**

1. Run the following command.

   ```
   $  sudo nvidia-xconfig --preserve-busid --enable-all-gpus
   ```

   If you're using a G3, G4 or G5 Amazon EC2 instance and you want to use a multi-monitor console session, include the `--connected-monitor=DFP-0,DFP-1,DFP-2,DFP-3` parameter. This is as follows.

   ```
   $  sudo nvidia-xconfig --preserve-busid --enable-all-gpus --connected-monitor=DFP-0,DFP-1,DFP-2,DFP-3
   ```
**Note**  
Make sure that your server doesn't have the legacy `/etc/X11/XF86Config` file. If it does, `nvidia-xconfig` updates that configuration file instead of generating the required `/etc/X11/xorg.conf` file. Run the following command to remove the legacy `XF86Config` file:  

   ```
   sudo rm -rf /etc/X11/XF86Config*
   ```

1. Restart the X server for the changes to take effect.
   + 

     ```
     $ sudo systemctl isolate multi-user.target
     ```

     ```
     $ sudo systemctl isolate graphical.target
     ```

**To verify that your NVIDIA GPU supports hardware-based video encoding**  
Make sure that it supports NVENC encoding and that it has compute capabilities greater than or equal to 3.0, or greater than or equal to 3.5 for Ubuntu 20.

To verify NVENC support, see the [ NVIDIA Video Encode and Decode GPU Support Matrix](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new#Encoder). To check the compute capabilities, see the [NVIDIA Compute Capacility tables](https://developer.nvidia.com/cuda-gpus). 

If your NVIDIA GPU doesn't support NVENC encoding or if it doesn't have the required compute capabilities, software-based video encoding is used.

**To verify that OpenGL hardware rendering is available**  
Use the following command to ensure that the X server is running.

```
$ sudo DISPLAY=:0 XAUTHORITY=$(ps aux | grep "X.*\-auth" | grep -v Xdcv | grep -v grep | sed -n 's/.*-auth \([^ ]\+\).*/\1/p') glxinfo | grep -i "opengl.*version"
```

The following shows example output if OpenGL hardware rendering is available.

```
OpenGL core profile version string: 4.4.0 NVIDIA 390.75
OpenGL core profile shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL version string: 4.6.0 NVIDIA 390.75
OpenGL shading language version string: 4.60 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 390.75
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
```

### Install and Configure AMD Drivers
<a name="gpu-amd"></a>

An instance with an attached AMD GPU, such as a G4ad instance, must have the appropriate AMD driver installed. For instructions on how to install the AMD GPU drivers on a compatible Amazon EC2 instance, see [ Install AMD drivers on Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-amd-driver.html).

For more information about Amazon EC2 G4ad instances, see the [Deep dive on the new Amazon EC2 G4ad instances ](https://aws.amazon.com/blogs/compute/deep-dive-on-the-new-amazon-ec2-g4ad-instances/) blog post.

## Install XDummy driver for non-GPU instances
<a name="linux-prereq-nongpu"></a>

**Topics**
+ [Install and configure the XDummy driver](#gpu-xdummy)

### Install and configure the XDummy driver
<a name="gpu-xdummy"></a>

To use console sessions on Linux servers that do not have a dedicated GPU, ensure that the Xdummy driver is installed and properly configured. The XDummy driver allows the X server to run with a virtual framebuffer when no real GPU is present.

**Note**  
This is not required if you intend to use virtual sessions.
The XDummy driver is able to support only resolutions defined in its configuration.

------
#### [ RHEL, CentOS, Rocky Linux, Amazon Linux 2, and Amazon Linux 2023 ]

**To install the XDummy driver**  
Run the following command:

```
$ sudo yum install xorg-x11-drv-dummy
```

------
#### [ Ubuntu ]

**To install the XDummy driver**  
Run the following command:

```
$ sudo apt install xserver-xorg-video-dummy
```

------
#### [ SUSE Linux Enterprise ]

**To install the XDummy driver**  
Run the following command:

```
$ sudo zypper in xf86-video-dummy
```

------

After you installed the XDummy drivers on your Linux server, update the `xorg.conf`.

**To configure XDummy in xorg.conf**

1. Open the `/etc/X11/xorg.conf` file with your preferred text editor.

1. Add the following sections to the configuration.

   ```
   Section "Device"
       Identifier "DummyDevice"
       Driver "dummy"
       Option "UseEDID" "false"
       VideoRam 512000
   EndSection
   
   Section "Monitor"
       Identifier "DummyMonitor"
       HorizSync   5.0 - 1000.0
       VertRefresh 5.0 - 200.0
       Option "ReducedBlanking"
   EndSection
   
   Section "Screen"
       Identifier "DummyScreen"
       Device "DummyDevice"
       Monitor "DummyMonitor"
       DefaultDepth 24
       SubSection "Display"
           Viewport 0 0
           Depth 24
           Virtual 4096 2160
       EndSubSection
   EndSection
   ```
**Note**  
The configuration provided is an example. You can add more modes, and set a different `virtual` resolution. You can also configure more than one dummy monitor.

1. Restart the X server for the changes to take effect.

   ```
   $ sudo systemctl isolate multi-user.target
   ```

   ```
   $ sudo systemctl isolate graphical.target
   ```

# Install the Amazon DCV Server on Linux
<a name="setting-up-installing-linux-server"></a>

The Amazon DCV server is installed using a series of RPM or .deb packages, depending on your host server's operating system. The packages install all required packages and their dependencies, and perform the required server configuration.

**Note**  
You must be signed in as the root user to install the Amazon DCV server.

## Install the Amazon DCV Server
<a name="linux-server-install"></a>

------
#### [ Amazon Linux 2 ]

The Amazon DCV server is available for Amazon Linux 2 servers based on the 64-bit x86 and 64-bit ARM architectures.

**Important**  
The `nice-dcv-gl` and `nice-dcv-gltest` packages aren't available for servers based on the 64-bit ARM architecture.

**To install the Amazon DCV server on Amazon Linux 2**

1. Launch and connect to the server that you intend to install the Amazon DCV server.

1. The Amazon DCV server packages are digitally signed with a secure GPG signature. To allow the package manager to verify the package signature, you must import the NICE GPG key. To do so, open a terminal window and import the Amazon DCV GPG key.

   ```
   $ sudo rpm --import https://d1uj6qtbmh3dt5.cloudfront.net/NICE-GPG-KEY
   ```

1. Download the packages from the [Amazon DCV download website](http://download.amazondcv.com). The RPM and deb packages are packaged into a `.tgz` archive. Make sure that you download the correct archive for your operating system.
   + 64-bit x86

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-amzn2-x86_64.tgz
     ```
   + 64-bit ARM

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-amzn2-aarch64.tgz
     ```
**Tip**  
The [latest packages](http://download.amazondcv.com/latest.html) page of the download website contains links that point to the newest available version. You can use these links to automatically retrieve the newest Amazon DCV packages.  
64-bit x86  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-amzn2-x86_64.tgz
     ```
64-bit ARM  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-amzn2-aarch64.tgz
     ```

1. Extract the contents of the `.tgz` archive and navigate into the extracted directory.
   + 64-bit x86

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-amzn2-x86_64.tgz && cd nice-dcv-2025.0-20103-amzn2-x86_64
     ```
   + 64-bit ARM

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-amzn2-aarch64.tgz && cd nice-dcv-2025.0-20103-amzn2-aarch64
     ```

1. Install the Amazon DCV server.
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-server-2025.0.20103-1.el7.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-dcv-server-2025.0.20103-1.el7.aarch64.rpm
     ```

1. (Optional) To use the web client with Amazon DCV version 2021.2 and later, install the `nice-dcv-web-viewer` package.
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-web-viewer-2025.0.20103-1.el7.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-dcv-web-viewer-2025.0.20103-1.el7.aarch64.rpm
     ```

1. (Optional) To use virtual sessions, install the `nice-xdcv` package.
   + 64-bit x86

     ```
     $ sudo yum install nice-xdcv-2025.0.688-1.el7.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-xdcv-2025.0.688-1.el7.aarch64.rpm
     ```

1. (Optional) If you plan to use GPU sharing, install the `nice-dcv-gl` package. 
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-gl-2025.0.1112-1.el7.x86_64.rpm
     ```
**Note**  
You can optionally install the `nice-dcv-gltest` package. This package includes a simple OpenGL application that can be used to determine if your virtual sessions are properly configured to use hardware-based OpenGL.

1. (Optional) If you plan to use Amazon DCV with Amazon DCV EnginFrame, install the `nice-dcv-simple-external-authenticator` package.
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-simple-external-authenticator-2025.0.282-1.el7.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-dcv-simple-external-authenticator-2025.0.282-1.el7.aarch64.rpm
     ```

1. (Optional) To support specialized USB devices using USB remotization, install the DCV USB drivers. 

   To install the DCV USB drivers, you must have Dynamic Kernel Module Support (DKMS) installed on your server. Use the following commands to install DKMS.

   DKMS can be installed from the Extra Packages for Enterprise Linux (EPEL) repository. Run the following command to enable the EPEL repository:

   ```
   $ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
   ```

   After you enabled the EPEL repository, run the following command to install DKMS:

   ```
   $ sudo yum install dkms
   ```

   After you installed DKMS, run the following command to install the DCV USB drivers:

   ```
   $ sudo dcvusbdriverinstaller
   ```

1. (Optional) If you plan to support microphone redirection, verify that the `pulseaudio-utils` package is installed on your system. Use the following command to install it.

   ```
   $ sudo yum install pulseaudio-utils
   ```

------
#### [ Amazon Linux 2023 ]

The Amazon DCV server is available for Amazon Linux 2023 servers based on the 64-bit x86 and 64-bit ARM architectures.

**Important**  
The `nice-dcv-gl` and `nice-dcv-gltest` packages aren't available for servers based on the 64-bit ARM architecture.

**To install the Amazon DCV server on Amazon Linux 2023**

1. Launch and connect to the server where you intend to install the Amazon DCV server.

1. The Amazon DCV server packages are digitally signed with a secure GPG signature. To allow the package manager to verify the package signature, you must import the Amazon DCV GPG key. To do so, open a terminal window and import the Amazon DCV GPG key.

   ```
   $ sudo rpm --import https://d1uj6qtbmh3dt5.cloudfront.net/NICE-GPG-KEY
   ```

1. Download the packages from the [Amazon DCV download website](http://download.amazondcv.com). The RPM and deb packages are packaged into a `.tgz` archive. Make sure that you download the correct archive for your operating system.
   + 64-bit x86

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-amzn2023-x86_64.tgz
     ```
   + 64-bit ARM

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-amzn2023-aarch64.tgz
     ```
**Tip**  
The [latest packages](http://download.amazondcv.com/latest.html) page of the download website contains links that point to the newest available version. You can use these links to automatically retrieve the newest Amazon DCV packages.  
64-bit x86  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-amzn2023-x86_64.tgz
     ```
64-bit ARM  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-amzn2023-aarch64.tgz
     ```

1. Extract the contents of the `.tgz` archive and navigate into the extracted directory.
   + 64-bit x86

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-amzn2023-x86_64.tgz && cd nice-dcv-2025.0-20103-amzn2023-x86_64
     ```
   + 64-bit ARM

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-amzn2023-aarch64.tgz && cd nice-dcv-2025.0-20103-amzn2023-aarch64
     ```

1. Install the Amazon DCV server.
   + 64-bit x86

     ```
     $ sudo dnf install nice-dcv-server-2025.0.20103-1.amzn2023.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo dnf install nice-dcv-server-2025.0.20103-1.amzn2023.aarch64.rpm
     ```

1. (Optional) If you plan to use the web client with Amazon DCV version 2021.2 and later, install the `nice-dcv-web-viewer` package.
   + 64-bit x86

     ```
     $ sudo dnf install nice-dcv-web-viewer-2025.0.20103-1.amzn2023.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo dnf install nice-dcv-web-viewer-2025.0.20103-1.amzn2023.aarch64.rpm
     ```

1. (Optional) To use virtual sessions, install the `nice-xdcv` package.
   + 64-bit x86

     ```
     $ sudo dnf install nice-xdcv-2025.0.688-1.amzn2023.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo dnf install nice-xdcv-2025.0.688-1.amzn2023.aarch64.rpm
     ```

1. (Optional) If you plan to use GPU sharing, install the `nice-dcv-gl` package. 
   + 64-bit x86

     ```
     $ sudo dnf install nice-dcv-gl-2025.0.1112-1.amzn2023.x86_64.rpm
     ```
**Note**  
You can optionally install the `nice-dcv-gltest` package. This package includes a simple OpenGL application that can be used to determine if your virtual sessions are properly configured to use hardware-based OpenGL.

1. (Optional) If you plan to use Amazon DCV [external authenticator](https://docs.aws.amazon.com/dcv/latest/adminguide/external-authentication.html), use the `nice-dcv-simple-external-authenticator` package.
   + 64-bit x86

     ```
     $ sudo dnf install nice-dcv-simple-external-authenticator-2025.0.282-1.amzn2023.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo dnf install nice-dcv-simple-external-authenticator-2025.0.282-1.amzn2023.aarch64.rpm
     ```

1. (Optional) If you plan to support specialized USB devices using USB remotization, install the DCV USB drivers. 

   To install the DCV USB drivers, you must have Dynamic Kernel Module Support (DKMS) installed on your server. Use the following commands to install DKMS.

   ```
   $ sudo dnf install dkms
   ```

   After you installed DKMS, run the following command to install the DCV USB drivers:

   ```
   $ sudo dcvusbdriverinstaller
   ```

1. (Optional) If you plan to support the microphone redirection, verify that the `pulseaudio-utils` package is installed on your system. Use the following command to install it.

   ```
   $ sudo dnf install pulseaudio-utils
   ```

------
#### [ RHEL, CentOS, and Rocky Linux 8.5 ]

The Amazon DCV server is available for RHEL, CentOS servers based on the 64-bit x86 and 64-bit ARM architectures, and Rocky Linux 8.5 or later.

**Important**  
The `nice-dcv-gl` and `nice-dcv-gltest` packages aren't available for servers based on the 64-bit ARM architecture.

**To install the Amazon DCV server on RHEL,CentOS, and or Rocky Linux 8.5**

1. Launch and connect to the server where you intend to install the Amazon DCV server.

1. The Amazon DCV server packages are digitally signed with a secure GPG signature. To allow the package manager to verify the package signature, you must import the Amazon DCV GPG key. To do so, open a terminal window and import the Amazon DCV GPG key.

   ```
   $ sudo rpm --import https://d1uj6qtbmh3dt5.cloudfront.net/NICE-GPG-KEY
   ```

1. Download the packages from the [Amazon DCV download website](http://download.amazondcv.com). The RPM and deb packages are packaged into a `.tgz` archive. Make sure that you download the correct archive for your operating system.
   + 64-bit x86

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-el8-x86_64.tgz
     ```
   + 64-bit ARM

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-el8-aarch64.tgz
     ```
**Tip**  
The [latest packages](http://download.amazondcv.com/latest.html) page of the download website contains links that point to the newest available version. You can use these links to automatically retrieve the newest Amazon DCV packages.  
64-bit x86  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-el8-x86_64.tgz
     ```
64-bit ARM  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-el8-aarch64.tgz
     ```

1. Extract the contents of the `.tgz` archive and navigate into the extracted directory.
   + 64-bit x86

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-el8-x86_64.tgz && cd nice-dcv-2025.0-20103-el8-x86_64
     ```
   + 64-bit ARM

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-el8-aarch64.tgz && cd nice-dcv-2025.0-20103-el8-aarch64
     ```

1. Install the Amazon DCV server.
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-server-2025.0.20103-1.el8.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-dcv-server-2025.0.20103-1.el8.aarch64.rpm
     ```

1. (Optional) If you plan to use the web client with Amazon DCV version 2021.2 and later, install the `nice-dcv-web-viewer` package.
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-web-viewer-2025.0.20103-1.el8.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-dcv-web-viewer-2025.0.20103-1.el8.aarch64.rpm
     ```

1. (Optional) To use virtual sessions, install the `nice-xdcv` package.
   + 64-bit x86

     ```
     $ sudo yum install nice-xdcv-2025.0.688-1.el8.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-xdcv-2025.0.688-1.el8.aarch64.rpm
     ```

1. (Optional) If you plan to use GPU sharing, install the `nice-dcv-gl` package. 
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-gl-2025.0.1112-1.el8.x86_64.rpm
     ```
**Note**  
You can optionally install the `nice-dcv-gltest` package. This package includes a simple OpenGL application that can be used to determine if your virtual sessions are properly configured to use hardware-based OpenGL.

1. (Optional) If you plan to use Amazon DCV with Amazon DCV EnginFrame, install the `nice-dcv-simple-external-authenticator` package.
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-simple-external-authenticator-2025.0.282-1.el8.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-dcv-simple-external-authenticator-2025.0.282-1.el8.aarch64.rpm
     ```

1. (Optional) If you plan to support specialized USB devices using USB remotization, install the DCV USB drivers. 

   To install the DCV USB drivers, you must have Dynamic Kernel Module Support (DKMS) installed on your server. Use the following commands to install DKMS.

   DKMS can be installed from the Extra Packages for Enterprise Linux (EPEL) repository. Run the following command to enable the EPEL repository:

   ```
   $ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
   ```

   After you enabled the EPEL repository, run the following command to install DKMS:

   ```
   $ sudo yum install dkms
   ```

   After you installed DKMS, run the following command to install the DCV USB drivers:

   ```
   $ sudo dcvusbdriverinstaller
   ```

1. (Optional) If you plan to support the microphone redirection, verify that the `pulseaudio-utils` package is installed on your system. Use the following command to install it.

   ```
   $ sudo yum install pulseaudio-utils
   ```

------
#### [ RHEL, CentOS, and Rocky Linux 9 ]

The Amazon DCV server is available for RHEL, CentOS servers based on the 64-bit x86 and 64-bit ARM architectures, and Rocky Linux 9 or later.

**Important**  
The `nice-dcv-gl` and `nice-dcv-gltest` packages aren't available for servers based on the 64-bit ARM architecture.

**To install the Amazon DCV server on RHEL,CentOS, and or Rocky Linux 9**

1. Launch and connect to the server where you intend to install the Amazon DCV server.

1. The Amazon DCV server packages are digitally signed with a secure GPG signature. To allow the package manager to verify the package signature, you must import the Amazon DCV GPG key. To do so, open a terminal window and import the Amazon DCV GPG key.

   ```
   $ sudo rpm --import https://d1uj6qtbmh3dt5.cloudfront.net/NICE-GPG-KEY
   ```

1. Download the packages from the [Amazon DCV download website](http://download.amazondcv.com). The RPM and deb packages are packaged into a `.tgz` archive. Make sure that you download the correct archive for your operating system.
   + 64-bit x86

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-el9-x86_64.tgz
     ```
   + 64-bit ARM

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-el9-aarch64.tgz
     ```
**Tip**  
The [latest packages](http://download.amazondcv.com/latest.html) page of the download website contains links that point to the newest available version. You can use these links to automatically retrieve the newest Amazon DCV packages.  
64-bit x86  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-el9-x86_64.tgz
     ```
64-bit ARM  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-el9-aarch64.tgz
     ```

1. Extract the contents of the `.tgz` archive and navigate into the extracted directory.
   + 64-bit x86

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-el9-x86_64.tgz && cd nice-dcv-2025.0-20103-el9-x86_64
     ```
   + 64-bit ARM

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-el9-aarch64.tgz && cd nice-dcv-2025.0-20103-el9-aarch64
     ```

1. Install the Amazon DCV server.
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-server-2025.0.20103-1.el9.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-dcv-server-2025.0.20103-1.el9.aarch64.rpm
     ```

1. (Optional) If you plan to use the web client with Amazon DCV version 2021.2 and later, install the `nice-dcv-web-viewer` package.
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-web-viewer-2025.0.20103-1.el9.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-dcv-web-viewer-2025.0.20103-1.el9.aarch64.rpm
     ```

1. (Optional) To use virtual sessions, install the `nice-xdcv` package.
   + 64-bit x86

     ```
     $ sudo yum install nice-xdcv-2025.0.688-1.el9.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-xdcv-2025.0.688-1.el9.aarch64.rpm
     ```

1. (Optional) If you plan to use GPU sharing, install the `nice-dcv-gl` package. 
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-gl-2025.0.1112-1.el9.x86_64.rpm
     ```
**Note**  
You can optionally install the `nice-dcv-gltest` package. This package includes a simple OpenGL application that can be used to determine if your virtual sessions are properly configured to use hardware-based OpenGL.

1. (Optional) If you plan to use Amazon DCV with Amazon DCV EnginFrame, install the `nice-dcv-simple-external-authenticator` package.
   + 64-bit x86

     ```
     $ sudo yum install nice-dcv-simple-external-authenticator-2025.0.282-1.el9.x86_64.rpm
     ```
   + 64-bit ARM

     ```
     $ sudo yum install nice-dcv-simple-external-authenticator-2025.0.282-1.el9.aarch64.rpm
     ```

1. (Optional) If you plan to support specialized USB devices using USB remotization, install the DCV USB drivers. 

   To install the DCV USB drivers, you must have Dynamic Kernel Module Support (DKMS) installed on your server. Use the following commands to install DKMS.

   DKMS can be installed from the Extra Packages for Enterprise Linux (EPEL) repository. Run the following command to enable the EPEL repository:

   ```
   $ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
   ```

   After you enabled the EPEL repository, run the following command to install DKMS:

   ```
   $ sudo yum install dkms
   ```

   After you installed DKMS, run the following command to install the DCV USB drivers:

   ```
   $ sudo dcvusbdriverinstaller
   ```

1. (Optional) If you plan to support the microphone redirection, verify that the `pulseaudio-utils` package is installed on your system. Use the following command to install it.

   ```
   $ sudo yum install pulseaudio-utils
   ```

------
#### [ SLES 12.x/15.x ]

The Amazon DCV server is available for SUSE Linux Enterprise Server (SLES) 12.x/15.x servers based on the 64-bit x86 architecture only.

**To install the Amazon DCV server on SLES 12.x/15.x**

1. Launch and connect to the server where you intend to install the Amazon DCV server.

1. The Amazon DCV server packages are digitally signed with a secure GPG signature. To allow the package manager to verify the package signature, you must import the Amazon DCV GPG key. To do so, open a terminal window and import the NICE GPG key.

   ```
   $ sudo rpm --import https://d1uj6qtbmh3dt5.cloudfront.net/NICE-GPG-KEY
   ```

1. Download the packages from the [Amazon DCV download website](http://download.amazondcv.com). The RPM and deb packages are packaged into a `.tgz` archive. Make sure that you download the correct archive for your operating system.
   + SLES 12.x

     ```
     $ curl -O https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-sles12-x86_64.tgz
     ```
   + SLES 15.x

     ```
     $ curl -O https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-sles15-x86_64.tgz
     ```
**Tip**  
The [latest packages](http://download.amazondcv.com/latest.html) page of the download website contains links that point to the newest available version. You can use these links to automatically retrieve the newest Amazon DCV packages.  
SLES 12.x  

     ```
     $ curl -O https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-sles12-x86_64.tgz
     ```
SLES 15.x  

     ```
     $ curl -O https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-sles15-x86_64.tgz
     ```

1. Extract the contents of the `.tgz` archive and navigate into the extracted directory.
   + SLES 12.x

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-sles12-x86_64.tgz && cd nice-dcv-2025.0-20103-sles12-x86_64
     ```
   + SLES 15.x

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-sles15-x86_64.tgz && cd nice-dcv-2025.0-20103-sles15-x86_64
     ```

1. Install the Amazon DCV server.
   + SLES 12.x

     ```
     $ sudo zypper install nice-dcv-server-2025.0.20103-1.sles12.x86_64.rpm
     ```
   + SLES 15.x

     ```
     $ sudo zypper install nice-dcv-server-2025.0.20103-1.sles15.x86_64.rpm
     ```

1. (Optional) If you plan to use the web client with Amazon DCV version 2021.2 and later, install the `nice-dcv-web-viewer` package.
   + SLES 12.x

     ```
     $ sudo zypper install nice-dcv-web-viewer-2025.0.20103-1.sles12.x86_64.rpm
     ```
   + SLES 15.x

     ```
     $ sudo zypper install nice-dcv-web-viewer-2025.0.20103-1.sles15.x86_64.rpm
     ```

1. (Optional) To use virtual sessions, install the `nice-xdcv` package.
   + SLES 12.x

     ```
     $ sudo zypper install nice-xdcv-2025.0.688-1.sles12.x86_64.rpm
     ```
   + SLES 15.x

     ```
     $ sudo zypper install nice-xdcv-2025.0.688-1.sles15.x86_64.rpm
     ```

1. (Optional) If you plan to use GPU sharing, install the `nice-dcv-gl` package. 
   + SLES 12.x

     ```
     $ sudo zypper install nice-dcv-gl-2025.0.1112-1.sles12.x86_64.rpm
     ```
   + SLES 15.x

     ```
     $ sudo zypper install nice-dcv-gl-2025.0.1112-1.sles15.x86_64.rpm
     ```
**Note**  
You can optionally install the `nice-dcv-gltest` package. This package includes a simple OpenGL application that can be used to determine whether your virtual sessions are properly configured to use hardware-based OpenGL. 

1. (Optional) If you plan to use Amazon DCV with Amazon DCV EnginFrame, install the `nice-dcv-simple-external-authenticator` package. 
   + SLES 12.x

     ```
     $ sudo zypper install nice-dcv-simple-external-authenticator-2025.0.282-1.sles12.x86_64.rpm
     ```
   + SLES 15.x

     ```
     $ sudo zypper install nice-dcv-simple-external-authenticator-2025.0.282-1.sles15.x86_64.rpm
     ```

1. (Optional) If you plan to support specialized USB devices using USB remotization, install the DCV USB drivers. 

   To install the DCV USB drivers, you must have Dynamic Kernel Module Support (DKMS) installed on your server. Use the following commands to install DKMS.

   Run the following command to install DKMS:
   + SLES 12.x

     ```
     $ sudo zypper install http://download.opensuse.org/repositories/home:/Ximi1970:/Dkms:/Staging/SLE_12_SP4/noarch/dkms-2.5-11.1.noarch.rpm
     ```
   + SLES 15

     Enable the PackageHub repository.

     ```
     $ sudo SUSEConnect -p PackageHub/15/x86_64
     ```
**Note**  
If you're using SLES 15 SP1 or SP2, replace *15* in the command above with either `15.1` or `15.2`. 

     Install DKMS.

     ```
     $ sudo zypper refresh
     ```

     ```
     $ sudo zypper install dkms
     ```

     Install the kernel source.

     ```
     $ sudo zypper install -y kernel-source
     ```

     Reboot the instance.

     ```
     $ sudo reboot
     ```

   After you have installed DKMS, run the following command to install the DCV USB drivers:

   ```
   $ sudo dcvusbdriverinstaller
   ```

1. (Optional) If you plan to support the microphone redirection, verify that the `pulseaudio-utils` package is installed on your system. Use the following command to install it.

   ```
   $ sudo zypper install pulseaudio-utils
   ```

------
#### [ Ubuntu 20.04/22.04/24.04 ]

The Amazon DCV server is available for Ubuntu servers based on the 64-bit x86 and 64-bit ARM architectures.

**Important**  
The `nice-dcv-gl` and `nice-dcv-gltest` packages aren't available for servers based on the 64-bit ARM architecture.

**To install the Amazon DCV server on Ubuntu 20.04/22.04/24.04**

1. Launch and connect to the server where you intend to install the Amazon DCV server.

1. The Amazon DCV server packages are digitally signed with a secure GPG signature. To allow the package manager to verify the package signature, you must import the Amazon DCV GPG key. To do so, open a terminal window and import the Amazon DCV GPG key.

   ```
   $ wget https://d1uj6qtbmh3dt5.cloudfront.net/NICE-GPG-KEY
   ```

   ```
   $ gpg --import NICE-GPG-KEY
   ```

1. Download the packages from the [Amazon DCV download website](http://download.amazondcv.com). The RPM and deb packages are packaged into a `.tgz` archive. Make sure that you download the correct archive for your operating system.
   + Ubuntu 20.04 (64-bit x86)

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-ubuntu2004-x86_64.tgz
     ```
   + Ubuntu 22.04 (64-bit x86)

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-ubuntu2204-x86_64.tgz
     ```
   + Ubuntu 22.04 (64-bit ARM)

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-ubuntu2204-aarch64.tgz
     ```
   + Ubuntu 24.04 (64-bit x86)

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-ubuntu2404-x86_64.tgz
     ```
   + Ubuntu 24.04 (64-bit ARM)

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-2025.0-20103-ubuntu2404-aarch64.tgz
     ```
**Tip**  
The [latest packages](http://download.amazondcv.com/latest.html) page of the download website contains links that point to the newest available version. You can use these links to automatically retrieve the newest Amazon DCV packages.  
Ubuntu 20.04 (64-bit x86)  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-ubuntu2004-x86_64.tgz
     ```
Ubuntu 22.04 (64-bit x86)  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-ubuntu2204-x86_64.tgz
     ```
Ubuntu 22.04 (64-bit ARM)  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-ubuntu2204-aarch64.tgz
     ```
Ubuntu 24.04 (64-bit x86)  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-ubuntu2404-x86_64.tgz
     ```
Ubuntu 24.04 (64-bit ARM)  

     ```
     $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-ubuntu2404-aarch64.tgz
     ```

1. Extract the contents of the `.tgz` archive and navigate into the extracted directory.
   + Ubuntu 20.04 (64-bit x86)

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-ubuntu2004-x86_64.tgz && cd nice-dcv-2025.0-20103-ubuntu2004-x86_64
     ```
   + Ubuntu 22.04 (64-bit x86)

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-ubuntu2204-x86_64.tgz && cd nice-dcv-2025.0-20103-ubuntu2204-x86_64
     ```
   + Ubuntu 22.04 (64-bit ARM)

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-ubuntu2204-aarch64.tgz && cd nice-dcv-2025.0-20103-ubuntu2204-aarch64
     ```
   + Ubuntu 24.04 (64-bit x86)

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-ubuntu2404-x86_64.tgz && cd nice-dcv-2025.0-20103-ubuntu2404-x86_64
     ```
   + Ubuntu 24.04 (64-bit ARM)

     ```
     $ tar -xvzf nice-dcv-2025.0-20103-ubuntu2404-aarch64.tgz && cd nice-dcv-2025.0-20103-ubuntu2404-aarch64
     ```

1. Install the Amazon DCV server.
   + Ubuntu 20.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-dcv-server_2025.0.20103-1_amd64.ubuntu2004.deb
     ```
   + Ubuntu 22.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-dcv-server_2025.0.20103-1_amd64.ubuntu2204.deb
     ```
   + Ubuntu 22.04 (64-bit ARM)

     ```
     $ sudo apt install ./nice-dcv-server_2025.0.20103-1_arm64.ubuntu2204.deb
     ```
   + Ubuntu 24.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-dcv-server_2025.0.20103-1_amd64.ubuntu2404.deb
     ```
   + Ubuntu 24.04 (64-bit ARM)

     ```
     $ sudo apt install ./nice-dcv-server_2025.0.20103-1_arm64.ubuntu2404.deb
     ```

1. (Optional) If you plan to use the web client with Amazon DCV version 2021.2 and later, install the `nice-dcv-web-viewer` package.
   + Ubuntu 20.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-dcv-web-viewer_2025.0.20103-1_amd64.ubuntu2004.deb
     ```
   + Ubuntu 22.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-dcv-web-viewer_2025.0.20103-1_amd64.ubuntu2204.deb
     ```
   + Ubuntu 22.04 (64-bit ARM)

     ```
     $ sudo apt install ./nice-dcv-web-viewer_2025.0.20103-1_arm64.ubuntu2204.deb
     ```
   + Ubuntu 24.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-dcv-web-viewer_2025.0.20103-1_amd64.ubuntu2404.deb
     ```
   + Ubuntu 24.04 (64-bit ARM)

     ```
     $ sudo apt install ./nice-dcv-web-viewer_2025.0.20103-1_arm64.ubuntu2404.deb
     ```

1. Add the `dcv` user to the `video` group.

   ```
   $ sudo usermod -aG video dcv
   ```

1. (Optional) If you plan to use virtual sessions, install the `nice-xdcv` package.
   + Ubuntu 20.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-xdcv_2025.0.688-1_amd64.ubuntu2004.deb
     ```
   + Ubuntu 22.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-xdcv_2025.0.688-1_amd64.ubuntu2204.deb
     ```
   + Ubuntu 22.04 (64-bit ARM)

     ```
     $ sudo apt install ./nice-xdcv_2025.0.688-1_arm64.ubuntu2204.deb
     ```
   + Ubuntu 24.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-xdcv_2025.0.688-1_amd64.ubuntu2404.deb
     ```
   + Ubuntu 24.04 (64-bit ARM)

     ```
     $ sudo apt install ./nice-xdcv_2025.0.688-1_arm64.ubuntu2404.deb
     ```

1. (Optional) If you plan to use GPU sharing, install the `nice-dcv-gl` package. 
   + Ubuntu 22.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-dcv-gl_2025.0.1112-1_amd64.ubuntu2204.deb
     ```
**Note**  
You can optionally install the `nice-dcv-gltest` package. This package includes a simple OpenGL application that can be used to determine if your virtual sessions are properly configured to use hardware-based OpenGL.

1. (Optional) If you plan to use Amazon DCV with Amazon DCV EnginFrame, install the `nice-dcv-simple-external-authenticator` package. 
   + Ubuntu 20.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-dcv-simple-external-authenticator_2025.0.282-1_amd64.ubuntu2004.deb
     ```
   + Ubuntu 22.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-dcv-simple-external-authenticator_2025.0.282-1_amd64.ubuntu2204.deb
     ```
   + Ubuntu 22.04 (64-bit ARM)

     ```
     $ sudo apt install ./nice-dcv-simple-external-authenticator_2025.0.282-1_arm64.ubuntu2204.deb
     ```
   + Ubuntu 24.04 (64-bit x86)

     ```
     $ sudo apt install ./nice-dcv-simple-external-authenticator_2025.0.282-1_amd64.ubuntu2404.deb
     ```
   + Ubuntu 24.04 (64-bit ARM)

     ```
     $ sudo apt install ./nice-dcv-simple-external-authenticator_2025.0.282-1_arm64.ubuntu2404.deb
     ```

1. (Optional) If you plan to support specialized USB devices using USB remotization, install the DCV USB drivers. 

   To install the DCV USB drivers, you must have Dynamic Kernel Module Support (DKMS) installed on your server. Use the following commands to install DKMS.

   DKMS is available in the official Ubuntu repository. Run the following command to install DKMS:

   ```
   $ sudo apt install dkms
   ```

   After you installed DKMS, run the following command to install the DCV USB drivers:

   ```
   $ sudo dcvusbdriverinstaller
   ```

1. (Optional) If you plan to support the microphone redirection, verify that the `pulseaudio-utils` package is installed on your system. Use the following command to install it.

   ```
   $ sudo apt install pulseaudio-utils
   ```

1. (Optional) For Ubuntu 22.04 only, if you need to use SSO with system auth, use the following command to install it.

   ```
   $ nice-dcv-gnome-shell-extension_version_all.ubuntu2204
   ```

------

# Performing post-installation checks
<a name="setting-up-installing-linux-checks"></a>

This topic provides some post-installation checks that you should perform after installing Amazon DCV to ensure that your Amazon DCV server is properly configured.

**Topics**
+ [Ensure the Amazon DCV Server is reachable](#checks-port)
+ [Ensure that the X server is accessible](#checks-xserver)
+ [Verify that DCV GL is properly installed](#checks-gl)
+ [Verify the Amazon DCV DEB package signature](#checks-deb)

## Ensure the Amazon DCV Server is reachable
<a name="checks-port"></a>

By default, the Amazon DCV server is configured to communicate over TCP port 8443. Ensure that the server is reachable over this port. If you have a firewall that prevents access over port 8443, you must change the port over which the Amazon DCV server communicates. For more information, see [Changing the Amazon DCV Server TCP/UDP ports and listen address](manage-port-addr.md).

Also, if you're setting up Amazon DCV on an EC2 instance, create a security group. This is to enable access to the port over which the Amazon DCV server communicates. For more information, see [how to configure security groups on EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html). 

## Ensure that the X server is accessible
<a name="checks-xserver"></a>

You must ensure that Amazon DCV console and virtual sessions can access the X server.

### Console Sessions
<a name="checks-xserver-console"></a>

When the Amazon DCV server is installed, a `dcv` user is created. Ensure that this user can access the X server.

**To verify that the `dcv` user can access the X server**  
Run the following command:

```
$ sudo DISPLAY=:0 XAUTHORITY=$(ps aux | grep "X.*\-auth" | grep -v Xdcv | grep -v grep | sed -n 's/.*-auth \([^ ]\+\).*/\1/p') xhost | grep "SI:localuser:dcv$"
```

If the command returns `SI:localuser:dcv`, the dcv user can access the X server.

If the command does not return `SI:localuser:dcv`, the dcv user doesn't have access to the X server. Run the following commands to restart the X server:
+ RHEL, Rocky, CentOS, Amazon Linux 2, Ubuntu, and SUSE Linux Enterprise

  ```
  $ sudo systemctl isolate multi-user.target
  ```

  ```
  $ sudo systemctl isolate graphical.target
  ```

### Virtual sessions
<a name="checks-xserver-virtual"></a>

If you installed the DCV GL package, you must ensure that local users can access the X server. This ensures that OpenGL hardware acceleration works correctly with virtual sessions.

**To verify that local users can access the X server**  
Run the following command:

```
$ sudo DISPLAY=:0 XAUTHORITY=$(ps aux | grep "X.*\-auth" | grep -v Xdcv | grep -v grep | sed -n 's/.*-auth \([^ ]\+\).*/\1/p') xhost | grep "LOCAL:$"
```

If the command returns `LOCAL:`, local users can access the X server.

If the command doesn't return `LOCAL:`, local users don't have access to the X server. Run the following commands to restart the X server, and to disable and re-enable DCV GL:
+ RHEL, Rocky, CentOS, Amazon Linux 2, Ubuntu, and SUSE Linux Enterprise

  ```
  $ sudo systemctl isolate multi-user.target
  ```

  ```
  $ sudo dcvgladmin disable
  ```

  ```
  $ sudo dcvgladmin enable
  ```

  ```
  $ sudo systemctl isolate graphical.target
  ```

## Verify that DCV GL is properly installed
<a name="checks-gl"></a>

The dcvgldiag utility is automatically installed when you install the DCV GL package. You can use this utility to check that the Linux server configuration meets the DCV GL requirements.

**To run the dcvgldiag utility**  
Use the following command:

```
$ sudo dcvgldiag
```

The utility returns a list of warnings and errors, along with the possible solutions.

## Verify the Amazon DCV DEB package signature
<a name="checks-deb"></a>

After Amazon DCV is installed, you can verify the signature on the Debian package (DEB). This verification process requires the use of GPG version 1.

**To verify the DEB package signature**  
Use the following command:

```
gpg1 --import NICE-GPG-KEY-SECRET
dpkg-sig --verify nice-dcv-server_2025.0.20103-1_amd64.deb
```

This will return a message that includes the term `GOODSIG` to confirm that the signature is verified. The following example shows a signature confirmation message. In place of *Example Key*, the key will be displayed.

```
Processing nice-dcv-server_2017.0.0-1_amd64.deb...
GOODSIG _gpgbuilder Example Key
```

# Installing the Amazon DCV Server on macOS
<a name="setting-up-installing-macos"></a>

The Amazon DCV server software can be installed on an Amazon EC2 Mac instance and run your Amazon DCV sessions from there. Before installing the software, check that your server meets the prerequisites for running the software. The process for installing the software can either be done manually through an installation wizard or automatically installed by Amazon DCV.

**Note**  
Amazon DCV server for macOS is only supported on Amazon EC2 Apple silicon instances.

**Topics**
+ [Prerequisites](setting-up-installing-macosprereq.md)
+ [Installing the Server](setting-up-installing-macosinstall.md)

# Prerequisites for macOS Amazon DCV server on an Amazon EC2 instances
<a name="setting-up-installing-macosprereq"></a>

This topic describes how to prepare your Amazon EC2 Mac instance before you install the Amazon DCV server.

**Topics**
+ [Prerequisites for all supported instances](#setting-up-installing-all)

## Prerequisites for all supported instances
<a name="setting-up-installing-all"></a>

 Amazon EC2 Mac Apple silicon instances are supported on Amazon DCV version 2025.0 and later. See [ Amazon EC2 Mac documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html) for a complete list of Apple silicon instances. You can install Amazon DCV Server with the interactive GUI or programmatically. For interactive GUI access, see the [ Amazon EC2 Mac documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-mac-instance.html#mac-instance-vnc). For unattended installations, System Integrity Protection (SIP) must be disabled. For more information on configuring SIP, see the [Amazon EC2 Mac documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html). An example image creation automation can be found in the aws-samples Github within the [dcv-samples repository](https://github.com/aws-samples/dcv-samples/tree/main/cdk/dcv-mac-image-automation). 

# Installing the Amazon DCV Server on Amazon EC2 Mac instances
<a name="setting-up-installing-macosinstall"></a>

You can use an installation wizard to install the Amazon DCV server on an Amazon EC2 Mac instance. To install with the installation wizard, you need to have [ interactive GUI access](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-mac-instance.html#mac-instance-vnc). The wizard guides you through a series of steps that show how to customize your Amazon DCV server installation. Alternatively, you can use the command line to perform an unattended installation. This uses default settings to automate the installation procedure. To perform unattended installations, [System Integrity Protection (SIP) must be disabled](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html). 

**Note**  
Amazon DCV server for macOS is only supported on Amazon EC2 Apple silicon instances.

**Contents**
+ [Using an unattended installation](#setting-up-installing-windows-unattended)
+ [Using the wizard](#setting-up-installing-windows-wizard-mac)
+ [Configuring Privacy and Security settings](#setting-up-macos-privacy-settings)

## Using an unattended installation
<a name="setting-up-installing-windows-unattended"></a>

Amazon DCV can install and activate the server software automatically. This is called an "unattended installation". By default, an unattended installation enables Amazon DCV server auto-start. An example Amazon Machine Image creation automation can be found in the aws-samples Github within the [dcv-samples repository](https://github.com/aws-samples/dcv-samples/tree/main/cdk/dcv-mac-image-automation).

**To install the Amazon DCV server on Amazon EC2 Mac instance using an unattended installation**

1. Launch and [ connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-mac-instance.html#mac-instance-ssh) to the server that you intend to install the Amazon DCV server on.

1. Confirm [ System Integrity Protection (SIP) is disabled](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html#mac-sip-check-settings).

1. Download the Amazon DCV server installer from the [Amazon DCV](http://download.amazondcv.com) website.
**Note**  
The Amazon DCV server is available only in a 64-bit version and supported on 64-bit ARM Amazon EC2 instances.

1. Download the packages from the [Amazon DCV download website](http://download.amazondcv.com).

   ```
   $ wget https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-server-macos-arm64.dist.pkg
   ```

1. Run the unattended installer with the following command:

   ```
   $ sudo installer -pkg nice-dcv-server-2025.0-version_number-macos-arm64.dist.pkg -target /
   ```

## Using the wizard
<a name="setting-up-installing-windows-wizard-mac"></a>

Use the Amazon DCV server installation wizard for a guided installation.

**To install the Amazon DCV server on Amazon EC2 Mac instances using the wizard**

1. Launch and [ connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-mac-instance.html#mac-instance-vnc) to the server on which to install the Amazon DCV server.

1. Download the Amazon DCV server installer from the [Amazon DCV](http://download.amazondcv.com) website.
**Note**  
The Amazon DCV server is available only in a 64-bit version and supported on 64-bit ARM Amazon EC2 instances.
**Tip**  
The [latest packages](http://download.amazondcv.com/latest.html) page of the download website contains links that point to the newest available version. You can use these links to automatically retrieve the newest Amazon DCV packages.

1. Run `nice-dcv-server-2025.0-version_number-macos-arm64.dist.pkg`. 

1. On the Introduction screen, choose **Continue**.

1. On the Installation Type screen, check the package check boxes, and then choose **Continue**.

1. Choose **Install**.

1. Click **Allow** when prompted during installation.

## Configuring Privacy and Security settings
<a name="setting-up-macos-privacy-settings"></a>

After installing the Amazon DCV server, you must configure macOS Privacy and Security settings to allow Amazon DCV to access system features.

**To configure Privacy and Security settings for Amazon DCV**

1. Open **System Settings** and navigate to **Privacy and Security**.

1. Under **Accessibility**, select the checkbox next to `DCV Server` to allow access. If `DCV Server` is not listed, drag `/Applications/DCV Server.app` to the allowed list and then select the checkbox.

1. Under **Screen & System Audio Recording**, select the checkbox next to `DCV Server` to allow access. If `DCV Server` is not listed, drag `/Applications/DCV Server.app` to the allowed list and then select the checkbox

1. Reboot the machine to apply the changes:

   ```
   $ sudo reboot
   ```

1. After reboot, ensure you have a valid Amazon DCV license. For licensing information, see [Step 2: License the Amazon DCV Server](setting-up-license.md).

1. Reconnect using VNC and create a Amazon DCV console session:

   ```
   $ sudo dcv create-session --type console --owner ec2-user console
   ```

1. Click **Allow** when prompted for Microphone access.

1. Click **Allow** when prompted for `dcvagentlauncher` access.

1. When prompted for **Remote Control access**, click **Open System Settings**, enable the setting, and choose **Quit & Reopen**.

1. You can now connect using the Amazon DCV Client.

# Step 2: License the Amazon DCV Server
<a name="setting-up-license"></a>

After you have installed the Amazon DCV server software, you need to download and install the license to use Amazon DCV. The Amazon DCV licensing requirements differ depending on where you are installing and using the Amazon DCV server.

**Important**  
The following licensing requirements only apply to Amazon DCV version 2017.0 and later.

## Amazon DCV licensing requirements
<a name="dcv-lic-req"></a>

**Topics**
+ [Amazon DCV on Amazon EC2](#setting-up-license-ec2)
+ [Other use cases for Amazon DCV](#setting-up-license-otherusecases)
+ [Microsoft licensing requirements for remotely accessing Windows Server](#windows-lic-reqs)

### Amazon DCV on Amazon EC2
<a name="setting-up-license-ec2"></a>

You do not need a license server to install and use the Amazon DCV server on an EC2 instance, including instances running on AWS Outposts and AWS Local Zones. The Amazon DCV server automatically detects that it is running on an Amazon EC2 instance and periodically connects to an S3 bucket to determine whether a valid license is available. 

Make sure that your instance has the following properties:
+ It can reach the Amazon S3 endpoint. If it has access to the internet, it connects using the Amazon S3 public endpoint. If your instance doesn't have access to the internet, configure a gateway endpoint for your VPC with an outbound security group rule or access control list (ACL) policy that allows you to reach Amazon S3 through HTTPS. For more information, see [Gateway VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-gateway.html) in the *Amazon VPC User Guide*. If you experience any issues connecting to the S3 bucket, see [Why can’t I connect to an S3 bucket using a gateway VPC endpoint?](https://aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint/) in the *AWS Knowledge Center*.
+ It has permission to access the required Amazon S3 object. Add the following Amazon S3 access policy to the instance's IAM role and replace the *region* placeholder with your AWS Region (for example, `us-east-1`). For more information, see [Create IAM Role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html).

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
             "Effect": "Allow",
             "Action": "s3:GetObject",
             "Resource": "arn:aws:s3:::dcv-license.region/*"
         }
      ]
  }
  ```

------
+ If you're using a Windows instance, ensure that the instance can access the *instance metadata service*. Access to this service is required to ensure that the Amazon DCV server can be properly licensed. For more information about the instance metadata service, see [Instance Metadata and User Data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.

  If you're using a custom Windows AMI, you must install EC2Launch, this ensures that your instance can access the instance metadata service. For more information, see [Configuring a Windows Instance Using EC2Launch](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html) in the *Amazon EC2 User Guide*.

If you're installing and using the Amazon DCV server on an Amazon EC2 instance, you can skip the rest of this chapter. The rest of this chapter only applies to all other use cases for the Amazon DCV server.

### Other use cases for Amazon DCV
<a name="setting-up-license-otherusecases"></a>

For all other use cases, a license is required to install and use the Amazon DCV server. The following licensing options are available:
+ **Automatic evaluation license**— This type of license is automatically installed when you install the Amazon DCV server. This type of license is valid for a period of 30 days after it's installed. After the license expires, you can no longer create and host Amazon DCV sessions on the server. These licenses are suitable for short-term testing and evaluation. To test for a longer period, request an extended evaluation license.
**Note**  
The Amazon DCV server defaults to the automatic evaluation license if no other license is configured.
+ **Extended evaluation license**— An extended evaluation license is an evaluation license that extends the initial 30-day evaluation period provided by the automatic evaluation license. The period is determined by AWS on a case-by-case basis. Extended evaluation licenses are invalid after they reach their expiration date, and you can no longer create and host Amazon DCV sessions on the server. Extended evaluation licenses must be requested from an Amazon DCV distributor or reseller listed on the [ How to Buy](https://www.nice-software.com/index.html#buy) page of the Amazon DCV website. The licenses come as a license file that must be installed on the Amazon DCV server. 
**Note**  
When using Amazon DCV on Amazon EC2 Mac instance, Amazon DCV server the instance must have access to the Amazon DCV license S3 bucket. If the instance doesn't have access to the license S3 bucket, it will not be possible to start a Amazon DCV session.
+ **Production license**—A production license is a full license that you purchase from Amazon DCV. Production licenses are *floating licenses* that are managed by a license server. With floating licenses, you can run multiple Amazon DCV servers in your network. At the same time, you can also limit the number of concurrent Amazon DCV sessions you can create across all of the servers. You need one license for each concurrent Amazon DCV session. Production licenses are distributed as a license file that you must install on a Reprise License Manager (RLM) server. There are two types of production licenses: 
  + **Perpetual Licenses**— Perpetual licenses don't have an expiration date and can be used for an indefinite period.
  + **Subscriptions**— Subscriptions are valid for a limited period of time, typically one year. The expiration date of the license is indicated in the license file. After the license expires, you can no longer create and host Amazon DCV sessions on your Amazon DCV servers.

For information about how to purchase a Amazon DCV perpetual license or a subscription, see [How to Buy](https://www.nice-software.com/index.html#buy) on the Amazon DCV website and find a Amazon DCV distributor or reseller in your region. 

#### Licensing requirements
<a name="licensing-requirements"></a>
+ Amazon DCV clients don't require a license.
+ Amazon DCV server license files are backward compatible with previous versions of the Amazon DCV server. For example, you can use a Amazon DCV server version 2021 license with Amazon DCV server version 2019.
+ Amazon DCV server versions require at least the same version of the Amazon DCV server license. For example, if you use a Amazon DCV server version 2021, you need a license version 2021 or later. If you upgrade to a later Amazon DCV server version, you must request compatible license files. For more information, contact your Amazon DCV distributor or reseller.

**Note**  
For information about the Amazon DCV server compatibility, see [Compatibility considerations](setting-up-upgrading.md#compatibility-considerations).

### Microsoft licensing requirements for remotely accessing Windows Server
<a name="windows-lic-reqs"></a>

Microsoft requires that, in addition to a Windows Server Client Access License (CAL), you must have a Windows Server Remote Desktop Services (RDS) CAL for your version of Windows Server for each user that remotely accesses the server’s graphical user interface (GUI). This regardless of the remote display protocol that you use. This license is also required if you use Amazon DCV to access the GUI of a remote Windows Server host.

If you run a Amazon DCV server on an Amazon EC2 instance and you use a [ Windows Server AMI](https://aws.amazon.com/windows/resources/amis/), Amazon takes care of the licensing costs for the Windows Server CAL, and provides two Windows Server RDS CALs that are intended solely for administrative purposes. This is for testing, maintenance, and administration only.

For more information, see the [Microsoft Product Terms Site](https://www.microsoft.com/licensing/terms/). If you have questions about your licensing or rights to Microsoft software, consult your legal team, Microsoft, or your Microsoft reseller.

# Installing an extended evaluation license
<a name="setting-up-evaluation"></a>

When you request an extended evaluation license from Amazon DCV, you receive a `license.lic` file that defines the license. 

**To install the extended evaluation license**  
Place the `license.lic` file in the following folder on your server:
+ Windows server

  ```
  C:\Program Files\NICE\DCV\Server\license\license.lic
  ```
+ Linux server

  ```
  /usr/share/dcv/license/license.lic
  ```

Or, to place the `license.lic` in a different folder on the server, you must update the `license-file` configuration parameter so that it specifies the full path for the license file.

**Topics**
+ [Changing the license path on a Windows Server](#change-param-win)
+ [Changing the license path on a Linux server](#change-param-lin)

## Changing the license path on a Windows Server
<a name="change-param-win"></a>

**To update the `license-file` configuration parameter on a Windows server**

1. Open the Windows Registry Editor.

1. Navigate to the **HKEY\$1USERS\$1S-1-5-18\$1Software\$1GSettings\$1com\$1nicesoftware\$1dcv\$1license\$1** key and select the **license-file** parameter.

   If there is no `license-file` parameter in the registry key, create one:

   1. Open the context (right-click) menu for the **license** key in the left pane and choose **New**, **String Value**.

   1. For **Name**, enter `license-file` and press **Enter**.

1. Open the **license-file** parameter. For **Value data**, enter the full path to the `license.lic` file.

1. Choose **OK** and close the Windows Registry Editor.

## Changing the license path on a Linux server
<a name="change-param-lin"></a>

**To update the `license-file` configuration parameter on a Linux server**

1. Navigate to `/etc/dcv/` and open the `dcv.conf` with your preferred text editor.

1. Locate the `license-file` parameter in the `[license]` section, and replace the existing path with the new full path to the `license.lic` file.

   If there is no `license-file` parameter in the `[license]` section, add it manually using the following format:

   ```
   license-file = "/custom-path/license.lic"
   ```

1. Save and close the file.

# Installing a production license
<a name="setting-up-production"></a>



The following sections in this topic describes how to purchase and use a production license (perpetual license or subscription).

**Topics**
+ [Step 1: Install the RLM server](#install-rlm)
+ [Step 2: Get the host ID for the RLM server](#hostid-rlm)
+ [Step 3: Purchase the perpetual license or subscription](#license-purchase)
+ [Step 4: Modify the license file](#setting-up-production-license-file)
+ [Step 5: Configure the RLM Server](#setting-up-rlm-server)
+ [Step 6: Configure the Amazon DCV Server](#setting-up-dcv-server)

## Step 1: Install the RLM server
<a name="install-rlm"></a>

When you purchase a perpetual license or subscription, you get a license file that defines the terms of your license. You must install the license file on a Reprise License Manager (RLM) server. 

For more information about RLM, see the [Reprise Software](https://reprisesoftware.com/products/reprise-license-manager-rlm/) website.

**Topics**
+ [Install the RLM server on Windows](#install-rlm-windows)
+ [Install the RLM server on Linux](#install-rlm-linux)

### Install the RLM server on Windows
<a name="install-rlm-windows"></a>

**To install the RLM server on Windows**

1. Download the RLM License Administration Bundle from the [Reprise Software website](https://reprisesoftware.com/support/admin/license-administration-bundle/).
**Note**  
Starting with Amazon DCV version 2022.1 the RLM server >= 14 is required. Previous versions require RLM >= 12.  
The installation of the latest stable version of the RLM license Administration Bundle is recommended.

1. Install the RLM License Administration Bundle to `C:\RLM`.

### Install the RLM server on Linux
<a name="install-rlm-linux"></a>

**To install the RLM server on Linux**

1. Download the RLM License Administration Bundle from the [Reprise Software website](https://reprisesoftware.com/support/admin/license-administration-bundle/).
**Note**  
Starting with Amazon DCV version 2022.1 the RLM server >= 14 is required. Previous versions require RLM >= 12.  
The installation of the latest stable version of the RLM license Administration Bundle is recommended.

1. Create a user group and an `rlm` user. This can be any valid user or service account. We strongly recommend that you don't use the root account for this value.

   ```
   $ groupadd -r rlm
   ```

   ```
   $ useradd -r -g rlm -d "/opt/nice/rlm" -s /sbin/nologin -c "RLM License Server" rlm
   ```

1. Create the `/opt/nice/rlm` and `/opt/nice/rlm/license` directories required for the RLM server.

   ```
   $ mkdir -p /opt/nice/rlm/license
   ```

1. Extract the contents of the RLM License Administration Bundle to `/opt/nice/rlm/`, and ensure that the files are owned by the `rlm` user.

   ```
   $ tar xvf x64_l1.admin.tar.gz -C /opt/nice/rlm/ --strip-components 1
   ```

   ```
   $ chown -R rlm:rlm /opt/nice/rlm
   ```

## Step 2: Get the host ID for the RLM server
<a name="hostid-rlm"></a>

After you install the RLM server, you must get the RLM server's host ID. You need to provide this host ID when purchasing a perpetual license or subscription.

### Get the RLM server host ID on Windows
<a name="hostid-rlm-windows"></a>

**To get the host ID for the server, open the command prompt,**  
Navigate to `C:\RLM\`, and then run the following command.

```
C:\> rlmutil.exe rlmhostid ether
```

The command returns the host ID for the RLM server is as follows.

```
Hostid of this machine: 06814example
```

Make note of the host ID. You need it for the next step.

### Get the RLM server host ID on Linux
<a name="hostid-rlm-linux"></a>

**To get the server's host ID, single return**

1. Navigate to `/opt/nice/rlm/`.

1. Run the following command:

   ```
   $ ./rlmutil rlmhostid ether
   ```

   The command returns the RLM server's host ID for each network interface as follows.

1. Record the host ID. You need it for the next step.

**Example**  
This procedure was run and the following single ID was returned:  

```
Hostid of this machine: 0a1b2c3d4e5f
```
This ID is then recorded and will be used to purchase the license for DCV.

**To get the server's host ID, multiple returns**

1. Navigate to `/opt/nice/rlm/`.

1. Run the following command:

   ```
   $ ./rlmutil rlmhostid ether
   ```

   Multiple IDs will be returned in a list of IDs.

1. Run the following command.

   ```
   iface=$(route -n | grep " UG " | tr -s " " | cut -d" " -f8)
   ip link show $iface | grep link/ether | tr -s " " | cut -d" " -f3 | tr -d ":"
   ```

   The command should return the RLM server's host ID for the Gateway network interface. 

1. Record the host ID. You need it for the next step.

**Example**  
The procedure was run and multiple IDs were returned in a list of multiple ID’s:  

```
Hostid of this machine: 0a1b2c3d4e5f 1b2c3d4e5f6a 2c3d4e5f6a7b 3d4e5f6a7b8c
```
The interface command is run and returns the following ID:  

```
Hostid of this machine: 0a1b2c3d4e5f
```
This ID is then recorded and will be used to purchase the license for DCV.

## Step 3: Purchase the perpetual license or subscription
<a name="license-purchase"></a>

For information about how to purchase a Amazon DCV perpetual license or a subscription, see [How to Buy](https://www.nice-software.com/index.html#buy) on the Amazon DCV website and find a Amazon DCV distributor or reseller in your region.

You must provide the host ID for your RLM server. The host ID is embedded in the license file that Amazon DCV provides.

## Step 4: Modify the license file
<a name="setting-up-production-license-file"></a>

When you purchase a Amazon DCV perpetual license or subscription, you receive a `license.lic` file that defines the license. The `license.lic` file includes the following information:
+ The hostname of the RLM server.
+ The host ID of the RLM server that you provided when you purchased the license.
+ The TCP port number of the RLM server. The default is `5053`.
+ The ISV port number. This is an optional port where the RLM server listens for Amazon DCV license requests. If not specified a random port is picked by RLM at startup.
+ The Amazon DCV products covered by the license, along with the following details for each product:
  + The major version that's covered by the license (for example, `2017` for the 2017 Amazon DCV products).
  + The expiration date. `Permanent` indicates that the license doesn't expire.
  + The maximum number of concurrent sessions (for example, `10` for 10 concurrent sessions on the server).
  + The license checksum.
  + The license signature.

The following code block shows the format of the `license.lic` file:

```
HOST RLM_server_hostname RLM_server_host_id RLM_server_port
ISV nice port=port_number
LICENSE product_1 major_version expiration_date concurrent_sessions share=hi _ck=checksum sig="signature"
LICENSE product_2 major_version expiration_date concurrent_sessions share=hi _ck=checksum sig="signature"
```

The following code block shows an example of a `license.lic` file with the ISV port omitted. The license file includes licenses for two Amazon DCV products, DCV and dcv-gl.

```
HOST My-RLM-server abcdef123456 5053
ISV nice
LICENSE nice dcv 2017 permanent 10 share=hi _ck=456789098a sig="abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890ab"
LICENSE nice dcv-gl 2017 permanent 10 share=hi _ck=123454323x sig="1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12"
```

**To edit the `license.lic` file**

1. Open the file with your preferred text editor.

1. Add your RLM server's hostname and the TCP port number to the first line in the file, which starts with `HOST`.
**Warning**  
The *RLM\$1server\$1host\$1id* is the host ID that you provided when you purchased the license. You cannot edit the *RLM\$1server\$1host\$1id*.

1. (Optional) Add the ISV port number in the line in file which starts with `ISV`, by adding `port=port_number`. This port is required to enable communication with the DCV server. 

   If you don't want to specify an ISV port, omit `port=port_number`. If you don't specify an ISV port, a random port is used by RLM at each startup. 
**Warning**  
If you have a firewall setup preventing the use of a randomly selected port, you need to specify this port and configure the firewall to enable it, in addition to the RLM port specified in the `HOST` line. 

1. Save and close the file.

**Warning**  
Editing any other part of the license file corrupts the file's signature and invalidates the license.

## Step 5: Configure the RLM Server
<a name="setting-up-rlm-server"></a>

After you modified the license file, you must place it on your RLM server and then start the RLM service.

**Topics**
+ [Configure the RLM Server on Windows](#prep-windows)
+ [Configure the RLM server on Linux](#prep-linux)

### Configure the RLM Server on Windows
<a name="prep-windows"></a>

**To configure the RLM server on Windows**

1. Connect to your RLM server.

1. Copy the edited `license.lic` file to `C:\RLM\license\`.

1. Copy the `C:\Program Files\NICE\DCV\Server\license\nice.set` file from your Amazon DCV server and place it in the `C:\RLM\` folder on your RLM server.

1. Install the RLM server as a Windows service.

   ```
   C:\> rlm.exe -nows -dlog C:\RLM\rlm.log -c C:\RLM\license -install_service -service_name dcv-rlm
   ```

   For more information about the RLM startup options, see the [Reprise Software License Manager (RLM)](https://reprisesoftware.com/products/reprise-license-manager-rlm/) product page.

1. Start the RLM server.

   ```
   C:\> net start dcv-rlm
   ```

1. Confirm that the RLM server is running.

   1. Open `C:\RLM\nice.dlog` with your preferred text editor and confirm that the following line appears.

      ```
      date_time (nice) Server started on license1 (hostid: host_id) for: dcv dcv-gl
      ```
**Note**  
The contents of the `rlm.log` file might vary slightly depending on the RLM server version.

   1. Run the following command.

      ```
      C:\RLM\rlmutil rlmstat -a -c rlm_server_hostname@5053
      ```

      The command returns information about the RLM server.

### Configure the RLM server on Linux
<a name="prep-linux"></a>

**To configure the RLM server on Linux**

1. Copy the edited `license.lic` file to `/opt/nice/rlm/license/`.

1. Copy the `/usr/share/dcv/license/nice.set` file from your Amazon DCV server and place it in `/opt/nice/rlm` on your RLM server.

1. Create an RLM server service and make sure that it starts automatically at startup.

   1. Create a file named `dcv-rlm` in the `/opt/nice/rlm/` folder:

      ```
      $ touch /opt/nice/rlm/dcv-rlm
      ```

   1. Open the file using your preferred text editor and add the following script. Save and close the file.

      ```
      #! /bin/sh
      # chkconfig: 35 99 01
      # description: The Reprise License Manager daemon.
      # processname: dcv-rlm
      
      ### BEGIN INIT INFO
      # Provides: dcv-rlm
      # Required-Start: $local_fs $remote_fs $syslog
      # Required-Stop: $local_fs $remote_fs $syslog
      # Default-Start: 3 4 5
      # Default-Stop: 0 1 2 6
      # Short-Description: The Reprise License Manager daemon.
      # Description: A service that runs the Reprise License Manager daemon.
      ### END INIT INFO
      
      # user used to run the daemon
      RLM_USER="rlm"
      
      # root of rlm installation
      RLM_ROOT="/opt/nice/rlm"
      
      # license directory (license files should have .lic extension)
      RLM_LICENSE_DIR="/opt/nice/rlm/license"
      
      # log file
      RLM_LOG_FILE="/var/log/rlm.log"
      
      _getpid() {
          pidof -o $$ -o $PPID -o %PPID -x "$1"
      }
      
      start() {
          echo -n "Starting rlm: "
          touch ${RLM_LOG_FILE}
          chown "${RLM_USER}" ${RLM_LOG_FILE}
          su -p -s /bin/sh "${RLM_USER}" -c "${RLM_ROOT}/rlm -c ${RLM_LICENSE_DIR} \
              -nows -dlog +${RLM_LOG_FILE} &"
          if [ $? -ne 0 ]; then
              echo "FAILED"
              return 1
          fi
          echo "OK"
      }
      
      stop() {
          echo -n "Stopping rlm: "
          pid=`_getpid ${RLM_ROOT}/rlm`
          if [ -n "$pid" ]; then
              kill $pid >/dev/null 2>&1
              sleep 3
              if [ -d "/proc/$pid" ] ; then
                  echo "FAILED"
                  return 1
              fi
          fi
          echo "OK"
      }
      
      status() {
          pid=`_getpid ${RLM_ROOT}/rlm`
          if [ -z "$pid" ]; then
              echo "rlm is stopped"
              return 3
          fi
          echo "rlm (pid $pid) is running..."
          return 0
      }
      
      restart() {
          stop
          start
      }
      
      case "$1" in
          start)
              start
              ;;
          stop)
              stop
              ;;
          status)
              status
              ;;
          restart)
              restart
              ;;
          *)
              echo $"Usage: $0 {start|stop|status|restart}"
              exit 1
      esac
      
      exit $?
      
      # ex:ts=4:et:
      ```

   1. Make the script executable, copy it to `/etc/init.d/`, and then add it to the `chkconfig` utility:

      ```
      chmod +x /opt/nice/rlm/dcv-rlm 
      ```

      ```
      cp -a /opt/nice/rlm/dcv-rlm /etc/init.d/
      ```

      ```
      chkconfig --add dcv-rlm
      ```

1. Start the RLM server:

   ```
   $ service dcv-rlm start
   ```

1. Verify that the RLM server is running and functioning as expected. Open `var/log/rlm.log` with your preferred text editor and confirm that the following line appears:

   ```
   date_time (nice) Server started on license1 (hostid: host_id) for: dcv dcv-gl
   ```
**Note**  
The contents of the `rlm.log` file might vary slightly depending on the RLM server version.

## Step 6: Configure the Amazon DCV Server
<a name="setting-up-dcv-server"></a>

Configure your Amazon DCV server to use the RLM server. To do this, you must configure the `license-file` configuration parameter on your Amazon DCV server.

 The `license-file` parameter must be set with the specification of the RLM server to connect to, in the format `RLM_server_port@RLM_server`. The RLM server can be either specified as a hostname or as an IP address. If not configured explicitly, the RLM server port is by default `5053`. 

 In case multiple RLM servers are in use, you can specify a list of multiple RLM servers specifications, separated by `:` on Linux, by `;` on Windows. Then the server will try to connect to each one in turn, until one connection can be established with the corrresponding RLM server. This can be especially useful for example when using an RLM failover server to take over in case the primary RLM server is not reachable. In this case you can specify the license in the format: `RLM_primary_server_port@RLM_primary_server:RLM_failover_server_port@RLM_failover_server` 

**Note**  
In case the Amazon DCV Server is installed on Windows, you need to separate the entries in the specification with `;`.

**Topics**
+ [Windows Amazon DCV Server configuration](#config-win)
+ [Linux Amazon DCV Server configuration](#config-linux)

### Windows Amazon DCV Server configuration
<a name="config-win"></a>

**To configure the `license-file` configuration parameter on a Windows server**

1. Open the Windows Registry Editor.

1. Navigate to the **HKEY\$1USERS\$1S-1-5-18\$1Software\$1GSettings\$1com\$1nicesoftware\$1dcv\$1license\$1** key and select the **license-file** parameter.

   If there is no `license-file` parameter in the registry key, you must create it:

   1. Open the context (right-click) menu for the **license** key in the left pane and choose **New**, **String Value**.

   1. For **Name**, enter `license-file` and press **Enter**.

1. Open the **license-file** parameter. For **Value data**, enter the RLM server's port number and hostname in the `RLM_server_port@RLM_server` format. Check the note above if you need to setup connection to multiple RLM servers. 

1. Choose **OK** and close the Windows Registry Editor.

### Linux Amazon DCV Server configuration
<a name="config-linux"></a>

**To configure the `license-file` configuration parameter on a Linux server**

1. Navigate to `/etc/dcv/` and open the `dcv.conf` with your preferred text editor.

1. Locate the `license-file` parameter in the `[license]` section. Then, replace the existing path with the port and hostname of the RLM server in the `RLM_server_port@RLM_server` format.

   If there is no `license-file` parameter in the `[license]` section, add it manually using the following format:

   ```
   license-file = "RLM_server_port@RLM_server"
   ```

   Check the note above if you need to setup connection to multiple RLM servers.

1. Save and close the file.

# Updating the production license
<a name="updating-licenses"></a>

The Amazon DCV server checks licenses on the RLM server every few minutes. In case the license is updated on the RLM server, Amazon DCV server automatically updates the used license for the running sessions. The following procedure details how to update a DCV license on RLM. 

**To update the DCV license on the RLM server**

1. Update the license file which was previously [installed](setting-up-production.md#setting-up-rlm-server). On Linux, it should had been placed in `/opt/dcv/rlm/license/license.lic`, on Windows in `C:\RLM\license\license.lic`.

1. Run `C:\RLM\rlmutil.exe rlmreread` on Windows or `/opt/nice/rlm/rlmutil rlmreread` on Linux to force the license file reload.

 After the license has been updated on the RLM server, the Amazon DCV server should check the use of the new licenses in a few minutes (usually 5 minutes or less). 

 Starting from Amazon DCV version 2021.0, you can use the following command **as administrator** in order to force the license update immediately: 

```
$ dcv reload-licenses
```

# Step 3: Set up Amazon DCV Server imaging (Optional)
<a name="imaging"></a>

 After customizing an [Amazon EC2](https://aws.amazon.com/ec2/) instance, you can capture those changes as an [Amazon Machine Image]( https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) (AMI). This feature allows you to launch multiple instances from a single AMI, all with the same configuration, when needed. When you have a requirement to securely stream with a high-performance remote display protocol, you can add Amazon DCV to your operating system before taking an image of the Amazon EC2 instance. The Amazon DCV configuration is included in your image, allowing you to separate business units at the image level or set specific DCV configurations on a deployed instance. 

 For example, if you are deploying several Amazon EC2 instances from a single AMI, you can use automatic console creation for a local user account and delegate Amazon DCV permissions to the end users. Alternatively, you can also use a Broker, like [Amazon DCV Session Manager](https://docs.aws.amazon.com/dcv/latest/sm-admin/what-is-sm.html), to manage Amazon DCV session creation at scale. 

 Creating a Amazon DCV AMI can be performed in one of the following two ways: 

## Building a Amazon DCV image
<a name="building-image"></a>

 First, you must have Amazon DCV installed on your system. If you do not, ensure your system is [supported by Amazon DCV](https://docs.aws.amazon.com/dcv/latest/adminguide/servers.html#requirements) then follow the [Installing](https://docs.aws.amazon.com/dcv/latest/adminguide/setting-up-installing.html) instructions. Once Amazon DCV is installed and [configured](https://docs.aws.amazon.com/dcv/latest/adminguide/manage.html), take an [AMI](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/tkv-create-ami-from-instance.html) of the instance. 

 Alternatively, if you have the Amazon DCV prerequisites met for [Windows](https://docs.aws.amazon.com/dcv/latest/adminguide/setting-up-installing-winprereq.html) or [Linux](https://docs.aws.amazon.com/dcv/latest/adminguide/setting-up-installing-linux-prereq.html), you can run the Amazon-managed Image Builder Amazon DCV component to install and configure Amazon DCV. The component can be retrieved by performing the following: 

1. Navigate to the components page within the [Amazon EC2 Image Builder console](https://console.aws.amazon.com/imagebuilder/home?#/viewComponents).

1. Select the **Filter owner** drop-down menu and select **Quick start (Amazon-managed)**.

1. Use the filter textbox to search for `dcv-server-windows` or `dcv-server-linux`.

1. Select the component’s hyperlink.

1. On the Amazon DCV component page, retrieve the component contents from the **Content** section.

1. Use the [AWS Task Orchestrator and Executor](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-component-manager.html) (AWSTOE) to run the component locally on the instance.
**Note**  
For more information, see [Get started with AWSTOE](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-get-started.html).

For parameter usage within the components, see the section below.

## Adding Amazon DCV to an Image Pipeline
<a name="adding-image-to-pipeline"></a>

An [EC2 Image Builder recipe](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-recipes.html) defines the base image to use as a starting point to create a new image, along with the set of components that you add to customize the image and verify that everything works as expected. Within this recipe, select the `dcv-server-windows` or `dcv-server-linux` component to automate the installation of Amazon DCV within your pipeline. When selecting one of these components, you can fine tune the parameters to meet your requirements.

**Note**  
For Linux, all [prerequisites](https://docs.aws.amazon.com/en_us/dcv/latest/adminguide/setting-up-installing-linux-prereq.html) need to be met. This can be done on the base AMI or in preceding Image Builder components. 

### Parameters
<a name="imaging-parameters"></a>

**Windows**
+ `sessionOwner`—Sets the default owner of the automatically created session. If not specified, automatic console creation will be disabled. For more information, see the [Enabling Automatic Console Sessions](https://docs.aws.amazon.com/dcv/latest/adminguide/managing-sessions-start.html#managing-sessions-start-auto) in the Amazon DCV Administration Guide.
+ `dcvPermissions`—Sets the Amazon DCV permissions of your session. For more information, see [Working with permissions files](https://docs.aws.amazon.com/dcv/latest/adminguide/security-authorization-file-create.html) in the DCV Administration Guide. 

**Linux**
+ `SessionOwner`—Sets the default owner of the automatically created session. If not specified, automatic console creation will be disabled. For more information, see the [Enabling Automatic Console Sessions](https://docs.aws.amazon.com/dcv/latest/adminguide/managing-sessions-start.html#managing-sessions-start-auto) in the Amazon DCV Administration Guide.
+ `Packages`—Defines the Amazon DCV packages that will be installed. If empty, all available Amazon DCV packages are installed. For more information, see the [Install the Amazon DCV Server on Linux](https://docs.aws.amazon.com/dcv/latest/adminguide/setting-up-installing-linux-server.html) in the Amazon DCV Administration Guide.

If you would like to modify the component, you may [create a new component](https://docs.aws.amazon.com/imagebuilder/latest/userguide/create-component-console.html) version.