安装环境:hp-Z440工作站、64位Ubuntu14.04(64位Ubuntu16.04)、Cuda8.0、Cudnn5.1、Nvidia GeForce GT 705、Tesla K40c
本文可解决的问题:如何完全清空硬盘数据、Ubuntu系统启动U盘的制作、Ubuntu14.04系统安装、Ubuntu系统无线上网环境配置、NVIDIA驱动的安装、Cuda8.0环境安装与配置、Cudnn 5.1的安装及配置。
经过:由于项目需要,我们需要在Ubuntu系统上搭建tensorflow版的faster rcnn。Ubuntu系统,和Windows系统相比,这款系统能根据个人需求定制,空间小,但是由于使用范围较小,维护人员少,故而系统不够稳定。在安装Ubuntu系统的痛苦过程中(大概花了一周我们从14.04版装到16.04版后来又由于某种条件限制又装回14.04版),由于安装环境的差异,我们大致遇到了以下几个问题:(1)安装14.04版后界面分辨率选项只有一个不可调、安装更新显卡驱动后依然出现这种情况;(2)经过多次安装,上述问题仍然未能解决,桌面显示不便于使用。于是,我们选择安装16.04版本,分辨率选项依然只有一个,但桌面显示比之前要好很多。由于当时网上下载的16.04版内核版本是4.10不太适合我们使用。(有人在博客中提出之前NVIDIA驱动不能与内核4.10的Ubuntu16.04兼容,后来又在回复我的评论中提出下载NVIDIA官网最新驱动是可以兼容的);(3)我们想要找到内核版本为4.4的Ubuntu16.04,找了很久并未找到,由于在网上下载镜像文件时并未提供系统内核信息,我们只能等装好系统后用uname –r命令查看系统内核。后来东找西找在官网找了Ubuntu16.04,官网介绍里说内核是4.4,于是我们开始安装这个系统,然而,这次安装我花了两天才安上发现内核也是4.10,出现很多问题。比如,唯一一次我顺顺利利装好重启后发现居然进到我之前安装的Ubuntu16.04里去了(因为之前Ubuntu16.04里有我保存的文件被我发现了),可是在安装系统过程中我在步骤中选择了卸载之前Ubuntu16.04版本啊,当时很懊恼,无法解决;还有,报错PXE-E61:Media test failure, check cable、PXE-MOF:Exiting Intel Boot Agent,当时按照网上解决办法更改bios设置,将硬盘设为第一启动设备解决了这个问题。然后,我重做镜像重新安装,可是又报了与Ubuntu系统自带通用显卡驱动nouveau相关的错误:8.202321] nouveau 0000:02:00.0:bus:MMIO read of 00000000 FAULT at 3e6684[IBUS],对于一个新手,这个问题太犯难了,而且百度根本搜不到解决方法,这时我们还是能够进入到安装界面的,但是总是安装不上,有时会提示安装程序崩溃,不得不说这个系统是真的不够稳定。由于每次安装失败再安装发现又遇到新的问题,比如,连安装界面都不能进去了,我猜测安装过程会损坏U盘镜像?(如果有读者知晓这个问题可以留言告诉我,表示感谢!)当然我不确定,于是我只能重做镜像、重新安装,装了一天从早到晚,并未装上;(4)后来,在导师的当机立断下,换显卡,猜测是显卡支持不好导致的。hp-Z440工作站自带的独显是Quadro K620,当时导师猜测Quadro系列显卡并不多见,也许是Ubuntu系统对它的支持不好。七找八找,把独显换成了Nvidia GeForce GT 705。(说明一下:hp-Z440工作站自带独显Quadro K620、主板集成显卡,另外我们由于要跑深度学习相关实验,又扩展了一块显卡Tesla K40c,这样一来我们的主机上一共有三块显卡)更换显卡后,我们又重新安装了内核版本为4.4的Ubuntu14.04,随后装了相关显卡驱动、以及配置Cuda8.0和cudnn环境、一气呵成,大功告成!!!
感谢:感谢导师为我耐心解答各种问题,督促我,与我一起解决实际问题!!!这次装机过程,学会了很多实用技能,比如拆电脑,了解电脑主机构造,熟悉Linux命令等等!!!
参考blog:
1.http://www.linuxidc.com/Linux/2016-11/137561.htm
2.http://blog.csdn.net/tianrolin/article/details/52830422
3.https://zm12.sm-tc.cn/?src=l4uLj8XQ0J2TkJjRnIybkdGRmovQis%2FOzsfHxsbKzdCejYuWnJOa0Juai56Wk4zQyMjIy8nJycc%3D&uid=78161a137e5bc7faf84f0891713f6af1&hid=626f990e7694c604eb9ffdb49ce83eee&pos=6&cid=9&time=1515330695977&from=click&restype=1&pagetype=0000000002000408&bu=web&query=%E6%AD%A3%E5%9C%A8%E8%AE%BE%E7%BD%AENVIDIA%E2%80%93diag%E2%80%93driver%E2%80%93local%E2%80%93repo&mode=&v=1&force=true&wap=false&uc_param_str=dnntnwvepffrgibijbprsvdsdichei
4.http://blog.csdn.net/zafir_410/article/details/73188228
5.http://blog.csdn.net/weixin_38208741/article/details/71459257
6.http://wxhp.org/ubuntu-install-nvidia-official-drivers.html
7.http://m.zhimengzhe.com/linux/161425.html
8.https://m.jb51.net/os/Ubuntu/331812.html
本文作者吴疆,转载请备注!
安装步骤如下:
一、 完全清空硬盘数据
前面提到,在某次装好系统后重启居然进到之前装的系统,可我在安装Ubuntu系统这一步(如图所示)我选择卸载后(若之前安装过Ubuntu系统才有“卸载”这个选项,下图是我格式化硬盘后的选择界面,此时提示该硬盘未装过系统,故无上述“卸载…”)
然后再关机重启再重新进入安装页面重复过程在这一页面里选其他选项。之前安装过程从未出现过这种进入到旧系统的情况(按理说这里选择卸载之前的系统是可以将之前系统完全删除干净的),所以一直以为是完全清空的。由于高级格式化(普通的格式化都是高格)无法完全恢复硬盘,我们想用低格工具对硬盘进行低格,找到window7 启动盘想用内带的diskgenius DOS版里的LFORMAT命令对硬盘进行低格,发现无法识别该硬盘,或许是由于此种操作无法识别固态硬盘?于是导师想了一招,把winhex工具放在window7 启动盘里进入系统,使用winhex工具对硬盘进行填0操作,具体填0操作如下:菜单栏选“工具”下的磁盘编辑器,在物理媒介里选择要填0的硬盘后点击“是”,随后在菜单栏选“编辑”下的“全选”选中硬盘内的数据,接着在菜单栏选“编辑”下的“填入选块”,默认是填入“00”,直接点击确定,经过漫长的时间(我们1T硬盘花了40min),填0成功,这样硬盘基本就是恢复到出厂态了。
二、 Ubuntu系统启动U盘的制作
准备好一个格式化(高格即可)过的U盘,官网下载Ubuntu14.04镜像文件,本人Ubuntu14.04系统网盘链接:https://pan.baidu.com/s/1eT20JZk 密码:gvdf
下载制作Ubuntu系统启动U盘工具Universal-USB-Installer-,2M左右大小,打开该工具,界面显示如下:Step1框中选择Ubuntu、Step2框中选择镜像文件、Step3中选择格式化后的U盘、Step4拖动到适当位置(如1700M左右),其余均不用再选择,最后点击Creat, 经过漫长的等待过程启动U盘就会做好。
三、 Ubuntu14.04系统安装
插入启动U盘,进入bios启动选择项(如惠普电脑开机按F9),出现如下页面:
如图所示有两种启动方式UEFI和Legacy。建议选择Legacy这种启动方式,个人装机过程中选择UEFI系统会装崩。进入后选择“install Ubuntu”,随后按照下图顺序依次按提示选择:
左边选择“中文简体”,点“继续”
这里可不必勾选选项,直接点“继续”(图中我选了安装第三方软件,不是必要的)
如果不需要自己分配内存,可以选第一项,这里我们选“其他选项”来自己手动分配1T的空间,出现如下界面:
点击“新建分区表”,出现如图界面:
这时我们便可以看到空闲状态的1T硬盘,每次分区首先点击在空闲的内存空间上,点击左下方“+”来建立新的分区。本人分区大小为:主分区挂载/(60G)、交换空间(25G)、逻辑分区挂载/boot(2G)、 /usr(300G)、/home(剩下内存空间大小)。几个分区的作用:如交换空间相当于windows系统中的虚拟内存;/boot分区系统引导目录;/usr分区存放用户的应用程序和文件;/home目录各用户各自的文件夹;(值得一提的是ubuntu系统固定的第几分区就是什么分区,比如第5分区就是交换空间)
以新建主分区为例,首先点击在“空闲”硬盘上,点击左下角“+”,在弹出界面里如图填写:
点击确定即可,其他分区类似依次进行填写,具体填写如下图所示:
依次填写完毕后,点击在“/boot”那列上,点击右下角“现在安装”。
按提示点击“继续”
随后按照提示依次选择位置、语言、用户名及密码设置即可,接下来只需等待片刻就会提示安装成功,拔掉U盘,重启计算机。
一直等待直至提示安装成功,重启计算机,如果安装过程中提示安装程序崩溃(如下图),请不要灰心,重新按步骤再安装,一般都会成功的,这是Ubuntu系统不够稳定引起的,我也遇到了几次。
如果安装成功,会提示如下界面:
四、 上网环境配置
有线情况下配置网络比较容易,可以自行百度参考网上教程。无线情况下,需要根据无线网卡的型号下载安装相应驱动程序。以Tenda U12无线U口网卡为例,将驱动程序zip安装包拷至/home“用户名”后,Ctrl+Alt+T快捷键打开终端,输入“ls”命令查看当前目录内容,输入“unzip zip文件”,然后cd到install.sh脚本的位置(可右键查看该文件属性复制其位置),敲入命令sudo sh install.sh,输入用户密码,等待片刻,驱动程序安装完毕,此时便可插入网卡,连接无线网络。本人无线网卡驱动程序网盘链接:https://pan.baidu.com/s/1dGgOf5J 密码:b0b4
五、 NVIDIA驱动的安装
看到有些教程里先装Cuda后装NVIDIA驱动,原因在于安装Cuda(runfile版)过程中会有一步提示是否要安装显卡驱动,而Cuda(deb包)可能在不提示的情况下自动安装了驱动,两者所安装的驱动版本可能不是最匹配的。因此个人建议,先在NVIDIA官网上下载推荐的驱动程序(.run或.deb文件)。
官网地址:http://www.nvidia.com/Download/index.aspx,官网选择页面如图所示(中英文皆可,无影响)。以本人安装步骤为例,下载好Nvidia GeForce GT 705(官方推荐下载下来的是.run文件,我之前下载的Quadro的驱动也支持该显卡,故沿用了之前下载好的Quadro驱动)、Tesla K40(官方推荐下载下来的是.deb文件)的显卡驱动后,都拷至Ubuntu系统/home“用户名”目录下。
本文显卡驱动网盘链接:https://pan.baidu.com/s/1bqMPB11 密码:ulpw
安装显卡驱动步骤如下:
(1) 卸载原有驱动 sudo apt-get remove –purge nvidia-* 其中(-purge)似乎不需要,会提示命令有误。如果之前没有装过NVIDIA驱动,这步可以不需要,当然,前面提到过,如果先安装Cuda并且在安装Cuda过程中选择安装了不匹配的显卡驱动,这里就需要执行这个命令删掉之前的NVIDIA驱动了。
(2) 禁用Ubuntu系统自带的通用显卡驱动nouveau
sudo gedit /etc/modprobe.d/blacklist.conf输入密码后,该命令会用gedit工具打开一个配置文本文件,类似于window里的txt文件,在该文件的最后添加一行:blacklist nouveau后保存退出。然后终端敲入命令 sudo update-initramfs -u
(3) 重启电脑,打开终端敲入命令 lsmod | grep nouveau 若无输出表示该驱动禁用成功。
(4) 开机后,Ctrl+alt+F1进入tty1,按提示输入用户名(login)、密码(password)后,敲入命令sudo service lightdm stop,显示lightdm stop/waiting字样代表禁用X服务器成功。
(5) 安装NVIDIA显卡驱动,若是deb包敲入命令 dpkg -i “.deb文件名”;若是run文件敲入命令sudo sh “.run文件名”。按照提示选择进行安装,如accept、yes、ok等,等待片刻即可安装成功。
(6) 敲入命令sudo service lightdm start 打开X服务器后,重启电脑。
(7) 进入终端用以下三个命令均可验证显卡驱动是否安装成功,最后一个命令需要根据提示安装glxinfo程序:sudo nvidia-smi(显示GPU设备表)、cat /proc/driver/nvidia/version(显示出用于显示的GPU驱动程序版本号、也就是那块接了显示线的独显的驱动程序版本号)、glxinfo | grep rendering(显示yes)。
六、 Cuda8.0环境安装与配置
推荐去官网下载Cuda8.0的runfile文件(.run文件)安装,这样可以在安装过程中选择不再安装显卡驱动(否则安装.deb文件会自动又安装了不匹配的显卡驱动),以及在弹出xorg.conf时选择NO。
Cuda官网地址:https://developer.nvidia.com/cuda-downloads
本文Cuda8.0网盘链接:https://pan.baidu.com/s/1diWdKM 密码:fppp
安装Cuda8.0步骤如下:
(1)将下载好的.run文件拷至/home“用户名”目录下,在终端中敲入命令sudo sh Cuda的文件名 –override (override前是两个-)
(2)然后就进入安装过程,开始都是End User License Agreement(类似于Windows系统安装程序时的一些条款文件),可以CTRL +C 跳过,然后选择accept,下面就是安装的交互界面,开始的Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?如果先装官网推荐的驱动后装Cuda就一定要选择n,因为之前已经安装了官网推荐的最匹配的驱动了。显示界面大致如下图,按照下图Y、N、accept等作出选择:
上述有两处有关什么location的选项,不做任何选择,直接回车
(3)配置Cuda环境变量
在终端里按照图示敲入命令后回车
(4)验证是否安装成功,有以下两种方法:
方法一
终端输入命令nvidia-smi(出现类似于上面装显卡驱动时使用该命令的界面,下图是网上找的,实际我们在敲这句命令时,在GPU那栏里是空的,因为这时并没有GPU占用)。
方法二
利用上面安装过程中下载的Cuda样例程序验证
首先cd到样例程序位置
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
进入到该目录下,终端命令行输入ls
可以看到.cpp文件(需用g++编译)或者.c文件(需用gcc编译)
apt-get update
apt-get install g++
下载好g++后执行,终端命令行输入
make
sudo ./deviceQuery
如果显示一些关于GPU的信息,则说明安装成功。
七、 Cudnn 5.1的安装及配置
在官网:上下载Cudnn5.1安装包(.tgz),需要注册才能下载。
官网:https://developer.nvidia.com/cudnn
本文Cudnn5.1网盘链接:https://pan.baidu.com/s/1hteaiYK 密码:i1u6
将Cudnnan安装包(cudnn-8.0-linux-x64-v5.1.tgz)拷至/home “用户名”目录下,打开终端,输入ls可以看到该文件。解压该文件,终端命令行输入: tar xvzf cudnn-8.0-linux-x64-v5.1.tgz
依次在终端内敲入以下三句命令即可安装成功:(将库和头文件复制到本机安装的cuda的目录下,如/usr/local/cuda-8.0,如果按照上述安装步骤就是安装在此目录下。)
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
chmod a+r表示添加文件权限,a表示所有用户,r表示可读。
如图所示安装步骤,敲命令时注意空格、“/”等等。