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

私が見つけた1つの解決策は、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
    

関連情報