CentOS 7 OpenGL 安装后不使用 Nvidia 并且 nvidia 设置失败。有没有办法强制nvidia用于一切?

CentOS 7 OpenGL 安装后不使用 Nvidia 并且 nvidia 设置失败。有没有办法强制nvidia用于一切?

下午好,

新鲜的 CentOS 7 服务器。安装了 nvidia 驱动程序(兼容库也是如此)并且能够登录系统。 OpenGL 似乎仍然使用集成显卡,并且 nvidia 设置未打开,无法让我进一步排除故障。

nvidia-smi 让我相信驱动程序已加载/工作,尽管系统的一部分似乎正在使用集成,而 nvidia 仅用于 3d 渲染。

如果可能的话,我会很好地让它完全与 nvidia 卡一起工作,但 OpenGL 是我主要关心的问题。不明白为什么 nvidia-setting 无法打开,除非它是集成显卡控制显示的结果?如果是这样,我该如何更改它以允许 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

在 /etc/xdg/autostart/ 和 /usr/share/gdm/greeter/autostart/ 中创建了两个“optimus.desktop”文件,其中包含:

[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer

将 nvidia-drm.modeset=1 的内核参数添加到 /etc/default/grub 内 CRUB_CMDLINE_LINUX 的末尾并运行:

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 成为默认显卡并按预期工作。

相关内容