Debian安装NVIDIA驱动

警告
本文可能并不准确, 仅供参考。

系统一般自带开源驱动nouveau, 其性能不如NVIDIA官方驱动。然而安装NVIDIA官方驱动的过程是十分坎坷的。

1
lshw -numeric -C display
  1. 安装当前运行内核的内核头文件和开发包:

    1
    
    sudo apt-get install linux-headers-$(uname -r)
    
  2. 编译和安装NVIDIA驱动程序需要以下先决条件:

    1
    
    sudo apt install build-essential libglvnd-dev pkg-config
    
  3. 如果想使用32位兼容性库应用, 比如Steam, 则需要:

    1
    2
    3
    
    sudo dpkg --add-architecture i386
    sudo apt update
    sudo apt install libc6:i386
    
  1. 创建文件/etc/modprobe.d/blacklist-nouveau.conf, 内容如下:

    1
    2
    
    blacklist nouveau
    options nouveau modeset=0
    

    写在/etc/modprobe.d/blacklist.conf里也可以生效, 不过视系统而定。

  2. 重新生成内核initramfs:

    1
    
    sudo update-initramfs -u
    
  1. 可以通过这些命令查看, 应该都提示找不到或者没有nvidia就算卸载好了:

    1
    2
    3
    4
    
    cat /proc/driver/nvidia/version
    nvidia-smi
    dkms status
    lsmod | grep nvidia
    
  2. 如果之前是编译run包安装的, 可以使用

    1
    
    sudo ./NVIDIA_....run --uninstall
    

    卸载, 或者

    1
    
    sudo /usr/bin/nvidia-uninstall
    
  3. 如果dkms status有驱动, 则使用

    1
    
    dkms remove nvidia/418.102.04 --all
    

    卸载, 注意这里版本号要与dkms staus输出的信息一致。

  4. 不放心的话, 可以再执行apt purge *nvidia*。如果卸载了所有驱动, proc/driver目录下还是有nvidia的东西, 重启即可 (实在不行手动删除) 。

如果设备只有一个NVIDIA显卡, 禁用nouveau后, 再重启可能就没有图形界面了;如果还有一个Intel集成显卡, 则开机还有图形界面。

有几种方法进入tty:

  • 开机时按Ctrl+Alt+F2进入
  • Ubuntu需要在grub进入recover模式, 选择root用户操作。
  • 终端输入sudo init 3sudo telinit 3进入。 (输入sudo init 5sudo telinit 5恢复平常的图形界面)

进入tty后, 使用以下命令排除影响:

1
2
3
sudo systemctl isolate multi-user.target
sudo lsof /dev/nvidia* | grep -v PID | grep -v lsof | awk '{print $2}' | xargs sudo kill -9
modprobe -r nouveau
  1. 首先安装NVIDIA官方驱动, 参考Debian WiKi

  2. 对于Debian:

    1
    
    apt install nvidia-driver firmware-misc-nonfree
    
  3. 对于Ubuntu, 使用ubuntu-drivers devices查看系统推荐的版本, 然后安装指定版本, 比如:

    1
    
    sudo apt install nvidia-driver-470
    

    如果源中没有, 需要手动添加PPA源:

    1
    
    sudo add-apt-repository ppa:graphics-drivers/ppa
    
不推荐
成功概率不高, 按上面的步骤走下来, 虽然可以避免大部分问题, 但仍有可能卡在最后一步, 并且视设备与系统的不同, 最后一步的报错可能也不同, 甚至每次都不一样。🙄
Optimus
忘记在哪里看到的, 说run包编译方式不支持Optimus (核显、独显混合方案) ? 这点存疑。

除了从源直接安装驱动, 也可以到NVIDIA官网下载run包, 手动编译安装, NVIDIA run包编译安装指南

切换到run包所在目录, 赋予run包可执行权限, 然后sh NVIDIA_....run

可能遇到的问题相当之多, 参考neucrack

1
sudo nvidia-prime

切换Intel显卡:

1
sudo prime-select intel

切换NVIDIA显卡:

1
sudo prime-select nvidia

查看正在运行的显卡:

1
prime-select query