Passthrough iGPU vào LXC and kích hoạt Plex HW Transcode

In default, Plex will have the CPU transcode and It will make your Plex server slow cause all available CPU resources are being used to transcode.

1. Yêu cầu

2. Passthrough iGPU to LXC Unprivileged

Đầu tiên, bạn cần kích hoạt IOMMU và iGPU để passthrough trong bài viết trước của tôi.

Kích hoạt IOMMU và iGPU để Passthrough PCI vào VM/CT

Xác minh rằng iGPU được phát hiện và xác định major and minor numbers của iGPU.

  • In the Proxmox Server
1lspci -nnv | grep VGA

passthrough-igpu-01.png

1ls -l /dev/dri

passthrough-igpu-02.png

  • card0
    • major: 226
    • minor: 0
  • renderD128
    • major: 226
    • minor: 128

Mở cấu hình LXC và thêm phần dưới đây vào cấu hình

1nano /etc/pve/lxc/<Container_ID>.conf
1lxc.cgroup2.devices.allow: c 226:0 rwm
2lxc.cgroup2.devices.allow: c 226:128 rwm
3lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file 0, 0
4lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir

File LXC Configuration của bạn sẽ trông như thế này

passthrough-igpu-03.png

Restart lại LXC để cập nhật thay đổi

1pct stop <Container_ID>
2pct start <Container_ID>

3. Xác minh iGPU trong LXC

SSH vào LXC và gõ các dòng lệnh bên dưới

1apt -y update
2apt -y install vainfo
3vainfo
 1root@plex:~# vainfo
 2error: can't connect to X server!
 3libva info: VA-API version 1.17.0
 4libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
 5libva info: Found init function __vaDriverInit_1_17
 6libva info: va_openDriver() returns 0
 7vainfo: VA-API version: 1.17 (libva 2.12.0)
 8vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.1.1 ()
 9vainfo: Supported profile and entrypoints
10      VAProfileMPEG2Simple            : VAEntrypointVLD
11      VAProfileMPEG2Main              : VAEntrypointVLD
12      VAProfileH264Main               : VAEntrypointVLD
13      VAProfileH264Main               : VAEntrypointEncSliceLP
14      VAProfileH264High               : VAEntrypointVLD
15      VAProfileH264High               : VAEntrypointEncSliceLP
16      VAProfileJPEGBaseline           : VAEntrypointVLD
17      VAProfileJPEGBaseline           : VAEntrypointEncPicture
18      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
19      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
20      VAProfileVP8Version0_3          : VAEntrypointVLD
21      VAProfileHEVCMain               : VAEntrypointVLD
22      VAProfileHEVCMain10             : VAEntrypointVLD
23      VAProfileVP9Profile0            : VAEntrypointVLD
24      VAProfileVP9Profile2            : VAEntrypointVLD

4. Cấu hình Hardware Transcode trên Plex

Plex Media Server —> Setting —> Transcoder —> Show Advanced.

  • [v] Use hardware acceleration when available
  • [v] Use hardware-accelerated video encoding

plex-transcode-01.png

5. Xác minh Plex sử dụng HW Transcode

Trên PC hoặc điện thoại của bạn. Phát một bộ phim ngẫu nhiên và chọn chất lượng Convert to 1080p HD (High) hoặc tương tự.

plex-transcode-02.png

Quay lại Bảng điều khiển Plex của bạn, bạn sẽ thấy dòng Transcode (hw) trong tab Video, Điều đó có nghĩa là Plex đang sử dụng chức năng Quick Sync của iGPU để chuyển mã video.

Và trên Bảng điều khiển LXC trong máy chủ Proxmox, CPU không còn tải đầy 95% —> 100% nữa.

plex-transcode-04.png