Nvidia驱动

发布于 2020 年 12 月 14 日 | 更新于 2021 年 08 月 17 日

查看当前显卡驱动

lspci | grep -i vga | awk '{print $1}' # 找到显卡的Bus-Id
07:00.0
lspci -s 07:00.0 -v  # 指定Bus-Id 查看详细信息
07:00.0 ...
        ...
        Kernel driver in use: nouveau
        ...

驱动安装流程

尝试Kali Linux的官方教程,失败,安装后分辨率只有1024x768,且无其他分辨率可选,无法识别第二块屏幕

随后采用下面的方法安装成功!

1. 清理之前装过的NVIDIA驱动

sudo /usr/bin/nvidia-uninstall
sudo apt-get --purge remove "*nvidia*"

2. 禁用nouveau驱动

sudo cat > /etc/modprobe.d/nouveau-blacklist.conf
blacklist nouveau
options nouveau modeset=0
sudo update-initramfs -u
sudo reboot -f  # 重启后应该无法进入图形界面了

3. 从官网下载驱动安装脚本(.run),执行脚本安装

内核模块

内核模块(modules)一般都在/lib/modules/内核版本/kernel/(或/usr/lib?)下面

modinfo /lib/modules/$(uname -r)/kernel/drivers/video/nvidia.ko | grep ^version  # 打印当前内核的nvidia驱动版本
find /lib/modules -name nvidia.ko  # 直接搜索模块

dkms

内核版本变动,会导致一些模块失效。

通过dkms重新加载nvidia驱动模块:

sudo dkms install -m nvidia -v 455.23.04

查看用dkms添加的模块:

dkms status

安装的模块路径:

参考资料:

Linux内核模块管理

DKMS(里面有个练手的例子)

练手例子

https://www.jianshu.com/p/3cedce05a481

nvidia-smi

nvidia-smi -pm 1    # 打开持久模式(0则为关闭)
nvidia-smi dmon     # 按GPU持续打印状态
nvidia-smi pmon     # 按进程持续打印状态
nvidia-smi -L       # 打印可用的/检测到的GPU,可以看哪些卡掉了
nvidia-smi -a       # 打印所有GPU的详细信息
nvidia-smi -i 0 -q  # 打印指定GPU的详细信息
nvidia-smi -r -i 0  # 重启指定GPU

查看日志

sudo nvidia-bug-report.sh

搜索字符串:”/var/log/kern.log”

查看电源情况

nvidia-smi -q -d POWER

内核版本的自动更新

sudo apt-mark hold linux-image-generic linux-headers-generic    # 禁用自动更新
sudo apt-mark unhold linux-image-generic linux-headers-generic  # 恢复自动更新

卸载驱动

sudo /usr/bin/nvidia-uninstall

sudo apt-get --purge remove "*nvidia*"

相关文件

X configuration file: /etc/X11/xorg.conf

卸载日志:/var/log/nvidia uninstall.log

从Ubuntu仓库安装驱动

查看ubuntu-drivers devices

安装推荐版本的驱动sudo ubuntu-drivers install

装完后要重启!才会生效

这种方式安装的驱动不在/lib/modules/$(uname -r)/kernel/drivers/video,而是在/lib/modules/$(uname -r)/kernel/nvidia-460

GPU性能测试

reference