我有一台工作笔记本电脑,上面安装了 Debian Buster。笔记本电脑配备了 nVidia GeForce MX130 3D 渲染器。
这不是 VGA 适配器;它只做3D。我已经安装了 nvidia GL 库:
wouter@pc181009:~$ dpkg -l|grep nvidia
ii glx-alternative-nvidia 0.9.1 amd64 allows the selection of NVIDIA as GLX provider
ii libegl-nvidia0:amd64 410.104-1 amd64 NVIDIA binary EGL library
ii libegl-nvidia0:i386 410.104-1 i386 NVIDIA binary EGL library
ii libgl1-nvidia-glvnd-glx:amd64 410.104-1 amd64 NVIDIA binary OpenGL/GLX library (GLVND variant)
ii libgl1-nvidia-glvnd-glx:i386 410.104-1 i386 NVIDIA binary OpenGL/GLX library (GLVND variant)
ii libgles-nvidia1:amd64 410.104-1 amd64 NVIDIA binary OpenGL|ES 1.x library
ii libgles-nvidia1:i386 410.104-1 i386 NVIDIA binary OpenGL|ES 1.x library
ii libgles-nvidia2:amd64 410.104-1 amd64 NVIDIA binary OpenGL|ES 2.x library
ii libgles-nvidia2:i386 410.104-1 i386 NVIDIA binary OpenGL|ES 2.x library
ii libglx-nvidia0:amd64 410.104-1 amd64 NVIDIA binary GLX library
ii libglx-nvidia0:i386 410.104-1 i386 NVIDIA binary GLX library
ii libnvidia-cbl:amd64 410.104-1 amd64 NVIDIA binary Vulkan ray tracing (cbl) library
ii libnvidia-cfg1:amd64 410.104-1 amd64 NVIDIA binary OpenGL/GLX configuration library
ii libnvidia-eglcore:amd64 410.104-1 amd64 NVIDIA binary EGL core libraries
ii libnvidia-eglcore:i386 410.104-1 i386 NVIDIA binary EGL core libraries
ii libnvidia-fatbinaryloader:amd64 410.104-1 amd64 NVIDIA FAT binary loader
ii libnvidia-glcore:amd64 410.104-1 amd64 NVIDIA binary OpenGL/GLX core libraries
ii libnvidia-glcore:i386 410.104-1 i386 NVIDIA binary OpenGL/GLX core libraries
ii libnvidia-glvkspirv:amd64 410.104-1 amd64 NVIDIA binary Vulkan Spir-V compiler library
ii libnvidia-glvkspirv:i386 410.104-1 i386 NVIDIA binary Vulkan Spir-V compiler library
ii libnvidia-ml1:amd64 410.104-1 amd64 NVIDIA Management Library (NVML) runtime library
ii libnvidia-ptxjitcompiler1:amd64 410.104-1 amd64 NVIDIA PTX JIT Compiler
ii libnvidia-rtcore:amd64 410.104-1 amd64 NVIDIA binary Vulkan ray tracing (rtcore) library
ii nvidia-alternative 410.104-1 amd64 allows the selection of NVIDIA as GLX provider
ii nvidia-driver 410.104-1 amd64 NVIDIA metapackage
ii nvidia-driver-bin 410.104-1 amd64 NVIDIA driver support binaries
ii nvidia-driver-libs:amd64 410.104-1 amd64 NVIDIA metapackage (OpenGL/GLX/EGL/GLES libraries)
ii nvidia-driver-libs:i386 410.104-1 i386 NVIDIA metapackage (OpenGL/GLX/EGL/GLES libraries)
ii nvidia-driver-libs-i386:i386 410.104-1 i386 NVIDIA metapackage (OpenGL/GLX/EGL/GLES 32-bit libraries)
ii nvidia-egl-common 410.104-1 amd64 NVIDIA binary EGL driver - common files
ii nvidia-egl-icd:amd64 410.104-1 amd64 NVIDIA EGL installable client driver (ICD)
ii nvidia-egl-icd:i386 410.104-1 i386 NVIDIA EGL installable client driver (ICD)
ii nvidia-installer-cleanup 20151021+9 amd64 cleanup after driver installation with the nvidia-installer
ii nvidia-kernel-common 20151021+9 amd64 NVIDIA binary kernel module support files
ii nvidia-kernel-dkms 410.104-1 amd64 NVIDIA binary kernel module DKMS source
ii nvidia-kernel-support 410.104-1 amd64 NVIDIA binary kernel module support files
ii nvidia-legacy-check 410.104-1 amd64 check for NVIDIA GPUs requiring a legacy driver
ii nvidia-modprobe 410.93-1 amd64 utility to load NVIDIA kernel modules and create device nodes
ii nvidia-persistenced 410.93-1 amd64 daemon to maintain persistent software state in the NVIDIA driver
ii nvidia-settings 410.104-1 amd64 tool for configuring the NVIDIA graphics driver
ii nvidia-support 20151021+9 amd64 NVIDIA binary graphics driver support files
ii nvidia-vdpau-driver:amd64 410.104-1 amd64 Video Decode and Presentation API for Unix - NVIDIA driver
ii nvidia-vulkan-common 410.104-1 amd64 NVIDIA Vulkan driver - common files
ii nvidia-vulkan-icd:amd64 410.104-1 amd64 NVIDIA Vulkan installable client driver (ICD)
ii nvidia-vulkan-icd:i386 410.104-1 i386 NVIDIA Vulkan installable client driver (ICD)
ii xserver-xorg-video-nvidia 410.104-1 amd64 NVIDIA binary Xorg driver
此外,“update-glx --config glx”设置为使用 nVidia 驱动程序:
wouter@pc181009:~$ sudo LC_ALL=C update-glx --config glx
There are 3 choices for the alternative glx (providing /usr/lib/glx).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/nvidia 100 auto mode
1 /usr/lib/mesa-diverted 5 manual mode
2 /usr/lib/nvidia 100 manual mode
3 /usr/lib/nvidia/bumblebee 95 manual mode
Press <enter> to keep the current choice[*], or type selection number:
然而,当我运行“glxinfo”时,我看到渲染器仍在使用带有 mesa 库的 Intel iGPU。此外, nvidia-settings 只是失败:
wouter@pc181009:~$ nvidia-settings -V
WARNING: NV-CONTROL extension not found on this Display.
ERROR: Unable to load info from any available system
我应该怎么做才能让GL系统使用nvidia GPU?
因此,事实证明这是一个不完全完整的 GPU。也就是说,它是一种不附带显示连接器的芯片组,依靠片内图形芯片组(即英特尔显卡)进行显示输出。这被称为“NVidia OPTIMUS”(由 NVidia 尖叫),并通过“primus”驱动程序在 Linux 下得到支持。
为了使其工作,您需要安装该
primus
软件包。您也可以选择 installbumblebee
,尽管我不确定这样做的好处是什么(它在幕后使用 primus)。安装“primus”包后,您可以通过 primusrun 在 NVidia GPU 上运行应用程序:
将
glxinfo
在 NVidia GPU 上运行,而(即,
glxinfo
没有事先的primusrun
东西)将glxinfo
在英特尔 GPU 上运行。对于像 steam 这样的东西,你可以在里面运行所有的 steam
primusrun
,或者你可以去每个游戏的属性并在primusrun
那里添加到命令行。