좋은 오후에요,
새로운 CentOS 7 서버. (호환성 라이브러리와 마찬가지로) NVIDIA 드라이버를 설치하고 시스템에 로그인할 수 있었습니다. OpenGL은 여전히 통합 그래픽을 사용하고 있는 것으로 보이며 추가 문제 해결을 위해 NVIDIA 설정이 켜져 있지 않습니다.
nvidia-smi는 시스템의 일부가 통합을 사용하고 nvidia가 3d 렌더링에만 사용되는 것처럼 보이지만 드라이버가 로드/작동한다고 믿게 만듭니다.
가능하다면 nvidia 카드로 완전히 작동하게 하는 것이 좋겠지만 OpenGL이 나의 주요 관심사입니다. 디스플레이를 제어하는 통합 그래픽의 결과가 아닌 이상 NVIDIA 설정을 켤 수 없는 이유를 이해하지 못하시나요? 그렇다면 NVIDIA가 OpenGL 구성 요소를 포함하도록 모든 것을 제어할 수 있도록 어떻게 변경합니까?
지금까지 나는 nvidia 드라이버를 완전히 다시 설치했고 이와 비슷한 문제가 있는 사람을 찾으려고 로그/포럼을 광범위하게 살펴보았습니다.
일반 정보는 다음과 같습니다
# nvidia-smi
Wed Jan 27 16:08:26 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02 Driver Version: 450.80.02 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Quadro P1000 Off | 00000000:01:00.0 Off | N/A |
| N/A 37C P8 N/A / N/A | 0MiB / 4042MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
# nvidia-settings
ERROR: Unable to load info from any available system
# lshw -class display
*-display
description: 3D controller
product: GP107GLM [Quadro P1000 Mobile]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list rom
configuration: driver=nvidia latency=0
resources: irq:515 memory:ec000000-ecffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:3000(size=128) memory:ed000000-ed07ffff
*-display
description: VGA compatible controller
product: UHD Graphics 630 (Mobile)
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:148 memory:eb000000-ebffffff memory:80000000-8fffffff ioport:4000(size=64)
# glxinfo | grep -i opengl
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 6.0, 256 bits)
OpenGL version string: 2.1 Mesa 18.0.5
OpenGL shading language version string: 1.30
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 18.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
OpenGL ES profile extensions:
답변1
NVIDIA가 내 하이브리드 그래픽 노트북에서 작동하도록 하기 위해 제가 해야 할 일은 다음과 같습니다. (아래에서는 nouveau가 비활성화되고 nvidia가 설치될 것으로 예상됩니다)
/etc/X11/xorg.conf.d/10-nvidia-prime.conf 생성
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "PrimaryGPU" "yes"
EndSection
다음을 포함하는 두 개의 "optimus.desktop" 파일이 /etc/xdg/autostart/ 및 /usr/share/gdm/greeter/autostart/에 생성됩니다.
[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
/etc/default/grub의 CRUB_CMDLINE_LINUX 끝에 커널 매개변수 nvidia-drm.modeset=1을 추가하고 다음을 실행합니다.
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
다음 명령을 사용하여 /etc/modprobe.d/nvidia.conf를 생성합니다.
echo "options nvidia_drm modeset=1" >> /etc/modprobe.d/nvidia.conf
다음 내용으로 /etc/dracut.conf.d/nvidia.conf를 만듭니다.
add_drivers+=" nvidia nvidia_modeset nvidia_uvm nvidia_drm "
install_items+=" /etc/modprobe.d/nvidia.conf "
다음 명령을 실행하십시오.
dracut -f
init6
그 시점부터 NVIDIA가 기본 그래픽 카드가 되었고 예상대로 작동했습니다.