

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Linux Amazon DCV 伺服器的先決條件
<a name="setting-up-installing-linux-prereq"></a>

Amazon DCV 可讓用戶端存取 Linux 伺服器上的遠端圖形 X 工作階段。這可讓您存取對應的 Linux 桌面。Amazon DCV 支援兩種類型的 Linux 桌面串流：主控台工作階段和虛擬工作階段。如需主控台和虛擬工作階段的詳細資訊，請參閱 [管理 Amazon DCV 工作階段](managing-sessions.md)。

本主題說明如何在 Linux 伺服器上安裝使用 Amazon DCV 所需的先決條件。

**Topics**
+ [安裝桌面環境和桌面管理員](#linux-prereq-gui)
+ [停用 Wayland 通訊協定 （僅限 GDM3)](#linux-prereq-wayland)
+ [設定 X 伺服器](#linux-prereq-xserver)
+ [安裝 glxinfo 公用程式](#linux-prereq-tools)
+ [驗證 OpenGL 軟體轉譯](#linux-prereq-opengl)
+ [安裝圖形執行個體的 GPU 驅動程式](#linux-prereq-gpu)
+ [為非 GPU 執行個體安裝 XDummy 驅動程式](#linux-prereq-nongpu)

## 安裝桌面環境和桌面管理員
<a name="linux-prereq-gui"></a>

安裝桌面環境和桌面管理員，改善您在 Linux 伺服器上使用 Amazon DCV 的體驗。

桌面環境是一種圖形使用者介面 (GUI)，可協助您與 Linux 作業系統互動。有數個桌面環境，Amazon DCV 可與其中許多環境搭配使用。桌面管理員是一款管理使用者登入畫面的程式，並用於啟動和停止桌面環境工作階段和 X 伺服器。

下列標籤內容顯示在支援的作業系統上安裝預設桌面環境和桌面管理員的步驟，也顯示如何在支援的作業系統上設定和啟動 X 伺服器。

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

RHEL、CentOS 和 Rocky Linux 的預設桌面環境為 Gnome3，預設桌面管理員為 GDM。

**在 RHEL、CentOS 和 Rocky Linux 上安裝和設定桌面環境和桌面管理員**

1. 安裝桌面環境和桌面管理員套件。
   + RHEL 和 Rocky Linux

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

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

1. 請更新軟體套件，以確保 Linux 伺服器是最新版。

   ```
   $ sudo yum upgrade
   ```

1. 重新啟動 Linux 伺服器。

   ```
   $ sudo reboot
   ```

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

Amazon Linux 2 的預設桌面環境為 Gnome3，而預設桌面管理員為 GDM。

**在 Amazon Linux 2 上安裝並設定桌面環境和桌面管理員**

1. 安裝桌面環境和桌面管理員套件。

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

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

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

1. 請更新軟體套件，以確保 Linux 伺服器是最新版。

   ```
   $ sudo yum upgrade
   ```

1. 重新啟動 Linux 伺服器。

   ```
   $ sudo reboot
   ```

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

Amazon Linux 2023 的預設桌面環境為 Gnome3，預設桌面管理員為 GDM。

**在 Amazon Linux 2023 上安裝和設定桌面環境和桌面管理員**

1. 安裝桌面環境和桌面管理員套件。

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

1. 請更新軟體套件，以確保 Linux 伺服器是最新版。

   ```
   $ sudo dnf upgrade
   ```

1. 重新啟動 Linux 伺服器。

   ```
   $ sudo reboot
   ```

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

對於 Ubuntu 20.x/22.x/24.x，預設桌面環境為 Gnome3，預設桌面管理員為 GDM3。從 Ubuntu 20.x 開始，Amazon DCV 不再支援 LightDM。

**在 Ubuntu 20.x/22.x/24.x 上安裝和設定桌面環境和桌面管理員**

1. 安裝桌面環境和桌面管理員套件。

   ```
   $ sudo apt update
   ```

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

   安裝 GDM3

   ```
   $ sudo apt install gdm3
   ```

1. 確認 GDM3 設定為預設桌面管理員。

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

   輸出如下。

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

   如果 GDM3 未設定為預設桌面管理員，請使用下列命令將其設定為預設值。

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

1. 請更新軟體套件，以確保 Linux 伺服器是最新版。

   ```
   $ sudo apt upgrade
   ```

1. 重新啟動 Linux 伺服器。

   ```
   $ sudo reboot
   ```

**注意**  
搭配**虛擬工作階段**使用早於 2022.2 的 Amazon DCV 版本時，您可能會遇到[已知的 GDM 問題](https://gitlab.gnome.org/GNOME/gdm/-/issues/650)。若要讓虛擬工作階段正常運作，您可以採用下列其中一個解決方案：  
**在沒有 GPU 的伺服器上**，您可以停用桌面管理員，因為不需要執行虛擬工作階段。在建立虛擬工作階段之前執行下列命令，將系統設定為在多使用者模式下執行：  

  ```
  $  sudo systemctl isolate multi-user.target
  ```
**在具有 GPU 的伺服器上**，除了停用桌面管理員之外，您還需要在系統上啟動 X 伺服器，才能建立虛擬工作階段。若要這樣做，請執行下列命令：  

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

  ```
  $  sudo dcvstartx &
  ```
Amazon DCV 2022.2 及更新版本不受此問題影響。

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

SUSE Linux Enterprise 12.x 的預設桌面環境為 SLE Classic，而預設桌面管理員為 GDM。

**在 SUSE Linux Enterprise 12.x 上安裝並設定桌面環境和桌面管理員**

1. 安裝桌面環境和桌面管理員套件。

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

1. 確認 GDM 已設定為預設桌面管理員。

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

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

1. 請更新軟體套件，以確保 Linux 伺服器是最新版。

   ```
   $ sudo zypper update
   ```

1. 重新啟動 Linux 伺服器。

   ```
   $ sudo reboot
   ```

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

SUSE Linux Enterprise 15.x 的預設桌面環境為 SLE Classic，預設桌面管理員為 GDM3。

**在 SUSE Linux Enterprise 15.x 上安裝和設定桌面環境和桌面管理員**

1. 安裝桌面環境和桌面管理員套件。

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

1. 確認 GDM 已設定為預設桌面管理員。

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

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

1. 請更新軟體套件，以確保 Linux 伺服器是最新版。

   ```
   $ sudo zypper update
   ```

1. 重新啟動 Linux 伺服器。

   ```
   $ sudo reboot
   ```

**注意**  
搭配**虛擬工作階段**使用早於 2022.2 的 Amazon DCV 版本時，您可能會遇到[已知的 GDM 問題](https://gitlab.gnome.org/GNOME/gdm/-/issues/650)。若要讓虛擬工作階段正常運作，您可以採用下列其中一個解決方案：  
**在沒有 GPU 的伺服器上**，您可以停用桌面管理員，因為不需要執行虛擬工作階段。在建立虛擬工作階段之前執行下列命令，將系統設定為在多使用者模式下執行：  

  ```
  $  sudo systemctl isolate multi-user.target
  ```
**在具有 GPU 的伺服器上**，除了停用桌面管理員之外，您還需要在系統上啟動 X 伺服器，才能建立虛擬工作階段。若要這樣做，請執行下列命令：  

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

  ```
  $  sudo dcvstartx &
  ```
Amazon DCV 2022.2 及更新版本不受此問題影響。

------

## 停用 Wayland 通訊協定 （僅限 GDM3)
<a name="linux-prereq-wayland"></a>

Amazon DCV 不支援 Wayland 通訊協定。如果您使用的是 GDM3 桌面管理員，則必須停用 Wayland 通訊協定。如果您未使用 GDM3，請略過此步驟。

**停用 Wayland 通訊協定**

1. 使用您偏好的文字編輯器開啟下列檔案。
   + RHEL、CentOS、SUSE Linux Enterprise 15.x 和 Amazon Linux 2023

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

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

1. 在 `[daemon]`區段中，將 `WaylandEnable` 設定為 `false`。

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

1. 重新啟動 GDM 服務。
   + RHEL、CentOS 和 Amazon Linux 2023

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

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

     ```
     $ sudo systemctl restart xdm
     ```

## 設定 X 伺服器
<a name="linux-prereq-xserver"></a>

如果您打算使用主控台工作階段或 GPU 共用，則必須確定 Linux 伺服器已正確設定，且正在執行 X 伺服器。

**注意**  
如果您想要在沒有 GPU 共用的情況下使用虛擬工作階段，則不需要 X 伺服器。

X 伺服器套件通常會安裝為桌面環境和桌面管理員的相依項目。建議您將 X 伺服器設定為在 Linux 伺服器啟動時自動啟動。

**若要在 Linux 上設定和啟動 X 伺服器：**

1. 將 X 伺服器設定為在 Linux 伺服器啟動時自動啟動。

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

   如果命令傳回 `graphical.target`，則 X 伺服器已設定為自動啟動。繼續至下一個步驟。

   如果命令傳回 `multi-user.target`，X 伺服器不會設定為自動啟動。執行以下 命令：

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

1. 啟動 X 伺服器。

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

1. 確認 X 伺服器正在執行。

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

   下列範例輸出顯示 X 伺服器是否正在執行。

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

## 安裝 glxinfo 公用程式
<a name="linux-prereq-tools"></a>

glxinfo 公用程式提供 Linux 伺服器 OpenGL 組態的相關資訊。公用程式可用來判斷您的 Linux 伺服器是否設定為支援 OpenGL 硬體或軟體轉譯。它提供驅動程式和支援延伸模組的相關資訊。

glxinfo 公用程式會安裝為 DCV GL 的套件相依項。因此，如果您安裝 DCV GL，則 glxinfo 公用程式已安裝在 Linux 伺服器上。

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

**安裝 glxinfo 公用程式**  
執行以下命令：

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

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

**安裝 glxinfo 公用程式**  
執行以下命令：

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

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

**安裝 glxinfo 公用程式**  
執行以下命令：

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

------

## 驗證 OpenGL 軟體轉譯
<a name="linux-prereq-opengl"></a>

在非 GPU Linux 伺服器上，只有在使用 Mesa 驅動程式的軟體轉譯模式中才能支援 OpenGL。如果您使用非 GPU Linux 伺服器並打算使用 OpenGL，請確定已在 Linux 伺服器上安裝並正確設定 Mesa 驅動程式。

**注意**  
這僅適用於非 GPU Linux 伺服器。

**驗證 OpenGL 軟體轉譯是否可用**  
請確定 X 伺服器正在執行，並使用下列命令：

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

下列範例輸出顯示 OpenGL 軟體轉譯是否可用：

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

## 安裝圖形執行個體的 GPU 驅動程式
<a name="linux-prereq-gpu"></a>

**Topics**
+ [安裝和設定 NVIDIA 驅動程式](#gpu-nvidia)
+ [安裝和設定 AMD 驅動程式](#gpu-amd)

### 安裝和設定 NVIDIA 驅動程式
<a name="gpu-nvidia"></a>

使用具有專用 NVIDIA GPU 的 Linux 伺服器，確保已安裝並正確設定適當的 NVIDIA 驅動程式。如需如何在 Amazon EC2 Linux 執行個體上安裝 NVIDIA 驅動程式的指示，請參閱《*Amazon EC2 使用者指南*》中的[在 Linux 伺服器上安裝 NVIDIA 驅動程式](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-nvidia-driver.html)。

**注意**  
這僅適用於具有 NVIDIA GPUs 的 Linux 伺服器。
GRID 驅動程式支援每個已安裝的 GPU 最多四個 4K 顯示器。遊戲驅動程式針對每個已安裝的 GPU 僅支援一個 4K 顯示器。

在 Linux 伺服器上安裝 NVIDIA 驅動程式之後，請更新 `xorg.conf`。

**產生更新的 xorg.conf**

1. 執行下列命令。

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

   如果您使用的是 G3、G4 或 G5 Amazon EC2 執行個體，而且想要使用多監視器主控台工作階段，請包含 `--connected-monitor=DFP-0,DFP-1,DFP-2,DFP-3` 參數。如下所示。

   ```
   $  sudo nvidia-xconfig --preserve-busid --enable-all-gpus --connected-monitor=DFP-0,DFP-1,DFP-2,DFP-3
   ```
**注意**  
請確定您的伺服器沒有舊版`/etc/X11/XF86Config`檔案。如果有的話，則 `nvidia-xconfig` 會更新該組態檔案，而不會產生所需的 `/etc/X11/xorg.conf` 檔案。執行下列命令以移除舊版 `XF86Config` 檔案：  

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

1. 重新啟動 X 伺服器，讓變更生效。
   + 

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

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

**驗證您的 NVIDIA GPU 是否支援硬體型影片編碼**  
確保它支援 NVENC 編碼，且其具有大於或等於 3.0 的運算功能，或大於或等於 Ubuntu 20 的 3.5。

若要驗證 NVENC 支援，請參閱 [ NVIDIA 影片編碼和解碼 GPU 支援矩陣](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new#Encoder)。若要檢查運算功能，請參閱 [NVIDIA Compute Capacility 資料表](https://developer.nvidia.com/cuda-gpus)。

如果您的 NVIDIA GPU 不支援 NVENC 編碼，或沒有所需的運算功能，則會使用軟體型影片編碼。

**驗證 OpenGL 硬體轉譯是否可用**  
使用下列命令來確保 X 伺服器正在執行。

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

下列範例輸出顯示 OpenGL 硬體轉譯是否可用。

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

### 安裝和設定 AMD 驅動程式
<a name="gpu-amd"></a>

已連接 AMD GPU 的執行個體 (例如 G4ad 執行個體) 必須安裝適當的 AMD 驅動程式。如需如何在相容的 Amazon EC2 執行個體上安裝 AMD GPU 驅動程式的說明，請參閱[在 Linux 執行個體上安裝 AMD 驅動程式](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-amd-driver.html)。

如需 Amazon EC2 G4ad 執行個體的詳細資訊，請參閱[新的 Amazon EC2 G4ad 執行個體部落格文章上的深入探討](https://aws.amazon.com/blogs/compute/deep-dive-on-the-new-amazon-ec2-g4ad-instances/)。

## 為非 GPU 執行個體安裝 XDummy 驅動程式
<a name="linux-prereq-nongpu"></a>

**Topics**
+ [安裝和設定 XDummy 驅動程式](#gpu-xdummy)

### 安裝和設定 XDummy 驅動程式
<a name="gpu-xdummy"></a>

若要在沒有專用 GPU 的 Linux 伺服器上使用主控台工作階段，請確定已安裝並正確設定 Xdummy 驅動程式。XDummy 驅動程式允許 X 伺服器在沒有實際 GPU 時，使用虛擬影格緩衝區執行 。

**注意**  
如果您想要使用虛擬工作階段，則不需要這麼做。
XDummy 驅動程式僅支援其組態中定義的解析度。

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

**安裝 XDummy 驅動程式**  
執行以下命令：

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

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

**安裝 XDummy 驅動程式**  
執行以下命令：

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

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

**安裝 XDummy 驅動程式**  
執行以下命令：

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

------

在 Linux 伺服器上安裝 XDummy 驅動程式之後，請更新 `xorg.conf`。

**在 xorg.conf 中設定 XDummy**

1. 使用您偏好的文字編輯器開啟 `/etc/X11/xorg.conf` 檔案。

1. 將下列區段新增至組態。

   ```
   Section "Device"
       Identifier "DummyDevice"
       Driver "dummy"
       Option "UseEDID" "false"
       VideoRam 512000
   EndSection
   
   Section "Monitor"
       Identifier "DummyMonitor"
       HorizSync   5.0 - 1000.0
       VertRefresh 5.0 - 200.0
       Option "ReducedBlanking"
   EndSection
   
   Section "Screen"
       Identifier "DummyScreen"
       Device "DummyDevice"
       Monitor "DummyMonitor"
       DefaultDepth 24
       SubSection "Display"
           Viewport 0 0
           Depth 24
           Virtual 4096 2160
       EndSubSection
   EndSection
   ```
**注意**  
提供的組態是範例。您可以新增更多模式，並設定不同的`virtual`解析度。您也可以設定多個虛擬監視器。

1. 重新啟動 X 伺服器，讓變更生效。

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

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