

# Manage device drivers for your EC2 instance
<a name="manage-device-drivers"></a>

Device drivers are software components that communicate with the virtualized hardware for your Amazon EC2 instance. To prevent system errors, performance issues, and other unexpected behavior, it's important to keep your drivers up-to-date. That's especially true for drivers that can have a strong impact on system performance depending on your usage, such as networking, graphics, and storage device drivers. New driver releases can include defect fixes or introduce expanded functionality that you might want to take advantage of for instances that are currently running.

## Network drivers
<a name="w2aac13c48b5"></a>

Linux distributions can incorporate networking features like Elastic Network Adapter (ENA) or Elastic Fabric Adapter (EFA) within the kernel. However, the timing may vary for implementation of kernel driver features within the different distributions.

ENA and EFA Linux kernel drivers are available from the Amazon Drivers GitHub repository. For more information and links to the available drivers, see [Amazon Drivers](https://github.com/amzn/amzn-drivers/) on GitHub.

For more information about ENA drivers, see [Enable enhanced networking with ENA on your EC2 instances](enhanced-networking-ena.md). For more information about EFA drivers, see **Getting started** topics in the [Elastic Fabric Adapter for AI/ML and HPC workloads on Amazon EC2](efa.md) section of this guide.

To install or update networking drivers on Windows instances, see the following topics:
+ [Install the ENA driver on Windows](ena-adapter-driver-install-upgrade-win.md)
+ [Install the latest AWS PV drivers](xen-drivers-overview.md#aws-pv-download)

  For more information, see [Paravirtual drivers for Windows instances](xen-drivers-overview.md).

**Note**  
EFA is not supported on Windows instances.

## Graphics drivers
<a name="w2aac13c48b7"></a>

To install or update graphics drivers, see the following topics:
+ [AMD drivers for your EC2 instance](install-amd-driver.md)
+ [NVIDIA drivers for your Amazon EC2 instance](install-nvidia-driver.md)

## Storage device drivers
<a name="w2aac13c48b9"></a>

To install or update storage drivers, see the following topics:
+ For Linux instances, see [Install or upgrade the NVMe driver](https://docs.aws.amazon.com/ebs/latest/userguide/nvme-ebs-volumes.html#install-nvme-driver) in the *Amazon EBS User Guide*.
+ For Windows instances, see [AWS NVMe drivers](aws-nvme-drivers.md).

# AMD drivers for your EC2 instance
<a name="install-amd-driver"></a>

An instance with an attached AMD GPU, such as a G4ad instance, must have the appropriate AMD driver installed. Depending on your requirements, you can either use an AMI with the driver preinstalled or download a driver from Amazon S3.

To install NVIDIA drivers on an instance with an attached NVIDIA GPU, such as a G4dn instance, see [NVIDIA drivers](install-nvidia-driver.md) instead.

**Contents**
+ [AMD Radeon Pro Software for Enterprise Driver](#amd-radeon-pro-software-for-enterprise-driver)
+ [AMIs with the AMD driver installed](#preinstalled-amd-driver)
+ [AMD driver download](#download-amd-driver)

## AMD Radeon Pro Software for Enterprise Driver
<a name="amd-radeon-pro-software-for-enterprise-driver"></a>

The AMD Radeon Pro Software for Enterprise Driver is built to deliver support for professional-grade graphics use cases. Using the driver, you can configure your instances with two 4K displays per GPU.

**Supported APIs**
+ OpenGL, OpenCL
+ Vulkan
+ AMD Advanced Media Framework
+ Video Acceleration API
+ DirectX 9 and later
+ Microsoft Hardware Media Foundation Transform

## AMIs with the AMD driver installed
<a name="preinstalled-amd-driver"></a>

AWS offers different Amazon Machine Images (AMIs) that come with the AMD drivers installed. Open [Marketplace offerings with the AMD driver](https://aws.amazon.com/marketplace/search/results?page=1&filters=VendorId&VendorId=e6a5002c-6dd0-4d1e-8196-0a1d1857229b&searchTerms=AMD+Radeon+Pro+Driver).

## AMD driver download
<a name="download-amd-driver"></a>

If you aren't using an AMI with the AMD driver installed, you can download the AMD driver and install it on your instance. Only the following operating system versions support AMD drivers:
+ Amazon Linux 2 with kernel version 5.4
+ Ubuntu 20.04
+ Ubuntu 22.04
+ Ubuntu 24.04
+ Windows Server 2016
+ Windows Server 2019
+ Windows Server 2022

These downloads are available to AWS customers only. By downloading, you agree to use the downloaded software only to develop AMIs for use with the AMD Radeon Pro V520 hardware. Upon installation of the software, you are bound by the terms of the [AMD End User License Agreement](https://www.amd.com/en/legal/eula.html).

### Install the AMD driver on your Amazon Linux 2 Linux instance
<a name="install-amd-driver-linux-al2"></a>

1. Connect to your Linux instance.

1. Install the AWS CLI on your Linux instance and configure default credentials. For more information, see [Installing the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) in the *AWS Command Line Interface User Guide*.
**Important**  
Your user or role must have the permissions granted that contains the **AmazonS3ReadOnlyAccess** policy. For more information, see [AWS managed policy: AmazonS3ReadOnlyAccess](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-amazons3readonlyaccess) in the *Amazon Simple Storage Service User Guide*.

1. Install kernel 5.4

   ```
   $ sudo amazon-linux-extras disable kernel-5.10
   $ sudo amazon-linux-extras enable kernel-5.4
   $ sudo yum install -y kernel
   ```

1. Install **gcc** and **make**, if they are not already installed.

   ```
   $ sudo yum install gcc make
   ```

1. Update your package cache and get the package updates for your instance.

   ```
   $ sudo amazon-linux-extras install epel -y
   $ sudo yum update -y
   ```

1. Reboot the instance.

   ```
   $ sudo reboot
   ```

1. Reconnect to the instance after it reboots.

1. Download the latest AMD driver.

   ```
   $ aws s3 cp --recursive s3://ec2-amd-linux-drivers/latest/ .
   ```

1. Extract the file.

   ```
   $ tar -xf amdgpu-pro-*rhel*.tar.xz
   ```

1. Change to the folder for the extracted driver.

1. Run the self install script to install the full graphics stack.

   ```
   $ ./amdgpu-pro-install -y --opencl=pal,legacy
   ```

1. Reboot the instance.

   ```
   $ sudo reboot
   ```

1. Confirm that the driver is functional.

   ```
   $ sudo dmesg | grep amdgpu
   ```

   The response should look like the following:

   ```
   Initialized amdgpu
   ```

### Install the AMD driver on your Ubuntu Linux instance
<a name="install-amd-driver-linux-ubuntu"></a>

1. Connect to your Linux instance.

1. Update your package cache and get the package updates for your instance.

   ```
   $ sudo apt-get update --fix-missing && sudo apt-get upgrade -y
   ```

1. Install **gcc** and **make**, if they are not already installed.

   ```
   $ sudo apt install build-essential -y
   ```

1. Install Linux firmware and kernel modules

   ```
   $ sudo apt install linux-firmware linux-modules-extra-aws -y
   ```

1. Reboot instance

   ```
   $ sudo reboot
   ```

1. Reconnect to the instance after it reboots.

1. Install the AMD Linux driver package
   + For Ubuntu 20.04:

     ```
     $ wget https://repo.radeon.com/.preview/afe3e25b8f1beff0bb312e27924d63b5/amdgpu-install/5.4.02.01/ubuntu/focal/amdgpu-install_5.4.02.01.50402-1_all.deb
     $ sudo dpkg --add-architecture i386
     $ sudo apt install ./amdgpu-install_5.4.02.01.50402-1_all.deb
     ```
   + For later Ubuntu versions go to [Linux® Drivers for AMD Radeon™ Graphics](https://www.amd.com/en/support/download/linux-drivers.html) and download the latest Ubuntu package and install it.

     ```
     $ sudo apt install ./amdgpu-install_{version-you-downloaded}.deb
     ```

1. Run the self install script to install the full graphics stack.

   ```
   $ amdgpu-install --usecase=workstation --vulkan=pro -y
   ```

1. Reboot the instance.

   ```
   $ sudo reboot
   ```

1. Confirm that the driver is functional.

   ```
   $ sudo dmesg | grep amdgpu
   ```

   The response should look like the following:

   ```
   Initialized amdgpu
   ```

### Install the AMD driver on your Windows instance
<a name="install-amd-driver-windows"></a>

1. Connect to your Windows instance and open a PowerShell window.

1. Configure default credentials for the AWS Tools for Windows PowerShell on your Windows instance. For more information, see [Getting Started with the AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-started.html) in the *AWS Tools for PowerShell User Guide*.
**Important**  
Your user or role must have the permissions granted that contains the **AmazonS3ReadOnlyAccess** policy. For more information, see [AWS managed policy: AmazonS3ReadOnlyAccess](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-amazons3readonlyaccess) in the *Amazon Simple Storage Service User Guide*.

1. Set the key prefix according to your version of Windows:
   + Windows 10 and Windows 11

     ```
     $KeyPrefix = "latest/AMD_GPU_WINDOWS10"
     ```
   + Windows Server 2016

     ```
     $KeyPrefix = "archives"
     ```
   + Windows Server 2019

     ```
     $KeyPrefix = "latest/AMD_GPU_WINDOWS_2K19" # use "archives" for Windows Server 2016
     ```
   + Windows Server 2022

     ```
     $KeyPrefix = "latest/AMD_GPU_WINDOWS_2K22"
     ```

1. Download the drivers from Amazon S3 to your desktop using the following PowerShell commands.

   ```
   $Bucket = "ec2-amd-windows-drivers"
   $LocalPath = "$home\Desktop\AMD"
   $Objects = Get-S3Object -BucketName $Bucket -KeyPrefix $KeyPrefix -Region us-east-1
   foreach ($Object in $Objects) {
   $LocalFileName = $Object.Key
   if ($LocalFileName -ne '' -and $Object.Size -ne 0) {
       $LocalFilePath = Join-Path $LocalPath $LocalFileName
       Copy-S3Object -BucketName $Bucket -Key $Object.Key -LocalFile $LocalFilePath -Region us-east-1
       }
   }
   ```

1. Unzip the downloaded driver file and run the installer using the following PowerShell commands.

   ```
   Expand-Archive $LocalFilePath -DestinationPath "$home\Desktop\AMD\$KeyPrefix" -Verbose
   ```

   Now, check the content of the new directory. The directory name can be retrieved using the `Get-ChildItem` PowerShell command.

   ```
   Get-ChildItem "$home\Desktop\AMD\$KeyPrefix"
   ```

   The output should be similar to the following:

   ```
   Directory: C:\Users\Administrator\Desktop\AMD\latest
   
   Mode                LastWriteTime         Length Name
   ----                -------------         ------ ----
   d-----       10/13/2021  12:52 AM                210414a-365562C-Retail_End_User.2
   ```

   Install the drivers:

   ```
   pnputil /add-driver $home\Desktop\AMD\$KeyPrefix\*.inf /install /subdirs
   ```

1. Follow the instructions to install the driver and reboot your instance as required.

1. To verify that the GPU is working properly, check Device Manager. You should see "AMD Radeon Pro V520 MxGPU" listed as a display adapter.

1. To help take advantage of the four displays of up to 4K resolution, set up the high-performance display protocol, [Amazon DCV](https://docs.aws.amazon.com/dcv/).

# NVIDIA drivers for your Amazon EC2 instance
<a name="install-nvidia-driver"></a>

An instance with an attached NVIDIA GPU, such as a P- or G- series instance types, must have the appropriate NVIDIA driver installed. Depending on the instance type, you can either download a public NVIDIA driver, download a driver from Amazon S3 that is available only to AWS customers, or use an AWS AMI with the driver pre-installed.

To install AMD drivers on an instance with an attached AMD GPU, such as a G4ad instance, see [AMD drivers](install-amd-driver.md) instead.

**Topics**
+ [Types of NVIDIA drivers](#nvidia-driver-types)
+ [Available drivers by instance type](#nvidia-driver-instance-type)
+ [Installation options](#nvidia-installation-options)
+ [Use AMIs that include NVIDIA drivers](preinstalled-nvidia-driver.md)
+ [Install NVIDIA public drivers](public-nvidia-driver.md)
+ [Install NVIDIA GRID drivers (G7e, G6, Gr6, G6e, G6f, Gr6f, G5, G4dn, and G3 instances)](nvidia-GRID-driver.md)
+ [Install NVIDIA gaming drivers (G7e, G6, G6e, G5, and G4dn instances)](nvidia-gaming-driver.md)

## Types of NVIDIA drivers
<a name="nvidia-driver-types"></a>

The following are the main types of NVIDIA drivers that can be used with GPU-based instances.

Tesla drivers  
These drivers are intended primarily for compute workloads, which use GPUs for computational tasks such as parallelized floating-point calculations for machine learning and fast Fourier transforms for high performance computing applications.

GRID drivers  
These drivers are certified to provide optimal performance for professional visualization applications that render content such as 3D models or high-resolution videos. You can configure GRID drivers to support two modes. Quadro Virtual Workstations provide access to four 4K displays per GPU. GRID vApps provide RDSH App hosting capabilities.

Gaming drivers  
These drivers contain optimizations for gaming and are updated frequently to provide performance enhancements. They support a single 4K display per GPU.

**Configured mode**  
On Windows, the Tesla drivers are configured to run in Tesla Compute Cluster (TCC) mode. The GRID and gaming drivers are configured to run in Windows Display Driver Model (WDDM) mode. In TCC mode, the card is dedicated to compute workloads. In WDDM mode, the card supports both compute and graphics workloads.

**NVIDIA control panel**  
The NVIDIA control panel is supported with GRID and Gaming drivers. It is not supported with Tesla drivers.

**Supported APIs for Tesla, GRID, and gaming drivers**
+ OpenCL, OpenGL, and Vulkan
+ NVIDIA CUDA and related libraries (for example, cuDNN, TensorRT, nvJPEG, and cuBLAS)
+ NVENC for video encoding and NVDEC for video decoding
+ Windows-only APIs: DirectX, Direct2D, DirectX Video Acceleration, DirectX Raytracing

## Available drivers by instance type
<a name="nvidia-driver-instance-type"></a>

The following table summarizes the supported NVIDIA drivers for each GPU instance type.


| Instance type | Tesla driver | GRID driver | Gaming driver | 
| --- | --- | --- | --- | 
| G3 | Yes | Yes | No | 
| G4dn | Yes | Yes | Yes | 
| G5 | Yes | Yes | Yes | 
| G5g | Yes ¹ | No | No | 
| G6 | Yes | Yes | Yes | 
| G6e | Yes | Yes | Yes | 
| G6f | No | Yes | No | 
| Gr6 | Yes | Yes | No | 
| Gr6f | No | Yes | No | 
| G7e | Yes | Yes | Yes | 
| P2 | Yes | No | No | 
| P3 | Yes | No | No | 
| P4d | Yes | No | No | 
| P4de | Yes | No | No | 
| P5 | Yes | No | No | 
| P5e | Yes | No | No | 
| P5en | Yes | No | No | 
| P6-B200 | Yes | No | No | 
| P6e-GB200 | Yes | No | No | 
| P6-B300 | Yes | No | No | 

¹ This Tesla driver also supports optimized graphics applications specific to the ARM64 platform

## Installation options
<a name="nvidia-installation-options"></a>

Use one of the following options to get the NVIDIA drivers required for your GPU instance.

**Options**

1. [Use AMIs that include NVIDIA drivers](preinstalled-nvidia-driver.md)

1. [Install NVIDIA public drivers](public-nvidia-driver.md)

1. [Install NVIDIA GRID drivers (G7e, G6, Gr6, G6e, G6f, Gr6f, G5, G4dn, and G3 instances)](nvidia-GRID-driver.md)

1. [Install NVIDIA gaming drivers (G7e, G6, G6e, G5, and G4dn instances)](nvidia-gaming-driver.md)

# Use AMIs that include NVIDIA drivers
<a name="preinstalled-nvidia-driver"></a>

AWS and NVIDIA offer different Amazon Machine Images (AMIs) that come with the NVIDIA drivers installed.
+ [Marketplace offerings with the Tesla public driver](https://aws.amazon.com/marketplace/search/results?page=1&filters=VendorId&VendorId=e6a5002c-6dd0-4d1e-8196-0a1d1857229b%2Cc568fe05-e33b-411c-b0ab-047218431da9&searchTerms=tesla+driver)
+ [Marketplace offerings with the GRID driver](https://aws.amazon.com/marketplace/search/results?&searchTerms=NVIDIA+quadro)
+ [Marketplace offerings with the Gaming driver](https://aws.amazon.com/marketplace/search/results?searchTerms=NVIDIA+gaming)

To review considerations that are dependent on your operating system (OS) platform, choose the tab that applies to your AMI.

------
#### [ Linux ]

To update the driver version installed using one of these AMIs, you must uninstall the NVIDIA packages from your instance to avoid version conflicts. Use this command to uninstall the NVIDIA packages:

```
[ec2-user ~]$ sudo yum erase nvidia cuda
```

The CUDA toolkit package has dependencies on the NVIDIA drivers. Uninstalling the NVIDIA packages erases the CUDA toolkit. You must reinstall the CUDA toolkit after installing the NVIDIA driver.

------
#### [ Windows ]

If you create a custom Windows AMI using one of the AWS Marketplace offerings, the AMI must be a standardized image created with Windows Sysprep to ensure that the GRID driver works. For more information, see [Create an Amazon EC2 AMI using Windows Sysprep](ami-create-win-sysprep.md).

------

# Install NVIDIA public drivers
<a name="public-nvidia-driver"></a>

If the AWS Marketplace AMIs described in [Use AMIs that include NVIDIA drivers](preinstalled-nvidia-driver.md) don't fit your use case, you can install the public drivers and bring your own license. Installation options include the following:
+ [Option 1: Driver-only install](#public-nvidia-driver-only-install)
+ [Option 2: Install with the CUDA toolkit](#public-nvidia-driver-cuda-install) (recommended for Linux distributions)

 

**P6-B200 and P6-B300 instance type considerations**  
The P6-B200 and P6-B300 platforms are unique in that they expose Mellanox ConnectX network interface cards (NICs) to the instance as PCIe devices. These NICs do not act as typical network interfaces but instead function as NVSwitch bridges providing a control path to initialize and configure the NVFabric, which is the NVLink topology of the GPU interconnect.

To fully initialize the system, the NVIDIA Fabric Manager must configure `NVFabric` and establish the NVSwitch topology. This enables InfiniBand kernel modules to communicate with the Mellanox ConnectX NICs.

NVIDIA Fabric Manager is included in the CUDA toolkit. We recommend [Option 2: Install with the CUDA toolkit](#public-nvidia-driver-cuda-install) for this instance type.

## Option 1: Driver-only install
<a name="public-nvidia-driver-only-install"></a>

To install a specific driver, log on to your instance and download the 64-bit NVIDIA public driver for the instance type from [ http://www.nvidia.com/Download/Find.aspx](http://www.nvidia.com/Download/Find.aspx). For **Product Type**, **Product Series**, and **Product**, use the options shown in the following table.

Then follow the **Local Repository Installation** instructions in the [ NVIDIA Driver Installation Guide](https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html).

**Note**  
P6-B200 and P6-B300 instance types require installation and configuration of additional packages that come bundled with the NVIDIA CUDA Toolkit. For more information, see instructions for your Linux distribution in [Option 2: Install with the CUDA toolkit](#public-nvidia-driver-cuda-install).


| Instance | Product type | Product series | Product | Minimum driver version | 
| --- | --- | --- | --- | --- | 
| G3 | Tesla | M-Class | M60 | -- | 
| G4dn | Tesla | T-Series | T4 | -- | 
| G5 | Tesla | A-Series | A10 | 470.00 or later | 
| G5g1 | Tesla | T-Series | T4G | 470.82.01 or later | 
| G6 | Tesla | L-Series | L4 | 525.0 or later | 
| G6e | Tesla | L-Series | L40S | 535.0 or later | 
| Gr6 | Tesla | L-Series | L4 | 525.0 or later | 
| G7e | Tesla | RTX series | RTX PRO 6000 Blackwell | 575.0 or later | 
| P2 | Tesla | K-Series | K80 | -- | 
| P3 | Tesla | V-Series | V100 | -- | 
| P4d | Tesla | A-Series | A100 | -- | 
| P4de | Tesla | A-Series | A100 | -- | 
| P5 | Tesla | H-Series | H100 | 530 or later | 
| P5e | Tesla | H-Series | H200 | 550 or later | 
| P5en | Tesla | H-Series | H200 | 550 or later | 
| P6-B2002 | Tesla | HGX-Series | B200 | 570 or later | 
| P6e-GB200 | Tesla | HGX-Series | B200 | 570 or later | 
| P6-B3002 | Tesla | HGX-Series | B300 | 580 or later | 

1 The operating system for G5g instances is Linux aarch64.

2 For P6-B200 and P6-B300 instance types, there are additional installation requirements to configure NVIDIA Fabric Manager.

## Option 2: Install with the CUDA toolkit
<a name="public-nvidia-driver-cuda-install"></a>

Install instructions vary slightly by operating system. To install public drivers on your instance with the NVIDIA CUDA toolkit, follow the instructions for your instance operating system. For instance operating systems that aren't shown here, follow the instructions for your operating system and instance type architecture on the NVIDIA Developer website. For more information, see [CUDA Toolkit Downloads](https://developer.nvidia.com/cuda-downloads).

For instance type architecture or other specifications, see the [Accelerated computing](https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html) specifications in the *Amazon EC2 Instance Types* reference.

### Amazon Linux 2023
<a name="nvidia-public-install-driver-al2023"></a>

This section covers an NVIDIA CUDA toolkit install on an Amazon Linux 2023 instance. The command examples in this section are based on an `x86_64` architecture.

For `arm64-sbsa` commands, see [CUDA Toolkit Downloads](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=arm64-sbsa) and select the options that apply to your distribution. Instructions appear after you've made your final selection.

**Prerequisite**  
Before installing the toolkit and drivers, run the following command to ensure that you have the correct version of the kernel headers and development packages.

```
[ec2-user ~]$ sudo dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r) -y
```

**Download the toolkit and drivers**  
Choose the type of installation to use for your instance, and follow the associated steps.

------
#### [ AL2023 NVIDIA repository ]

Amazon Linux 2023 provides NVIDIA GPU drivers and CUDA toolkit packages through a dedicated repository that AWS maintains. AWS qualifies this repository with AL2023 release candidates and provides security advisories through the Amazon Linux Security Center. We recommend this option for AL2023 instances because it simplifies installation and keeps drivers updated through the standard `dnf update` workflow.

For instructions, see [NVIDIA drivers](https://docs.aws.amazon.com/linux/al2023/ug/nvidia-drivers.html) in the *Amazon Linux 2023 User Guide*.

------
#### [ RPM local installation ]

You can follow these instructions to download the CUDA toolkit installer repository bundle to your instance, then extract and register the specified bundle.

To view instructions on the NVIDIA developer website, see [CUDA Toolkit Downloads](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Amazon-Linux&target_version=2023&target_type=rpm_local).

```
[ec2-user ~]$ wget https://developer.download.nvidia.com/compute/cuda/13.0.0/local_installers/cuda-repo-amzn2023-13-0-local-13.0.0_580.65.06-1.x86_64.rpm
[ec2-user ~]$ sudo rpm -i cuda-repo-amzn2023-13-0-local-13.0.0_580.65.06-1.x86_64.rpm
```

------
#### [ RPM network installation ]

You can follow these instructions to register the CUDA repository with the package manager on your instance. When you run the install steps, the package manager downloads only the packages that are required.

To view instructions on the NVIDIA developer website, see [CUDA Toolkit Downloads](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Amazon-Linux&target_version=2023&target_type=rpm_network).

```
[ec2-user ~]$ sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/amzn2023/x86_64/cuda-amzn2023.repo
```

------

Remaining steps are the same for both RPM local and RPM network installation.

1. Complete the CUDA toolkit install

   ```
   [ec2-user ~]$ sudo dnf clean all
   [ec2-user ~]$ sudo dnf install cuda-toolkit -y
   ```

1. Install the open kernel module variant of the driver

   ```
   [ec2-user ~]$ sudo dnf module install nvidia-driver:open-dkms -y
   ```

1. Install GPUDirect Storage and Fabric Manager

   ```
   [ec2-user ~]$ sudo dnf install nvidia-gds -y
   [ec2-user ~]$ sudo dnf install nvidia-fabric-manager -y
   ```

1. Enable Fabric Manager and driver persistence

   ```
   [ec2-user ~]$ sudo systemctl enable nvidia-fabricmanager
   [ec2-user ~]$ sudo systemctl enable nvidia-persistenced
   ```

1. (*P6-B200 and P6-B300 only*) These instance types require installation and configuration of additional packages that come bundled with the NVIDIA CUDA Toolkit.

   1. Install NVIDIA Link Subnet Manager and `ibstat`.

      ```
      [ec2-user ~]$ sudo dnf install nvlink5
      ```

   1. Enable automatic loading of the Infiniband module on startup.

      ```
      [ec2-user ~]$ echo "ib_umad" | sudo tee -a /etc/modules-load.d/modules.conf
      ```

1. Reboot the instance

   ```
   [ec2-user ~]$ sudo reboot
   ```

### Ubuntu 24.04
<a name="nvidia-public-install-driver-ubuntu2024"></a>

This section covers an NVIDIA CUDA toolkit install on an Ubuntu 24.04 instance. The command examples in this section are based on an `x86_64` architecture.

For `arm64-sbsa` commands, see [CUDA Toolkit Downloads](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=arm64-sbsa) and select the options that apply to your distribution. Instructions appear after you've made your final selection.

**Prerequisite**  
Before installing the toolkit and drivers, run the following command to ensure that you have the correct version of the kernel headers and development packages.

```
$ apt install linux-headers-$(uname -r)
```

**Download the toolkit and drivers**  
Choose the type of installation to use for your instance, and follow the associated steps.

------
#### [ Deb local installation ]

You can follow these instructions to download the CUDA toolkit installer repository bundle to your instance, then extract and register the specified bundle.

To view instructions on the NVIDIA developer website, see [CUDA Toolkit Downloads](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=24.04&target_type=deb_local).

```
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin
$ sudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/13.0.0/local_installers/cuda-repo-ubuntu2404-13-0-local_13.0.0-580.65.06-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu2404-13-0-local_13.0.0-580.65.06-1_amd64.deb
$ sudo cp /var/cuda-repo-ubuntu2404-13-0-local/cuda-*-keyring.gpg /usr/share/keyrings/
```

------
#### [ Deb network installation ]

You can follow these instructions to register the CUDA repository with the package manager on your instance. When you run the install steps, the package manager downloads only the packages that are required.

To view instructions on the NVIDIA developer website, see [CUDA Toolkit Downloads](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=24.04&target_type=deb_network).

```
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
$ sudo dpkg -i cuda-keyring_1.1-1_all.deb
```

------

Remaining steps are the same for both local and network installation.

1. Complete the CUDA toolkit install

   ```
   $ sudo apt update
   $ sudo apt install cuda-toolkit -y
   ```

1. Install the open kernel module variant of the driver

   ```
   $ sudo apt install nvidia-open -y
   ```

1. Install GPUDirect Storage and Fabric Manager

   ```
   $ sudo apt install nvidia-gds -y
   $ sudo apt install nvidia-fabricmanager -y
   ```

1. Enable Fabric Manager and driver persistence

   ```
   $ sudo systemctl enable nvidia-fabricmanager
   $ sudo systemctl enable nvidia-persistenced
   ```

1. (*P6-B200 and P6-B300 only*) These instance types require installation and configuration of additional packages that come bundled with the NVIDIA CUDA Toolkit.

   1. Install the latest InfiniBand-specific device driver and diagnostic utilities.

      ```
      $ sudo apt install linux-modules-extra-$(uname -r) -y
      $ sudo apt install infiniband-diags -y
      ```

   1. Install NVIDIA Link Subnet Manager.

      ```
      $ sudo apt install nvlsm -y
      ```

1. Reboot the instance

   ```
   sudo reboot
   ```

1. Update your path and add the following environment variable.

   ```
   $ export PATH=${PATH}:/usr/local/cuda-13.0/bin
   $ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-13.0/lib64
   ```

### Windows operating systems
<a name="nvidia-public-install-driver-windows"></a>

To install the NVIDIA driver on Windows, follow these steps:

1. Open the folder where you downloaded the driver and launch the installation file. Follow the instructions to install the driver and reboot your instance as required.

1. Disable the display adapter named **Microsoft Basic Display Adapter** that is marked with a warning icon using Device Manager. Install these Windows features: **Media Foundation** and **Quality Windows Audio Video Experience**.
**Important**  
Don't disable the display adapter named **Microsoft Remote Display Adapter**. If **Microsoft Remote Display Adapter** is disabled your connection might be interrupted and attempts to connect to the instance after it has rebooted might fail.

1. Check Device Manager to verify that the GPU is working correctly.

1. To achieve the best performance from your GPU, complete the optimization steps in [Optimize GPU settings on Amazon EC2 instances](optimize_gpu.md).

# Install NVIDIA GRID drivers (G7e, G6, Gr6, G6e, G6f, Gr6f, G5, G4dn, and G3 instances)
<a name="nvidia-GRID-driver"></a>

These downloads are available to AWS customers only. By downloading, in order to adhere to requirements of the AWS solution referred to in the NVIDIA GRID Cloud End User License Agreement (EULA), you agree to use the downloaded software only to develop AMIs for use with the NVIDIA L4, NVIDIA L40S, NVIDIA A10G, NVIDIA Tesla T4, or NVIDIA Tesla M60 hardware. You can use the GRID drivers to both create and use AMIs within the AWS environment. Upon installation of the software, you are bound by the terms of the [NVIDIA GRID Cloud End User License Agreement](https://aws-nvidia-license-agreement.s3.amazonaws.com/NvidiaGridAWSUserLicenseAgreement.DOCX). For information about the version of the NVIDIA GRID driver for your operating system, see the [NVIDIA Virtual GPU (vGPU) Software](https://docs.nvidia.com/vgpu/) on the NVIDIA website.

**Considerations**
+ G7e instances require GRID 19.1 or later for Linux and 19.3 (581.192) or later for Windows.
+ G6f and Gr6f instances require GRID 18.4 or later.
+ G6e instances require GRID 17.4 or later.
+ G6 and Gr6 instances require GRID 17.1 or later.
+ G5 instances require GRID 13.1 or later (or GRID 12.4 or later).
+ G3 instances require AWS provided DNS resolution for GRID licensing to work.
+ [IMDSv2](configuring-instance-metadata-service.md) is only supported with NVIDIA driver version 14.0 or greater.
+ For Windows instances, if you launch your instance from a custom Windows AMI, the AMI must be a standardized image created with Windows Sysprep to ensure that the GRID driver works. For more information, see [Create an Amazon EC2 AMI using Windows Sysprep](ami-create-win-sysprep.md).
+ GRID 17.0 and later do not support Windows Server 2019.
+ GRID 14.2 and later do not support Windows Server 2016.
+ GRID 17.0 and later is not supported with G3 instances.
+ For Linux instances, you might need to install or update packages, such as gcc, if the NVIDIA installer fails with an error message. The specifics depend on the versions of the operating system and the kernel. For more information, see the NVIDIA Enterprise Support Portal.

**Prerequisites**
+ (Linux) Verify that the AWS CLI is installed on your instance and configured with default credentials. For more information, see [Installing the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) in the *AWS Command Line Interface User Guide*.
+ (Windows) Configure default credentials for the AWS Tools for Windows PowerShell on your instance. For more information, see [Getting started with the AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-started.html) in the *AWS Tools for PowerShell User Guide*.
+ Your user or role must have the permissions granted that contains the **AmazonS3ReadOnlyAccess** policy.

## Amazon Linux 2023
<a name="nvidia-grid-amazon-linux"></a>

**To install the NVIDIA GRID driver on your instance**

1. Connect to your instance. Update your package cache and get the package updates for your instance.

   ```
   [ec2-user ~]$ sudo dnf update -y
   ```

1. Install **gcc** and **make**, if they are not already installed.

   ```
   [ec2-user ~]$ sudo dnf install gcc make
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Reconnect to your instance after it has rebooted.

1. Install the kernel headers packages.

   ```
   [ec2-user ~]$ sudo dnf install -y kernel-devel kernel-modules-extra
   ```

1. Download the GRID driver installation utility using the following command:

   ```
   [ec2-user ~]$ aws s3 cp --recursive s3://ec2-linux-nvidia-drivers/latest/ .
   ```

   Multiple versions of the GRID driver are stored in this bucket. You can see all of the available versions using the following command.

   ```
   [ec2-user ~]$ aws s3 ls --recursive s3://ec2-linux-nvidia-drivers/
   ```

1. Add permissions to run the driver installation utility using the following command.

   ```
   [ec2-user ~]$ chmod +x NVIDIA-Linux-x86_64*.run
   ```

1. Run the self-install script as follows to install the GRID driver that you downloaded. For example:

   ```
   [ec2-user ~]$ sudo /bin/sh ./NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Confirm that the driver is functional. The response for the following command lists the installed version of the NVIDIA driver and details about the GPUs.

   ```
   [ec2-user ~]$ nvidia-smi -q | head
   ```

1. If you are using NVIDIA vGPU software version 14.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   [ec2-user ~]$ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   [ec2-user ~]$ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. (Optional) Depending on your use case, you might complete the following optional steps. If you do not require this functionality, do not complete these steps.

   1. To help take advantage of the four displays of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/).

   1. NVIDIA Quadro Virtual Workstation mode is enabled by default. To activate GRID Virtual Applications for RDSH Application hosting capabilities, complete the GRID Virtual Application activation steps in [Activate NVIDIA GRID Virtual Applications on your Amazon EC2 GPU-based instances](activate_grid.md).

## Amazon Linux 2
<a name="nvidia-grid-amazon-linux-2"></a>

**To install the NVIDIA GRID driver on your instance**

1. Connect to your instance. Update your package cache and get the package updates for your instance.

   ```
   [ec2-user ~]$ sudo yum update -y
   ```

1. Install **gcc** and **make**, if they are not already installed.

   ```
   [ec2-user ~]$ sudo yum install gcc make
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Reconnect to your instance after it has rebooted.

1. Install the kernel headers package for the version of the kernel that is running.

   ```
   [ec2-user ~]$ sudo yum install -y kernel-devel-$(uname -r)
   ```

1. Download the GRID driver installation utility using the following command:

   ```
   [ec2-user ~]$ aws s3 cp --recursive s3://ec2-linux-nvidia-drivers/latest/ .
   ```

   Multiple versions of the GRID driver are stored in this bucket. You can see all of the available versions using the following command.

   ```
   [ec2-user ~]$ aws s3 ls --recursive s3://ec2-linux-nvidia-drivers/
   ```

1. Add permissions to run the driver installation utility using the following command.

   ```
   [ec2-user ~]$ chmod +x NVIDIA-Linux-x86_64*.run
   ```

1. Run the self-install script as follows to install the GRID driver that you downloaded. For example:

   ```
   [ec2-user ~]$ sudo /bin/sh ./NVIDIA-Linux-x86_64*.run
   ```

   If you are using Amazon Linux 2 with kernel version 5.10, use the following command to install the GRID driver.

   ```
   [ec2-user ~]$ sudo CC=/usr/bin/gcc10-cc ./NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Confirm that the driver is functional. The response for the following command lists the installed version of the NVIDIA driver and details about the GPUs.

   ```
   [ec2-user ~]$ nvidia-smi -q | head
   ```

1. If you are using NVIDIA vGPU software version 14.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   [ec2-user ~]$ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   [ec2-user ~]$ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. (Optional) Depending on your use case, you might complete the following optional steps. If you do not require this functionality, do not complete these steps.

   1. To help take advantage of the four displays of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/).

   1. NVIDIA Quadro Virtual Workstation mode is enabled by default. To activate GRID Virtual Applications for RDSH Application hosting capabilities, complete the GRID Virtual Application activation steps in [Activate NVIDIA GRID Virtual Applications on your Amazon EC2 GPU-based instances](activate_grid.md).

## CentOS 7 and Red Hat Enterprise Linux 7
<a name="nvidia-grid-centos7-rhel7"></a>

**To install the NVIDIA GRID driver on your instance**

1. Connect to your instance. Update your package cache and get the package updates for your instance.

   ```
   [ec2-user ~]$ sudo yum update -y
   ```

1. Install **gcc** and **make**, if they are not already installed.

   ```
   [ec2-user ~]$ sudo yum install -y gcc make
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Reconnect to your instance after it has rebooted.

1. Install the kernel headers package for the version of the kernel that you are running.

   ```
   [ec2-user ~]$ sudo yum install -y kernel-devel-$(uname -r)
   ```

1. Disable the `nouveau` open source driver for NVIDIA graphics cards.

   1. Add `nouveau` to the `/etc/modprobe.d/blacklist.conf` blacklist file. Copy the following code block and paste it into a terminal.

      ```
      [ec2-user ~]$ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf
      blacklist vga16fb
      blacklist nouveau
      blacklist rivafb
      blacklist nvidiafb
      blacklist rivatv
      EOF
      ```

   1. Edit the `/etc/default/grub` file and add the following line:

      ```
      GRUB_CMDLINE_LINUX="rdblacklist=nouveau"
      ```

   1. Rebuild the Grub configuration.

      ```
      [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      ```

1. Download the GRID driver installation utility using the following command:

   ```
   [ec2-user ~]$ aws s3 cp --recursive s3://ec2-linux-nvidia-drivers/latest/ .
   ```

   Multiple versions of the GRID driver are stored in this bucket. You can see all of the available versions using the following command.

   ```
   [ec2-user ~]$ aws s3 ls --recursive s3://ec2-linux-nvidia-drivers/
   ```

1. Add permissions to run the driver installation utility using the following command.

   ```
   [ec2-user ~]$ chmod +x NVIDIA-Linux-x86_64*.run
   ```

1. Run the self-install script as follows to install the GRID driver that you downloaded. For example:

   ```
   [ec2-user ~]$ sudo /bin/sh ./NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Confirm that the driver is functional. The response for the following command lists the installed version of the NVIDIA driver and details about the GPUs.

   ```
   [ec2-user ~]$ nvidia-smi -q | head
   ```

1. If you are using NVIDIA vGPU software version 14.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   [ec2-user ~]$ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   [ec2-user ~]$ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. (Optional) Depending on your use case, you might complete the following optional steps. If you do not require this functionality, do not complete these steps.

   1. To help take advantage of the four displays of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/).

   1. NVIDIA Quadro Virtual Workstation mode is enabled by default. To activate GRID Virtual Applications for RDSH Application hosting capabilities, complete the GRID Virtual Application activation steps in [Activate NVIDIA GRID Virtual Applications on your Amazon EC2 GPU-based instances](activate_grid.md).

   1. Install the GUI desktop/workstation package.

      ```
      [ec2-user ~]$ sudo yum groupinstall -y "Server with GUI"
      ```

## CentOS Stream 8 and Red Hat Enterprise Linux 8
<a name="nvidia-grid-centos8-rhel8"></a>

**To install the NVIDIA GRID driver on your instance**

1. Connect to your instance. Update your package cache and get the package updates for your instance.

   ```
   [ec2-user ~]$ sudo yum update -y
   ```

1. Install **gcc** and **make**, if they are not already installed.

   ```
   [ec2-user ~]$ sudo yum install -y gcc make
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Reconnect to your instance after it has rebooted.

1. Install the kernel headers package for the version of the kernel that you are running.

   ```
   [ec2-user ~]$ sudo dnf install -y elfutils-libelf-devel libglvnd-devel kernel-devel-$(uname -r)
   ```

1. Download the GRID driver installation utility using the following command:

   ```
   [ec2-user ~]$ aws s3 cp --recursive s3://ec2-linux-nvidia-drivers/latest/ .
   ```

   Multiple versions of the GRID driver are stored in this bucket. You can see all of the available versions using the following command.

   ```
   [ec2-user ~]$ aws s3 ls --recursive s3://ec2-linux-nvidia-drivers/
   ```

1. Add permissions to run the driver installation utility using the following command.

   ```
   [ec2-user ~]$ chmod +x NVIDIA-Linux-x86_64*.run
   ```

1. Run the self-install script as follows to install the GRID driver that you downloaded. For example:

   ```
   [ec2-user ~]$ sudo /bin/sh ./NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Confirm that the driver is functional. The response for the following command lists the installed version of the NVIDIA driver and details about the GPUs.

   ```
   [ec2-user ~]$ nvidia-smi -q | head
   ```

1. If you are using NVIDIA vGPU software version 14.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   [ec2-user ~]$ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   [ec2-user ~]$ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. (Optional) Depending on your use case, you might complete the following optional steps. If you do not require this functionality, do not complete these steps.

   1. To help take advantage of the four displays of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/).

   1. NVIDIA Quadro Virtual Workstation mode is enabled by default. To activate GRID Virtual Applications for RDSH Application hosting capabilities, complete the GRID Virtual Application activation steps in [Activate NVIDIA GRID Virtual Applications on your Amazon EC2 GPU-based instances](activate_grid.md).

   1. Install the GUI workstation package.

      ```
      [ec2-user ~]$ sudo dnf groupinstall -y workstation
      ```

## Rocky Linux 8
<a name="nvidia-grid-rocky-linux-8"></a>

**To install the NVIDIA GRID driver on your Linux instance**

1. Connect to your instance. Update your package cache and get the package updates for your instance.

   ```
   [ec2-user ~]$ sudo yum update -y
   ```

1. Install **gcc** and **make**, if they are not already installed.

   ```
   [ec2-user ~]$ sudo yum install -y gcc make
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Reconnect to your instance after it has rebooted.

1. Install the kernel headers package for the version of the kernel that you are running.

   ```
   [ec2-user ~]$ sudo dnf install -y elfutils-libelf-devel libglvnd-devel kernel-devel-$(uname -r)
   ```

1. Download the GRID driver installation utility using the following command:

   ```
   [ec2-user ~]$ aws s3 cp --recursive s3://ec2-linux-nvidia-drivers/latest/ .
   ```

   Multiple versions of the GRID driver are stored in this bucket. You can see all of the available versions using the following command.

   ```
   [ec2-user ~]$ aws s3 ls --recursive s3://ec2-linux-nvidia-drivers/
   ```

1. Add permissions to run the driver installation utility using the following command.

   ```
   [ec2-user ~]$ chmod +x NVIDIA-Linux-x86_64*.run
   ```

1. Run the self-install script as follows to install the GRID driver that you downloaded. For example:

   ```
   [ec2-user ~]$ sudo /bin/sh ./NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Confirm that the driver is functional. The response for the following command lists the installed version of the NVIDIA driver and details about the GPUs.

   ```
   [ec2-user ~]$ nvidia-smi -q | head
   ```

1. If you are using NVIDIA vGPU software version 14.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   [ec2-user ~]$ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   [ec2-user ~]$ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. (Optional) Depending on your use case, you might complete the following optional steps. If you do not require this functionality, do not complete these steps.

   1. To help take advantage of the four displays of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/).

   1. NVIDIA Quadro Virtual Workstation mode is enabled by default. To activate GRID Virtual Applications for RDSH Application hosting capabilities, complete the GRID Virtual Application activation steps in [Activate NVIDIA GRID Virtual Applications on your Amazon EC2 GPU-based instances](activate_grid.md).

## Ubuntu and Debian
<a name="nvidia-grid-ubuntu-debian"></a>

**To install the NVIDIA GRID driver on your instance**

1. Connect to your instance. Update your package cache and get the package updates for your instance.

   ```
   $ sudo apt-get update -y
   ```

1. Install **gcc** and **make**, if they are not already installed.

   ```
   $ sudo apt-get install -y gcc make
   ```

1. (Ubuntu) Upgrade the `linux-aws` package to receive the latest version.

   ```
   $ sudo apt-get upgrade -y linux-aws
   ```

   (Debian) Upgrade package to receive the latest version.

   ```
   $ sudo apt-get upgrade -y
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   $ sudo reboot
   ```

1. Reconnect to your instance after it has rebooted.

1. Install the kernel headers package for the version of the kernel you are currently running.

   ```
   $ sudo apt-get install -y linux-headers-$(uname -r) linux-modules-extra-$(uname -r)
   ```

1. Disable the `nouveau` open source driver for NVIDIA graphics cards.

   1. Add `nouveau` to the `/etc/modprobe.d/blacklist.conf` blacklist file. Copy the following code block and paste it into a terminal.

      ```
      $ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf
      blacklist vga16fb
      blacklist nouveau
      blacklist rivafb
      blacklist nvidiafb
      blacklist rivatv
      EOF
      ```

   1. Edit the `/etc/default/grub` file and add the following line:

      ```
      GRUB_CMDLINE_LINUX="rdblacklist=nouveau"
      ```

   1. Rebuild the Grub configuration.

      ```
      $ sudo update-grub
      ```

1. Download the GRID driver installation utility using the following command:

   ```
   $ aws s3 cp --recursive s3://ec2-linux-nvidia-drivers/latest/ .
   ```

   Multiple versions of the GRID driver are stored in this bucket. You can see all of the available versions using the following command.

   ```
   $ aws s3 ls --recursive s3://ec2-linux-nvidia-drivers/
   ```

1. Add permissions to run the driver installation utility using the following command.

   ```
   $ chmod +x NVIDIA-Linux-x86_64*.run
   ```

1. Run the self-install script as follows to install the GRID driver that you downloaded. For example:

   ```
   $ sudo /bin/sh ./NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Confirm that the driver is functional. The response for the following command lists the installed version of the NVIDIA driver and details about the GPUs.

   ```
   $ nvidia-smi -q | head
   ```

1. If you are using NVIDIA vGPU software version 14.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   $ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   $ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   $ sudo reboot
   ```

1. (Optional) Depending on your use case, you might complete the following optional steps. If you do not require this functionality, do not complete these steps.

   1. To help take advantage of the four displays of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/).

   1. NVIDIA Quadro Virtual Workstation mode is enabled by default. To activate GRID Virtual Applications for RDSH Application hosting capabilities, complete the GRID Virtual Application activation steps in [Activate NVIDIA GRID Virtual Applications on your Amazon EC2 GPU-based instances](activate_grid.md).

   1. Install the GUI desktop/workstation package.

      ```
      $ sudo apt-get install -y lightdm ubuntu-desktop
      ```

## Windows operating systems
<a name="nvidia-grid-windows"></a>

**To install the NVIDIA GRID driver on your Windows instance**

1. Connect to your Windows instance and open a PowerShell window.

1. Download the drivers and the [NVIDIA GRID Cloud End User License Agreement](https://aws-nvidia-license-agreement.s3.amazonaws.com/NvidiaGridAWSUserLicenseAgreement.DOCX) from Amazon S3 to your desktop using the following PowerShell commands.

   ```
   $Bucket = "ec2-windows-nvidia-drivers"
   $KeyPrefix = "latest"
   $LocalPath = "$home\Desktop\NVIDIA"
   $Objects = Get-S3Object -BucketName $Bucket -KeyPrefix $KeyPrefix -Region us-east-1
   foreach ($Object in $Objects) {
   $LocalFileName = $Object.Key
   if ($LocalFileName -ne '' -and $Object.Size -ne 0) {
   $LocalFilePath = Join-Path $LocalPath $LocalFileName
   Copy-S3Object -BucketName $Bucket -Key $Object.Key -LocalFile $LocalFilePath -Region us-east-1
   }
   }
   ```

   Multiple versions of the NVIDIA GRID driver are stored in this bucket. You can download all of the available Windows versions in the bucket by removing the `-KeyPrefix $KeyPrefix` option. For information about the version of the NVIDIA GRID driver for your operating system, see the [NVIDIA Virtual GPU (vGPU) Software](https://docs.nvidia.com/vgpu/) on the NVIDIA website.

   Starting with GRID version 11.0, you can use the drivers under `latest` for both G3 and G4dn instances. We will not add versions later than 11.0 to `g4/latest`, but will keep version 11.0 and the earlier versions specific to G4dn under `g4/latest`.

   G5 instances require GRID 13.1 or later (or GRID 12.4 or later).

1. Navigate to the desktop and double-click the installation file to launch it (choose the driver version that corresponds to your instance OS version). Follow the instructions to install the driver and reboot your instance as required. To verify that the GPU is working properly, check Device Manager.

1. (Optional) Use the following command to disable the licensing page in the control panel to prevent users from accidentally changing the product type (NVIDIA GRID Virtual Workstation is enabled by default). For more information, see the [GRID Licensing User Guide](https://docs.nvidia.com/vgpu/4.6/grid-licensing-user-guide/index.html).

**PowerShell**  
Run the following PowerShell commands to create the registry value to disable the licensing page in the control panel. The AWS Tools for PowerShell in AWS Windows AMIs defaults to the 32-bit version and this command fails. Instead, use the 64-bit version of PowerShell included with the operating system.

   ```
   New-Item -Path "HKLM:\SOFTWARE\NVIDIA Corporation\Global" -Name GridLicensing
   New-ItemProperty -Path "HKLM:\SOFTWARE\NVIDIA Corporation\Global\GridLicensing" -Name "NvCplDisableManageLicensePage" -PropertyType "DWord" -Value "1"
   ```

**Command Prompt**  
Run the following registry command to create the registry value to disable the licensing page in the control panel. You can run it using the Command Prompt window or a 64-bit version of PowerShell.

   ```
   reg add "HKLM\SOFTWARE\NVIDIA Corporation\Global\GridLicensing" /v NvCplDisableManageLicensePage /t REG_DWORD /d 1
   ```

1. (Optional) Depending on your use case, you might complete the following optional steps. If you do not require this functionality, do not complete these steps.

   1. To help take advantage of the four displays of up to 4K resolution, set up the high-performance display protocol, [Amazon DCV](https://docs.aws.amazon.com/dcv/).

   1. NVIDIA Quadro Virtual Workstation mode is enabled by default. To activate GRID Virtual Applications for RDSH Application hosting capabilities, complete the GRID Virtual Application activation steps in [Activate NVIDIA GRID Virtual Applications on your Amazon EC2 GPU-based instances](activate_grid.md).

# Install NVIDIA gaming drivers (G7e, G6, G6e, G5, and G4dn instances)
<a name="nvidia-gaming-driver"></a>

These drivers are available to AWS customers only. By downloading them, you agree to use the downloaded software only to develop AMIs for use with the RTX PRO 6000 Blackwell, NVIDIA L4, NVIDIA L40S, NVIDIA A10G, NVIDIA Tesla T4, or NVIDIA Tesla M60 hardware. You can use the GRID drivers to both create and use AMIs within the AWS environment. Upon installation of the software, you are bound by the terms of the [NVIDIA GRID Cloud End User License Agreement](https://aws-nvidia-license-agreement.s3.amazonaws.com/NvidiaGridAWSUserLicenseAgreement.DOCX).

**Considerations**
+ G3 instances require AWS provided DNS resolution for GRID licensing to work.
+ [IMDSv2](configuring-instance-metadata-service.md) is only supported with NVIDIA driver version 495.x or greater. 

**Prerequisites**
+ (Linux) Verify that the AWS CLI is installed on your instance and configured with default credentials. For more information, see [Installing the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) in the *AWS Command Line Interface User Guide*.
+ Your user or role must have the permissions granted that contains the **AmazonS3ReadOnlyAccess** policy.

## Amazon Linux 2023
<a name="nvidia-gaming-amazon-linux"></a>

**To install the NVIDIA gaming driver on your instance**

1. Connect to your instance. Update your package cache and get the package updates for your instance.

   ```
   [ec2-user ~]$ sudo dnf update -y
   ```

1. Install **gcc** and **make**, if they are not already installed.

   ```
   [ec2-user ~]$ sudo dnf install gcc make
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Reconnect to your instance after it is rebooted.

1. Install the kernel headers packages.

   ```
   [ec2-user ~]$ sudo dnf install -y kernel-devel kernel-modules-extra kernel-devel-$(uname -r) kernel-headers-$(uname -r) dkms
   ```

1. Download the gaming driver installation utility using the following command:

   ```
   [ec2-user ~]$ aws s3 cp --recursive s3://nvidia-gaming/linux/latest/ .
   ```

   Multiple versions of the gaming driver are stored in this bucket. You can see all of the available versions using the following command:

   ```
   [ec2-user ~]$ aws s3 ls --recursive s3://nvidia-gaming/linux/
   ```

1. Extract the gaming driver installation utility from the downloaded `.zip` archive.

   ```
   [ec2-user ~]$ unzip latest-driver-name.zip -d nvidia-drivers
   ```

1. Add permissions to run the driver installation utility using the following command:

   ```
   [ec2-user ~]$ chmod +x nvidia-drivers/NVIDIA-Linux-x86_64*-grid.run
   ```

1. Run the installer using the following command:

   ```
   [ec2-user ~]$ sudo ./nvidia-drivers/NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Use the following command to create the required configuration file.

   ```
   [ec2-user ~]$ cat << EOF | sudo tee -a /etc/nvidia/gridd.conf
   vGamingMarketplace=2
   EOF
   ```

1. Use the following command to download and rename the certification file.
   + For version 590.48 or later:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert_2026_03_02.cert"
     ```
   + For version 460.39 to 580.95:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCertLinux_2024_02_22.cert"
     ```
   + For version 440.68 to 445.48:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2020_04.cert"
     ```
   + For earlier versions:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2019_09.cert"
     ```

1. If you are using NVIDIA driver version 510.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   [ec2-user ~]$ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   [ec2-user ~]$ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Verify the NVIDIA Gaming license using the following command.

   ```
   [ec2-user ~]$ nvidia-smi.exe -q
   ```

   In the output, search for `vGPU Software Licensed Product`.

1. (Optional) To help take advantage of a single display of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/).

## Amazon Linux 2
<a name="nvidia-gaming-amazon-linux-2"></a>

**To install the NVIDIA gaming driver on your instance**

1. Connect to your instance. Update your package cache and get the package updates for your instance.

   ```
   [ec2-user ~]$ sudo yum update -y
   ```

1. Install **gcc** and **make**, if they are not already installed.

   ```
   [ec2-user ~]$ sudo yum install gcc make
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Reconnect to your instance after it is rebooted.

1. Install the kernel headers package for the version of the kernel you are currently running.

   ```
   [ec2-user ~]$ sudo yum install -y kernel-devel-$(uname -r)
   ```

1. Download the gaming driver installation utility using the following command:

   ```
   [ec2-user ~]$ aws s3 cp --recursive s3://nvidia-gaming/linux/latest/ .
   ```

   Multiple versions of the gaming driver are stored in this bucket. You can see all of the available versions using the following command:

   ```
   [ec2-user ~]$ aws s3 ls --recursive s3://nvidia-gaming/linux/
   ```

1. Extract the gaming driver installation utility from the downloaded `.zip` archive.

   ```
   [ec2-user ~]$ unzip latest-driver-name.zip -d nvidia-drivers
   ```

1. Add permissions to run the driver installation utility using the following command:

   ```
   [ec2-user ~]$ chmod +x nvidia-drivers/NVIDIA-Linux-x86_64*-grid.run
   ```

1. Run the installer using the following command:

   ```
   [ec2-user ~]$ sudo ./nvidia-drivers/NVIDIA-Linux-x86_64*.run
   ```

   If you are using Amazon Linux 2 with kernel version 5.10, use the following command to install the NVIDIA gaming drivers.

   ```
   [ec2-user ~]$ sudo CC=/usr/bin/gcc10-cc ./NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Use the following command to create the required configuration file.

   ```
   [ec2-user ~]$ cat << EOF | sudo tee -a /etc/nvidia/gridd.conf
   vGamingMarketplace=2
   EOF
   ```

1. Use the following command to download and rename the certification file.
   + For version 590.48 or later:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert_2026_03_02.cert"
     ```
   + For version 460.39 to 580.95:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCertLinux_2024_02_22.cert"
     ```
   + For version 440.68 to 445.48:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2020_04.cert"
     ```
   + For earlier versions:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2019_09.cert"
     ```

1. If you are using NVIDIA driver version 510.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   [ec2-user ~]$ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   [ec2-user ~]$ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Verify the NVIDIA Gaming license using the following command.

   ```
   [ec2-user ~]$ nvidia-smi.exe -q
   ```

   In the output, search for `vGPU Software Licensed Product`.

1. (Optional) To help take advantage of a single display of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/).

## CentOS 7 and Red Hat Enterprise Linux 7
<a name="nvidia-gaming-centos7-rhel7"></a>

**To install the NVIDIA gaming driver on your instance**

1. Connect to your Linux instance. Install **gcc** and **make**, if they are not already installed.

   ```
   [ec2-user ~]$ sudo yum install -y gcc make
   ```

1. Update your package cache and get the package updates for your instance.

   ```
   [ec2-user ~]$ sudo yum update -y
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Reconnect to your instance after it has rebooted.

1. Install the kernel headers package for the version of the kernel you are currently running.

   ```
   [ec2-user ~]$ sudo yum install -y unzip kernel-devel-$(uname -r)
   ```

1. Disable the `nouveau` open source driver for NVIDIA graphics cards.

   1. Add `nouveau` to the `/etc/modprobe.d/blacklist.conf` blacklist file. Copy the following code block and paste it into a terminal.

      ```
      [ec2-user ~]$ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf
      blacklist vga16fb
      blacklist nouveau
      blacklist rivafb
      blacklist nvidiafb
      blacklist rivatv
      EOF
      ```

   1. Edit the `/etc/default/grub` file and add the following line:

      ```
      GRUB_CMDLINE_LINUX="rdblacklist=nouveau"
      ```

   1. Rebuild the Grub configuration.

      ```
      [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      ```

1. Download the gaming driver installation utility using the following command:

   ```
   [ec2-user ~]$ aws s3 cp --recursive s3://nvidia-gaming/linux/latest/ .
   ```

   Multiple versions of the gaming driver are stored in this bucket. You can see all of the available versions using the following command:

   ```
   [ec2-user ~]$ aws s3 ls --recursive s3://nvidia-gaming/linux/
   ```

1. Extract the gaming driver installation utility from the downloaded `.zip` archive.

   ```
   [ec2-user ~]$ unzip *Gaming-Linux-Guest-Drivers.zip -d nvidia-drivers
   ```

1. Add permissions to run the driver installation utility using the following command:

   ```
   [ec2-user ~]$ chmod +x nvidia-drivers/NVIDIA-Linux-x86_64*-grid.run
   ```

1. Run the installer using the following command:

   ```
   [ec2-user ~]$ sudo nvidia-drivers/NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Use the following command to create the required configuration file.

   ```
   [ec2-user ~]$ cat << EOF | sudo tee -a /etc/nvidia/gridd.conf
   vGamingMarketplace=2
   EOF
   ```

1. Use the following command to download and rename the certification file.
   + For version 590.48 or later:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert_2026_03_02.cert"
     ```
   + For version 460.39 to 580.95:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCertLinux_2024_02_22.cert"
     ```
   + For version 440.68 to 445.48:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2020_04.cert"
     ```
   + For earlier versions:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2019_09.cert"
     ```

1. If you are using NVIDIA driver version 510.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   [ec2-user ~]$ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   [ec2-user ~]$ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. (Optional) To help take advantage of a single display of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/). If you do not require this functionality, do not complete this step.

## CentOS Stream 8 and Red Hat Enterprise Linux 8
<a name="nvidia-gaming-centos8-rhel8"></a>

**To install the NVIDIA gaming driver on your instance**

1. Connect to your Linux instance. Install **gcc** and **make**, if they are not already installed.

   ```
   [ec2-user ~]$ sudo yum install -y gcc make
   ```

1. Update your package cache and get the package updates for your instance.

   ```
   [ec2-user ~]$ sudo yum update -y
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Reconnect to your instance after it has rebooted.

1. Install the kernel headers package for the version of the kernel you are currently running.

   ```
   [ec2-user ~]$ sudo yum install -y unzip kernel-devel-$(uname -r)
   ```

1. Download the gaming driver installation utility using the following command:

   ```
   [ec2-user ~]$ aws s3 cp --recursive s3://nvidia-gaming/linux/latest/ .
   ```

   Multiple versions of the gaming driver are stored in this bucket. You can see all of the available versions using the following command:

   ```
   [ec2-user ~]$ aws s3 ls --recursive s3://nvidia-gaming/linux/
   ```

1. Extract the gaming driver installation utility from the downloaded `.zip` archive.

   ```
   [ec2-user ~]$ unzip *Gaming-Linux-Guest-Drivers.zip -d nvidia-drivers
   ```

1. Add permissions to run the driver installation utility using the following command:

   ```
   [ec2-user ~]$ chmod +x nvidia-drivers/NVIDIA-Linux-x86_64*-grid.run
   ```

1. Run the installer using the following command:

   ```
   [ec2-user ~]$ sudo nvidia-drivers/NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Use the following command to create the required configuration file.

   ```
   [ec2-user ~]$ cat << EOF | sudo tee -a /etc/nvidia/gridd.conf
   vGamingMarketplace=2
   EOF
   ```

1. Use the following command to download and rename the certification file.
   + For version 590.48 or later:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert_2026_03_02.cert"
     ```
   + For version 460.39 to 580.95:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCertLinux_2024_02_22.cert"
     ```
   + For version 440.68 to 445.48:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2020_04.cert"
     ```
   + For earlier versions:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2019_09.cert"
     ```

1. If you are using NVIDIA driver version 510.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   [ec2-user ~]$ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   [ec2-user ~]$ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. (Optional) To help take advantage of a single display of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/).

## Rocky Linux 8
<a name="nvidia-gaming-rocky-linux-8"></a>

**To install the NVIDIA gaming driver on your instance**

1. Connect to your Linux instance. Install **gcc** and **make**, if they are not already installed.

   ```
   [ec2-user ~]$ sudo yum install -y gcc make
   ```

1. Update your package cache and get the package updates for your instance.

   ```
   [ec2-user ~]$ sudo yum update -y
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Reconnect to your instance after it has rebooted.

1. Install the kernel headers package for the version of the kernel you are currently running.

   ```
   [ec2-user ~]$ sudo dnf install -y unzip elfutils-libelf-devel libglvnd-devel kernel-devel-$(uname -r)
   ```

1. Download the gaming driver installation utility using the following command:

   ```
   [ec2-user ~]$ aws s3 cp --recursive s3://nvidia-gaming/linux/latest/ .
   ```

   Multiple versions of the gaming driver are stored in this bucket. You can see all of the available versions using the following command:

   ```
   [ec2-user ~]$ aws s3 ls --recursive s3://nvidia-gaming/linux/
   ```

1. Extract the gaming driver installation utility from the downloaded `.zip` archive.

   ```
   [ec2-user ~]$ unzip *Gaming-Linux-Guest-Drivers.zip -d nvidia-drivers
   ```

1. Add permissions to run the driver installation utility using the following command:

   ```
   [ec2-user ~]$ chmod +x nvidia-drivers/NVIDIA-Linux-x86_64*-grid.run
   ```

1. Run the installer using the following command:

   ```
   [ec2-user ~]$ sudo nvidia-drivers/NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Use the following command to create the required configuration file.

   ```
   [ec2-user ~]$ cat << EOF | sudo tee -a /etc/nvidia/gridd.conf
   vGamingMarketplace=2
   EOF
   ```

1. Use the following command to download and rename the certification file.
   + For version 590.48 or later:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert_2026_03_02.cert"
     ```
   + For version 460.39 to 580.95:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCertLinux_2024_02_22.cert"
     ```
   + For version 440.68 to 445.48:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2020_04.cert"
     ```
   + For earlier versions:

     ```
     [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2019_09.cert"
     ```

1. If you are using NVIDIA driver version 510.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   [ec2-user ~]$ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   [ec2-user ~]$ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. (Optional) To help take advantage of a single display of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/).

## Ubuntu and Debian
<a name="nvidia-gaming-ubuntu-debian"></a>

**To install the NVIDIA gaming driver on your instance**

1. Connect to your Linux instance. Install **gcc** and **make**, if they are not already installed.

   ```
   $ sudo apt-get install -y gcc make build-essential
   ```

1. Update your package cache and get the package updates for your instance.

   ```
   $ sudo apt-get update -y
   ```

1. Upgrade the `linux-aws` package to receive the latest version.

   ```
   $ sudo apt-get upgrade -y linux-aws
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   $ sudo reboot
   ```

1. Reconnect to your instance after it has rebooted.

1. Install the kernel headers package for the version of the kernel you are currently running.

   ```
   $ sudo apt install -y unzip dkms linux-headers-$(uname -r)
   ```

1. Disable the `nouveau` open source driver for NVIDIA graphics cards.

   1. Add `nouveau` to the `/etc/modprobe.d/blacklist.conf` blacklist file. Copy the following code block and paste it into a terminal.

      ```
      $ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf
      blacklist vga16fb
      blacklist nouveau
      blacklist rivafb
      blacklist nvidiafb
      blacklist rivatv
      EOF
      ```

   1. Edit the `/etc/default/grub` file and add the following line:

      ```
      GRUB_CMDLINE_LINUX="rdblacklist=nouveau"
      ```

   1. Rebuild the Grub configuration.

      ```
      $ sudo update-grub
      ```

1. Download the gaming driver installation utility using the following command:

   ```
   $ aws s3 cp --recursive s3://nvidia-gaming/linux/latest/ .
   ```

   Multiple versions of the gaming driver are stored in this bucket. You can see all of the available versions using the following command:

   ```
   $ aws s3 ls --recursive s3://nvidia-gaming/linux/
   ```

1. Extract the gaming driver installation utility from the downloaded `.zip` archive.

   ```
   $ unzip *Gaming-Linux-Guest-Drivers.zip -d nvidia-drivers
   ```

1. Add permissions to run the driver installation utility using the following command:

   ```
   $ chmod +x nvidia-drivers/NVIDIA-Linux-x86_64*-grid.run
   ```

1. Run the installer using the following command:

   ```
   $ sudo nvidia-drivers/NVIDIA-Linux-x86_64*.run
   ```

   When prompted, accept the license agreement and specify the installation options as required (you can accept the default options).

1. Use the following command to create the required configuration file.

   ```
   $ cat << EOF | sudo tee -a /etc/nvidia/gridd.conf
   vGamingMarketplace=2
   EOF
   ```

1. Use the following command to download and rename the certification file.
   + For version 590.48 or later:

     ```
     $ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert_2026_03_02.cert"
     ```
   + For version 460.39 to 580.95:

     ```
     $ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCertLinux_2024_02_22.cert"
     ```
   + For version 440.68 to 445.48:

     ```
     $ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2020_04.cert"
     ```
   + For earlier versions:

     ```
     $ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2019_09.cert"
     ```

1. If you are using NVIDIA driver version 510.x or greater on the G4dn, G5, or G5g instances, disable GSP with the following commands. For more information about why this is required, see the [NVIDIA documentation](https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/index.html#disabling-gsp).

   ```
   $ sudo touch /etc/modprobe.d/nvidia.conf
   ```

   ```
   $ echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf
   ```

1. Reboot the instance.

   ```
   $ sudo reboot
   ```

1. (Optional) To help take advantage of a single display of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/). If you do not require this functionality, do not complete this step.

## Windows operating systems
<a name="nvidia-gaming-windows"></a>

Before you install an NVIDIA gaming driver on your instance, you must ensure that the following prerequisites are met in addition to the considerations mentioned for all gaming drivers.
+ If you launch your Windows instance using a custom Windows AMI, the AMI must be a standardized image created with Windows Sysprep to ensure that the gaming driver works. For more information, see [Create an Amazon EC2 AMI using Windows Sysprep](ami-create-win-sysprep.md).
+ Configure default credentials for the AWS Tools for Windows PowerShell on your Windows instance. For more information, see [Getting Started with the AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-started.html) in the *AWS Tools for PowerShell User Guide*.

**To install the NVIDIA gaming driver on your Windows instance**

1. Connect to your Windows instance and open a PowerShell window.

1. Download and install the gaming driver using the following PowerShell commands.

   ```
   $Bucket = "nvidia-gaming"
   $KeyPrefix = "windows/latest"
   $LocalPath = "$home\Desktop\NVIDIA"
   $Objects = Get-S3Object -BucketName $Bucket -KeyPrefix $KeyPrefix -Region us-east-1
   foreach ($Object in $Objects) {
   $LocalFileName = $Object.Key
   if ($LocalFileName -ne '' -and $Object.Size -ne 0) {
   $LocalFilePath = Join-Path $LocalPath $LocalFileName
   Copy-S3Object -BucketName $Bucket -Key $Object.Key -LocalFile $LocalFilePath -Region us-east-1
   }
   }
   ```

   Multiple versions of the NVIDIA GRID driver are stored in this S3 bucket. You can download all of the available versions in the bucket if you change the value of the `$KeyPrefix` variable from *"windows/latest"* to *"windows"*.

1. Navigate to the desktop and double-click the installation file to launch it (choose the driver version that corresponds to your instance OS version). Follow the instructions to install the driver and reboot your instance as required. To verify that the GPU is working properly, check Device Manager.

1. Use one of the following methods to register the driver.

------
#### [ Version 527.27 or above ]

   Create the following registry key with the 64-bit version of PowerShell, or the Command Prompt window.

   *key*: `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global`

   *name*: vGamingMarketplace

   *type*: DWord

   *value*: 2

**PowerShell**  
Run the following PowerShell command to create this registry value. The AWS Tools for PowerShell in AWS Windows AMIs defaults to the 32-bit version and this command fails. Instead, use the 64-bit version of PowerShell included with the operating system.

   ```
   New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global" -Name "vGamingMarketplace" -PropertyType "DWord" -Value "2"
   ```

**Command Prompt**  
Run the following registry command to create this registry value. You can run it using the Command Prompt window or a 64-bit version of PowerShell.

   ```
   reg add "HKLM\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global" /v vGamingMarketplace /t REG_DWORD /d 2
   ```

------
#### [ Earlier versions ]

   Create the following registry key with the 64-bit version of PowerShell, or the Command Prompt window.

   *key*: `HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\Global`

   *name*: vGamingMarketplace

   *type*: DWord

   *value*: 2

**PowerShell**  
Run the following PowerShell command to create this registry value. The AWS Tools for PowerShell in AWS Windows AMIs defaults to the 32-bit version and this command fails. Instead, use the 64-bit version of PowerShell included with the operating system.

   ```
   New-ItemProperty -Path "HKLM:\SOFTWARE\NVIDIA Corporation\Global" -Name "vGamingMarketplace" -PropertyType "DWord" -Value "2"
   ```

**Command Prompt**  
Run the following registry command to create this registry key with the Command Prompt window. You can also use this command in the 64-bit version of PowerShell.

   ```
   reg add "HKLM\SOFTWARE\NVIDIA Corporation\Global" /v vGamingMarketplace /t REG_DWORD /d 2
   ```

------

1. Run the following command in PowerShell. This downloads the certification file, renames the file `GridSwCert.txt`, and moves the file to the Public Documents folder on your system drive. Typically, the folder path is `C:\Users\Public\Documents`.
   + For version 591.59 or later:

     ```
     Invoke-WebRequest -Uri "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert_2026_03_02.cert" -OutFile "$Env:PUBLIC\Documents\GridSwCert.txt"
     ```
   + For version 460.39 to 581.80:

     ```
     Invoke-WebRequest -Uri "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCertWindows_2024_02_22.cert" -OutFile "$Env:PUBLIC\Documents\GridSwCert.txt"
     ```
   + For version 445.87:

     ```
     Invoke-WebRequest -Uri "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Windows_2020_04.cert" -OutFile "$Env:PUBLIC\Documents\GridSwCert.txt"
     ```
   + For earlier versions:

     ```
     Invoke-WebRequest -Uri "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Windows_2019_09.cert" -OutFile "$Env:PUBLIC\Documents\GridSwCert.txt"
     ```

   If you receive an error when downloading the file, and you are using Windows Server 2016 or earlier, TLS 1.2 might need to be enabled for your PowerShell terminal. You can enable TLS 1.2 for the current PowerShell session with the following command and then try again:

   ```
   [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
   ```

1. Reboot your instance.

1. Locate the `nvidia-smi.exe` file on the instance.

   ```
   Get-ChildItem -Path C:\ -Recurse -Filter "nvidia-smi.exe"
   ```

   Verify the NVIDIA Gaming license using the following command. Replace *path* with the name of the folder in the output from the previous command.

   ```
   C:\Windows\System32\DriverStore\FileRepository\path\nvidia-smi.exe -q
   ```

   The output should be similar to the following.

   ```
   vGPU Software Licensed Product
   Product Name              : NVIDIA Cloud Gaming
   License Status            : Licensed (Expiry: N/A)
   ```

1. (Optional) To help take advantage of the single display of up to 4K resolution, set up the high-performance display protocol [Amazon DCV](https://docs.aws.amazon.com/dcv/). If you do not require this functionality, do not complete this step.

# Install the ENA driver on EC2 Windows instances
<a name="ena-adapter-driver-install-upgrade-win"></a>

If your instance isn't based on one of the latest Windows Amazon Machine Images (AMIs) that Amazon provides, use the following procedure to install the current ENA driver on your instance. You should perform this update at a time when it’s convenient to reboot your instance. If the install script doesn’t automatically reboot your instance, we recommend that you reboot the instance as the final step.

If you use an instance store volume to store data while the instance is running, that data is erased when you stop the instance. Before you stop your instance, verify that you've copied any data that you need from your instance store volumes to persistent storage, such as Amazon EBS or Amazon S3.

## Prerequisites
<a name="ena-driver-install-prereq-win"></a>

To install or upgrade the ENA driver, your Windows instance must meet the following prerequisites:
+ PowerShell version 3.0 or later is installed.
+ The commands shown in this section must run in the 64-bit version of PowerShell. Do not use the `x86` version of PowerShell. That is the 32-bit version of the shell, and is not supported for these commands.

## Step 1: Back up your data
<a name="ena-driver-install-step1-backup-win"></a>

We recommend that you create a backup AMI, in case you're not able to roll back your changes through the **Device Manager**. To create a backup AMI with the AWS Management Console, follow these steps:

1. Open the Amazon EC2 console at [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. In the navigation pane, choose **Instances**.

1. Select the instance that requires the driver upgrade, and choose **Stop instance** from the **Instance state** menu.

1. After the instance is stopped, select the instance again. To create your backup, choose **Image and templates** from the **Actions** menu, then choose **Create image**.

1. To restart your instance, choose **Start instance** from the **Instance state** menu.

## Step 2: Install or upgrade your ENA driver
<a name="ena-driver-install-step2-install-win"></a>

You can install or upgrade your ENA driver with AWS Systems Manager Distributor, or with PowerShell cmdlets. For further instructions, select the tab that matches the method that you want to use.

------
#### [ Systems Manager Distributor ]

You can use the Systems Manager Distributor feature to deploy packages to your Systems Manager managed nodes. With Systems Manager Distributor, you can install the ENA driver package once, or with scheduled updates. For more information about how to install the ENA driver package (`AwsEnaNetworkDriver`) with Systems Manager Distributor, see [Install or update packages](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html) in the *AWS Systems Manager User Guide*. 

------
#### [ PowerShell ]

This section covers how to download and install ENA driver packages on your instance with PowerShell cmdlets.

**Option 1: Download and extract the latest version**

1. Connect to your instance and log in as the local administrator.

1. Use the **invoke-webrequest** cmdlet to download the latest driver package:

   ```
   PS C:\> invoke-webrequest https://ec2-windows-drivers-downloads.s3.amazonaws.com/ENA/Latest/AwsEnaNetworkDriver.zip -outfile $env:USERPROFILE\AwsEnaNetworkDriver.zip
   ```
**Note**  
If you receive an error when downloading the file, and you are using Windows Server 2016 or earlier, TLS 1.2 might need to be enabled for your PowerShell terminal. You can enable TLS 1.2 for the current PowerShell session with the following command and then try again:  

   ```
   [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
   ```
Alternatively, you can download the latest driver package from a browser window on your instance.

1. Use the **expand-archive** cmdlet to extract the zip archive that you downloaded to your instance:

   ```
   PS C:\> expand-archive $env:userprofile\AwsEnaNetworkDriver.zip -DestinationPath $env:userprofile\AwsEnaNetworkDriver
   ```

**Option 2: Download and extract a specific version**

1. Connect to your instance and log in as the local administrator.

1. Download the ENA driver package for the specific version you want from the version link in the [ENA Windows driver version history](ena-driver-releases-windows.md#ena-win-driver-release-history) table.

1. Extract the zip archive to your instance.

**Install the ENA driver with PowerShell**  
The install steps are the same whether you've downloaded the latest driver or a specific version. To install the ENA driver, follow these steps.

1. To install the driver, run the `install.ps1` PowerShell script from the `AwsEnaNetworkDriver` directory on your instance. If you get an error, make sure that you’re using PowerShell 3.0 or later.

1. If the installer doesn’t automatically reboot your instance, run the **Restart-Computer** PowerShell cmdlet.

   ```
   PS C:\> Restart-Computer
   ```

------

## Step 3 (optional): Verify the ENA driver version after installation
<a name="ena-driver-install-step3-verify-win"></a>

To ensure that the ENA driver package was successfully installed on your instance, you can verify the new version as follows:

1. Connect to your instance and log in as the local administrator.

1. To open the Windows Device Manager, enter `devmgmt.msc` in the **Run** box.

1. Choose **OK**. This opens the Device Manager window.

1. Select the arrow to the left of **Network adapters** to expand the list.

1. Choose the name, or open the context menu for the **Amazon Elastic Network Adapter**, and then choose **Properties**. This opens the **Amazon Elastic Network Adapter Properties** dialog.
**Note**  
ENA adapters all use the same driver. If you have multiple ENA adapters, you can select any one of them to update the driver for all of the ENA adapters.

1. To verify the current version that's installed, open the **Driver** tab and check the **Driver Version**. If the current version doesn't match your target version, see [Troubleshoot the Elastic Network Adapter Windows driver](troubleshoot-ena-driver.md).

## Roll back an ENA driver installation
<a name="ena-driver-install-roll-back-win"></a>

If anything goes wrong with the installation, you might need to roll back the driver. Follow these steps to roll back to the previous version of the ENA driver that was installed on your instance.

1. Connect to your instance and log in as the local administrator.

1. To open the Windows Device Manager, enter `devmgmt.msc` in the **Run** box.

1. Choose **OK**. This opens the Device Manager window.

1. Select the arrow to the left of **Network adapters** to expand the list.

1. Choose the name, or open the context menu for the **Amazon Elastic Network Adapter**, and then choose **Properties**. This opens the **Amazon Elastic Network Adapter Properties** dialog.
**Note**  
ENA adapters all use the same driver. If you have multiple ENA adapters, you can select any one of them to update the driver for all of the ENA adapters.

1. To roll back the driver, open the **Driver** tab and choose **Roll Back Driver**. This opens the **Driver Package rollback** window.
**Note**  
If the **Driver** tab doesn't show the **Roll Back Driver** action, or if the action is unavailable, it means that the [Driver Store](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/driver-store) on your instance doesn't contain the previously installed driver package. To troubleshoot this issue, see [Troubleshooting scenarios](troubleshoot-ena-driver.md#ts-ena-drv-scenarios), and expand the **Unexpected ENA driver version installed** section. For more information about the device driver package selection process, see [How Windows selects a driver package for a device](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/how-windows-selects-a-driver-for-a-device) on the *Microsoft documentation website*.

# Track ENA Windows driver version releases
<a name="ena-driver-releases-windows"></a>

Windows AMIs include the ENA Windows driver to enable enhanced networking.

For Windows Server versions 2016 and above, we recommend that you use the latest driver version. For earlier versions of Windows Server, refer to the following table to determine which ENA driver version to use.


| Windows Server version | ENA driver version | 
| --- | --- | 
| Windows Server 2012 R2 | 2.6.0 and earlier | 
| Windows Server 2012 | 2.6.0 and earlier | 
| Windows Server 2008 R2 | 2.2.3 and earlier | 

## ENA Windows driver version history
<a name="ena-win-driver-release-history"></a>

The following table summarizes the changes for each release.


| Driver version | Details | Release date | 
| --- | --- | --- | 
|  [2.11.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.11.0/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | August 1, 2025 | 
|  [2.10.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.10.0/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | June 24, 2025 | 
|  [2.9.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.9.0/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | December 12, 2024 | 
|  [2.8.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.8.0/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | September 30, 2024 | 
|  [2.7.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.7.0/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | May 1, 2024 | 
|  [2.6.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.6.0/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | June 20, 2023 | 
|  2.5.0  |   Announcement ENA Windows driver version 2.5.0 has been rolled back due to failure to initialize on the Windows domain controller. Windows Client and Windows Server are unaffected.   | February 17, 2023 | 
|  [2.4.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.4.0/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | April 28, 2022 | 
| 2.2.4 |   Announcement ENA Windows driver version 2.2.4 has been rolled back due to potential performance degradation on the sixth generation EC2 instances. We recommend that you downgrade the driver, using one of the following methods:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | October 26, 2021 | 
|  [2.2.3](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.2.3/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  Announcement Windows ENA driver version 2.2.3 is the final version that supports Windows Server 2008 R2. Currently available instance types that use ENA will continue to be supported on Windows Server 2008 R2, and the drivers are available by download. No future instance types will support Windows Server 2008 R2, and you cannot launch, import, or migrate Windows Server 2008 R2 images to future instance types.    | March 25, 2021 | 
|  [2.2.2](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/2.2.2/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) | December 21, 2020 | 
|  [2.2.1](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/2.2.1/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) | October 1, 2020 | 
|  [2.2.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/2.2.0/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | August 12, 2020 | 
|  [2.1.5](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/2.1.5/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) | June 23, 2020 | 
|  [2.1.4](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/2.1.4/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | November 25, 2019 | 
|  [2.1.2](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/2.1.2/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | November 4, 2019 | 
|  [2.1.1](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/2.1.1/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | September 16, 2019 | 
|  [2.1.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/2.1.0/AwsEnaNetworkDriver.zip)  | ENA Windows driver v2.1 introduces new ENA device capabilities, provides a performance boost, adds new features, and includes multiple stability improvements. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | July 1, 2019 | 
|  [1.5.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/1.5.0/AwsEnaNetworkDriver.zip)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-driver-releases-windows.html)  | October 4, 2018 | 
|  [1.2.3](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/1.2.3/AwsEnaNetworkDriver.zip)  |  Includes reliability fixes and unifies support for Windows Server 2008 R2 through Windows Server 2016.  | February 13, 2018 | 
|  [1.0.8](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/1.0.8/AwsEnaNetworkDriver.zip)  |  The initial release. Included in AMIs for Windows Server 2008 R2, Windows Server 2012 RTM, Windows Server 2012 R2, and Windows Server 2016.  | July 2016 | 

## Subscribe to ENA Windows driver release notifications from Amazon SNS
<a name="ena-win-driver-release-notification"></a>

Amazon SNS can notify you when new versions of EC2 Windows Drivers are released. Use the following procedure to subscribe to these notifications.

**Subscribe to EC2 notifications**

1. Open the Amazon SNS console at [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home).

1. In the navigation bar, change the Region to **US East (N. Virginia)**, if necessary. You must select this Region because the SNS notifications that you are subscribing to are in this Region.

1. In the navigation pane, choose **Subscriptions**.

1. Choose **Create subscription**.

1. In the **Create subscription** dialog box, do the following:

   1. For **TopicARN**, copy the following Amazon Resource Name (ARN):

      **arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers**

   1. For **Protocol**, choose `Email`.

   1. For **Endpoint**, enter an email address where you want notifications sent.

   1. Choose **Create subscription**.

1. You'll receive a confirmation email. Open the email and follow the directions to complete your subscription.

Whenever new EC2 Windows drivers are released, we send notifications to subscribers. If you no longer want to receive these notifications, use the following procedure to unsubscribe.

**Unsubscribe from Amazon EC2 Windows driver notification**

1. Open the Amazon SNS console at [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home).

1. In the navigation pane, choose **Subscriptions**.

1. Select the checkbox for the subscription and then choose **Actions**, **Delete subscriptions**. When prompted for confirmation, choose **Delete**.

# Paravirtual drivers for Windows instances
<a name="xen-drivers-overview"></a>

Windows AMIs contain a set of drivers to permit access to virtualized hardware. These drivers are used by Amazon EC2 to map instance store and Amazon EBS volumes to their devices. The following table shows key differences between the different drivers.


|  | Red Hat PV | Citrix PV | AWS PV | 
| --- | --- | --- | --- | 
|  Instance type  |  Not supported for all instance types. If you specify an unsupported instance type, the instance is impaired.  |  Supported for Xen instance types.  |  Supported for Xen instance types.  | 
|  Attached volumes  |  Supports up to 16 attached volumes.  |  Supports more than 16 attached volumes.  |  Supports more than 16 attached volumes.  | 
|  Network  |  The driver has known issues where the network connection resets under high loads; for example, fast FTP file transfers.  |    |  The driver automatically configures jumbo frames on the network adapter when on a compatible instance type. When the instance is in a cluster placement group, this offers better network performance between instances that are in the cluster placement group. For more information, see [Placement groups for your Amazon EC2 instances](placement-groups.md).  | 

The following table shows which PV drivers you should run on each version of Windows Server on Amazon EC2.


| Windows Server version | PV driver version | 
| --- | --- | 
| Windows Server 2025 | Not supported | 
| Windows Server 2022 | AWS PV latest version | 
| Windows Server 2019 | AWS PV latest version | 
| Windows Server 2016 | AWS PV latest version | 
| Windows Server 2012 R2 | AWS PV version 8.4.3 | 
| Windows Server 2012  | AWS PV version 8.4.3 | 
| Windows Server 2008 R2 | AWS PV version 8.3.5 | 
| Windows Server 2008 | Citrix PV 5.9 | 
| Windows Server 2003 | Citrix PV 5.9 | 

**Topics**
+ [AWS PV drivers](#xen-driver-awspv)
+ [Citrix PV drivers](#xen-driver-citrix)
+ [Red Hat PV drivers](#xen-driver-redhat)
+ [Subscribe to notifications](#drivers-subscribe-notifications)
+ [Upgrade PV drivers on EC2 Windows instances](Upgrading_PV_drivers.md)
+ [Troubleshoot PV drivers on Windows instances](pvdrivers-troubleshooting.md)

## AWS PV drivers
<a name="xen-driver-awspv"></a>

The AWS PV drivers are stored in the `%ProgramFiles%\Amazon\Xentools` directory. This directory also contains public symbols and a command line tool, `xenstore_client.exe`, that enables you to access entries in XenStore. For example, the following PowerShell command returns the current time from the Hypervisor:

```
PS C:\> [DateTime]::FromFileTimeUTC((gwmi -n root\wmi -cl AWSXenStoreBase).XenTime).ToString("hh:mm:ss")
11:17:00
```

The AWS PV driver components are listed in the Windows registry under `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services`. These driver components are as follows: xenbus, xeniface, xennet, xenvbd, and xenvif.

AWS PV drivers also have a Windows service named LiteAgent, which runs in user-mode. It handles tasks such as shutdown and restart events from AWS APIs on Xen generation instances. You can access and manage services by running `Services.msc` from the command line. When running on Nitro generation instances, the AWS PV drivers are not used and the LiteAgent service will self-stop starting with driver version 8.2.4. Updating to the latest AWS PV driver also updates the LiteAgent and improves reliability on all instance generations.

### Install the latest AWS PV drivers
<a name="aws-pv-download"></a>

Amazon Windows AMIs contain a set of drivers to permit access to virtualized hardware. These drivers are used by Amazon EC2 to map instance store and Amazon EBS volumes to their devices. We recommend that you install the latest drivers to improve stability and performance of your EC2 Windows instances.

**Installation options**
+ Use AWS Systems Manager to automatically update the PV drivers. For more information, see [Walkthrough: Automatically Update PV Drivers on EC2 Windows Instances](https://docs.aws.amazon.com/systems-manager/latest/userguide/state-manager-update-pv-drivers.html) in the *AWS Systems Manager User Guide*.
+  [Download](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip) the driver package and run the install program manually. Be sure to check the `readme.txt` file for system requirements. For information about downloading and installing the AWS PV drivers, or upgrading a domain controller, see [Upgrade Windows Server instances (AWS PV upgrade) manually](Upgrading_PV_drivers.md#aws-pv-upgrade).

### AWS PV driver package history
<a name="pv-driver-history"></a>

The following table shows the changes to AWS PV drivers for each driver release.


| Package version | Details | Release date | 
| --- | --- | --- | 
|   [8.6.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/8.6.0/AWSPVDriver.zip)   |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/xen-drivers-overview.html)  | 27 May 2025 | 
|  8.5.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/xen-drivers-overview.html)  | 31 October 2024 | 
|   [8.4.3](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/8.4.3/AWSPVDriver.zip)   | Fixed bugs in the package installer to improve the upgrade experience. This is the last version that can run on Windows Server 2012 and 2012 R2. This version is available for download, however it is no longer supported since Windows Server 2012 and 2012 R2 have reached end of support. | 24 January 2023 | 
| 8.4.2 | Stability fixes to address race condition. | 13 April 2022 | 
| 8.4.1 | Improved package installer. | 7 January 2022 | 
|  8.4.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/xen-drivers-overview.html)  | 2 March 2021 | 
|   [8.3.5](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/8.3.5/AWSPVDriver.zip)   |  Improved package installer. This is the last version that can run on Windows Server 2008 R2. This version is available for download but no longer supported. Windows Server 2008 R2 has reached end-of-life, and is no longer supported by Microsoft.  | 7 January 2022 | 
|  8.3.4  | Improved reliability of network device attachment. | 4 August 2020 | 
|  8.3.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/xen-drivers-overview.html) To update this driver on Windows Server 2008 R2 instances, you must first verify that the appropriate patches are installed to address the following Microsoft Security Advisory: [Microsoft Security Advisory 3033929](https://learn.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929).  | 4 February 2020 | 
|  8.3.2  |  Enhanced reliability of networking components.  | 30 July 2019 | 
|  8.3.1  |  Improved performance and robustness of storage component.  | 12 June 2019 | 
|  8.2.7  |  Improved efficiency to support migrating to latest generation instance types.  | 20 May 2019 | 
|  8.2.6  |  Improved efficiency of crash dump path.  | 15 January 2019 | 
|  8.2.5  |  Additional security enhancements. PowerShell installer now available in package.  | 12 December 2018 | 
|  8.2.4  |  Reliability improvements.  | 2 October 2018 | 
|  8.2.3  |  Bug fixes and performance improvements. Report EBS volume ID as disk serial number for EBS volumes. This enables cluster scenarios such as S2D.  | 29 May 2018 | 
|  8.2.1  |  Network and storage performance improvements plus multiple robustness fixes. To verify that this version has been installed, refer to the following Windows registry value: `HKLM\Software\Amazon\PVDriver\Version 8.2.1`.  | 8 March 2018 | 
|  7.4.3  |  Added support for Windows Server 2016. Stability fixes for all supported Windows OS versions. \$1AWS PV driver version 7.4.3's signature expires on March 29, 2019. We recommend updating to the latest AWS PV driver.   | 18 Nov 2016 | 
|  7.4.2  | Stability fixes for support of X1 instance type. | 2 Aug 2016 | 
|  7.4.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/xen-drivers-overview.html)  | 12 July 2016 | 
|  7.3.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/xen-drivers-overview.html)  | 24 June 2015 | 
|  7.3.1  |  TRIM update: Fix related to TRIM requests. This fix stabilizes instances and improves instance performance when managing large numbers of TRIM requests.  |  | 
|  7.3.0  |  TRIM support: The AWS PV driver now sends TRIM requests to the hypervisor. Ephemeral disks will properly process TRIM requests given the underlying storage supports TRIM (SSD). Note that EBS-based storage does not support TRIM as of March 2015.  |  | 
|  7.2.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/xen-drivers-overview.html)  |  | 
|  7.2.4  |  Device ID persistence: This driver fix masks the platform PCI device ID and forces the system to always surface the same device ID, even if the instance is moved. More generally, the fix affects how the hypervisor surfaces virtual devices. The fix also includes modifications to the co-installer for the AWS PV drivers so the system persists mapped virtual devices.  |  | 
|  7.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/xen-drivers-overview.html)  |  | 
|  7.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/xen-drivers-overview.html)  |  | 
|  7.2.0  | Base: The AWS PV base version. |  | 

## Citrix PV drivers
<a name="xen-driver-citrix"></a>

The Citrix PV drivers are stored in the `%ProgramFiles%\Citrix\XenTools` (32-bit instances) or `%ProgramFiles(x86)%\Citrix\XenTools` (64-bit instances) directory.

The Citrix PV driver components are listed in the Windows registry under `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services`. These driver components are as follows: xenevtchn, xeniface, xennet, Xennet6, xensvc, xenvbd, and xenvif.

Citrix also has a driver component named XenGuestAgent, which runs as a Windows service. It handles tasks such as shutdown and restart events from the API. You can access and manage services by running `Services.msc` from the command line.

If you are encountering networking errors while performing certain workloads, you may need to disable the TCP offloading feature for the Citrix PV driver. For more information, see [TCP offloading](pvdrivers-troubleshooting.md#citrix-tcp-offloading).

## Red Hat PV drivers
<a name="xen-driver-redhat"></a>

Red Hat drivers are supported for legacy instances, but are not recommended on newer instances with more than 12GB of RAM due to driver limitations. Instances with more than 12GB of RAM running Red Hat drivers can fail to boot and become inaccessible. We recommend upgrading Red Hat drivers to Citrix PV drivers, and then upgrade Citrix PV drivers to AWS PV drivers.

The source files for the Red Hat drivers are in the `%ProgramFiles%\RedHat` (32-bit instances) or `%ProgramFiles(x86)%\RedHat` (64-bit instances) directory. The two drivers are `rhelnet`, the Red Hat Paravirtualized network driver, and `rhelscsi`, the Red Hat SCSI miniport driver.

## Subscribe to notifications
<a name="drivers-subscribe-notifications"></a>

Amazon SNS can notify you when new versions of EC2 Windows Drivers are released. You can subscribe to these notifications.

**Note**  
You must specify the Region in which the SNS topic was created.

Whenever new EC2 Windows drivers are released, we send notifications to subscribers. If you no longer want to receive these notifications, you can unsubscribe. For more information, see [Delete an SNS topic and subscription](https://docs.aws.amazon.com/sns/latest/dg/sns-delete-subscription-topic.html).

------
#### [ Console ]

**To subscribe to notifications**

1. Open the Amazon SNS console at [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home).

1. In the navigation bar, change the Region to **US East (N. Virginia)**, if necessary. You must select this Region because the SNS notifications that you are subscribing to are in this Region.

1. In the navigation pane, choose **Subscriptions**.

1. Choose **Create subscription**.

1. In the **Create subscription** dialog box, do the following:

   1. For **TopicARN**, copy the following Amazon Resource Name (ARN):

      arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers

   1. For **Protocol**, choose `Email`.

   1. For **Endpoint**, type an email address that you can use to receive the notifications.

   1. Choose **Create subscription**.

1. You'll receive a confirmation email. Open the email and follow the directions to complete your subscription.

------
#### [ AWS CLI ]

**To subscribe to notifications**  
Use the following command.

```
aws sns subscribe \
    --topic-arn arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers \
    --region us-east-1 \
    --protocol email \
    --notification-endpoint YourUserName@YourDomainName.ext
```

------
#### [ PowerShell ]

**To subscribe to notifications**  
Use the following command.

```
Connect-SNSNotification `
    -TopicArn 'arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers' `
    -Region us-east-1 `
    -Protocol email `
    -Endpoint "YourUserName@YourDomainName.ext"
```

------

# Upgrade PV drivers on EC2 Windows instances
<a name="Upgrading_PV_drivers"></a>

We recommend that you install the latest PV drivers to improve the stability and performance of your EC2 Windows instances. The directions on this page help you download the driver package and run the install program.

**To verify which driver your Windows instance uses**

Open **Device Manager** and view **Network Adapters**. Check whether the PV driver is one of the following:
+ AWS PV Network Device
+ Citrix PV Ethernet Adapter
+ Red Hat PV NIC Driver

**System requirements**  
Be sure to check the `readme.txt` file in the download for system requirements.

**Topics**
+ [Upgrade Windows Server instances (AWS PV upgrade) with Distributor](#aws-pv-upgrade-distributor)
+ [Upgrade Windows Server instances (AWS PV upgrade) manually](#aws-pv-upgrade)
+ [Upgrade a domain controller (AWS PV upgrade)](#aws-pv-upgrade-dc)
+ [Upgrade Windows Server 2008 and 2008 R2 instances (Red Hat to Citrix PV upgrade)](#win2008-citrix-upgrade)
+ [Upgrade your Citrix Xen guest agent service](#citrix-pv-guest-agent-upgrade)

## Upgrade Windows Server instances (AWS PV upgrade) with Distributor
<a name="aws-pv-upgrade-distributor"></a>

You can use Distributor, a capability of AWS Systems Manager, to install or upgrade the AWS PV driver package. The installation or upgrade can be performed one time, or you can install or update it on a schedule. The `In-place update` option for **Installation Type** isn't supported for this Distributor package.

**Important**  
If your instance is a domain controller, see [Upgrade a domain controller (AWS PV upgrade)](#aws-pv-upgrade-dc). The upgrade process for domain controller instances is different than standard editions of Windows.

1. We recommend that you create a backup in case you need to roll back your changes.
**Tip**  
Instead of creating the AMI from the Amazon EC2 console, you can use Systems Manager Automation to create the AMI using the `AWS-CreateImage` runbook. For more information, see [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-createimage.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-createimage.html) in the *AWS Systems Manager Automation runbook reference User Guide*.

   1. When you stop an instance, the data on any instance store volumes is erased. Before you stop an instance, verify that you've copied any data that you need from your instance store volumes to persistent storage, such as Amazon EBS or Amazon S3.

   1. In the navigation pane, choose **Instances**.

   1. Select the instance that requires the driver upgrade, and choose **Instance state**, **Stop instance**.

   1. After the instance is stopped, select the instance, choose **Actions**, then **Image and templates**, and then choose **Create image**.

   1. Choose **Instance state**, **Start instance**.

1. Connect to the instance using Remote Desktop. For more information, see [Connect to your Windows instance using an RDP client](connect-rdp.md).

1. <a name="secondary-disks-step-distributor"></a>We recommend that you take all non-system disks offline and note any drive letter mappings to the secondary disks in Disk Management before you perform this upgrade. This step is not required if you are performing an in-place update of AWS PV drivers. We also recommend setting non-essential services to **Manual** start-up in the Services console.

1. <a name="distributor-procedure-awspv"></a>For the instructions for how to install or upgrade the AWS PV driver package using Distributor, see the procedures in [Install or update packages](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html) in the *AWS Systems Manager User Guide*.

1. For **Name**, choose **AWSPVDriver**.

1. For **Installation type**, select **Uninstall and reinstall**.

1. Configure the other parameters for the package as necessary and run installation or upgrade using the referenced procedure in [Step 4](#distributor-procedure-awspv).

   After running the Distributor package, the instance automatically reboots and then upgrades the driver. The instance will not be available for up to 15 minutes.

1. After the upgrade is complete, and the instance passes both health checks in the Amazon EC2 console, verify that the new driver was installed by connecting to the instance using Remote Desktop.

1. After you are connected, run the following PowerShell command:

   ```
   Get-ItemProperty HKLM:\SOFTWARE\Amazon\PVDriver
   ```

1. Verify that the driver version is the same as the latest version listed in the Driver Version History table. For more information, see [AWS PV driver package history](xen-drivers-overview.md#pv-driver-history) Open Disk Management to review any offline secondary volumes and bring them online corresponding to the drive letters noted in [Step 3](#secondary-disks-step-distributor).

If you previously disabled [TCP offloading](pvdrivers-troubleshooting.md#citrix-tcp-offloading) using Netsh for Citrix PV drivers we recommend that you re-enable this feature after upgrading to AWS PV drivers. TCP Offloading issues with Citrix drivers are not present in the AWS PV drivers. As a result, TCP Offloading provides better performance with AWS PV drivers.

If you previously applied a static IP address or DNS configuration to the network interface, you might need to reapply the static IP address or DNS configuration after upgrading AWS PV drivers.

## Upgrade Windows Server instances (AWS PV upgrade) manually
<a name="aws-pv-upgrade"></a>

Use the following procedure to perform an in-place upgrade of AWS PV drivers, or to upgrade from Citrix PV drivers to AWS PV drivers on Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, or Windows Server 2022. This upgrade is not available for Red Hat drivers, or for other versions of Windows Server.

Some older versions of Windows Server can't use the latest drivers. To verify which driver version to use for your operating system, see the driver version table in the [Paravirtual drivers for Windows instances](xen-drivers-overview.md) page.

**Important**  
If your instance is a domain controller, see [Upgrade a domain controller (AWS PV upgrade)](#aws-pv-upgrade-dc). The upgrade process for domain controller instances is different than standard editions of Windows. 

**To upgrade AWS PV drivers manually**

1. We recommend that you create a backup in case you need to roll back your changes.
**Tip**  
Instead of creating the AMI from the Amazon EC2 console, you can use Systems Manager Automation to create the AMI using the `AWS-CreateImage` runbook. For more information, see [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-createimage.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-createimage.html) in the *AWS Systems Manager Automation runbook reference User Guide*.

   1. When you stop an instance, the data on any instance store volumes is erased. Before you stop an instance, verify that you've copied any data that you need from your instance store volumes to persistent storage, such as Amazon EBS or Amazon S3.

   1. In the navigation pane, choose **Instances**.

   1. Select the instance that requires the driver upgrade, and choose **Instance state**, **Stop instance**.

   1. After the instance is stopped, select the instance, choose **Actions**, then **Image and templates**, and then choose **Create image**.

   1. Choose **Instance state**, **Start instance**.

1. Connect to the instance using Remote Desktop.

1. <a name="secondary-disks-step-manual"></a>We recommend that you take all non-system disks offline and note any drive letter mappings to the secondary disks in Disk Management before you perform this upgrade. This step is not required if you are performing an in-place update of AWS PV drivers. We also recommend setting non-essential services to **Manual** start-up in the Services console.

1. Download the drivers to your instance using one of the following options:
   + **Browser** – [Download](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip) the latest driver package to the instance and extract the zip archive.
   + **PowerShell** – Run the following commands:

     ```
     Invoke-WebRequest https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip -outfile $env:USERPROFILE\pv_driver.zip
     Expand-Archive $env:userprofile\pv_driver.zip -DestinationPath $env:userprofile\pv_drivers
     ```

     If you receive an error when downloading the file, and you are using Windows Server 2016 or earlier, TLS 1.2 might need to be enabled for your PowerShell terminal. You can enable TLS 1.2 for the current PowerShell session with the following command and then try again:

     ```
     [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
     ```

1. Run `AWSPVDriverSetup.msi`.

After running the MSI, the instance automatically reboots and then upgrades the driver. The instance will not be available for up to 15 minutes. After the upgrade is complete and the instance passes both health checks in the Amazon EC2 console, you can verify that the new driver was installed by connecting to the instance using Remote Desktop and then running the following PowerShell command:

```
Get-ItemProperty HKLM:\SOFTWARE\Amazon\PVDriver
```

Verify that the driver version is the same as the latest version listed in the Driver Version History table. For more information, see [AWS PV driver package history](xen-drivers-overview.md#pv-driver-history) Open Disk Management to review any offline secondary volumes and bring them online corresponding to the drive letters noted in [Step 3](#secondary-disks-step-manual).

If you previously disabled [TCP offloading](pvdrivers-troubleshooting.md#citrix-tcp-offloading) using Netsh for Citrix PV drivers we recommend that you re-enable this feature after upgrading to AWS PV drivers. TCP Offloading issues with Citrix drivers are not present in the AWS PV drivers. As a result, TCP Offloading provides better performance with AWS PV drivers.

If you previously applied a static IP address or DNS configuration to the network interface, you might need to reapply the static IP address or DNS configuration after upgrading AWS PV drivers.

## Upgrade a domain controller (AWS PV upgrade)
<a name="aws-pv-upgrade-dc"></a>

Use the following procedure on a domain controller to perform either an in-place upgrade of AWS PV drivers, or to upgrade from Citrix PV drivers to AWS PV drivers. To ensure that your FSMO roles remain operational during the upgrade, we recommend that you transfer those roles to other domain controllers before you start the upgrade. For more information, see [How to view and transfer FSMO roles](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/view-transfer-fsmo-roles) on the *Microsoft Learn* website.

**To upgrade a domain controller**

1. We recommend that you create a backup of your domain controller in case you need to roll back your changes. Using an AMI as a backup is not supported. For more information, see [Backup and restore considerations](https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/virtualized-domain-controllers-hyper-v#backup-and-restore-considerations) in the Microsoft documentation.

1. Run the following command to configure Windows to boot into Directory Services Restore Mode (DSRM).
**Warning**  
Before running this command, confirm that you know the DSRM password. You'll need this information so that you can log in to your instance after the upgrade is complete and the instance automatically reboots.

   ```
   bcdedit /set {default} safeboot dsrepair
   ```

   PowerShell:

   ```
   PS C:\> bcdedit /set "{default}" safeboot dsrepair
   ```

   The system must boot into DSRM because the upgrade utility removes Citrix PV storage drivers so it can install AWS PV drivers. Therefore we recommend noting any drive letter and folder mappings to the secondary disks in Disk Management. When Citrix PV storage drivers are not present, secondary drives are not detected. Domain controllers that use an NTDS folder on secondary drives will not boot because the secondary disk is not detected.
**Warning**  
After you run this command do not manually reboot the system. The system will be unreachable because Citrix PV drivers do not support DSRM.

1. Run the following command to add **DisableDCCheck** to the registry:

   ```
   reg add HKLM\SOFTWARE\Wow6432Node\Amazon\AWSPVDriverSetup /v DisableDCCheck /t REG_SZ /d true
   ```

1.  [Download](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip) the latest driver package to the instance and extract the zip archive.

1. Run `AWSPVDriverSetup.msi`.

   After running the MSI, the instance automatically reboots and then upgrades the driver. The instance will not be available for up to 15 minutes. 

1. After the upgrade is complete and the instance passes both health checks in the Amazon EC2 console, connect to the instance using Remote Desktop. Open Disk Management to review any offline secondary volumes and bring them online corresponding to the drive letters and folder mappings noted earlier.

   You must connect to the instance by specifying the username in the following format *hostname*\$1administrator. For example, Win2k12TestBox\$1administrator.

1. Run the following command to remove the DSRM boot configuration:

   ```
   bcdedit /deletevalue safeboot
   ```

1. Reboot the instance.

1. To complete the upgrade process, verify that the new driver was installed. In Device Manager, under **Storage Controllers**, locate **AWS PV Storage Host Adapter**. Verify that the driver version is the same as the latest version listed in the Driver Version History table. For more information, see [AWS PV driver package history](xen-drivers-overview.md#pv-driver-history).

1. Run the following command to delete **DisableDCCheck** from the registry:

   ```
   reg delete HKLM\SOFTWARE\Wow6432Node\Amazon\AWSPVDriverSetup /v DisableDCCheck
   ```

**Note**  
If you previously disabled [TCP offloading](pvdrivers-troubleshooting.md#citrix-tcp-offloading) using Netsh for Citrix PV drivers we recommend that you re-enable this feature after upgrading to AWS PV Drivers. TCP Offloading issues with Citrix drivers are not present in the AWS PV drivers. As a result, TCP Offloading provides better performance with AWS PV drivers.

## Upgrade Windows Server 2008 and 2008 R2 instances (Red Hat to Citrix PV upgrade)
<a name="win2008-citrix-upgrade"></a>

Before you start upgrading your Red Hat drivers to Citrix PV drivers, make sure you do the following:
+ Install the latest version of the EC2Config service. For more information, see [Install the latest version of EC2Config](UsingConfig_Install.md).
+ Verify that you have Windows PowerShell 3.0 installed. To verify the version that you have installed, run the following command in a PowerShell window:

  ```
  PS C:\> $PSVersionTable.PSVersion
  ```

  Windows PowerShell 3.0 is bundled in the Windows Management Framework (WMF) version 3.0 install package. If you need to install Windows PowerShell 3.0, see [Windows Management Framework 3.0](https://www.microsoft.com/en-us/download/details.aspx?id=34595) in the Microsoft Download Center.
+ Back up your important information on the instance, or create an AMI from the instance. For more information about creating an AMI, see [Create an Amazon EBS-backed AMI](creating-an-ami-ebs.md).
**Tip**  
Instead of creating the AMI from the Amazon EC2 console, you can use Systems Manager Automation to create the AMI using the `AWS-CreateImage` runbook. For more information, see [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-createimage.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-createimage.html) in the *AWS Systems Manager Automation runbook reference User Guide*.

  If you create an AMI, make sure that you do the following:
  + Write down your password.
  + Do not run the Sysprep tool manually or using the EC2Config service.
  + Set your Ethernet adapter to obtain an IP address automatically using DHCP.

**To upgrade Red Hat drivers**

1. Connect to your instance and log in as the local administrator. For more information about connecting to your instance, see [Connect to your Windows instance using RDP](connecting_to_windows_instance.md).

1. In your instance, [download](https://s3.amazonaws.com/ec2-downloads-windows/Drivers/Citrix-Win_PV.zip) the Citrix PV upgrade package.

1. Extract the contents of the upgrade package to a location of your choice.

1. Double-click the **Upgrade.bat** file. If you get a security warning, choose **Run**.

1. In the **Upgrade Drivers** dialog box, review the information and choose **Yes** if you are ready to start the upgrade.

1. In the **Red Hat Paravirtualized Xen Drivers for Windows uninstaller** dialog box, choose **Yes** to remove the Red Hat software. Your instance will be rebooted.
**Note**  
If you do not see the uninstaller dialog box, choose **Red Hat Paravirtualize** in the Windows taskbar.  
![\[Red Hat Paravirtualized in taskbar.\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/images/win2003-citrix-taskbar.png)

1. Check that the instance has rebooted and is ready to be used.

   1. Open the Amazon EC2 console at [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

   1. On the **Instances** page, select **Actions**, then **Monitor and troubleshoot**, and then choose **Get system log**.

   1. The upgrade operations should have restarted the server 3 or 4 times. You can see this in the log file by the number of times `Windows is Ready to use` is displayed.  
![\[Windows system log.\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/images/win2008-sys-log.png)

1. Connect to your instance and log in as the local administrator.

1. Close the **Red Hat Paravirtualized Xen Drivers for Windows uninstaller** dialog box.

1. Confirm that the installation is complete. Navigate to the `Citrix-WIN_PV` folder that you extracted earlier, open the `PVUpgrade.log` file, and then check for the text `INSTALLATION IS COMPLETE`.  
![\[PVUpgrade log file.\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/images/win2008-pvupgrade-log.png)

## Upgrade your Citrix Xen guest agent service
<a name="citrix-pv-guest-agent-upgrade"></a>

If you are using Citrix PV drivers on Windows Server, you can upgrade the Citrix Xen guest agent service. This Windows service handles tasks such as shutdown and restart events from the API. You can run this upgrade package on any version of Windows Server, as long as the instance is running Citrix PV drivers.

**Important**  
For Windows Server 2008 R2 and later, we recommend you upgrade to AWS PV drivers that include the Guest Agent update.

Before you start upgrading your drivers, make sure you back up your important information on the instance, or create an AMI from the instance. For more information about creating an AMI, see [Create an Amazon EBS-backed AMI](creating-an-ami-ebs.md).

**Tip**  
Instead of creating the AMI from the Amazon EC2 console, you can use Systems Manager Automation to create the AMI using the `AWS-CreateImage` runbook. For more information, see [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-createimage.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-createimage.html) in the *AWS Systems Manager Automation runbook reference User Guide*.

If you create an AMI, make sure you do the following:
+ Do not enable the Sysprep tool in the EC2Config service.
+ Write down your password.
+ Set your Ethernet adapter to DHCP. 

**To upgrade your Citrix Xen guest agent service**

1. Connect to your instance and log in as the local administrator. For more information about connecting to your instance, see [Connect to your Windows instance using RDP](connecting_to_windows_instance.md).

1. On your instance, [download](https://s3.amazonaws.com/ec2-downloads-windows/Drivers/Citrix-Win_PV.zip) the Citrix upgrade package.

1. Extract the contents of the upgrade package to a location of your choice.

1. Double-click the **Upgrade.bat** file. If you get a security warning, choose **Run**.

1. In the **Upgrade Drivers** dialog box, review the information and choose **Yes** if you are ready to start the upgrade. 

1. When the upgrade is complete, the `PVUpgrade.log` file will open and contain the text `UPGRADE IS COMPLETE`.

1. Reboot your instance. 

# Troubleshoot PV drivers on Windows instances
<a name="pvdrivers-troubleshooting"></a>

The following are solutions to issues that you might encounter with older Amazon EC2 images and PV drivers.

**Topics**
+ [Windows Server 2012 R2 loses network and storage connectivity after an instance reboot](#server2012R2-instance-unavailable)
+ [TCP offloading](#citrix-tcp-offloading)
+ [Time synchronization](#citrix-time-sync)
+ [Workloads that leverage more than 20,000 disk IOPS experience degradation due to CPU bottlenecks](#pvdriver-troubleshooting-cpu-bottlenecks)

## Windows Server 2012 R2 loses network and storage connectivity after an instance reboot
<a name="server2012R2-instance-unavailable"></a>

**Important**  
This issue occurs only with AMIs made available before September 2014.

Windows Server 2012 R2 Amazon Machine Images (AMIs) made available before September 10, 2014 can lose network and storage connectivity after an instance reboot. The error in the AWS Management Console system log states: “Difficulty detecting PV driver details for Console Output.” The connectivity loss is caused by the Plug and Play Cleanup feature. This features scans for and disables inactive system devices every 30 days. The feature incorrectly identifies the EC2 network device as inactive and removes it from the system. When this happens, the instance loses network connectivity after a reboot.

For systems that you suspect could be affected by this issue, you can download and run an in-place driver upgrade. If you are unable to perform the in-place driver upgrade, you can run a helper script. The script determines if your instance is affected. If it is affected, and the Amazon EC2 network device has not been removed, the script disables the Plug and Play Cleanup scan. If the network device was removed, the script repairs the device, disables the Plug and Play Cleanup scan, and enables your instance to reboot with network connectivity enabled.

**Topics**
+ [Choose how to fix problems](#choose-fix)
+ [Method 1 - Enhanced networking](#plug-n-play-fix-method1)
+ [Method 2 - Registry configuration](#plug-n-play-fix-method2)
+ [Run the remediation script](#plug-n-play-script)

### Choose how to fix problems
<a name="choose-fix"></a>

There are two methods for restoring network and storage connectivity to an instance affected by this issue. Choose one of the following methods:


| Method | Prerequisites | Procedure Overview | 
| --- | --- | --- | 
| Method 1 - Enhanced networking | Enhanced networking is only available in a virtual private cloud (VPC) which requires a C3 instance type. If the server does not currently use the C3 instance type, then you must temporarily change it. | You change the server instance type to a C3 instance. Enhanced networking then enables you to connect to the affected instance and fix the problem. After you fix the problem, you change the instance back to the original instance type. This method is typically faster than Method 2 and less likely to result in user error. You will incur additional charges as long as the C3 instance is running. | 
| Method 2 - Registry configuration | Ability to create or access a second server. Ability to change Registry settings. | You detach the root volume from the affected instance, attach it to a different instance, connect, and make changes in the Registry. You will incur additional charges as long as the additional server is running. This method is slower than Method 1, but this method has worked in situations where Method 1 failed to resolve the problem. | 

### Method 1 - Enhanced networking
<a name="plug-n-play-fix-method1"></a>

1. Open the Amazon EC2 console at [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. In the navigation pane, choose **Instances**.

1. Locate the affected instance. Select the instance and choose **Instance state**, and then choose **Stop instance**.
**Warning**  
When you stop an instance, the data on instance store volumes is lost. To preserve this data, back it up to persistent storage.

1. After the instance is stopped, create a backup. Select the instance and choose **Actions**, then **Image and templates**, and then choose **Create image**.

1. [Change](ec2-instance-resize.md) the instance type to any C3 instance type.

1. [Start](Stop_Start.md) the instance.

1. Connect to the instance using Remote Desktop and then [download](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip) the AWS PV Drivers Upgrade package to the instance.

1. Extract the contents of the folder and run `AWSPVDriverSetup.msi`.

   After running the MSI, the instance automatically reboots and then upgrades the drivers. The instance will not be available for up to 15 minutes. 

1. After the upgrade is complete and the instance passes both health checks in the Amazon EC2 console, connect to the instance using Remote Desktop and verify that the new drivers were installed. In Device Manager, under **Storage Controllers**, locate **AWS PV Storage Host Adapter**. Verify that the driver version is the same as the latest version listed in the Driver Version History table. For more information, see [AWS PV driver package history](xen-drivers-overview.md#pv-driver-history).

1. Stop the instance and change the instance back to its original instance type.

1. Start the instance and resume normal use.

### Method 2 - Registry configuration
<a name="plug-n-play-fix-method2"></a>

1. Open the Amazon EC2 console at [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. In the navigation pane, choose **Instances**.

1. Locate the affected instance. Select the instance, choose **Instance state**, and then choose **Stop instance**.
**Warning**  
When you stop an instance, the data on instance store volumes is lost. To preserve this data, back it up to persistent storage.

1. Choose **Launch instances** and create a temporary Windows Server 2008 or Windows Server 2012 instance in the same Availability Zone as the affected instance. Do not create a Windows Server 2012 R2 instance.
**Important**  
If you do not create the instance in the same Availability Zone as the affected instance you will not be able to attach the root volume of the affected instance to the new instance.

1. In the navigation pane, choose **Volumes**.

1. Locate the root volume of the affected instance. Detach the volume and then attach the volume to the temporary instance that you created earlier. Attach it with the default device name (xvdf).

1. Use Remote Desktop to connect to the temporary instance, and then use the Disk Management utility to make the volume available for use.

1. On the temporary instance, open the **Run** dialog box, type **regedit**, and press Enter.

1. In the Registry Editor navigation pane, choose **HKEY\$1Local\$1Machine**, and then from the **File** menu choose **Load Hive**.

1. In the **Load Hive** dialog box, navigate to *Affected Volume*\$1Windows\$1System32\$1config\$1System and type a temporary name in the **Key Name** dialog box. For example, enter OldSys.

1. In the navigation pane of the Registry Editor, locate the following keys:

    **HKEY\$1LOCAL\$1MACHINE\$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Control\$1Class\$14d36e97d-e325-11ce-bfc1-08002be10318** 

    **HKEY\$1LOCAL\$1MACHINE\$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Control\$1Class\$14d36e96a-e325-11ce-bfc1-08002be10318** 

1. For each key, double-click **UpperFilters**, enter a value of XENFILT, and then choose **OK**.  
![\[Registry key for affected volume.\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/images/troubleshooting-server2012R2-regedit.png)

1. Locate the following key:

    **HKEY\$1LOCAL\$1MACHINE\$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Services\$1XENBUS\$1Parameters** 

1. Create a new string (REG\$1SZ) with the name ActiveDevice and the following value:

    **PCI\$1VEN\$15853&DEV\$10001&SUBSYS\$100015853&REV\$101** 

1. Locate the following key:

    **HKEY\$1LOCAL\$1MACHINE\$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Services\$1XENBUS** 

1. Change the **Count** from 0 to 1.

1. Locate and delete the following keys:

    **HKEY\$1LOCAL\$1MACHINE\$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Services\$1xenvbd\$1StartOverride** 

    **HKEY\$1LOCAL\$1MACHINE \$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Services\$1xenfilt\$1StartOverride** 

1. In the Registry Editor navigation pane, choose the temporary key that you created when you first opened the Registry Editor.

1. From the **File** menu, choose **Unload Hive**.

1. In the Disk Management Utility, choose the drive you attached earlier, open the context (right-click) menu, and choose **Offline**.

1. In the Amazon EC2 console, detach the affected volume from the temporary instance and reattach it to your Windows Server 2012 R2 instance with the device name /dev/sda1. You must specify this device name to designate the volume as a root volume.

1. [Start](Stop_Start.md) the instance.

1. Connect to the instance using Remote Desktop and then [download](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip) the AWS PV Drivers Upgrade package to the instance.

1. Extract the contents of the folder and run `AWSPVDriverSetup.msi`.

   After running the MSI, the instance automatically reboots and then upgrades the drivers. The instance will not be available for up to 15 minutes. 

1. After the upgrade is complete and the instance passes both health checks in the Amazon EC2 console, connect to the instance using Remote Desktop and verify that the new drivers were installed. In Device Manager, under **Storage Controllers**, locate **AWS PV Storage Host Adapter**. Verify that the driver version is the same as the latest version listed in the Driver Version History table. For more information, see [AWS PV driver package history](xen-drivers-overview.md#pv-driver-history).

1. Delete or stop the temporary instance you created in this procedure.

### Run the remediation script
<a name="plug-n-play-script"></a>

If you are unable to perform an in-place driver upgrade or migrate to a newer instance you can run the remediation script to fix the problems caused by the Plug and Play Cleanup task.

**To run the remediation script**

1. Open the Amazon EC2 console at [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. In the navigation pane, choose **Instances**.

1. Select the instance for which you want to run the remediation script. Choose **Instance state**, and then choose **Stop instance**.
**Warning**  
When you stop an instance, the data on instance store volumes is lost. To preserve this data, back it up to persistent storage.

1. After the instance is stopped, create a backup. Select the instance, choose **Actions**, then **Image and templates**, and then choose **Create image**.

1. Choose **Instance state**, and then choose **Start instance**.

1. Connect to the instance by using Remote Desktop and then [download](https://s3.amazonaws.com/ec2-downloads-windows/Scripts/RemediateDriverIssue.zip) the RemediateDriverIssue.zip folder to the instance.

1. Extract the contents of the folder.

1. Run the remediation script according to the instructions in the Readme.txt file. The file is located in the folder where you extracted RemediateDriverIssue.zip.

## TCP offloading
<a name="citrix-tcp-offloading"></a>

**Important**  
This issue does not apply to instances running AWS PV or Intel network drivers.

By default, TCP offloading is enabled for the Citrix PV drivers in Windows AMIs. If you encounter transport-level errors or packet transmission errors (as visible on the Windows Performance Monitor)—for example, when you're running certain SQL workloads—you may need to disable this feature.

**Warning**  
Disabling TCP offloading may reduce the network performance of your instance.

**To disable TCP offloading for Windows Server 2012 and 2008**

1. Connect to your instance and log in as the local administrator.

1. If you're using Windows Server 2012, press **Ctrl\$1Esc** to access the **Start** screen, and then choose **Control Panel**. If you're using Windows Server 2008, choose **Start** and select **Control Panel**.

1. Choose **Network and Internet**, then **Network and Sharing Center**.

1. Choose **Change adapter settings**.

1. Right-click **Citrix PV Ethernet Adapter \$10** and select **Properties**.  
![\[Local area connection properties.\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/images/citrix-local-area-conn.png)

1. In the **Local Area Connection Properties** dialog box, choose **Configure** to open the **Citrix PV Ethernet Adapter \$10 Properties** dialog box.

1. On the **Advanced** tab, disable each of the properties, except for **Correct TCP/UDP Checksum Value**. To disable a property, select it from **Property** and choose **Disabled** from **Value**.

1. Choose **OK**.

1. Run the following commands from a Command Prompt window.

   ```
   netsh int ip set global taskoffload=disabled
   netsh int tcp set global chimney=disabled
   netsh int tcp set global rss=disabled
   netsh int tcp set global netdma=disabled
   ```

1. Reboot the instance.

## Time synchronization
<a name="citrix-time-sync"></a>

Prior to the release of the 2013.02.13 Windows AMI, the Citrix Xen guest agent could set the system time incorrectly. This can cause your DHCP lease to expire. If you have issues connecting to your instance, you might need to update the agent.

To determine whether you have the updated Citrix Xen guest agent, check whether the `C:\Program Files\Citrix\XenGuestAgent.exe` file is from March 2013. If the date on this file is earlier than that, update the Citrix Xen guest agent service. For more information, see [Upgrade your Citrix Xen guest agent service](Upgrading_PV_drivers.md#citrix-pv-guest-agent-upgrade).

## Workloads that leverage more than 20,000 disk IOPS experience degradation due to CPU bottlenecks
<a name="pvdriver-troubleshooting-cpu-bottlenecks"></a>

You can be affected by this issue if you are using Windows instances running AWS PV drivers that leverage more than 20,000 IOPS, and you experience bug check code `0x9E: USER_MODE_HEALTH_MONITOR`.

Disk reads and writes (IOs) in the AWS PV drivers occur in two phases: **IO preparation** and **IO completion**. By default, the preparation phase runs on a single arbitrary core. The completion phase runs on core `0`. The amount of computation required to process an IO varies based on it size and other properties. Some IOs use more computation in the preparation phase, and others in the completion phase. When an instance drives more than 20,000 IOPS, the preparation or completion phase may result in a bottleneck, where the CPU upon which it runs is at 100% capacity. Whether or not the preparation or completion phase becomes a bottleneck depends on the properties of the IOs used by the application.

Starting with AWS PV drivers 8.4.0, the load of the preparation phase and the completion phase can be distributed across multiple cores, eliminating bottlenecks. Each application uses different IO properties. Therefore, applying one of the following configurations may raise, lower, or not impact the performance of your application. After you apply any of these configurations, monitor the application to verify that it is meeting your desired performance.

1. 

**Prerequisites**

   Before you begin this troubleshooting procedure, verify the following prerequisites:
   + Your instance uses AWS PV drivers version 8.4.0 or later. To upgrade, see [Upgrade PV drivers on EC2 Windows instances](Upgrading_PV_drivers.md).
   + You have RDP access to the instance. For steps to connect to your Windows instance using RDP, see [Connect to your Windows instance using an RDP client](connect-rdp.md).
   + You have administrator access on the instance.

1. 

**Observe CPU load on your instance**

   You can use Windows Task Manager to view the load on each CPU to determine potential bottlenecks to disk IO.

   1. Verify that your application is running and handling traffic similar to your production workload.

   1. Connect to your instance using RDP.

   1. Choose the **Start** menu on your instance.

   1. Enter `Task Manager` in the **Start** menu to open Task Manager.

   1. If Task Manager displays the Summary View, choose **More details** to expand the detailed view.

   1. Choose the **Performance** tab.

   1. Select **CPU** in the left pane.

   1. Right-click on the graph in the main pane and select **Change graph to**>**Logical processors** to display each individual core.

   1. Depending on how many cores are on your instance, you may see lines displaying CPU load over time, or you may just see a number.
      + If you see graphs displaying load over time, look for CPUs where the box is almost entirely shaded.
      + If you see a number on each core, look for cores that consistently show 95% or greater.

   1. Note whether core `0` or a different core is experiencing a heavy load.

1. 

**Choose which configuration to apply**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/pvdrivers-troubleshooting.html)
**Note**  
We recommend that you do not distribute IO preparation without also distributing IO completion (setting `DpcRedirection` without setting `NotifierDistributed`) because the completion phase is sensitive to overload by the preparation phase when the preparation phase is running in parallel.

**Registry key values**
   + *NotifierDistributed*

     Value `0` or not present — The completion phase will run on core `0`.

     Value `1` — The driver chooses to run the completion phase or core `0` or one additional core per attached disk.

     Value `2` — The driver runs the completion phase on one additional core per attached disk.
   + *DpcRedirection*

     Value `0` or not present — The preparation phase will run on a single, arbitrary core.

     Value `1` — The preparation phase is distributed across multiple cores.

   

   

**Default configuration**

   Apply the default configuration with AWS PV driver versions prior to 8.4.0, or if performance or stability degradation is observed after applying one of the other configurations in this section.

   1. Connect to your instance using RDP.

   1. Open a new PowerShell command prompt as an administrator.

   1. Run the following commands to remove the `NotifierDistributed` and `DpcRedirection` registry keys.

      ```
      Remove-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Name NotifierDistributed
      ```

      ```
      Remove-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Name DpcRedirection
      ```

   1. Reboot your instance.

   

   

**Allow driver to choose whether to distribute completion**

   Set `NotiferDistributed` registry key to allow the PV storage driver to choose whether or not to distribute IO completion.

   1. Connect to your instance using RDP.

   1. Open a new PowerShell command prompt as an administrator.

   1. Run the following command to set the `NotiferDistributed` registry key.

      ```
      Set-ItemProperty -Type DWORD -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Value 0x00000001 -Name NotifierDistributed
      ```

   1. Reboot your instance.

   

   

**Distribute both preparation and completion**

   Set `NotifierDistributed` and `DpcRedirection` registry keys to always distribute both the preparation and completion phases.

   1. Connect to your instance using RDP.

   1. Open a new PowerShell command prompt as an administrator.

   1. Run the following commands to set the `NotifierDistributed` and `DpcRedirection` registry keys.

      ```
      Set-ItemProperty -Type DWORD -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Value 0x00000002 -Name NotifierDistributed
      ```

      ```
      Set-ItemProperty -Type DWORD -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Value 0x00000001 -Name DpcRedirection
      ```

   1. Reboot your instance.

# AWS NVMe drivers
<a name="aws-nvme-drivers"></a>

Amazon EBS volumes and instance store volumes are exposed as NVMe block devices on [Nitro-based instances](instance-types.md#instance-hypervisor-type). To fully utilize the performance and capabilities of Amazon EBS features for volumes exposed as NVMe block devices, the instance must have the AWS NVMe driver installed. All current generation AWS Windows AMIs come with the AWS NVMe driver installed by default.

For more information about EBS and NVMe, see [Amazon EBS and NVMe](https://docs.aws.amazon.com/ebs/latest/userguide/nvme-ebs-volumes.html) in the *Amazon EBS User Guide*. For more information about SSD instance store and NVMe, see [SSD instance store volumes for EC2 instances](ssd-instance-store.md).

## Linux instances
<a name="install-nvme-driver-linux"></a>

The following AMIs include the required NVMe drivers:
+ Amazon Linux 2
+ Amazon Linux AMI 2018.03
+ Ubuntu 14.04 or later with `linux-aws` kernel
**Note**  
AWS Graviton-based instance types require Ubuntu 18.04 or later with `linux-aws` kernel
+ Red Hat Enterprise Linux 7.4 or later
+ SUSE Linux Enterprise Server 12 SP2 or later
+ CentOS 7.4.1708 or later
+ FreeBSD 11.1 or later
+ Debian GNU/Linux 9 or later

**To confirm that your instance has the NVMe driver**  
You can confirm that your instance has the NVMe driver using the following command.
+ Amazon Linux, RHEL, CentOS, and SUSE Linux Enterprise Server

  ```
  $ modinfo nvme
  ```

  If the instance has the NVMe driver, the command returns information about the driver.
+ Amazon Linux 2 and Ubuntu

  ```
  $ ls /sys/module/ | grep nvme
  ```

  If the instance has the NVMe driver, the command returns the installed drivers.

**To update the NVMe driver**

If your instance has the NVMe driver, you can update the driver to the latest version using the following procedure.

1. Connect to your instance.

1. Update your package cache to get necessary package updates as follows.
   + For Amazon Linux 2, Amazon Linux, CentOS, and Red Hat Enterprise Linux:

     ```
     [ec2-user ~]$ sudo yum update -y
     ```
   + For Ubuntu and Debian:

     ```
     [ec2-user ~]$ sudo apt-get update -y
     ```

1. Ubuntu 16.04 and later include the `linux-aws` package, which contains the NVMe and ENA drivers required by Nitro-based instances. Upgrade the `linux-aws` package to receive the latest version as follows:

   ```
   [ec2-user ~]$ sudo apt-get install --only-upgrade -y linux-aws
   ```

   For Ubuntu 14.04, you can install the latest `linux-aws` package as follows:

   ```
   [ec2-user ~]$ sudo apt-get install linux-aws
   ```

1. Reboot your instance to load the latest kernel version.

   ```
   sudo reboot
   ```

1. Reconnect to your instance after it has rebooted.

## Windows instances
<a name="install-nvme-drivers-windows"></a>

------
#### [ PowerShell ]

If you did not launch your instance from one of the latest AWS Windows AMIs provided by Amazon, use the following procedure to install the current AWS NVMe driver on your instance. Reboot is required for this install. Either the install script will reboot your instance or you must reboot it as the final step.

**Prerequisites**
+ PowerShell version 3.0 or later is installed.
+ The commands shown in this section must run in the 64-bit version of PowerShell. Do not use the `x86` version of PowerShell. That is the 32-bit version of the shell, and is not supported for these commands.

**To download and install the latest AWS NVMe driver**

1. We recommend that you create an AMI as a backup as follows, in case you need to roll back your changes.

   1. When you stop an instance, the data on any instance store volumes is erased. Before you stop an instance, verify that you've copied any data that you need from your instance store volumes to persistent storage, such as Amazon EBS or Amazon S3.

   1. In the navigation pane, choose **Instances**.

   1. Select the instance that requires the driver upgrade, and choose **Instance state**, **Stop instance**.

   1. After the instance is stopped, select the instance, choose **Actions**, then **Image and templates**, and then choose **Create image**.

   1. Choose **Instance state**, **Start instance**.

1. Connect to your instance and log in as the local administrator.

1. Download the drivers to your instance using one of the following options:
   + **Browser** – [Download](https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/Latest/AWSNVMe.zip) the latest driver package to the instance and extract the zip archive.
   + **PowerShell** – Run the following commands:

     ```
     Invoke-WebRequest https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/Latest/AWSNVMe.zip -outfile $env:USERPROFILE\nvme_driver.zip
     Expand-Archive $env:userprofile\nvme_driver.zip -DestinationPath $env:userprofile\nvme_driver
     ```

     If you receive an error when downloading the file, and you are using Windows Server 2016 or earlier, TLS 1.2 might need to be enabled for your PowerShell terminal. You can enable TLS 1.2 for the current PowerShell session with the following command and then try again:

     ```
     [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
     ```

1. Install the driver to your instance by running the `install.ps1` PowerShell script from the `nvme_driver` directory (`.\install.ps1`). If you get an error, make sure you are using PowerShell 3.0 or later.

   1. (Optional) Starting with AWS NVMe version `1.5.0`, Small Computer System Interface (SCSI) persistent reservations are supported for Windows Server 2016 and later. This feature adds support for Windows Server Failover Clustering with shared Amazon EBS storage. By default, this feature isn't enabled during installation.

      You can enable the feature when running the `install.ps1` script to install the driver by specifying the `EnableSCSIPersistentReservations` parameter with a value of `$true`.

      ```
      PS C:\> .\install.ps1 -EnableSCSIPersistentReservations $true
      ```

      You can disable the feature when running the `install.ps1` script to install the driver by specifying the `EnableSCSIPersistentReservations` parameter with a value of `$false`.

      ```
      PS C:\> .\install.ps1 -EnableSCSIPersistentReservations $false
      ```

   1. Starting with AWS NVMe `1.5.0`, the `install.ps1` script always installs the `ebsnvme-id` tool with the driver.

      (Optional) For versions `1.4.0`, `1.4.1`, and `1.4.2`, the `install.ps1` script allows you to specify whether the `ebsnvme-id` tool should be installed with the driver. 

      1. To install the `ebsnvme-id` tool, specify `InstallEBSNVMeIdTool ‘Yes’`.

      1. If you don't want to install the tool, specify `InstallEBSNVMeIdTool ‘No’`.

         If you don't specify `InstallEBSNVMeIdTool`, and the tool is already present at `C:\ProgramData\Amazon\Tools`, the package will upgrade the tool by default. If the tool is not present, `install.ps1` will not upgrade the tool by default.

         If you don't want to install the tool as part of the package, and want to install it later, you can find the latest version or the tool in the driver package. Alternatively, you can download version `1.0.0` from Amazon S3:

         [Download](https://s3.amazonaws.com/ec2-windows-drivers-downloads/EBSNVMeID/Latest/ebsnvme-id.zip) the `ebsnvme-id` tool.

1. If the installer does not reboot your instance, reboot the instance.

------
#### [ Distributor ]

You can use Distributor, a capability of AWS Systems Manager, to install the NVMe driver package one time or with scheduled updates.

**To install the latest AWS NVMe driver**

1. For the instructions for how to install the NVMe driver package using Distributor, see the procedures in [Install or update packages](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html) in the *Amazon EC2 Systems Manager User Guide*.

1. For **Installation Type**, select **Uninstall and reinstall**. 

1. For **Name**, choose **AWSNVMe**. 

1. (Optional) For **Additional Arguments**, you can customize the installation by specifying values. The values must be formatted using valid JSON syntax. For examples of how to pass additional arguments for the `aws configure` package, see the [Command document plugin reference](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-command-ssm-plugin-reference.html).

   1. Starting with AWS NVMe `1.5.0`, the driver supports SCSI persistent reservations for Windows Server 2016 and later. By default, this feature isn't enabled during installation.
      + To enable this feature, specify `{"SSM_EnableSCSIPersistentReservations": "true"}`. 
      + If you don't want to enable this feature, specify `{"SSM_EnableSCSIPersistentReservations": "false"}`.

   1. Starting with AWS NVMe `1.5.0`, the `install.ps1` script will always install the `ebsnvme-id` tool.

      (Optional) For versions `1.4.0`, `1.4.1`, and `1.4.2`, the `install.ps1` script allows you to specify whether the ebsnvme-id tool should be installed with the driver.
      + To install the ebsnvme-id tool, specify `{"SSM_InstallEBSNVMeIdTool": "Yes"}`.
      + If you don't want to install the tool, specify `{"SSM_InstallEBSNVMeIdTool": "No"}`.

        If `SSM_InstallEBSNVMeIdTool` is not specified for **Additional Arguments**, and the tool is already present at `C:\ProgramData\Amazon\Tools`, the package will upgrade the tool by default. If the tool is not present, the package will not upgrade the tool by default.

        If you don't want to install the tool as part of the package, and want to install it later, you can find the latest version of the tool in the driver package. Alternatively, you can download version `1.0.0` from Amazon S3:

        [Download](https://s3.amazonaws.com/ec2-windows-drivers-downloads/EBSNVMeID/Latest/ebsnvme-id.zip) the `ebsnvme-id` tool.

1. If the installer does not reboot your instance, reboot the instance.

------

## Configure SCSI persistent reservations for Windows instances
<a name="configure-scsi-persistent-reservations"></a>

After AWS NVMe driver version `1.5.0` or later has been installed, you can enable or disable SCSI persistent reservations using the Windows registry for Windows Server 2016 and later. You must reboot the instance for these registry changes to take effect.

You can enable SCSI persistent reservations with the following command which sets the `EnableSCSIPersistentReservations` to a value of `1`.

```
PS C:\> $registryPath = "HKLM:\SYSTEM\CurrentControlSet\Services\AWSNVMe\Parameters\Device"
Set-ItemProperty -Path $registryPath -Name EnableSCSIPersistentReservations -Value 1
```

You can disable SCSI persistent reservations with the following command which sets the `EnableSCSIPersistentReservations` to a value of `0`.

```
PS C:\> $registryPath = "HKLM:\SYSTEM\CurrentControlSet\Services\AWSNVMe\Parameters\Device"
Set-ItemProperty -Path $registryPath -Name EnableSCSIPersistentReservations -Value 0
```

# AWS NVMe Windows driver version history
<a name="nvme-driver-version-history"></a>

The following table shows which AWS NVMe drivers run on each version of Windows Server on Amazon EC2.


| Windows Server version | AWS NVMe driver version | 
| --- | --- | 
| Windows Server 2025 | latest version | 
| Windows Server 2022 | latest version | 
| Windows Server 2019 | latest version | 
| Windows Server 2016 | latest version | 
| Windows Server 2012 R2 | version 1.5.1 and earlier | 
| Windows Server 2012  | version 1.5.1 and earlier | 
| Windows Server 2008 R2 | version 1.3.2 and earlier | 
| Windows Server 2008 | version 1.3.2 and earlier | 

The following table describes the released versions of the AWS NVMe driver.


| Package version | Driver version | Details | Release date | 
| --- | --- | --- | --- | 
|   [1.8.1](https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/1.8.1/AWSNVMe.zip)   | 1.8.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-driver-version-history.html)  | 24 February 2026 | 
| 1.8.0 | 1.8.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-driver-version-history.html)  | 16 January 2026 | 
|   [1.7.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/1.7.0/AWSNVMe.zip)   | 1.7.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-driver-version-history.html)  | 17 September 2025 | 
|   [1.6.0](https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/1.6.0/AWSNVMe.zip)   | 1.6.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-driver-version-history.html)  | 25 October 2024 | 
|   [1.5.1](https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/1.5.1/AWSNVMe.zip)   | 1.5.0 |  Fixed the install script to create a folder for the `ebsnvme-id` tool if it is not present.  | 17 November 2023 | 
| 1.5.0 | 1.5.0 | Added support for Small Computer System Interface (SCSI) persistent reservations for instances running Windows Server 2016 and later. The ebsnvme-id tool (`ebsnvme-id.exe`) is now installed by default. | 31 August 2023 | 
| 1.4.2 | 1.4.2 | Fixed a bug where the AWS NVMe driver did not support instance store volumes on D3 instances. | 16 March 2023 | 
| 1.4.1 | 1.4.1 |  Reports Namespace Preferred Write Granularity (NPGW) for EBS volumes that support this optional NVMe feature. For more information, see section 8.25, "Improving Performance through I/O Size and Alignment Adherence," in the [NVMe Base Specification, version 1.4](https://nvmexpress.org/wp-content/uploads/NVM-Express-1_4b-2020.09.21-Ratified.pdf).  | 20 May 2022 | 
| 1.4.0 | 1.4.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-driver-version-history.html)  | 23 November 2021 | 
|   [1.3.2](https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/1.3.2/AWSNVMe.zip)   | 1.3.2 |  Fixed issue with modifying EBS volumes actively processing IO, which may result in data corruption. Customers who do not modify online EBS volumes (for example, resizing or changing type) are not impacted. This is the last version that can run on Windows Server 2008 and 2008 R2. This version is available for download but no longer supported. Windows Server 2008 and 2008 R2 has reached end-of-life, and is no longer supported by Microsoft.  | 10 September 2019 | 
| 1.3.1 | 1.3.1 | Reliability Improvements. | 21 May 2019 | 
| 1.3.0 | 1.3.0 | Device optimization improvements. | 31 August 2018 | 
| 1.2.0 | 1.2.0 | Performance and reliability improvements for AWS NVMe devices on all supported instances, including bare metal instances. | 13 June 2018 | 
| >1.0.0 | >1.0.0 | AWS NVMe driver for supported instance types running Windows Server. | 12 February 2018 | 

## Subscribe to notifications
<a name="nvme-drivers-subscribe-notifications"></a>

Amazon SNS can notify you when new versions of EC2 Windows Drivers are released. Use the following procedure to subscribe to these notifications.

**To subscribe to EC2 notifications from the console**

1. Open the Amazon SNS console at [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home).

1. In the navigation bar, change the Region to **US East (N. Virginia)**, if necessary. You must select this Region because the SNS notifications that you are subscribing to are in this Region.

1. In the navigation pane, choose **Subscriptions**.

1. Choose **Create subscription**.

1. In the **Create subscription** dialog box, do the following:

   1. For **TopicARN**, copy the following Amazon Resource Name (ARN):

      arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers

   1. For **Protocol**, choose `Email`.

   1. For **Endpoint**, type an email address that you can use to receive the notifications.

   1. Choose **Create subscription**.

1. You'll receive a confirmation email. Open the email and follow the directions to complete your subscription.

Whenever new EC2 Windows drivers are released, we send notifications to subscribers. If you no longer want to receive these notifications, use the following procedure to unsubscribe.

**To unsubscribe from Amazon EC2 Windows driver notification**

1. Open the Amazon SNS console at [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home).

1. In the navigation pane, choose **Subscriptions**.

1. Select the checkbox for the subscription and then choose **Actions**, **Delete subscriptions**. When prompted for confirmation, choose **Delete**.

**To subscribe to EC2 notifications using the AWS CLI**  
To subscribe to EC2 notifications with the AWS CLI, use the following command. 

```
aws sns subscribe --topic-arn arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers --protocol email --notification-endpoint YourUserName@YourDomainName.ext
```

**To subscribe to EC2 notifications using AWS Tools for Windows PowerShell**  
To subscribe to EC2 notifications with AWS Tools for Windows PowerShell, use the following command. 

```
Connect-SNSNotification -TopicArn 'arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers' -Protocol email -Region us-east-1 -Endpoint 'YourUserName@YourDomainName.ext'
```