nvidia驱动安装失败,可以查看下面日志,查看具体问题:
cat /var/log/nvidia-installer.log
cat /var/log/cuda-installer.log
sudo apt-get update #更新软件列表
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install make
sudo apt-get install cmake
sudo apt-get purge nvidia-cuda*
sudo apt-get purge nvidia-*
sudo apt-get purge remove "*cublas*" "cuda*" #卸载CUDA Toolkit
使用sudo dpkg --list | grep nvidia-*查询是否卸载干净了。如不干净,继续卸载。
sudo apt autoremove *nvidia* #卸载所有和nvidia相关
如果是ubuntu20.04,则执行gdm3关闭。(ubuntu20.04自带gdm3,如果你自己装了其他的,需要对应关闭)
sudo /etc/init.d/gdm3 stop
如果是ubuntu16.04,则执行gdm关闭。
sudo /etc/init.d/gdm stop
如果是nouveau导致的失败,则禁用nouveau。如果电脑接着显示器,这个肯定失败。
sudo vi /etc/modprobe.d/blacklist.conf
在blacklist.conf末尾添加如下内容:
blacklist nouveau
options nouveau modeset=0
然后输入下面命令后,重启电脑:
sudo update-initramfs -u
lsmod | grep nouveau #查询不到任何东西,就是对的
重启后,查询
lsmod | grep nouveau #查询不到任何东西,就是对的
下面具体是:
Lockdown:nvidia-installe: unsigned module loading is restricted
则是因为电脑设置了安全模式,需要进bois关闭。
解决此问题有两个方法:
1、去bois页面,关闭安全模式。
华硕主板,关闭步骤:
1)进入BIOS界面,按F8进入高级模式。进入后,选择“启动”选项卡,在下面找到“安全启动”选项,回车进入。
2) 进入“安全启动”菜单后,可以看到“安全启动状态”是开启的并且无法关闭,这时候就要找到“密钥管理”并回车进入。
3) 在"密钥管理"选项卡中,选择“清除安全启动密钥”并回车。
4) 返回上一页,这时可以看到“安全启动状态”已经关闭了。按F10保存设置并重启电脑。
2、向内核添加一个自签名证书,然后使用证书对驱动模块进行签名
请参考:内核 lockdown 导致驱动无法加载的解决方法 - 简书
报错日志:ERROR: The nvidia kernel module was not created
因为nvidia内核模块没有被创建,一般情况下是因为用apt-get update, apt-get upgrade 造成内核版本升级,导致驱动文件不适配。
1)查看当前使用的内核
uname -r
如5.15.0-52-generic
查询一下系统已经安装的所有内核,一般来说,如果自己没有装内核,查到的都是系统预装好的,输入如下命令:
sudo dpkg --get-selections |grep linux-image
sudo dpkg --get-selections |grep linux-headers
sudo dpkg --get-selections |grep linux-modules
如果当前内核版本不是install的状态,则是有问题的。
如果需要的版本已经预装好的话,可以直接切换内核。
如果没有自己需要的版本,可以使用如下命令,安装内核,如。
apt install linux-image-5.15.0-52-generic
apt install linux-headers-5.15.0-52-generic
apt install linux-modules-5.15.0-52-generic
2)切换内核
查询系统目前支持的内核:
grep "Ubuntu, with Linux" /boot/grub/grub.cfg
打开/etc/default/grub,修改为查询的结果,如Ubuntu, with Linux 5.15.0-52-generic:
sudo vi /etc/default/grub
替换GRUB_DEFAULT=0为如下:
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-52-generic"
执行
sudo update-grub
现在再查询自己当前的内核版本,就变成刚才切换的了:
uname -r