确定 Xorg 使用的图形驱动程序

Ale*_*lex 11 drivers xorg graphics

在全新的 Arch Linux 安装中,我在图形驱动程序方面遇到了困难。在这个过程中,我安装了很多不同的驱动程序以某种方式让显示器工作。

现在我需要确定 X 正在使用哪个驱动程序。怎么做?

已安装的软件包包括xf86-video-intel、xf86-video-nouveau、nvidia、xorg-drivers。为了解决启动任何图形桌面管理器的奇怪问题,我不得不将其替换nividia-libgl为mesa-libgl.

显卡:Intel HD Graphics 4000 / Nvidia GT 750M

内容Xorg.0.log为:http : //pastebin.com/YwiMZmG6

提前致谢 :)

小智 7

我发现的一种解决方案是检查 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/
Run Code Online (Sandbox Code Playgroud)

现在我得到

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
Run Code Online (Sandbox Code Playgroud)

所以我想我正在使用modesetting驱动程序。


cas*_*sey 5

您可以检查 Xorg 启动日志文件,通常/var/log/Xorg.0.log并查看它正在加载哪些模块。默认情况下,Xorg 可以尝试自动检测,但您可以通过Device在 Xorg 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
Run Code Online (Sandbox Code Playgroud)


Rus*_*lan 5

这是自动分析日志的尝试:

\n\n
#!/bin/bash\n\nif [ -z "$1" ]; then\n    logfile=/var/log/Xorg.0.log\nelse\n    logfile="$1"\nfi\n\nsed -n \'s@.* Loading .*/\\(.*\\)_drv.so@\\1@p\' "$logfile" |\n    while read driver; do\n        if ! grep -q "Unloading $driver" "$logfile"; then\n            echo $driver\n            break\n        fi\n    done\n
Run Code Online (Sandbox Code Playgroud)\n\n

欢迎任何如何使其变得更简单的想法。理想情况下,我希望通过查询 Xorg 获得直接解决方案 \xe2\x80\x94 而不是解析其日志。

\n