Linux centos安装显卡驱动实践(内核更新)
作者:像风一样的男人@
显卡下载页面 https://www.nvidia.com/en-us/drivers/unix/ 随便下载一个即可
安装过程
- 查看当前设备的显卡信息
lspci | grep -i vga
- 安装gcc相关依赖
yum update -y yum update gcc yum install build-essential yum install gcc-multilibdkms yum groupinstall "Development Tools"
- 区别gcc正确安装
gcc --version
- 给gcc创建软链接
ln -s /usr/bin/gcc /usr/bin/cc
- 禁用默认显卡
vim /etc/modprobe.d/blacklist.conf 输入如下: blacklist nouveau blacklist lbm-nouveau options nouveau modeset-0 alias nouveau off 保存
- 给权限
chmod +x /etc/modprobe.d/blacklist.conf
- 移除之前可能存在驱动
yum autoremove navdia-*
- 更新当前内核对应的 initramfs 镜像
sudo dracut --force
- 重启
reboot
- 检查默认显卡驱动是否禁用成功
lsmod | grep nouveau
lsmod 命令用于显示已加载到内核中的模块信息。
若 Nouveau 驱动已被成功禁用,在执行 lsmod 命令后,输出结果里不会出现 nouveau 相关内容。
若没有任何输出:这表明 nouveau 模块未被加载,即禁用成功。
若有输出:意味着 nouveau 模块仍在运行,禁用未成功。
或
dmesg | grep nouveau
可以通过查看内核日志来确认 nouveau 驱动是否被尝试加载。使用 dmesg 命令查看内核日志,并过滤出与 nouveau 相关的信息。
若没有相关输出:说明内核在启动过程中没有尝试加载 nouveau 驱动,禁用成功。
若有输出且显示驱动已加载:则表明禁用失败。
- 关闭图形化界面
systemctl set-default multi-user.target
执行命令systemctl get-default,查看当前的启动模式,确认是否设置成功。
执行命令reboot,重启系统,使设置生效
如果之后想要重新启用图形化界面,可以使用以下命令:
systemctl set-default graphical.target,将默认启动目标设置为图形化界面模式。
reboot,重启系统。
- 下载好的驱动准备安装
nvidia-smi 输出其实就是该驱动最高支持的cuda版本 如果驱动12.6 pytorch可以装11.8
本人下载的11.4版本 https://www.nvidia.cn/drivers/unix/ # 驱动下载 https://www.nvidia.cn/drivers/details/242281/ https://www.nvidia.cn/drivers/unix/linux-amd64-display-archive/ https://developer.nvidia.com/cuda-12-6-0-download-archive # cuda下载 https://developer.nvidia.com/cuda-toolkit-archive 以下安装过程改名为 navdia.run

- 授权
chmod 777 navdia.run
- 开始安装
sh navdia.run
出现这个选择No

- 可能遇到的报错

这个错误提示表明系统找不到当前运行内核的源代码树,通常在安装 NVIDIA 显卡驱动这类需要编译内核模块的软件时会出现。在 CentOS 系统中,你可以按照以下步骤解决该问题
- 确认当前内核版本
uname -r
这个命令会输出当前内核的版本号,例如 3.10.0 - 1160.88.1.el7.x86_64。
- 安装内核开发包
在 CentOS 系统中,你需要安装 kernel-devel 包,它包含了编译内核模块所需的头文件和源代码。使用以下命令安装:
yum install kernel-devel-$(uname -r)
上述命令中的 $(uname -r) 会自动获取当前运行的内核版本号,确保安装的 kernel-devel 版本与当前内核匹配。
- 检查内核开发包是否安装成功
安装完成后,你可以通过以下命令来确认 kernel-devel 是否安装到了正确的位置:
ls /lib/modules/$(uname -r)/build
如果该命令有输出,说明内核开发包已经正确安装。
- 从新安装
./navdia.run --kernel-source-path=/lib/modules/$(uname -r)/build
- 查看是否安装成功
cat /proc/driver/nvidia/version
– 安装 nvidia - utils 软件包:nvidia - smi 命令通常包含在 nvidia - utils 软件包中
yum install nvidia - utils
- 查看显卡驱动
nvidia -smi
查看驱动版本信息
NVIDIA 显卡:如果安装的是 NVIDIA 显卡驱动,可通过命令 cat /proc/driver/nvidia/version 查看驱动版本信息。若能正确显示版本号等相关内容,说明驱动已成功安装并被系统识别;如果没有任何输出,则可能驱动安装存在问题。
cat /proc/driver/nvidia/version
如果正常输出 cd /usr/bin/ 查看是否有 nvidia-smi
添加环境变量 或 /usr/bin/nvidia-smi 查看显卡驱动信息
更换内核
1. 确认当前内核版本
uname -r
2. 查看可用的内核版本
apt-cache search linux-image | grep 5.15.0
3. 安装目标内核版本
使用 apt 命令安装目标内核版本及其对应的内核头文件。假设目标内核版本是 linux-image-5.15.0-xx-generic ,则执行以下命令:
sudo apt install linux-image-5.15.0-xx-generic linux-headers-5.15.0-xx-generic
在安装过程中,系统会自动处理依赖关系并完成安装。
4. 更新 GRUB 引导程序
安装完成后,需要更新 GRUB(GRand Unified Bootloader)引导程序,让新安装的内核在开机时能够被选择。执行以下命令:
sudo update-grub
5. 重启系统并选择旧内核
sudo reboot
6. 验证新内核版本
uname -r
7. 卸载旧内核(可选)
如果你确定新内核可以正常工作,并且不再需要旧内核,可以卸载它们以释放磁盘空间。使用以下命令查看已安装的内核:
dpkg --list | grep linux-image
然后使用 apt 命令卸载不需要的内核版本,例如:
sudo apt remove linux-image-<旧内核版本号>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
