大多数现代Linux桌面系统都预装了Nvidia驱动程序——一种新的开源图形设备驱动程序。因此,一般不需要安装闭源驱动——只要没有那么强烈的独显性能需求。
但如果想完全发挥独显的性能,闭源驱动 便派上用场了。一些Linux发行版提供了预打包的专有驱动程序放在了源中,使得安装驱动程序非常容易。
也可以自行前往英伟达官网获取驱动,然后手动安装。但这样可能需要更多的手工干预,所以只要硬件不是特别的新 ,通常源中的版本已经足够了。
再次警告
从第三方源(如Nvidia.com或通过PPA存储库的专有Nvidia驱动)安装Nvidia驱动程序可能会导致系统不稳定。因此,如果不是必须的,建议继续使用开源的新版本驱动程序。
如何逐步安装最新的Nvidia专有驱动
1、检查Nvidia VGA型号
第一步是检查Nvidia VGA卡型号。对于大多数Linux发行版,通过下述代码获得
$ lspci -vnn | grep VGA
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] [10de:1c03] (rev a1) (prog-if 00 [VGA controller])
从上面的输出可以看出我们的系统配备了 GTX 1060 6GB
显卡。
2、检查当前安装的VGA驱动程序
使用下面的命令查看当前加载的VGA驱动程序以及VGA卡型号的信息:
$ lspci -k | grep -EA3 'VGA|3D|Display'
01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
Subsystem: ASUSTeK Computer Inc. GP106 [GeForce GTX 1060 6GB]
Kernel driver in use: nouveau
Kernel modules: nvidiafb, nouveau
可以看到,目前使用的是nouveau
驱动程序和内核模块。如果安装有专有驱动,则上述命令的输出可能如下所示:
$ lspci -k | grep -EA3 'VGA|3D|Display'
01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
Subsystem: ASUSTeK Computer Inc. GP106 [GeForce GTX 1060 6GB]
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
3、检查当前的Nvidia驱动程序版本:
在继续进行最新的驱动程序安装之前,请检查当前版本的位置:
$ nvidia-settings --version
nvidia-settings: version 430.50
4、接下来安装专有驱动:
暂不讨论手工安装和GUI安装
几乎所有操作都要求sudo权限
对于Intel和NVIDIA双显卡,可能需要额外配置(bumblebee/xrandr等)
接下来的方法适用于
- 去往英伟达驱动搜索你的显卡
- 得到的结果,记录下版本号(比如
435.21
) - 使用命令安装
apt-get install nvidia-435
或使用Ubuntu自动安装:ubuntu-drivers autoinstall
,等待完成。
- 从官网下载闭源驱动
安装所有需要的依赖
yum groupinstall "Development Tools"
yum install kernel-devel epel-release
yum install dkms
屏蔽 nouveau
- 编辑
/etc/default/grub
- 找到
GRUB_CMDLINE_LINUX
,值增加参数nouveau.modeset=0
. 类似于GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet nouveau.modeset=0"
保存,更新grub
- 传统启动:
grub2-mkconfig -o /boot/grub2/grub.cfg
- EFI:
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
重启。然后检查nouveau是否已经被禁用:lshw -numeric -C display
此时,configuration: driver=nouveau latency=0 一行应该不会这样显示了
- 停止Xorg:
systemctl isolate multi-user.target
- 安装下载的闭源驱动:
bash NVIDIA-Linux-x86_64-*
(请进入到文件保存的文件夹,并确定文件有可执行权限,否则先执行 chmod +x NVIDIA-Linux-*
)
- 从官网下载闭源驱动
安装所有需要的依赖
dnf groupinstall "Development Tools"
dnf install libglvnd-devel elfutils-libelf-devel
- 屏蔽
nouveau
:grub2-editenv - set "$(grub2-editenv - list | grep kernelopts) nouveau.modeset=0"
- 重启,停止Xorg:
systemctl isolate multi-user.target
- 安装下载的闭源驱动:
bash NVIDIA-Linux-x86_64-*
(请进入到文件保存的文件夹,并确定文件有可执行权限,否则先执行 chmod +x NVIDIA-Linux-*
)
启用专有软件源
- 编辑
/etc/apt/sources.list
- 在每一行的
main
后面增加 contrib non-free
- 保存,更新缓存:
apt-get update
- 安装头文件
apt-get install module-assistant
- 编译
m-a prepare
- 安装专有驱动:
apt-get install nvidia-driver
手工生成xorg.conf
- 安装
nvidia-xconfig
:apt-get install nvidia-xconfig
- 运行,自动产生文件:
nvidia-xconfig
启用专有软件源
- 编辑
/etc/apt/sources.list
- 在每一行的
main
后面增加 contrib non-free
- 保存,更新缓存:
apt update && apt upgrade
- 启用32位源支持:
dpkg --add-architecture i386
- 安装专有驱动及相关支持包:
apt install firmware-linux nvidia-driver nvidia-settings
手工生成xorg.conf
- 安装
nvidia-xconfig
:apt install nvidia-xconfig
- 运行,自动产生文件:
nvidia-xconfig
启用专有软件源
- 编辑
/etc/apt/sources.list
- 在每一行的
main
后面增加 contrib non-free
- 保存,更新缓存:
apt update && apt upgrade
- 安装头文件
apt-get install module-assistant
- 编译
m-a prepare
- 安装驱动探测程序:
apt -y install nvidia-detect
运行,获得推荐的包(类似下面的)
nvidia-detect
Detected NVIDIA GPUs:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] [10de:1c03] (rev a1)
Checking card: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
Your card is supported by the default drivers and legacy driver series 390.
It is recommended to install the
nvidia-driver
package.
- 根据推荐的包名进行安装:
apt install nvidia-driver
- 从官网下载闭源驱动
安装所有需要的依赖
dnf groupinstall "Development Tools"
dnf install dkms "kernel-devel-uname-r == $(uname -r)"
屏蔽 nouveau
- 编辑
/etc/default/grub
- 找到
GRUB_CMDLINE_LINUX
,值增加参数nouveau.modeset=0
. 类似于GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet nouveau.modeset=0"
保存,更新grub
- 传统启动:
grub2-mkconfig -o /boot/grub2/grub.cfg
- EFI:
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
- 重启,停止Xorg:
systemctl isolate multi-user.target
- 安装下载的闭源驱动:
bash NVIDIA-Linux-x86_64-*
(请进入到文件保存的文件夹,并确定文件有可执行权限,否则先执行 chmod +x NVIDIA-Linux-*
)
启用RPM fusion
dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
使用对应命令安装驱动
# 近期的 GeForce/Quadro/Tesla
dnf install akmod-nvidia
# GF400/500系列
dnf install xorg-x11-drv-nvidia-390xx akmod-nvidia-390xx
# GF8/9/200/300系列
dnf install xorg-x11-drv-nvidia-340xx akmod-nvidia-340xx
完成后重启,安装结束。