此文档记录了在实体机上安装CentOS7、NVIDIA相关服务、向日葵远程软件等的步骤流程。因为在一开始学习之初,每次新部署都会遇到各种问题,且在网上搜索相关解决方案时比较零散和混乱,故在参考借鉴前人经验的同时,按照自己实际操作步骤整理出此文档。
涉及到以下固件:
- CentOS 7 最新 ISO 镜像
- CUDA 10.2 linux run文件
- CUDNN 10.2 linux 压缩包
- 向日葵 X for Linux
安装CentOS 7
为什么要使用最新的ISO镜像?是因为在多次尝试过程中出现了CentOS 7的kernel源只支持最新版本,导致显卡驱动安装失败的情况。
制作启动盘
可以利用 UltraISO 工具进行启动盘制作,网上的教程很多,一搜就出来了,没遇到什么坑
关闭安全启动
如果需要安装NVIDIA 驱动,这会是很重要的一步,最好是在一开始就去BIOS中关闭 安全启动(secure boot),不然也会导驱动安装失败,这是踩了多次坑之后才偶然发现的。
安装
先插上制作好的U盘,开机启动按Delete键进入BIOS,部分机型可能需要按F1、F2,调整启动顺序将U盘选择为第一启动项,保存重启后等待进入CentOS 7安装界面,设置磁盘、网卡、root密码设置(记住此密码,后续操作都用root用户进行)等,软件安装项选择 带有GUI的服务,默认是最小化安装,然后就等系统自行安装,重启进入桌面初始化界面,引导较清晰,就不做详细描述。
如出现运行到 alua: not attached就停止了,原因是没有识别到引导介质,参考:
如果无法进入图形化的安装界面(X startup failed , falling back to text mode),可在出现以下界面时,选择Install CentOS 7按E键进入编辑界面,并在quiet 之前添加 nomodeset
安装NVIDIA相关
禁用 nouveau
vi /usr/lib/modprobe.d/dist-blacklist.conf
注释 blacklist nvidiafb 这行代码
#blacklist nvidiafb
添加代码
blacklist nouveau
options nouveau modeset=0
保存退出
备份镜像、重建镜像
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
因为选择的是带有GUI服务,将默认运行级别设置为文本模式
systemctl set-default multi-user.target
重启(reboot),运行 lsmod | grep nouveau ,如果没有输出表示禁用成功。
安装 kernel-devel kernel-header
yum install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r)
安装 dkms
yum install -y epel-release
yum install -y dkms
安装驱动及CUDA
这里是直接在NVIDIA官网去下载CUDA 10.2 的离线包进行CUDA与驱动的安装,针对驱动没有去下载对应的显卡版本。
下载地址:https://developer.nvidia.com/cuda-10.2-download-archive
运行run文件,等待文件运行出现界面后输入accept回车,然后只需要安装Driver、CUDA Tool,其他的可以通过回车进行取消,然后选择Install 回车,等待安装成功。
sh cuda_10.2.89_440.33.01_linux.run
使用 nvidia-smi 进行验证,看到相关信息确认安装成功。
安装 CUDNN
去NVIDIA官网下载CUDNN 10.2的压缩包
tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
cp cuda/include/cudnn.h /usr/local/cuda/include
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
安装向日葵
参考官方教程:向日葵Linux X版使用教程
需要注意的事,电脑开机启动事需要接上显示器,不然GPU会低功耗工作,导致远程软件控制异常,也可以去购买 显卡欺骗器 来模拟显示器,达到远端控制效果。
修改默认运行级别
systemctl set-default graphical.target
重启