CentOS 7 OpenGL은 설치 후 Nvidia를 사용하지 않으며 nvidia 설정이 실패합니다. 엔비디아를 모든 것에 강제로 사용하도록 하는 방법이 있습니까?

CentOS 7 OpenGL은 설치 후 Nvidia를 사용하지 않으며 nvidia 설정이 실패합니다. 엔비디아를 모든 것에 강제로 사용하도록 하는 방법이 있습니까?

좋은 오후에요,

새로운 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가 기본 그래픽 카드가 되었고 예상대로 작동했습니다.

관련 정보