Xorg가 사용하는 그래픽 드라이버 확인

Xorg가 사용하는 그래픽 드라이버 확인

Arch Linux를 새로 설치할 때 그래픽 드라이버를 사용하는 데 문제가 있습니다. 이 과정에서 모니터가 작동하도록 하기 위해 다양한 드라이버를 설치했습니다.

이제 X가 어떤 드라이버를 사용하고 있는지 확인해야 합니다. 어떻게 하나요?

설치된 소프트웨어 패키지에는 xf86-video-intel,,, 가 포함됩니다 xf86-video-nouveau. 그래픽 데스크탑 관리자를 실행하는 이상한 문제를 해결하기 위해 .nvidiaxorg-driversnividia-libglmesa-libgl

그래픽 카드: Intel HD Graphics 4000/Nvidia GT 750M

그 내용은 Xorg.0.log다음과 같습니다:http://pastebin.com/YwiMZmG6

답변1

일반적으로 Xorg 시작 로그 파일을 확인하여 /var/log/Xorg.0.log로드 중인 모듈을 확인할 수 있습니다. 기본적으로 Xorg는 자동 감지를 시도할 수 있지만 DeviceXorg conf 파일에 스탠자를 넣어 드라이버를 수동으로 강제할 수 있습니다. 다음은 nvidia 카드 및 nvidia 독점 드라이버에 대한 Xorg 부팅 로그입니다.

[  3702.470] (II) xfree86: Adding drm device (/dev/dri/card0)
[  3702.472] (--) PCI:*(0:3:0:0) 10de:1184:3842:3774 rev 161, Mem @ 0xfa000000/16777216, 0xd8000000/134217728, 0xd6000000/33554432, I/O @ 0x0000cc00/128, BIOS @ 0x????????/524288
[  3702.472] (II) LoadModule: "glx"
[  3702.473] (II) Loading /usr/lib64/opengl/nvidia/extensions/libglx.so
[  3702.476] (II) Module glx: vendor="NVIDIA Corporation"
[  3702.476]    compiled for 4.0.2, module version = 1.0.0
[  3702.476]    Module class: X.Org Server Extension
[  3702.476] (II) NVIDIA GLX Module  355.11  Wed Aug 26 16:02:11 PDT 2015
[  3702.476] (II) LoadModule: "nvidia"
[  3702.476] (II) Loading /usr/lib64/xorg/modules/drivers/nvidia_drv.so
[  3702.476] (II) Module nvidia: vendor="NVIDIA Corporation"
[  3702.476]    compiled for 4.0.2, module version = 1.0.0
[  3702.476]    Module class: X.Org Video Driver
[  3702.476] (II) NVIDIA dlloader X Driver  355.11  Wed Aug 26 15:38:55 PDT 2015
[  3702.476] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[  3702.476] (++) using VT number 7

답변2

내가 찾은 한 가지 해결책은 X 런타임에 의해 실제로 로드되는 드라이버를 확인하는 것입니다. 내 시스템에서 드라이버는 다음 위치에 설치됩니다.

  • /usr/lib/xorg/modules/drivers/
  • /usr/lib/x86_64-linux-gnu/nvidia/xorg/

이렇게 하면 현재 로드된 내용을 확인할 수 있습니다.

sudo lsof +D /usr/lib/xorg/modules/drivers/ +D /usr/lib/x86_64-linux-gnu/nvidia/xorg/

지금은 이해

COMMAND  PID USER  FD   TYPE DEVICE SIZE/OFF   NODE NAME
Xorg    4473 root mem    REG  253,0    90360 536108 /usr/lib/xorg/modules/drivers/modesetting_drv.so

modesetting그래서 드라이버를 사용하고 있는 것 같아요 .

답변3

다음은 자동화된 로그 분석 시도입니다.

#!/bin/bash

if [ -z "$1" ]; then
    logfile=/var/log/Xorg.0.log
else
    logfile="$1"
fi

sed -n 's@.* Loading .*/\(.*\)_drv.so@\1@p' "$logfile" |
    while read driver; do
        if ! grep -q "Unloading $driver" "$logfile"; then
            echo $driver
            break
        fi
    done

더 쉽게 만드는 방법에 대한 아이디어는 환영합니다. 이상적으로는 로그를 구문 분석하는 대신 Xorg를 쿼리하여 간단한 솔루션을 원합니다.

답변4

glxinfo -B나는 package 에서 사용하는 것을 선호합니다 mesa-utils. 다음은 몇 가지 예입니다.

  • Nvidia 드라이버 470.63.01 및 RTX3070 카드 사용:
    OpenGL renderer string: NVIDIA GeForce RTX 3070/PCIe/SSE2
    OpenGL core profile version string: 4.6.0 NVIDIA 470.63.01
    
  • 인텔 통합 카드 및 메사 드라이버 사용:
    OpenGL vendor string: Intel Open Source Technology Center
    OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 520 (SKL GT2)
    OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.0.8
    
  • 헤드리스 원격 세션에서 OpenGL 드라이버의 순수 CPU 구현 사용:
    OpenGL vendor string: Mesa/X.org
    OpenGL renderer string: llvmpipe (LLVM 12.0.0, 128 bits)
    OpenGL core profile version string: 4.5 (Core Profile) Mesa 21.2.6
    OpenGL core profile shading language version string: 4.50
    

관련 정보