저는 Macbook Pro에서 Elementary OS를 실행하고 있습니다. Bumblebee가 Optimus라는 것을 통해 단일 NVIDIA GPU와 Intel CPU 쌍의 효율성을 향상시킨다는 내용을 읽었지만 완전히 이해하지는 못합니다. 그러나 이것은 질문이 아니며 단지 몇 가지 배경 정보일 뿐입니다.
문제는 다음과 같습니다내 GPU에서 현재 처리 중인 내용을 어떻게 알 수 있나요? 장난을 시작하기 전에 현재 설정이 무엇인지 알고 잘 이해하고 싶습니다. 나는 나에게 모든 것을 말해 주는 기능을 갖고 싶지도 않고 그것이 항상 동일하기를 원하지도 않지만 지금은 어디서부터 냄새를 맡아야 할지조차 모릅니다.
답변1
나는 많은 사람들이 이 질문을 하는 것을 보았지만 항상 대답이 틀린 것 같습니다. 해당 배포판에 대한 문서를 보고 패키지 이름을 기반으로 배포판이 무엇인지 알아낼 수 있습니다. 하지만 이로 인해 문제가 발생할 수 있습니다. 즉, 오픈 소스 드라이버는 일반적으로 Linux와 함께 배포되므로 wayland를 사용하는 경우 x11 비디오 패키지 보기에 의존할 수도 없습니다.
Nvidia Optimus는 전력을 절약하기 위해 필요에 따라 전용 GPU를 켜고 끄도록 설계된 런타임 GPU 스위칭 기술입니다.
DRM은 공통 인터페이스를 통해 GPU를 다른 모듈 및 사용자 공간 애플리케이션에 노출하는 Linux 하위 시스템입니다. 각 GPU 제품군마다 드라이버가 있어야 합니다.
또한 KMS는 디스플레이를 제어하고 출력 장치 간 비디오를 버퍼링하는 데 사용됩니다. 이 하위 시스템은 GPU에서 일반적입니다.
궁극적으로 X Window System에서는 두 하위 시스템 모두 3D 그래픽 드라이버에서 사용됩니다. 그래픽 드라이버에는 실제로 DRI 드라이버, X Window 드라이버(2D 가속 및 모드 설정용) 및 OpenGL을 포함한 여러 부분이 있습니다. Wayland는 디스플레이 서버에서 2D 및 3D 렌더링을 위해 EGL을 사용하고 자체 모드를 설정합니다. 클라이언트에는 가속을 위해 추가 2D 라이브러리가 필요합니다. 이전 버전의 Linux에 대해 이야기할 때 독점 드라이버가 "블랙 박스" 기능을 제공하고 자체 OpenGL 라이브러리와 X Window만 종속성으로 제공하므로 이는 복잡해집니다.
대부분의 최신 Linux에서는 어떤 DRI 드라이버가 로드되었는지 간단히 확인할 수 있지만 OpenGL 구현에는 소위 GLX 공급자를 통한 조정이 필요합니다. 대부분의 독점 드라이버는 자체 숨겨진 아키텍처를 제공합니다. 오픈 소스 드라이버는 Mesa를 사용합니다. 과거에는 쉽게 깨질 수 있었던 로딩입니다. 이제 libglvnd를 사용하면 사용할 것을 선택할 수 있는 방법이 제공됩니다.
따라서 3D 드라이버는 실제로 여러 가지 다른 커널 모듈과 라이브러리로 구성됩니다. 여러 드라이버가 공존하고 동시에 실행될 수 있습니다.
따라서 어떤 dri 드라이버가 설치되어 있는지 확인하려면 다음을 수행하십시오.
ls /lib/modules/[linux version]/kernel/drivers/gpu/drm/
그리고 어떤 x11 2d 드라이버가 설치되어 있는지 확인하세요.
ls /lib/xorg/modules/drivers/
(이 디렉토리는 배포판마다 크게 다르지 않기를 바랍니다.)
어떤 모듈이 로드되었는지 확인하려면 drm이 필요한 모듈을 확인할 수 있습니다.
lsmod | grep drm
Drm_kms_helper는 모듈도 필요한 경우 대부분의 최신 그래픽 드라이버에 적합합니다. 그런 다음 모듈의 경로를 찾으십시오.
modinfo -F filename [module name]
그런 다음 해당 패키지 관리자를 사용하여 이를 제공하는 패키지를 찾을 수 있습니다. apt-get/dpkg를 사용하면 다음을 수행할 수 있습니다.
dpkg -S <path to module>
마지막으로 GPU 드라이버는 자체 독점 인터페이스를 제공할 수 있습니다. 예를 들어, nvidia는 비디오 인코딩 및 디코딩을 위한 vdpau를 제공합니다.