我的电脑直接下载驱动,下载不下来,需要手动安装源码。
1.准备
1.1关闭安全模式
重启计算机,在开机前狂按’DEL’进入bios设置,找到安全设置-安全启动,并关闭它。
1.2删除之前安装的NVIDIA
sudo apt-get --purge remove nvidia*
sudo apt autoremove
sudo apt-get --purge remove "*cublas*" "cuda*"
sudo apt-get --purge remove "*nvidia*"
查看是否卸载干净
dpkg -l | grep nvidia
1.2安装依赖
首先要判断一下电脑里面有没有安装gcc,这一步十分重要,不是说有GCC就可以了,版本十分重要,Ubuntu22.04需要gcc 12.3.0。安装ubutun20.04时不需要升级gcc
sudo apt-get update
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make
gcc --version
sudo apt install gcc-12 g++-12 make
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 --slave /usr/bin/g++ g++ /usr/bin/g++-12
1.3查看系统显卡型号
lspci | grep -i nvidia
1.4官网下载NVIDIA驱动
现在出了两个,我用的是第一个。
下载之后,会在下载中有一个文件。
如果是第一次使用浏览器,可能非常的卡顿,这是因为我们里面用的是Google。我们可以先把这个设置一下。
打开浏览器--setting--search--下拉框--选择Bing(浏览器--设置--搜索--下拉框--选择Bing)
就会快很多
1.5禁用nouveau (nouveau是通用的驱动程序)
sudo gedit /etc/modprobe.d/blacklist.conf
在末尾添加:
blacklist nouveau
options nouveau modeset=0
这里存在一个文件是只读文件的问题(如果用vim指令):
按i或者a插入,在末尾插入这两段文字,然后在按ESC键表示退出,这时候在下侧就可以输入内容了,如果不是只读文件输入:
:wq #退出
如果是只读文件需要再加一个叹号:强制保存。
:wq!
文件修改之后执行,更新:
sudo update-initramfs –u
sudo reboot #重启电脑
重启之后执行:
lsmod | grep nouveau #输出内容为空,则表示成功禁用
如果有输出,也就是没有禁用,需要返回去看看是不是没有保存文件。
我们电脑中可能已经安装了gdm或者gdm3,我这两个都用过,我的电脑不太适合这个两个,我用的是lightdm
sudo apt-get install lightdm
这时候会出现一个选择页面,按上下键选择lightdm。如图:
2.安装
我们可以把下载的文件放到主目录上,如果没有就需要进入到我们下载的显卡驱动的目录
sudo chmod a+x NVIDIA-Linux-x86_64-570.133.07.run
sudo ./NVIDIA-Linux-x86_64-570.133.07.run -no-x-check -no-nouveau-check -no-opengl-files
- -no-x-check: 安装时关闭X服务;
- -no-nouveau-check: 安装时禁用nouveau;
- -no-opengl-files: 只安装驱动文件,不安装OpenGL文件。
安装过程如果顺利的话,就会出现提示。
第一个是选择NVIDIA Proprietary
第二个选择 continue installation
第三个:Install Nvidia's 32-bit compatibility libraries? 选择No
第四个选择 选择Yes
Would you like to run the nvidia-xconfia utilitv to automatically update your X confiquration file so that the NyiDlA X driver dill beused dhen you restart X? Any pre-existing X configuration file will be backed up.选择"Yes"
3.问题
问题1
安装过程中他可能会报No Kernel......(具体说的什么我不记得了,但我记住了这个单词)
也就是内核未加载
检查内核模块是否存在,运行以下命令,检查 NVIDIA 内核模块是否已安装:
find /lib/modules/$(uname -r)/kernel/drivers -name nvidia*
如果有输出(如 /lib/modules/$(uname -r)/kernel/drivers/video/nvidia.ko),说明模块已安装。如果没有输出,说明模块未安装
重新生成内核模块,如果模块未安装或丢失,可以尝试重新生成:确保已安装 dkms(动态内核模块支持):
sudo apt-get install dkms
重新生成并安装 NVIDIA 内核模块:
sudo dkms install -m nvidia -v <驱动版本号>
我这里是570.133(上方图中显卡号),所以我这里这样写
sudo dkms install -m nvidia -v 570.133
设置完以后,再来运行,还是不行。
问题2
使用命令nvidia-smi查看后报错:No devices were found...
修改显卡驱动安装的命令 增加 -m=kernel-open
命令为;
sudo chmod a+x NVIDIA-Linux-x86_64-570.133.07.run
sudo ./NVIDIA-Linux-x86_64-570.133.07.run -no-x-check -no-nouveau-check -no-opengl-files -m=kernel-open
再运行,输入命令nvidia-smi,就可以了。
问题3
电脑重启后,一查发现出现“NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.”这个问题。
这个错误提示表明 nvidia-smi 无法与 NVIDIA 驱动程序通信,通常是由以下原因引起的:
1. 驱动程序未安装或安装不正确
2. 驱动程序版本不兼容
3. 内核模块未加载
我们一个一个开始检查
1. 检查驱动状态,确认系统识别到 GPU:
lspci | grep -i nvidia
2.查看内核模块,若无输出,说明模块未加载:
lsmod | grep nvidia
我们发现是内核模块未加载,因此尝试手动加载内核模块,运行以下命令手动加载 NVIDIA 内核模块:
sudo modprobe nvidia
如果成功,不会有任何输出。
如果失败,会显示错误信息(如 modprobe: FATAL: Module nvidia not found),表明模块未正确安装或配置。
3. 检查内核模块是否存在,运行以下命令,检查 NVIDIA 内核模块是否已安装:
find /lib/modules/$(uname -r)/kernel/drivers -name nvidia*
如果有输出(如 /lib/modules/$(uname -r)/kernel/drivers/video/nvidia.ko),说明模块已安装。
如果没有输出,说明模块未安装。
4. 重新生成内核模块,如果模块未安装或丢失,可以尝试重新生成:
确保已安装 dkms(动态内核模块支持):
sudo apt-get install dkms
重新生成并安装 NVIDIA 内核模块:
sudo dkms install -m nvidia -v <驱动版本号>
安装后输入
nvidia-smi
参考:
Ubuntu升级GCC版本_Linux教程_Linux公社-Linux系统门户网站
Ubuntu22.04安装显卡驱动(高速、避错版)-CSDN博客
Ubuntu22.04安装显卡驱动(亲测有效)-CSDN博客
ubuntu22.04安装显卡驱动+cuda+cudnn-CSDN博客
[问题已处理]-vmware虚拟机3060卡安装470以上的显卡驱动报错No devices were found-CSDN博客