文章目录
刚进实验室,之前看过师兄装机,这次服务器系统坏了之后小白尝试装机,记录一下过程。
期间参考了很多优秀博主的文章,表示十分感谢!
一、存在且并未解决的问题
虽然现在服务器可以用了,但是还有几个问题没有解决。希望路过的大神如果看到帮忙解决一下,感谢!
服务器配置:
主板:华硕Z10PA-D8 Series(wellsburg)
处理器:英特尔Xeon(至强)E5-2620 v4(X2)
显卡:RTX2080Ti
1.安装ubuntu16.04LTS系统失败
本来打算安装ubuntu16.04LTS系统的,但是进入安装页面(还没安装成功)就显示running in low graphic mode
,看到其他文章里分享的方法都是针对原来的系统完整,开机显示这个界面的情况的解决方法。
在后来我安装18.04系统的时候,发现有的教程上写在u盘启动的界面,编辑grub.conf文件,禁用noveaus驱动,感觉这个可能是一个解决的方法,但是已经安装好了18.04版本的,就没试这个方法。
试了优麒麟版本的也安装不上,所以才装的18.04
2.ubuntu18.04LTS系统,DrCom上网掉线
安装好系统后,第一件事就是上网更新。但是由于使用的校园网,需要DrCom,配好IP地址,登陆DrCom每次过个2、3分钟就自己掉线,所以后面大部分都是离线安装的。
- 当时试了在win10系统下不会掉线,硬件应该没问题。
- 换了IP地址也还是会掉线…
二、安装ubuntu18.04LTS系统
这台服务器使用Ubuntu较多,所以只安装了ubuntu,安装双系统其实只需要注意分区和启动项的问题就可以了,在此不再赘述。
- 下载安装文件
登陆ubuntu官网或者优麒麟官网选择18.04LTS desktop版本进行下载,大概1.9个G吧
或者登陆清华园镜像站搜索ubuntu,release中有各个版本,选择要安装的即可。 - 制作u盘启动盘
制作工具:Rufus或者软碟通(ultraISO)
详细的可参考这篇文章 - 安装系统
因为安装的不是双系统,所以不存在分区的问题,此处不再写分区的那些东西了。需要注意的就是以下几点:
(1)开机时进BIOS选择u盘为最优先启动;华硕一般是F2或者delete
(2)禁用BIOS中的secure boot,因为此方法使用第三方源安装显卡驱动,不禁止secure boot会导致安装的驱动不能使用,禁用也不会有多大安全隐患
(3)U盘启动后,选择到第二行install Ubuntu,然后按E键进入编辑进入命令行模式,然后在quiet slash – 后面(也可能没有 – ),添加 “acpi_osi=linux nomodeset
”,这一步是禁用Nouveau的驱动,因为有的人安装双系统可能会卡在安装logo的界面。我没进行这一步的操作,但也没出现卡在安装logo的问题,可能是因为我只安装了ubuntu系统吧–.。这一步可参考这篇博客文章。
注意:这一步的改动只是在安装的时候临时禁用Nouveau的驱动,并不是永久禁用,所以在安装成功后,需要在grub的配置文件里面再次更改
$ sudo gedit /boot/grub/grub.cfg
在文本中搜索quiet splash
然后添加acpi_osi=linux nomodeset
,保存文本即可。
(4)在选择“Updates and other software”时,选择"Normal installation",这样一些常用的软件就默认安装上了。在“Installation type”中,如果不打算安装双系统,直接选择第一个“Erase ****”,这样电脑上原先的系统以及相关文件数据等都将全部删除,因此在此之前一定要备份好重要数据。
系统安装完的第一件事就是更新一下
sudo apt-get update
sudo apt-get upgrade
三、安装NVIDIA驱动
推荐这个博主翻译的三种方法比较实用:https://blog.csdn.net/tjuyanming/article/details/80862290
以及另外禁用nouveau驱动的方法
一共安装了两次显卡驱动,虽然现在机器可以正常运行,但是总感觉哪里不对。
1.第一次安装
首先,添加图形驱动程序PPA储存库
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
然后,检测NVIDIA显卡型号和推荐的驱动程序的模型。输入ubuntu-drivers devices
本来应该出现下面的输出(这是别人的)
$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001180sv00001458sd0000353Cbc03sc00i00
vendor : NVIDIA Corporation
model : GK104 [GeForce GTX 680]
driver : nvidia-304 - distro non-free
driver : nvidia-340 - distro non-free
driver : nvidia-384 - distro non-free recommended
driver : xserver-xorg-video-nouveau - distro free builtin
== cpu-microcode.py ==
driver : intel-microcode - distro free
但是我的输出没有model这一项,我就没管。难道不能识别2080Ti??
推荐的驱动是nvidia-435版本的,当时没多想,直接在软件更新里选中并且更改了
(整个过程忘记截图记录了,这张也是别人的)
然后安装结束后reboot,重新打开terminal,输入nvidia-smi,有显示安装成功,就接着安装cuda/cudann/tensorflow那些了。
PS:但是后面我去英伟达官网查找驱动的时候,发现推荐的最新版本只有430.5
2.第二次安装
在我很高兴的顺利的安装完后面的这些cuda之类的,跑代码什么也没问题,过了两天开机连登陆界面都没出现,就跳到了 /dev/sdc2 clean ,***files/**block,于是就进行了第二次安装。具体过程,见这篇文章
四、安装cuda、cudann
先附上官方的教程吧,有耐心的可以按照官方的来,要稳妥一点
cuda 安装官方教程: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#introduction
cudnn 安装官方教程: https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#overview
(我没按照这两个来…)
4.1 确定TensorFlow版本与CUDA、CUDANN对应的关系
参考网址:https://tensorflow.google.cn/install/source
我选择的是第一条,cuda10.0版本,cuDNN 7.4,不打算自己编译TensorFlow,所以没有管Bazel,gcc 4.8版本,python3.6版本
这台服务器连校园网过两三分钟就掉线,所以后面大部分都是下载到本地离线安装的。
4.2安装CUDA10.0
4.2.1 下载cuda
进入CUDA官网选择合适的版本进行下载,第二个是补丁,也要下载的。
4.2.2 安装CUDA10.0
CD到cuda下载的位置,打开终端输入:
sudo sh cuda_10.0××.run
先安装第一个,已知ENTER读完声明,前面安装过显卡驱动了,这里安装过程中问要不要安装的时候,no就可以了,其它的都yes
可能会提示:
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 10.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run -silent -driver
这是因为我们在安装CUDA的时候没有选择安装驱动,提示需要安装驱动,忽略就行。
然后同样把补丁安装上即可。
4.2.3 添加环境变量
首先打开path环境变量文档:
sudo gedit ~/.bashrc
然后添加环境变量:
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存并退出,然后更新一下文档
source ~/.bashrc
4.2.4 测试CUDA是否安装成功
使用CUDA的sample测试
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
执行后出现一大段,最后一行是 result pass 说明安装成功了。
4.3 安装cuDNN7.4
4.3.1 下载cuDNN
同样进入官网下载合适的版本,这里需要注册个账号。
4.3.2 安装cuDNN
到刚才下载的位置解压,运行以下指令把解压后相应的文件拷贝到对应的CUDA目录下即可
cd cuda
#copy到cuda库
sudo cp lib64/libcudnn.* /usr/local/lib/
sudo cp include/cudnn.h /usr/local/include/
#或者,copy到cuda库
sudo cp lib64/libcudnn.* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/
#给权限
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
这两个地方用起来大概没什么区别,不过一般情况下建议使用/usr/local/cuda/include 和/usr/local/cuda/lib64,比如你要使用pytorch的时候,可以省掉一些手动配置,因为pytorch默认是通过 LD_LIBRARY_PATH来寻找cudnn的。这里参考了这篇文章
下面链接cuDNN的库文件(必须!)注意:使用第二个文件夹的位置的话,这里也要做相应修改
$ sudo ln -sf /usr/local/lib/libcudnn.so.7.4.2 /usr/local/lib/libcudnn.so.7
$ sudo ln -sf /usr/local/lib/libcudnn.so.7 /usr/local/lib/libcudnn.so
#链接完config更新,完成cuda和cudnn的安装
$ sudo ldconfig
因为只是cudnn安装方式是将库文件放置再cuda目录下,所以版本万一不对也不要慌,可以重新删除再安装新的版本。
重启终端,查看cuDNN的版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#下面的命令可以查看cuda的版本
nvcc -V
到此,CUDA和cuDNN安装结束!
五、安装Anaconda和Pycharm
5.1 安装Anaconda
- 进入官网或者镜像网站下载
- bash下载的文件即可,一路yes,中间可更改安装的文件夹
- 安装完成后第一件事就是添加镜像网站
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --show-sources
添加 Anaconda Python 免费仓库后,运行 conda install numpy 测试一下吧。
在终端输入spyder可能没有,不急,等安装完tensrflow再安装spyder就是了。
5.2 安装pycharm
大体上也是相同的操作。
需要注意的是以下几点:
- Ubuntu18.04版本需要自己创建快捷方式,固定不到docker
- TensorFlow和pytorch安装完成后记得设置一下pycharm和spyder的python解释器
六、安装tensorflow
- python版本:在创建环境时创建3.6的即可
- 编译工具Bazel:不打算自己编译就忽略它吧
- cuDNN和CUDA:上面已安装完毕
- 所需要的条件就只剩下更改编译器GCC的版本了,这里可参考这篇文章
到此,只剩下TensorFlow的安装了,这里是官方的教程和社区的教程。
源代码编译太复杂了,我选择直接安装编译好的。期间也有很多依赖包需要安装,联网安装的。。
离线包在Pypi官网找的,找到对应的cp36(Python3.6)对应下载即可。
七、安装pytorch
pytorch的官网链接
本来可以联网的话一行代码就可以安装好了,但是客户端老掉只能离线安装了。
具体安装的哪个版本忘记了,最后在清华园镜像下载下来安装的,还是需要一些依赖包。。好在可以网连个两三分钟,剩下那些包都不大,最后磕磕绊绊安装好了。。。。import torch
可以就说明安装成功了。