Kali安装Nvidia显卡驱动
Kali系统安装好后先看硬件,发现显卡驱动是一个名字叫nouveau的开源驱动,实际使用起来发现偶尔都会有鼠标延迟的情况,于是决定安装Nvidia的官方驱动,从此就走上了一条不归路,网上搜了一大堆教程,每个教程还都不一样,包括kali官方support里的教程也是拉闸,前前后后折腾重装了十几次,前后跨度一个月的时间才最终装成功
以下是我的总结:
电脑硬件:
笔记本 dell Precision M6600(十年前的电脑了,基本属于电子垃圾行列) 显卡是Quadro 3000M的
系统:Kali 2021-4
首先下载显卡驱动
(安装显卡驱动有两种方式,一种是使用APT库里的驱动程序安装,一种是使用Nvidia的官网二进制程序安装,这里我们选择第二种Nvidia的官方驱动,因为使用APT库的程序我试过几次都是黑屏无法启动,只能重装,大家可以自行尝试)
下载驱动
Unix Drivers | NVIDIAhttps://www.nvidia.cn/drivers/unix/
一般电脑都是x64,选择第一个, Linux x86_64/AMD64/EM64T,然后根据显卡支持情况选择版本,点进相应版本,在产品支持列表内选择相应最新的版本
(之前有大神教我,显卡驱动用旧的比较好,因为旧的稳定一些,但是实际安装过程中发现太旧的驱动在新系统上面可能编译不成功,因为系统内核变化太大的话可能会产生这种情况,所以选择最新的驱动,我这里选择的是390.147,再新的驱动已经不支持我的显卡Quadro 3000M,或者大家也可以把最新版本驱动以下版本的全部下载,挨个去试)
下载到指定文件夹,例如/home/xiazai,文件名称是NVIDIA-Linux-x86_64-390.147.run
因为linux系统,文件时没法直接当程序运行,需先修改文件属性,增加可运行的权限
sudo chmod a+x /home/xiazai/NVIDIA-Linux-x86_64-390.147.run
更新APT库
首先更新源(国内源的连接速度较快,如果能正常连接外部官方源,此步骤可跳过,以下是国内中科大的源,也可自己找清华、阿里、网易等国内的源):
sudo vim /etc/apt/sources.list
把以下链接接入到文件中
deb https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src https://mirrors.ustc.edu.cn/kali kali-rolling main non-free
更新软件列表,保证软件库最新
sudo apt-get update
安装Linux-headers
(此步骤不可省略,按我的理解,安装驱动时需要重新编译到内核,headers就是内核函数的声明,不安装headers就无法编译内核,默认headers在安装系统时是不会安装的,因为内核已经编译完成运行在系统中,所以需要额外安装,如果不安装的话,后面安装驱动时会报警unable to find the kernel source tree )
apt-get -y install linux-headers-$(uname -r)
注:uname –r就是当前的内核版本,如果无法找到,先用
apt-cache –search Linux-headers
找到对应全名再安装即可。
还有一种情况是比较特殊的,系统内核版本老一些,apt库已经找不到对应版本的headers,这时就需要安装对应版本的内核,然后再安装相应最新的headers(内核包含两个 Linux-image-版本-AMD64、Linux-image-AMD64),用apt-get install安装即可,不知道全名的可以用 apt-cache –search Linux-image找出对应全名
电脑重启,查看当前内核是否更新完成
(未更新内核的可跳过)
uname –a
安装dkms
(dkms是一种动态内核管理的软件,在安装驱动时可以自动选择相应内核,之前我未安装dkms的时候一直报错找不到相应内核 还有headers,让我指定路径,安装完就自动选择好了)
sudo apt-get install dkms
禁用开源显卡驱动 nouveau
(此步骤也花费了我很长时间)
禁用开源显卡驱动nouveau要分解一些步骤
1.增加blacklist
Sudo vim /etc/modprobe.d/blacklist.conf (有些系统是在/usr/lib/modprobe.d/dist-blacklist.conf,保险起见,两个都可以添加)
文件内容是
blacklist nouveau
2.更新initramfs
(不更新initramfs 的话blacklist的禁用是不会生效的)
sudo update-initramfs -u
3.更新grub,进入命令行模式
这个步骤,很多教程会忽略,那就是重启进入命令行模式,此时的旧显卡驱动已被禁用,新显卡驱动还未安装,如果不进入命令行模式,那么系统启动后,内核会调用显示接口进入图形化界面,会直接黑屏
修改grub文件
sudo vim /etc/default/grub
在quiet后面增加 splash 3
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash 3"
(linux的启动有很多种模式,6是桌面用户模式,3是命令行模式,感兴趣的可以自己研究)
保存后退出,然后更新grub
sudo update-grub
安装驱动
重启就直接进入命令行模式
然后直接运行驱动程序
cd /home/xiazai
sudo ./NVIDIA-Linux-x86_64-390.147.run
不出意外的话直接安装完成
完成后再恢复桌面模式
删掉/etc/default/grub的splash 3
Sudo vim /etc/default/grub
再更新grub及initranfs
sudo update-initramfs -u
sudo update-grub
重启正常进入系统
命令行输入nvidia-smi即可看到驱动安装完成
nvidia-smi