深度学习微软 azure-云服务器组 centos特殊内核版本 gpu NVIDIA 驱动及CUDA 11.0安装
深度学习微软 azure-云服务器组 centos特殊内核版本 gpu NVIDIA 驱动及CUDA 11.0安装
以前写过篇ubuntu装驱动的,这次是centos相关
首先感慨azure的gpu服务器实在是太贵了
技术支持应该也一般,算法团队一直搞不定显卡驱动的问题,和azure客服扯皮,项目进度缓慢,个人协助解决
通常一般公司自已维护的机房服务器,系统都是官方的发行版,兼容性问题会少些
而云服务商,有些云服务器环境,os并不是centos/debian等官方的发行版
而可能是其自已编译的版本,个人技术和认知有限,猜测是加一些新的特性好管理什么的,但这种特化的os环境,就会有一些兼容性问题
非azure的其他深度学习gpu环境,个人不太清楚,这个例子是azure
最后完美解决了,个人也是第一次遇到这种问题,会附安装命令,主要是内核版本不一致的问题
现在说起来简单,但定位问题花了不少工夫,其实定位到是内核原因,解决的路线和思路就有了
但一开始怎么也没想到会是内核的问题
首先说下显卡驱动不好安装的原因
选择的是centos的服务器,azure的服务器组,centos大版本一样,但内核是微软自已编译的内核,所以按NVIDIA官方向导,和其他资料,因为内核版本不一致,会出现些问题
装显卡驱动及cuda是需要gcc本地编译的,而编译又依赖内核相关的基础包(lib之类)
yum install kernel-devel
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, langpacks, nvidia
Loading mirror speeds from cached hostfile
* centos-sclo-rh: ftp.sjtu.edu.cn
* centos-sclo-sclo: ftp.sjtu.edu.cn
* epel: mirrors.bestthaihost.com
Package kernel-devel-3.10.0-1127.13.1.el7.x86_64 already installed and latest version
Nothing to do
[root@b2b-qa-cne2-goldradar-etlgpu-0 cdp]# uname -r
3.10.0-1062.12.1.el7.x86_64
发现没有 这就是azure服务器深度学习gpu驱动,cuda安装失败的问题所在,系统的内核为3.10.0-1062.12.1.el7.x86_64,但是系统里自带的,及yum安装的是 kernel-devel-3.10.0-1127.13.1.el7.x86_64
版本对不上,装驱动时编译不过,能安装成功才是怪事
安装命令
-
首先确认内核版本,确定匹配再执行后续操作
uname -r
3.10.0-1062.12.1.el7.x86_64 -
准备操作的临时备份目录
mkdir gpu_tmp
cd gpu_tmp
sudo su
-
下载和内核实际版本匹配的kernel-headers,kernel-devel包,下载驱动包,找驱动的方式见之前ubuntu装驱动的文章
wget http://repo.iotti.biz/CentOS/7/x86_64/kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm
wget http://repo.iotti.biz/CentOS/7/x86_64/kernel-devel-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm
wget http://cn.download.nvidia.com/tesla/450.51.06/NVIDIA-Linux-x86_64-450.51.06.run
-
默认命令安装的kernel-devel,kernel-headers和内核不匹配,移除旧的,再安装和内核匹配的rpm包
yum remove kernel-devel.x86_64
rpm -Uvh kernel-devel-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm
yum remove kernel-headers.x86_64
rpm -Uvh kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm
-
内核已准备好后,指定内核地址,安装编译驱动(驱动安装需要本地编译)
yum install centos-release-scl
yum install devtoolset-9
scl enable devtoolset-9 bash
sh NVIDIA-Linux-x86_64-450.51.06.run --kernel-source-path /usr/src/kernels/3.10.0-1062.12.1.el7.centos.plus.x86_64/
nvidia-smi
成功后结果如下
安装排查的一些补充细节
查看系统信息
uname -m && cat /etc/*release
x86_64
CentOS Linux release 7.7.1908 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.7.1908 (Core)
CentOS Linux release 7.7.1908 (Core)
安装GCC
yum install gcc
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, langpacks, nvidia
Loading mirror speeds from cached hostfile
epel/x86_64/metalink
Resolving Dependencies
--> Running transaction check
---> Package gcc.x86_64 0:4.8.5-39.el7 will be installed
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.8.5-39.el7.x86_64
--> Running transaction check
---> Package glibc-devel.x86_64 0:2.17-307.el7.1 will be installed
--> Processing Dependency: glibc-headers = 2.17-307.el7.1 for package: glibc-devel-2.17-307.el7.1.x86_64
--> Processing Dependency: glibc-headers for package: glibc-devel-2.17-307.el7.1.x86_64
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.17-307.el7.1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================================================================
Installing:
gcc x86_64 4.8.5-39.el7 base 16 M
Installing for dependencies:
glibc-devel x86_64 2.17-307.el7.1 base 1.1 M
glibc-headers x86_64 2.17-307.el7.1 base 689 k
Transaction Summary
======================================================================================================================================================================================================
Install 1 Package (+2 Dependent packages)
Total download size: 18 M
Installed size: 41 M
Is this ok [y/d/N]:
安装成功后,查看GCC版本
gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
cuda 驱动资料,对gcc有版本要求,官方源安装的版本太低4.8.5,需要at least GCC 5,看提示需要安装Red Hat Developer Toolset
(2) Note that starting with CUDA 11.0, the minimum recommended GCC compiler is at least GCC 5 due to C++11 requirements in CUDA libraries e.g. cuFFT and CUB. On distributions such as RHEL 7 or CentOS 7 that may use an older GCC toolchain by default, it is recommended to use a newer GCC toolchain with CUDA 11.0. Newer GCC toolchains are available with the [Red Hat Developer Toolset](https://developers.redhat.com/products/developertoolset/overview).
https://developers.redhat.com/products/developertoolset/overview
安装centos 集成developertoolset
yum install centos-release-scl
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, langpacks, nvidia
Loading mirror speeds from cached hostfile
* epel: mirrors.bestthaihost.com
Resolving Dependencies
--> Running transaction check
---> Package centos-release-scl.noarch 0:2-3.el7.centos will be installed
--> Processing Dependency: centos-release-scl-rh for package: centos-release-scl-2-3.el7.centos.noarch
--> Running transaction check
---> Package centos-release-scl-rh.noarch 0:2-3.el7.centos will be installed
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================================================================
Installing:
centos-release-scl noarch 2-3.el7.centos extras 12 k
Installing for dependencies:
centos-release-scl-rh noarch 2-3.el7.centos extras 12 k
Transaction Summary
======================================================================================================================================================================================================
Install 1 Package (+1 Dependent package)
Total download size: 24 k
Installed size: 39 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): centos-release-scl-2-3.el7.centos.noarch.rpm | 12 kB 00:00:00
(2/2): centos-release-scl-rh-2-3.el7.centos.noarch.rpm | 12 kB 00:00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 113 kB/s | 24 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : centos-release-scl-rh-2-3.el7.centos.noarch 1/2
Installing : centos-release-scl-2-3.el7.centos.noarch 2/2
Verifying : centos-release-scl-2-3.el7.centos.noarch 1/2
Verifying : centos-release-scl-rh-2-3.el7.centos.noarch 2/2
Installed:
centos-release-scl.noarch 0:2-3.el7.centos
Dependency Installed:
centos-release-scl-rh.noarch 0:2-3.el7.centos
Complete!
安装centos的devtoolset 集成gcc
yum install devtoolset-9
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, langpacks, nvidia
Loading mirror speeds from cached hostfile
* centos-sclo-rh: mirrors.cqu.edu.cn
* centos-sclo-sclo: mirrors.163.com
* epel: mirrors.bestthaihost.com
centos-sclo-rh | 3.0 kB 00:00:00
centos-sclo-sclo | 3.0 kB 00:00:00
(1/2): centos-sclo-sclo/x86_64/primary_db | 291 kB 00:00:00
(2/2): centos-sclo-rh/x86_64/primary_db | 2.9 MB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package devtoolset-9.x86_64 0:9.1-0.el7 will be installed
--> Processing Dependency: devtoolset-9-perftools for package: devtoolset-9-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-runtime for package: devtoolset-9-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-toolchain for package: devtoolset-9-9.1-0.el7.x86_64
--> Running transaction check
---> Package devtoolset-9-perftools.x86_64 0:9.1-0.el7 will be installed
--> Processing Dependency: devtoolset-9-oprofile for package: devtoolset-9-perftools-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-systemtap for package: devtoolset-9-perftools-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-valgrind for package: devtoolset-9-perftools-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-dyninst for package: devtoolset-9-perftools-9.1-0.el7.x86_64
---> Package devtoolset-9-runtime.x86_64 0:9.1-0.el7 will be installed
---> Package devtoolset-9-toolchain.x86_64 0:9.1-0.el7 will be installed
--> Processing Dependency: devtoolset-9-gcc for package: devtoolset-9-toolchain-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-gcc-c++ for package: devtoolset-9-toolchain-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-gcc-gfortran for package: devtoolset-9-toolchain-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-binutils for package: devtoolset-9-toolchain-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-gdb for package: devtoolset-9-toolchain-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-strace for package: devtoolset-9-toolchain-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-dwz for package: devtoolset-9-toolchain-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-elfutils for package: devtoolset-9-toolchain-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-memstomp for package: devtoolset-9-toolchain-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-ltrace for package: devtoolset-9-toolchain-9.1-0.el7.x86_64
--> Processing Dependency: devtoolset-9-make for package: devtoolset-9-toolchain-9.1-0.el7.x86_64
--> Running transaction check
---> Package devtoolset-9-binutils.x86_64 0:2.32-16.el7 will be installed
---> Package devtoolset-9-dwz.x86_64 0:0.12-1.1.el7 will be installed
---> Package devtoolset-9-dyninst.x86_64 0:10.1.0-4.el7 will be installed
--> Processing Dependency: libdw.so.dts.1(ELFUTILS_0.122)(64bit) for package: devtoolset-9-dyninst-10.1.0-4.el7.x86_64
--> Processing Dependency: libdw.so.dts.1(ELFUTILS_0.142)(64bit) for package: devtoolset-9-dyninst-10.1.0-4.el7.x86_64
--> Processing Dependency: libdw.so.dts.1(ELFUTILS_0.148)(64bit) for package: devtoolset-9-dyninst-10.1.0-4.el7.x86_64
--> Processing Dependency: libdw.so.dts.1(ELFUTILS_0.157)(64bit) for package: devtoolset-9-dyninst-10.1.0-4.el7.x86_64
--> Processing Dependency: libdw.so.dts.1(ELFUTILS_0.173)(64bit) for package: devtoolset-9-dyninst-10.1.0-4.el7.x86_64
--> Processing Dependency: libelf.so.dts.1(ELFUTILS_1.0)(64bit) for package: devtoolset-9-dyninst-10.1.0-4.el7.x86_64
--> Processing Dependency: libdw.so.dts.1()(64bit) for package: devtoolset-9-dyninst-10.1.0-4.el7.x86_64
--> Processing Dependency: libelf.so.dts.1()(64bit) for package: devtoolset-9-dyninst-10.1.0-4.el7.x86_64
---> Package devtoolset-9-elfutils.x86_64 0:0.176-6.el7 will be installed
---> Package devtoolset-9-gcc.x86_64 0:9.3.1-2.el7 will be installed
---> Package devtoolset-9-gcc-c++.x86_64 0:9.3.1-2.el7 will be installed
--> Processing Dependency: devtoolset-9-libstdc++-devel = 9.3.1-2.el7 for package: devtoolset-9-gcc-c++-9.3.1-2.el7.x86_64
---> Package devtoolset-9-gcc-gfortran.x86_64 0:9.3.1-2.el7 will be installed
--> Processing Dependency: devtoolset-9-libquadmath-devel = 9.3.1-2.el7 for package: devtoolset-9-gcc-gfortran-9.3.1-2.el7.x86_64
--> Processing Dependency: libgfortran5 >= 8.1.1 for package: devtoolset-9-gcc-gfortran-9.3.1-2.el7.x86_64
---> Package devtoolset-9-gdb.x86_64 0:8.3-3.el7 will be installed
--> Processing Dependency: libboost_regex.so.1.53.0()(64bit) for package: devtoolset-9-gdb-8.3-3.el7.x86_64
--> Processing Dependency: libsource-highlight.so.4()(64bit) for package: devtoolset-9-gdb-8.3-3.el7.x86_64
---> Package devtoolset-9-ltrace.x86_64 0:0.7.91-2.el7 will be installed
---> Package devtoolset-9-make.x86_64 1:4.2.1-2.el7 will be installed
---> Package devtoolset-9-memstomp.x86_64 0:0.1.5-5.el7 will be installed
---> Package devtoolset-9-oprofile.x86_64 0:1.3.0-4.el7 will be installed
---> Package devtoolset-9-strace.x86_64 0:5.1-7.el7 will be installed
---> Package devtoolset-9-systemtap.x86_64 0:4.1-9.el7 will be installed
--> Processing Dependency: devtoolset-9-systemtap-client = 4.1-9.el7 for package: devtoolset-9-systemtap-4.1-9.el7.x86_64
--> Processing Dependency: devtoolset-9-systemtap-devel = 4.1-9.el7 for package: devtoolset-9-systemtap-4.1-9.el7.x86_64
---> Package devtoolset-9-valgrind.x86_64 1:3.15.0-9.el7 will be installed
--> Running transaction check
---> Package boost-regex.x86_64 0:1.53.0-28.el7 will be installed
---> Package devtoolset-9-elfutils-libelf.x86_64 0:0.176-6.el7 will be installed
---> Package devtoolset-9-elfutils-libs.x86_64 0:0.176-6.el7 will be installed
---> Package devtoolset-9-libquadmath-devel.x86_64 0:9.3.1-2.el7 will be installed
--> Processing Dependency: libquadmath(x86-64) for package: devtoolset-9-libquadmath-devel-9.3.1-2.el7.x86_64
---> Package devtoolset-9-libstdc++-devel.x86_64 0:9.3.1-2.el7 will be installed
---> Package devtoolset-9-systemtap-client.x86_64 0:4.1-9.el7 will be installed
--> Processing Dependency: devtoolset-9-systemtap-runtime = 4.1-9.el7 for package: devtoolset-9-systemtap-client-4.1-9.el7.x86_64
---> Package devtoolset-9-systemtap-devel.x86_64 0:4.1-9.el7 will be installed
---> Package libgfortran5.x86_64 0:8.3.1-2.1.1.el7 will be installed
---> Package source-highlight.x86_64 0:3.1.6-6.el7 will be installed
--> Processing Dependency: ctags for package: source-highlight-3.1.6-6.el7.x86_64
--> Running transaction check
---> Package ctags.x86_64 0:5.8-13.el7 will be installed
---> Package devtoolset-9-systemtap-runtime.x86_64 0:4.1-9.el7 will be installed
---> Package libquadmath.x86_64 0:4.8.5-39.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================================================================
Installing:
devtoolset-9 x86_64 9.1-0.el7 centos-sclo-rh 5.4 k
Installing for dependencies:
boost-regex x86_64 1.53.0-28.el7 base 296 k
ctags x86_64 5.8-13.el7 base 155 k
devtoolset-9-binutils x86_64 2.32-16.el7 centos-sclo-rh 5.9 M
devtoolset-9-dwz x86_64 0.12-1.1.el7 centos-sclo-rh 98 k
devtoolset-9-dyninst x86_64 10.1.0-4.el7 centos-sclo-rh 3.8 M
devtoolset-9-elfutils x86_64 0.176-6.el7 centos-sclo-rh 431 k
devtoolset-9-elfutils-libelf x86_64 0.176-6.el7 centos-sclo-rh 203 k
devtoolset-9-elfutils-libs x86_64 0.176-6.el7 centos-sclo-rh 311 k
devtoolset-9-gcc x86_64 9.3.1-2.el7 centos-sclo-rh 32 M
devtoolset-9-gcc-c++ x86_64 9.3.1-2.el7 centos-sclo-rh 12 M
devtoolset-9-gcc-gfortran x86_64 9.3.1-2.el7 centos-sclo-rh 13 M
devtoolset-9-gdb x86_64 8.3-3.el7 centos-sclo-rh 3.6 M
devtoolset-9-libquadmath-devel x86_64 9.3.1-2.el7 centos-sclo-rh 171 k
devtoolset-9-libstdc++-devel x86_64 9.3.1-2.el7 centos-sclo-rh 3.1 M
devtoolset-9-ltrace x86_64 0.7.91-2.el7 centos-sclo-rh 148 k
devtoolset-9-make x86_64 1:4.2.1-2.el7 centos-sclo-rh 485 k
devtoolset-9-memstomp x86_64 0.1.5-5.el7 centos-sclo-rh 442 k
devtoolset-9-oprofile x86_64 1.3.0-4.el7 centos-sclo-rh 1.8 M
devtoolset-9-perftools x86_64 9.1-0.el7 centos-sclo-rh 2.8 k
devtoolset-9-runtime x86_64 9.1-0.el7 centos-sclo-rh 20 k
devtoolset-9-strace x86_64 5.1-7.el7 centos-sclo-rh 1.1 M
devtoolset-9-systemtap x86_64 4.1-9.el7 centos-sclo-rh 13 k
devtoolset-9-systemtap-client x86_64 4.1-9.el7 centos-sclo-rh 2.9 M
devtoolset-9-systemtap-devel x86_64 4.1-9.el7 centos-sclo-rh 2.3 M
devtoolset-9-systemtap-runtime x86_64 4.1-9.el7 centos-sclo-rh 433 k
devtoolset-9-toolchain x86_64 9.1-0.el7 centos-sclo-rh 3.0 k
devtoolset-9-valgrind x86_64 1:3.15.0-9.el7 centos-sclo-rh 12 M
libgfortran5 x86_64 8.3.1-2.1.1.el7 base 796 k
libquadmath x86_64 4.8.5-39.el7 base 190 k
source-highlight x86_64 3.1.6-6.el7 base 611 k
Transaction Summary
======================================================================================================================================================================================================
Install 1 Package (+30 Dependent packages)
Total download size: 98 M
Installed size: 292 M
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/cache/yum/x86_64/7/centos-sclo-rh/packages/devtoolset-9-9.1-0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f2ee9d55: NOKEY
Public key for devtoolset-9-9.1-0.el7.x86_64.rpm is not installed
(1/31): devtoolset-9-9.1-0.el7.x86_64.rpm | 5.4 kB 00:00:00
(2/31): ctags-5.8-13.el7.x86_64.rpm | 155 kB 00:00:00
(3/31): boost-regex-1.53.0-28.el7.x86_64.rpm | 296 kB 00:00:00
(4/31): devtoolset-9-dwz-0.12-1.1.el7.x86_64.rpm | 98 kB 00:00:00
(5/31): devtoolset-9-binutils-2.32-16.el7.x86_64.rpm | 5.9 MB 00:00:00
(6/31): devtoolset-9-elfutils-0.176-6.el7.x86_64.rpm | 431 kB 00:00:00
(7/31): devtoolset-9-dyninst-10.1.0-4.el7.x86_64.rpm | 3.8 MB 00:00:00
(8/31): devtoolset-9-elfutils-libelf-0.176-6.el7.x86_64.rpm | 203 kB 00:00:00
(9/31): devtoolset-9-elfutils-libs-0.176-6.el7.x86_64.rpm | 311 kB 00:00:00
(10/31): devtoolset-9-gcc-c++-9.3.1-2.el7.x86_64.rpm | 12 MB 00:00:00
(11/31): devtoolset-9-gcc-gfortran-9.3.1-2.el7.x86_64.rpm | 13 MB 00:00:00
(12/31): devtoolset-9-gcc-9.3.1-2.el7.x86_64.rpm | 32 MB 00:00:00
(13/31): devtoolset-9-gdb-8.3-3.el7.x86_64.rpm | 3.6 MB 00:00:00
(14/31): devtoolset-9-libquadmath-devel-9.3.1-2.el7.x86_64.rpm | 171 kB 00:00:00
(15/31): devtoolset-9-ltrace-0.7.91-2.el7.x86_64.rpm | 148 kB 00:00:00
(16/31): devtoolset-9-libstdc++-devel-9.3.1-2.el7.x86_64.rpm | 3.1 MB 00:00:00
(17/31): devtoolset-9-make-4.2.1-2.el7.x86_64.rpm | 485 kB 00:00:00
(18/31): devtoolset-9-memstomp-0.1.5-5.el7.x86_64.rpm | 442 kB 00:00:00
(19/31): devtoolset-9-perftools-9.1-0.el7.x86_64.rpm | 2.8 kB 00:00:00
(20/31): devtoolset-9-oprofile-1.3.0-4.el7.x86_64.rpm | 1.8 MB 00:00:00
(21/31): devtoolset-9-runtime-9.1-0.el7.x86_64.rpm | 20 kB 00:00:00
(22/31): devtoolset-9-strace-5.1-7.el7.x86_64.rpm | 1.1 MB 00:00:00
(23/31): devtoolset-9-systemtap-4.1-9.el7.x86_64.rpm | 13 kB 00:00:00
(24/31): devtoolset-9-systemtap-client-4.1-9.el7.x86_64.rpm | 2.9 MB 00:00:00
(25/31): devtoolset-9-systemtap-devel-4.1-9.el7.x86_64.rpm | 2.3 MB 00:00:00
(26/31): devtoolset-9-systemtap-runtime-4.1-9.el7.x86_64.rpm | 433 kB 00:00:00
(27/31): devtoolset-9-toolchain-9.1-0.el7.x86_64.rpm | 3.0 kB 00:00:00
(28/31): libquadmath-4.8.5-39.el7.x86_64.rpm | 190 kB 00:00:00
(29/31): devtoolset-9-valgrind-3.15.0-9.el7.x86_64.rpm | 12 MB 00:00:00
(30/31): source-highlight-3.1.6-6.el7.x86_64.rpm | 611 kB 00:00:00
(31/31): libgfortran5-8.3.1-2.1.1.el7.x86_64.rpm | 796 kB 00:00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 40 MB/s | 98 MB 00:00:02
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
Importing GPG key 0xF2EE9D55:
Userid : "CentOS SoftwareCollections SIG (https://wiki.centos.org/SpecialInterestGroup/SCLo) <security@centos.org>"
Fingerprint: c4db d535 b1fb ba14 f8ba 64a8 4eb8 4e71 f2ee 9d55
Package : centos-release-scl-rh-2-3.el7.centos.noarch (@extras)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
查看gcc版本 还不对,使用的还是gcc 4.8.5
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
切换gcc,后查看gcc版本,成功切换为GCC 9.3.1
scl enable devtoolset-9 bash
gcc --version
gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
gcc 搞定了,然后安装编译需要的内核包,但是官方源找不到相应的包
yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, langpacks, nvidia
Loading mirror speeds from cached hostfile
* centos-sclo-rh: mirrors.neusoft.edu.cn
* centos-sclo-sclo: mirrors.163.com
* epel: mirrors.bestthaihost.com
No package kernel-devel-3.10.0-1062.12.1.el7.x86_64 available.
No package kernel-headers-3.10.0-1062.12.1.el7.x86_64 available.
Error: Nothing to do
看看问题在哪
yum install kernel-devel
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, langpacks, nvidia
Loading mirror speeds from cached hostfile
* centos-sclo-rh: ftp.sjtu.edu.cn
* centos-sclo-sclo: ftp.sjtu.edu.cn
* epel: mirrors.bestthaihost.com
Package kernel-devel-3.10.0-1127.13.1.el7.x86_64 already installed and latest version
Nothing to do
uname -r
3.10.0-1062.12.1.el7.x86_64
那就只好找rpm文件了,https://pkgs.org/download/kernel-headers
找到了相应的rpm包
下载 kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm
Saving to: 'kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm'
100%[============================================================================================================================================================>] 9,170,080 4.65MB/s in 1.9s
2020-07-29 17:32:11 (4.65 MB/s) - 'kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm' saved [9170080/9170080]
[root@b2b-qa-cne2-goldradar-etlgpu-0 cdp]#
[root@b2b-qa-cne2-goldradar-etlgpu-0 cdp]# rpm -Uvh elrepo-release*rpm
error: File not found by glob: elrepo-release*rpm
[root@b2b-qa-cne2-goldradar-etlgpu-0 cdp]# rpm -Uvh kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm
warning: kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 53e4e7a9: NOKEY
warning: package kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64 was already added, skipping kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64
Preparing... ################################# [100%]
package kernel-headers-3.10.0-1127.13.1.el7.x86_64 (which is newer than kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64) is already installed
https://pkgs.org/download/kernel-headers
内核安装相关资料
https://centos.pkgs.org/7/lux/kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm.html
1. Download latest lux-release rpm fromhttp://repo.iotti.biz/CentOS/7/noarch/
2. Install lux-release rpm:# rpm -Uvh elrepo-release*rpm
3. Install kernel-headers rpm package:# yum install kernel-headers
移除旧的,安装下载好的正确rpm包
rpm -Uvh elrepo-release*rpm
error: File not found by glob: elrepo-release*rpm
rpm -Uvh kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm
warning: kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 53e4e7a9: NOKEY
warning: package kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64 was already added, skipping kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64
Preparing... ################################# [100%]
package kernel-headers-3.10.0-1127.13.1.el7.x86_64 (which is newer than kernel-headers-3.10.0-1062.12.1.el7.centos.plus.x86_64) is already installed
gcc和内核相关万事俱备准备,安装驱动,又报错
安装前
lspci -vnn | grep VGA
0000:00:08.0 VGA compatible controller [0300]: Microsoft Corporation Hyper-V virtual VGA [1414:5353] (prog-if 00 [VGA controller])
安装驱动出错
sh NVIDIA-Linux-x86_64-450.51.06.run
ERROR: Unable to find the kernel source tree for the currently running kernel. Please make sure you have installed the kernel source files for your kernel and that they are properly configured;
on Red Hat Linux systems, for example, be sure you have the 'kernel-source' or 'kernel-devel' RPM installed. If you know the correct kernel source files are installed, you may specify
the kernel source path with the '--kernel-source-path' command line option.
因为没指定--kernel-source-path 目录
找到目录地址为 /usr/src/kernels/3.10.0-1062.12.1.el7.centos.plus.x86_64/
,添加参数,再次安装
sh NVIDIA-Linux-x86_64-450.51.06.run --kernel-source-path /usr/src/kernels/3.10.0-1062.12.1.el7.centos.plus.x86_64/
因为编译内核的gcc和安装驱动的gcc版本不一致,因此会有报警,无视即可
大功告成