下午好,
新鲜的 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 成为默认显卡并按预期工作。