서버/리눅스 서버

인텔 11세대 intel-media-driver 컴파일 하기 (간단편)

ㅋㅋ잠자 2023. 2. 27. 09:45
반응형

안녕하세요? 간단하게 컴파일 후기를 남깁니다.

intel-vappi-driver 와 intel-media-driver 는 우분투/데비안 패키지에서 아래 2개 패키지입니다.

https://packages.debian.org/source/sid/intel-vaapi-driver

https://packages.debian.org/buster/intel-media-va-driver

 

vaapi-driver 와 media-driver 차이는 vaapi-driver 는 이제 legacy 라는 점입니다.

 

한편 11세대 내장 GPU는 제스퍼레이크이며 intel-media-dirver 페이지에 TGLx에 해당합니다.

현재 설치된 데비안 버전으로는 vainfo 실행 시, 에러가 발생하고 있습니다.

backports 를 추가하였음에도 불가하고 정상 동작이 되지 않았습니다.

 

그래서 새로 컴파일 하기로 하였는데요. 

 

컴파일 할 대상은 아래와 같습니다.

 

1. libva

https://github.com/intel/libva

특히 libva 의 경우 intel-media-driver 컴파일에 필요하기 때문에 대충 구버전의 libva 의 패키지를 apt 에서 설치하면 intel-media-driver 의 컴파일이 실패합니다.

root@debian:~/libva# ./autogen.sh --prifix=/usr
root@debian:~/libva# make -j4 && make install

 

2. intel-media-driver

https://github.com/intel/media-driver

root@debian:~# mkdir -p build 
root@debian:~# cd build/
root@debian:~/build# cmake ../media-driver/ -DCMAKE_INSTALL_PREFIX=/usr
root@debian:~/build# make -j4 && make install

시간 굉장히 오래 걸립니다.

 

3. libva-utils

https://github.com/intel/libva-utils

vainfo 명령을 실행하기 위해 컴파일 하였습니다.

root@debian:~/libva-utils# ./autogen.sh --prefix=/usr
root@debian:~/libva-utils# make -j4 && make install

 

4. 환경 변수 추가

아래에 파일을 추가하여 계정에 반영이 되도록 합니다.

root@debian:/etc/profile.d# cat media-dirver.sh 
export LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri
export LIBVA_DRIVER_NAME=iHD

다시 로그인 하여 변수가 선언되었는지 확인합니다.

root@debian:~# echo $LIBVA_DRIVERS_PATH
/usr/lib/x86_64-linux-gnu/dri

root@debian:~# echo $LIBVA_DRIVER_NAME
iHD

 

5. 컴파일 결과

일단 정상 동작하는지 모르겠습니다.

plex 컨테이너 내부의 intel-media-driver 가 동작하지 않아 호스트 머신에 컴파일하기 시작했는데요.

다음 글에서는 ffmpeg 연동과 plex 에서 hw 인코더와 디코더를 사용할 수 있도록하는 부분에 대해서 작성하겠습니다.

root@debian:~# vainfo 
Trying display: wayland
Trying display: x11
error: can't connect to X server!
Trying display: drm
libva info: VA-API version 1.18.0
libva info: User environment variable requested driver 'iHD'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_18
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.18 (libva 2.10.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.1.2 (4e28af908)
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileNone                   : VAEntrypointStats
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSliceLP
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSliceLP
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile1            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileVP9Profile3            : VAEntrypointVLD
      VAProfileHEVCMain422_10         : VAEntrypointVLD
      VAProfileHEVCMain444            : VAEntrypointVLD
      VAProfileHEVCMain444            : VAEntrypointEncSliceLP
      VAProfileHEVCMain444_10         : VAEntrypointVLD
      VAProfileHEVCMain444_10         : VAEntrypointEncSliceLP

 

 

마치겠습니다. 감사합니다.

반응형