计算化学公社

 找回密码 Forget password
 注册 Register
Views: 8738|回复 Reply: 12

[Linux] 【经验】centos 7/8 升级nkernel,以及升级之后重装Nvidia驱动和cuda 11 ..

[复制链接 Copy URL]

877

帖子

36

威望

4805

eV
积分
6402

Level 6 (一方通行)

发表于 Post on 2020-9-25 11:52:51 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 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
复制代码










评分 Rate

参与人数
Participants 5
威望 +1 eV +18 收起 理由
Reason
lao7 + 5
plus + 3
hebrewsnabla + 5 你太可爱
sobereva + 1
Novice + 5 你太可爱

查看全部评分 View all ratings

423

帖子

0

威望

2499

eV
积分
2922

Level 5 (御坂)

小白

发表于 Post on 2020-9-25 12:49:24 | 显示全部楼层 Show all
好帖。mark一下
No problem is insoluble in all conceivable circumstances.

116

帖子

0

威望

1612

eV
积分
1728

Level 5 (御坂)

发表于 Post on 2020-9-26 20:21:00 | 显示全部楼层 Show all
收藏了备用

1061

帖子

16

威望

5791

eV
积分
7172

Level 6 (一方通行)

計算化学の社畜

发表于 Post on 2020-9-26 21:09:05 | 显示全部楼层 Show all
见过的最长的帖子标题……
Stand on the shoulders of giants

1464

帖子

1

威望

2599

eV
积分
4083

Level 6 (一方通行)

喵星人

发表于 Post on 2020-9-27 11:29:07 | 显示全部楼层 Show all
知情同意书可是太6了

501

帖子

0

威望

2450

eV
积分
2951

Level 5 (御坂)

发表于 Post on 2020-10-13 09:17:44 | 显示全部楼层 Show all
安完NVIDIA驱动之后Xorg挂了怎么搞[捂脸]

没装OpenGL,也没让驱动更新X server的setting,但是最后还是挂了,太惨了

221

帖子

0

威望

2403

eV
积分
2624

Level 5 (御坂)

发表于 Post on 2020-10-13 15:03:52 | 显示全部楼层 Show all
ubuntu Linuxmint他不香么

54

帖子

1

威望

1241

eV
积分
1315

Level 4 (黑子)

发表于 Post on 2020-10-26 12:37:04 | 显示全部楼层 Show all
本帖最后由 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

877

帖子

36

威望

4805

eV
积分
6402

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2020-10-26 15:23:08 | 显示全部楼层 Show all
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

719

帖子

0

威望

1614

eV
积分
2333

Level 5 (御坂)

发表于 Post on 2020-11-3 11:04:04 | 显示全部楼层 Show all
CentOS 7最近3.**的内核,运行Gromacs时,系统无故重启。也是需要更新内核到5.*版本。但是不需要更新显卡。

17

帖子

0

威望

241

eV
积分
258

Level 3 能力者

发表于 Post on 2020-11-12 21:42:53 | 显示全部楼层 Show all
想请教您没有网的情况下想编译安装CUDA应该怎么做?

31

帖子

0

威望

65

eV
积分
96

Level 2 能力者

发表于 Post on 2020-11-17 08:30:59 | 显示全部楼层 Show all
jluZ 发表于 2020-11-12 21:42
想请教您没有网的情况下想编译安装CUDA应该怎么做?

把必要的依赖库安装上。接下来驱动与CUDA就简单了

187

帖子

1

威望

1833

eV
积分
2040

Level 5 (御坂)

发表于 Post on 2020-11-18 08:34:43 | 显示全部楼层 Show all
jluZ 发表于 2020-11-12 21:42
想请教您没有网的情况下想编译安装CUDA应该怎么做?

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

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2023-2-7 02:56 , Processed in 0.202335 second(s), 22 queries .

快速回复 返回顶部 返回列表 Return to list