virtualization / knowledge

Docker VM에 AMD GPU 드라이버와 VAAPI 붙이기

paul 2025.11.14 159words (1m)

iGPU를 VM으로 넘겼어도 게스트 안에 드라이버가 없으면 /dev/dri/renderD128 이 생기지 않는다. Jellyfin 같은 게 트랜스코딩에 쓰려면 여기까지 와야 한다.

Debian이라 AtiHowTo를 따랐는데, 문서에 나오는 패키지를 다 넣을 필요는 없었다.

console
$ apt-get install firmware-amd-graphics libgl1-mesa-dri

두 개면 됐다.

패키지 역할
firmware-amd-graphics GPU 펌웨어. 이게 없으면 커널이 장치를 초기화하지 못한다
libgl1-mesa-dri OpenGL 하드웨어 가속용 Mesa DRI 드라이버. VAAPI 트랜스코딩에 쓰인다

넣지 않은 것

문서에 함께 나오지만 이 환경에서는 필요 없었던 것들이다.

패키지 언제 필요한가
libglx-mesa0 Xorg 서버의 GLX 모듈
xserver-xorg-video-all Xorg 비디오 드라이버 메타패키지
mesa-vulkan-drivers Vulkan 기반으로 트랜스코딩할 때

앞의 둘은 데스크탑 환경용이다. 이 VM은 Docker만 돌리는 헤드리스라 Xorg 자체가 없다. Vulkan도 VAAPI로 충분해서 넣지 않았다.

확인

console
$ ls -la /dev/dri

renderD128 이 보이면 드라이버가 붙은 것이다.

모니터링

GPU가 실제로 일하고 있는지 보려면 amdgpu_top 이 편하다. Debian 저장소에는 없어서 릴리스에서 받아 설치한다.

console
$ wget https://github.com/Umio-Yasuno/amdgpu_top/releases/download/v0.11.0/amdgpu-top_0.11.0-1_amd64.deb
$ sudo apt install ./amdgpu-top_0.11.0-1_amd64.deb

트랜스코딩이 CPU로 떨어지고 있는지 GPU를 쓰고 있는지 여기서 바로 확인된다.