计算化学公社

标题: 【经验】centos 7/8 升级nkernel,以及升级之后重装Nvidia驱动和cuda 11 .. [打印本页]

作者
Author:
ggdh    时间: 2020-9-25 11:52
标题: 【经验】centos 7/8 升级nkernel,以及升级之后重装Nvidia驱动和cuda 11 ..
本帖最后由 ggdh 于 2020-12-13 20:51 编辑

需求场景:kernel 太老了,无法使用Zen2的睿频,或者运行一些程序报错说内核太老无法运行,
网上有很多教程,但我还是折腾了半天,走了一些弯路,把过程放到这里供大家参考。

0,签署知情同意书

升级kernel的风险,包括但不限于:系统无法启动,数据丢失,硬件无法工作,以及由此引发的失眠,焦虑,师兄被迫延期毕业,老板心脏病发作送ICU等。。。

1,升级kernel
a) 查看当前kernel
  1. uname -r
复制代码

b) 添加ELPepo源(需要联网)
  1. sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
复制代码
centos7:
  1. sudo yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
复制代码
centos8:
  1. sudo yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
复制代码

c)安装最新的主线内核(kernel-ml,main line kernel)
  1. sudo yum --enablerepo=elrepo-kernel install kernel-ml
复制代码
然后重启:
  1. sudo reboot
复制代码

d)
启动到新安装的kernel(可能需要的步骤)
重启后用a步的方法确认kernel升级成功,如果没有升级成功,说明没有启动到新安装的kernel,那么需要进行下面的操作:
  1. sudo vim /etc/default/grub
复制代码
把其中的GRAB_DEFAULT改成
GRUB_DEFAULT=0
意思是默认启动第一个kernel(也就是新装的kernel)
运行
  1. sudo grub2-mkconfig -o /boot/grub2/grub.cfg
复制代码
使刚才的设置生效,然后重启。

2,重装Nvidia显卡驱动和cuda 11
更新kernel之后,nvidia显卡驱动会失效,这时候运行
  1. nvidia-smi
复制代码
会显示
"NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running."
因此需要重新安装驱动,直接重装驱动是不行的,重装驱动需要kernel-devel 和kernel-header这两个包的版本和当前kernel的版本一致,按照下面的步骤运行:

a)安装dnf(centos 7 专有步骤)
  1. sudo yum install dnf
复制代码
dnf是yum的升级版
这一步主要是为了使用dnf的--allowerasing功能

b)安装kernel-devel kernel-header
https://elrepo.org/linux/kernel/el8/x86_64/RPMS/(centos 8)或者
https://elrepo.org/linux/kernel/el7/x86_64/RPMS/(centos 7)查看当前有哪些内核版本
然后记住刚才安装的内核版本号,记为XXX
然后输入:
  1. sudo dnf --allowerasing --enablerepo=elrepo-kernel install kernel-ml*-XXX*
复制代码
这里如果不用--allowerasing,会提示kernel-ml-header 等会和现在的包冲突。这时候不要用yum remove kernel-ml-header去删除冲突的包(不要问我怎么知道的)

c)安装版本匹配GCC (可能需要的步骤)
如果这时候直接安装显卡驱动,有可能会提示
”The kernel was built with gcc (GCC) 9.3.1, ....., but the current compiler version is ....“
意思是编译内核的gcc版本和当前的gcc版本不一致,如果强行编译可能会出问题,我试过强行编译,会失败,这时候退出驱动安装,先安装版本匹配gcc
centos7:
  1. sudo yum install centos-release-scl
  2. sudo yum install devtoolset-9
  3. source scl_source enable devtoolset-9
复制代码
centos8:
  1. sudo dnf install gcc-toolset-9
  2. source /opt/rh/gcc-toolset-9/enable
复制代码
这里安装的是gcc 9版本,实际请跟具安装驱动时的提示安装相应的版本。
如果想自动加载gcc 9 版把上面的命令中的最后一行加到~/.bashrc中

d) 安装显卡驱动
这一步还需要屏蔽nouveau驱动,但是这里是重装Nvidia驱动,所以这步省略了,如果是新装Nvidia驱动,请参考网上的教程屏蔽nouveau驱动。
  1. sudo sh NVIDIA-Linux-x86_64-450.66.run
复制代码
如果安装过程中出错,还可怀疑是kernel 版本和驱动不兼容,先确保显卡的驱动是最新版(因为通常是kernel先更新,导致的显卡驱动不兼容),或者是把你的kernel版本号和nvidia作为关键词,去google搜索一下,看看别人是不是都有这个问题。
安装完成后运行
  1. nvidia-smi
复制代码
检查显卡驱动是否安装成功

e) 安装cuda 11
运行
  1. sudo sh cuda_11.0.3_450.51.06_linux.run
复制代码
安装cuda程序,其中可以不用安装驱动了。
安装完成后设置环境变量
把下面三句话加到~/.bashrc中
  1. export CUDA_HOME=/usr/local/cuda
  2. export PATH="/usr/local/cuda/bin:$PATH"
  3. export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
复制代码
然后运行
  1. source ~/.bashrc
复制代码
使设置生效
下面验证cuda的安装,依次运行下面的命令
  1. cd /usr/local/cuda/samples/1_Utilities/deviceQuery
  2. make
  3. ./deviceQuery
复制代码











作者
Author:
naoki    时间: 2020-9-25 12:49
好帖。mark一下
作者
Author:
fineren    时间: 2020-9-26 20:21
收藏了备用
作者
Author:
冰释之川    时间: 2020-9-26 21:09
见过的最长的帖子标题……
作者
Author:
喵星大佬    时间: 2020-9-27 11:29
知情同意书可是太6了
作者
Author:
k64_cc    时间: 2020-10-13 09:17
安完NVIDIA驱动之后Xorg挂了怎么搞[捂脸]

没装OpenGL,也没让驱动更新X server的setting,但是最后还是挂了,太惨了
作者
Author:
一颗赛艇    时间: 2020-10-13 15:03
ubuntu Linuxmint他不香么
作者
Author:
haizhiwuyu    时间: 2020-10-26 12:37
本帖最后由 haizhiwuyu 于 2020-10-26 12:43 编辑

sudo yum install centos-release-scl
sudo yum install devtoolset-9
sudo scl enable devtoolset-9 bash

请问,这三步无法执行,No match for argument: centos-release-scl
请问怎么解决啊?我是centos8
作者
Author:
ggdh    时间: 2020-10-26 15:23
haizhiwuyu 发表于 2020-10-26 12:37
sudo yum install centos-release-scl
sudo yum install devtoolset-9
sudo scl enable devtoolset-9 bas ...

centos8 这么操作:
原文已更新,感谢反馈
sudo dnf install gcc-toolset-9
source /opt/rh/gcc-toolset-9/enable
作者
Author:
lao7    时间: 2020-11-3 11:04
CentOS 7最近3.**的内核,运行Gromacs时,系统无故重启。也是需要更新内核到5.*版本。但是不需要更新显卡。
作者
Author:
jluZ    时间: 2020-11-12 21:42
想请教您没有网的情况下想编译安装CUDA应该怎么做?
作者
Author:
monk1077    时间: 2020-11-17 08:30
jluZ 发表于 2020-11-12 21:42
想请教您没有网的情况下想编译安装CUDA应该怎么做?

把必要的依赖库安装上。接下来驱动与CUDA就简单了
作者
Author:
abdoman    时间: 2020-11-18 08:34
jluZ 发表于 2020-11-12 21:42
想请教您没有网的情况下想编译安装CUDA应该怎么做?

1.下载一个完整光盘镜像,然后挂载在本地。(轻松解决依赖包的问题)
2. 下载一个适合的cuda的run文件,直接安装就行了。






欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3