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
답변1
일반적으로 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
답변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