帮助您在 Ubuntu 系统上安装和管理 NVIDIA GPU 驱动程序的小指南
我个人目前是Ubuntu 24.04.1用户,所以这主要是本指南适用的内容(尽管我相信它在较新的版本上应该可以正常工作,而且在不太旧的旧版本上也可以正常工作[something like Ubuntu 20.04+]
)
️ 警告请仔细遵循并阅读本指南的每个部分,以避免出现任何问题。
如果系统在任何重新启动步骤期间看起来卡住,也不必担心。其实并没有卡住!重新启动最多需要 2 分钟才能完成。
graphics-drivers
PPA 存储库安装 [推荐]这种安装方法是推荐的方法,它实际上是我用来在自己的系统上维护驱动程序安装的方法。
确保您已卸载之前安装的所有 NVIDIA 驱动程序:
sudo apt-get remove --purge '^nvidia-.*'
sudo apt autoremove
reboot
.run
文件)安装的任何 Nvidia 驱动程序:驱动程序卸载安装这些依赖项以确保 DKMS 支持和无问题的安装过程:
sudo apt install pkg-config libglvnd-dev dkms build-essential libegl-dev libegl1 libgl-dev libgl1 libgles-dev libgles1 libglvnd-core-dev libglx-dev libopengl-dev gcc make
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-555
reboot
注意:在本指南上次更新时,555 是存储库中可用的驱动程序的最新测试版本。
导航到 https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa 检查驱动程序的最新版本是什么,然后将driver-555
部分替换为您要安装的版本。
nvidia-smi
以确认驱动程序已安装且没有任何问题。此过程更高级,通常不推荐。不过,只要你耐心仔细地完成每一步,就一定会顺利的:)
确保您已卸载之前安装的所有 NVIDIA 驱动程序:
sudo apt-get remove --purge '^nvidia-.*'
sudo apt autoremove
reboot
.run
文件)安装的任何 Nvidia 驱动程序:驱动程序卸载确保您没有手动安装的libnvidia-egl-wayland1
版本(特别是如果您要安装 555+ 版本的 Nvidia 驱动程序)。驱动程序已包含它,如@ https://us.download.nvidia.com/XFree86/Linux-x86_64/555.42.02/README/installedcomponents.html所述
sudo apt remove libnvidia-egl-wayland1
sudo apt install pkg-config libglvnd-dev dkms build-essential libegl-dev libegl1 libgl-dev libgl1 libgles-dev libgles1 libglvnd-core-dev libglx-dev libopengl-dev gcc make
导航至 https://www.nvidia.com/Download/index.aspx?lang=en-us 并下载适合您的 GPU 和 Linux 架构的驱动程序。该网站应该为您提供一个以.run
文件扩展名结尾的文件。
按Ctrl + Alt + F3
切换到系统的终端视图(如果这不能从 GUI 模式切换到终端模式,请尝试使用Ctrl + Alt + F1
或Ctrl + Alt + F2
来代替不同的 tty)
停止GDM服务:
sudo systemctl stop gdm
sudo systemctl stop gdm3
如果这对您来说失败,请尝试sudo systemctl stop lightdm
。
请注意,在整个驱动程序安装/卸载过程中停止 GNOME 显示管理器 (GDM) 服务非常重要,否则可能会导致问题。
使用cd
更改为包含下载的.run
文件的目录路径
运行安装程序:
chmod +x NVIDIA-Linux-x86_64-555.42.02.run
sudo sh ./NVIDIA-Linux-x86_64-555.42.02.run
(确保将文件名替换为您从 Nvidia 网站获得的实际文件名)
注意:如果安装程序要求您禁用 Nouveau,请允许安装程序为您禁用它。此后您可能需要中止安装程序,然后运行sudo update-initramfs -u && reboot
,然后在系统完成重新启动后从步骤 5 重新开始。
sudo update-initramfs -u
来更新 initramfs。sudo nano /etc/default/grub
编辑/etc/default/grub
GRUB_CMDLINE_LINUX
中添加nvidia-drm.modeset=1
和nvidia-drm.fbdev=1
(即GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1 nvidia-drm.fbdev=1"
)sudo update-grub
nvidia-smi
来确认)。 graphics-drivers
PPA 存储库安装驱动程序时卸载驱动程序跑步:
sudo apt-get remove --purge '^nvidia-.*'
sudo apt autoremove
reboot
sudo rm -rf /lib/modprobe.d/nvidia-installer-*
sudo rm -rf /etc/modprobe.d/nvidia-installer-*
sudo rm -rf /usr/lib/modprobe.d/nvidia-installer-*
/etc/default/grub
文件中删除与 NVIDIA 驱动程序相关的所有条目( nvidia-drm.modeset
、 nvidia-drm.fbdev
等)。 (这很重要)。sudo update-grub
重建 GRUB 配置 sudo nvidia-installer --uninstall
sudo update-initramfs -u
graphics-drivers
PPA 存储库安装过程)。这似乎是 https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-535/+bug/2063222 报告的错误
解决方法是:
[ Workaround ]
1. sudo rm /dev/dri/card0
2. Log in again.
sudo nano /etc/gdm3/custom.conf
编辑/etc/gdm3/custom.conf
文件WaylandEnable=true
并确保其未注释(不以#
开头)sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
发生这种情况的原因有很多。一段时间以来,NVIDIA 的 Wayland 窗口系统存在问题。然而,NVIDIA 一直在努力改进这一点。实际上,从添加了显式同步支持的 NVIDIA 驱动程序 555.42.02 开始,这一点已经变得更好了。
所以首先,请确保:
然后继续阅读以下内容,让体验更加顺畅:
您的系统可能在 Wayland 会话上使用 Mesa 驱动程序而不是 NVIDIA 驱动程序。您可以通过输入glxinfo | egrep "OpenGL vendor|OpenGL renderer*"
来确认这一点。 glxinfo | egrep "OpenGL vendor|OpenGL renderer*"
为了解决这个问题:
sudo nano /etc/default/grub
编辑/etc/default/grub
GRUB_CMDLINE_LINUX
中添加nvidia-drm.modeset=1
和nvidia-drm.fbdev=1
(即GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1 nvidia-drm.fbdev=1"
)sudo update-grub
您可能启用了 Nvidia 的 GSP 固件,已知这会导致驱动程序 beta 555.42.02 版本出现一些性能问题。也许这个问题将来会得到解决,但现在,我们可以根据需要禁用 GSP 固件。
您可以通过输入nvidia-smi -q | grep "GSP Firmware"
检查 GSP 固件是否启用。 nvidia-smi -q | grep "GSP Firmware"
— 如果显示N/A
,则固件未启用。如果不是这样(它显示 GSP 固件的版本),则固件已启用。
要禁用 GSP 固件,请按照以下步骤操作:
sudo nano /etc/default/grub
编辑/etc/default/grub
GRUB_CMDLINE_LINUX
中添加nvidia.NVreg_EnableGpuFirmware=0
sudo update-grub
有关此问题的更多信息,请参阅 https://forums.developer.nvidia.com/t/major-kde-plasma-desktop-frameskip-lag-issues-on-driver-555/293606。
您可能缺少libnvidia-egl-wayland1
软件包(通常推荐)。尝试使用sudo apt install libnvidia-egl-wayland1
安装软件包(如果您安装了 555+ 版本的 Nvidia 驱动程序,请不要执行此操作,因为驱动程序安装程序已经为您安装了它。PPA 存储库软件包也会默认安装它。 )。
对于 Google Chrome(以及一般基于 Chromium 的浏览器),您可能需要将“首选 Ozone 平台”标志切换为“Wayland”或“自动”。请按照以下步骤应用此操作:
对于某些 Electron 应用程序,您可能需要传递与我们上面相同的 Ozone 平台标志。例如 Visual Studio Code 的code --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto
您可能没有启用保留视频内存分配模块参数,这可能会导致问题,特别是在挂起和恢复系统时,通常表现为图形伪影或桌面环境损坏。
您可以通过键入sudo cat /proc/driver/nvidia/params | grep "PreserveVideoMemoryAllocations"
检查模块参数是否启用。 sudo cat /proc/driver/nvidia/params | grep "PreserveVideoMemoryAllocations"
。如果该值为0
或缺失,则该参数未启用。
要启用保留视频内存分配模块参数,请按照以下步骤操作:
sudo nano /etc/default/grub
编辑/etc/default/grub
GRUB_CMDLINE_LINUX
中添加nvidia.NVreg_PreserveVideoMemoryAllocations=1
sudo update-grub
sudo cat /proc/driver/nvidia/params | grep "PreserveVideoMemoryAllocations"
以验证现在是否设置了参数如果启用此模块参数后仍然遇到挂起/恢复问题,您可能需要查看 Nvidia 的电源管理文档,以仔细检查相关的systemd
服务是否已安装并启用。