先说机器配置

CPU:Intel Xeon E3-1230 v5 skylake平台(此CPU无核显)

主板:ASUS E3 Pro Gaming v5

RAM:8G

GPU:ASUS STRIX-GTX1070 O8GB

存储:1个128G SSD + 1个 1T 机械硬盘 都是GPT分区

为什么先说机器配置呢?因为在安装Ubuntu过程中这个相当重要,在网上找到的教程中,大多数是在笔记本电脑或者比较旧的电脑上安装。如果你的机器是这一两年内的新配置(一般都是UEFI+GPT),本教程应该会相对实用。不过,还是要先了解自己的机器是传统的BIOS+MBR还是新的UEFI+GPT,相关内容可以看这里(关键是看看BIOS和UEFI长什么样子)。而自己机器分区表是MBR还是GPT,在Win10下也可通过Win+X进入“磁盘管理”查看。我的机器是UEFI+GPT的,环境搭建也是以此为基础。

1 Ubuntu安装

1.1 Win10下的磁盘分区

考虑到双系统的共存,需要在磁盘中为Ubuntu系统划分空间。Win10下,通过Win+X进入磁盘管理查看分区,由于我的机器的128G SSD作为Win10系统C盘,所以我在仍有较大空间的D盘(机械硬盘)中为Ubuntu系统划分100GB,步骤:在新加卷D:上右键->压缩卷->填写划分的空间->压缩->完成。此时可以看到在D盘下划分了一个未分配的100GB空间:
需要注意的是 无需对这100GB未分配空间改动,让它保持 未分配就好。

1.2 Win10下的设置

这里主要是要禁用快速启动,因为快速启动会阻碍Ubuntu系统的挂载。

Win+X进入电源选项->选择电源按钮的功能->更改当前不可用的设置->将“启用快速启动”的选项去掉->保存修改。

1.3 UEFI下的设置

这里首先要重启,华硕主板按Delete或者F2进入UEFI界面。

1.3.1 UEFI禁用Fast Boot

进入UEFI后,按F7进入Advanced Mode,在Boot菜单下,将Fast Boot改为Disable。

1.3.2 UEFI更改CSM(重中之重)

在Fast Boot下面,可以看到CSM(Compatibility Support Module),这是主板可以兼容传统BIOS和新UEFI引导的模块,点入去将Boot Device Control 更改为UEFI only

这里Legacy OPROM就是传统BIOS引导,有人可能会问,为什么不保留初始的UEFI and Legacy OPROM,就可以兼容两种模式了?经过我的试验,即多次安装Ubuntu过程中,发现使用纯UEFI引导的安装更容易成功,特别在Ubuntu系统内的分区中(后面会提到)会更妥当。

1.3.3 UEFI禁用Secure Boot(自行选择)

CSM下方的Secure Boot,点进去会看到Secure Boot的选项是灰色无法更改的。关于Secure Boot的问题,可以参考这里和这里。

但是当我将各种Key备份好,准备Delete Platform Key (PK)时,我发现这样会导致Win10系统重置,所以我并未执行此步,在后面步骤也正常,读者可自行选择是否执行此步。

1.4 制作Ubuntu的U盘启动盘

网上大多数教程都会采用UltraISO,这里我用的是 Rufus。

从官网下载好ubuntu-14.04.5-desktop-amd64.iso后,利用Rufus刻录。注意,一定要在“分区方案和目标系统类型”中选择->“用于UEFI计算机的GPT分区方案”。

1.5 开始安装

重启,华硕主板按Delete或者F2进入UEFI界面,选择带UEFI字样的U盘启动。进入GNU GRUB后,选择Install Ubuntu。

后面的安装有图形界面引导,需要说明的是安装方式及分区。由于要安装双系统,在安装方式里一定要选择“其它选项(Something else)”。

进入分区后,根据刚才在Win10下划分的未分配100GB,可以在当前安装界面中的分区表找到一个107876MB左右的空闲区域,选中,点击左侧“+”进行分区,共分三个区如下:

1. 300MB->逻辑分区->空间起始位置->EFI引导分区(EFI boot partition) ;

2. 8192MB->主分区->空间起始位置->交换空间(swap area);

3. 剩余所有空间->主分区->空间起始位置->Ext4日志文件系统(Ext4 journaling file system)->挂载点为“/”。

分区完成后,下面要选择“安装启动引导器的设备”,这里选择分区表中EFI引导分区(300MB)所在的设备,这个设备是分区表中的第一列,你可以在那里看到刚刚分的各个区所在的“设备”(实际上都在同一个硬盘上,但由于虚拟磁盘管理,不同的分区在不同“设备”上)。我的EFI引导分区在“dev/sdb3”上,那么“安装启动引导器的设备”就相应选择“dev/sdb3”。分区过程图可以看这里。

注意

1. 交换空间的大小是根据机器本身的内存RAM大小决定的,可以根据实际情况分配。

2. “安装启动引导器的设备”这里的“dev/”后面接的无论是“sda”还是“sdb”,选择EFI引导分区对应的设备即可。顺带解释一下“dev/sda”、“dev/sdb”的问题,这是在有两块不同的物理硬盘才会显示,如果只有一块硬盘的话,当然只能看见“dev/sda”了。

接下来的地区选择、键盘布局、用户名及密码相对常规,可以自行设置。

1.6 安装过程中可能出现的情况

这里可能出现的情况可以看我在这里的描述。最初在UEFI的CSM中一直选择UEFI and Legacy OPROM的兼容模式,经常在分区的安装步骤前后,不是无法扫描分区表(进入分区表时一片空白)导致无法分区,就是分区完成后安装程序突然崩溃。最后选择UEFI only后,安装才正常进行。

回顾一下。

这里有个印象十分深刻,就是当时也尝试过Legacy OPROM only的模式进行安装,在分区选项中是没有EFI引导分区这一选项的,只有“保留的 BIOS 启动区域”选项(在UEFI only的模式下EFI引导分区保留的 BIOS 启动区域都有),分区完成后也正常,但在最后安装复制文件时报错,原因应该BIOS安装往磁盘写文件时默认磁盘分区表是MBR,而我的磁盘分区表是GPT,会导致读写出现问题。

另外,在UEFI and Legacy OPROM的兼容模式下安装,假如分区步骤给“保留的 BIOS 启动区域”分配空间,安装程序提醒你要给“保留的 BIOS 启动区域”分配至少1MB,实际上这是不需要的,采用UEFI引导的安装,给EFI引导分区分配空间就足够了。

所以,再次要提醒,在UEFI的CSM中一定要选择UEFI only,避免兼容问题。

One more thing. 有时安装在分区完成后,安装程序也可能崩溃,这时你先重启退出安装回到Win10下的磁盘管理,可以看到分区的确是完成了,你可以选择将这些分区右键->删除卷,使其变回未分配状态。但是,EFI系统分区是无法以此方式删除的,可以选择DiskGenius进行。然后尝试安装Ubuntu。

2 显卡驱动安装

可以先去 这里确定显卡驱动的版本,我的是GTX1070。

安装完成后,重启进入Ubuntu系统,Ctrl+Alt+T打开终端。执行顺序如下:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-367
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
sudo reboot

显卡驱动安装完成重启进入Ubuntu系统,屏幕分辨率应该显示正常。

3 CUDA&cuDNN安装

3.1 CUDA

先到 官网下载Cuda8.0。

下载完成后,打开终端,先进入CUDA安装程序所在的目录(cd命令可以跳转目录),然后执行:

sudo sh cuda_8.0.44_linux.run

首先会出现安装协议,按Space向下翻,输入accpet接受协议,需要注意的是:

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.**?(y)es/(n)o/(q)uit: n

这里一定要选择no,否则会导致之前的显卡驱动被覆盖。

安装完成后注意看提示,有问题可以参考这里。(我没遇到)

在终端配置环境变量:

nano ~/.bashrc

在最后增加以下两行:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

Ctrl+X 保存并离开,回到终端,让环境变量马上生效:

source ~/.bashrc

3.2 cuDNN

先到官网下载cuDNN v5.1,需要先注册并做问卷调查,下载中选择cuDNN v5.1 Library for Linux。

下载完成后,打开终端,先进入cuDNN文件所在的目录(cd命令可以跳转目录),然后执行:

tar xvf  cudnn-8.0-linux-x64-v5.1.tgz
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*

终端回到根目录,输入命令检查显卡配置是否正常:

nvidia-smi

4 Tensorflow源码安装

4.1 Bazel安装配置

由于Tensorflow采取源码安装的方式,所以需要Bazel进行编译,官方教程可以看这里。执行顺序如下:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.io/bazel-release.pub.gpg | sudo apt-key add -
sudo apt-get update && sudo apt-get install bazel

在“curl https://bazel.io/bazel-release.pub.gpg | sudo apt-key add -”步骤中,可能会由于网络原因下载较慢,可以直接用浏览器打开“https://bazel.io/bazel-release.pub.gpg”进行下载,随后进入该文件目录执行“sudo apt-key add bazel-release.pub.gpg”。

4.2 Tensorflow源码配置及编译

在python2.7下,先要安装环境依赖包:

sudo apt-get install python-numpy swig python-dev python-wheel python-pip git

从github上克隆Tensorflow源码到本地:

git clone https://github.com/tensorflow/tensorflow

切换到最新的r0.11版本(需要先进入保存Tensorflow源码的目录):

git checkout r0.11

开始配置(同样需要先进入保存Tensorflow源码的目录):

./configure
Please specify the location of python. [Default is /usr/bin/python]:
Do you wish to build TensorFlow with Google Cloud Platform support? [y/N] N
No Google Cloud Platform support will be enabled for TensorFlow
Do you wish to build TensorFlow with Hadoop File System support? [y/N] N
No Hadoop File System support will be enabled for TensorFlow
Found possible Python library paths:/usr/local/lib/python2.7/dist-packages/usr/lib/python2.7/dist-packages
Please input the desired Python library path to use.  Default is [/usr/local/lib/python2.7/dist-packages]/usr/local/lib/python2.7/dist-packages
Do you wish to build TensorFlow with GPU support? [y/N] y
GPU support will be enabled for TensorFlow
Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:
Please specify the Cuda SDK version you want to use, e.g. 7.0. [Leave empty to use system default]: 8.0
Please specify the location where CUDA 8.0 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify the Cudnn version you want to use. [Leave empty to use system default]: 5
Please specify the location where cuDNN 5 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.
Please note that each additional compute capability significantly increases your build time and binary size.
[Default is: "3.5,5.2"]: 6.1

注意:最后的“6.1”计算能力是根据自身显卡决定的,可以到这里查看。

开始配置后,首先会自动下载一些环境依赖的包,然后开始配置。

另外,在配置这个步骤,很多教程都说“一定要显示成功,不能出现error”。我的机器在Tensorflow配置时一些环境依赖的包无法下载,导致后面Bazel编译出现问题,所以我决定使用别人编译好的whl安装Tensorflow。这里有人可能会有疑惑,解释一下这个Bazel编译Tensorflow源码的意义,编译源码成功后,是会生成一个“tensorflow-0.11.0rc0-py2-none-any.whl”的文件,然后通过“sudo pip install tensorflow-0.11.0rc0-py2-none-any.whl”安装才算完成。

这里有人可能又会问,为什么要这么麻烦编译源码生成一个whl去安装呢?的确,在Tensorflow官方安装教程里的Pip Installation方式,下载支持GPU的whl然后通过pip安装就行了,步骤如下:

# Ubuntu/Linux 64-bit
sudo apt-get install python-pip python-dev
# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7
# <strong>Requires CUDA toolkit 7.5 and CuDNN v5. For other versions, see "Install from sources" below.</strong>
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc0-cp27-none-linux_x86_64.whl
# Python 2
sudo pip install --upgrade $TF_BINARY_URL

可以看到,官方解释说,这个whl支持的CUDA是7.5版本,而当前CUDA最新版本是8.0才支持10系GPU(也有说法CUDA 7.5也可以支持10系GPU不过需要调整,这个大家自行搜索),因此,通过Bazel编译Tensorflow源码生成的whl才可以在安装后支持10系GPU。

那么回过头来,别人编译好的whl安装Tensorflow,在哪里可以找到呢?可以看这里。在这里要感谢这位博主的分享!

如果你配置成功选择自行编译并安装,可以接下去看4.3;如果想选择利用别人编译好的whl安装Tensorflow,可以跳过4.3从4.4开始。

4.3 编译Tensorflow源码并安装

Tensorflow配置完成后,开始编译源码并安装(注意文件的保存目录):

bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
sudo pip install /tmp/tensorflow_pkg/tensorflow-0.11.0rc0-py2-none-any.whl

至此,整个Tensorflow环境搭建就已经完成,可以跑一下Tensorflow官方的测试代码。

4.4 使用编译好的whl安装Tensorflow

下载whl好后,因为该whl的编译是在Ubuntu16.04下进行,所以先要将Ubuntu系统升级,这里升级是必须的,如果直接安装该whl,会报关于“GLib”的错误,这是由于编译环境造成的。Ubuntu14.04系统升级至Ubuntu16.04命令如下:

sudo update-manager -d

一般来说,该命令需要执行两次,因为第一次执行,系统会更新当前14.04版本内的软件,然后重启后仍然是14.04版本,这时再次执行该命令,就会进行Ubuntu16.04升级。

系统升级完成后,终端执行安装(先进入该whl的保存目录):

sudo pip install tensorflow-0.11.0rc0-py2-none-any.whl

至此,整个Tensorflow环境搭建就已经完成,可以跑一下Tensorflow官方的测试代码。

4.5 在Pycharm中使用Tensorflow

由于个人习惯在Pycharm中写Python代码,下面说说Tensorflow在Pycharm的配置,终端执行:

sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcufft.so.8.0 /usr/local/lib/libcufft.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcudnn.so.5 /usr/local/lib/libcudnn.so.5 && sudo ldconfig

然后以运行/tensorflow/models/image/mnist/convolutional.py为例,显示下图说明Tensorflow以GPU的方式运行代码:

参考教程:

http://jingyan.baidu.com/article/e3c78d6460e6893c4c85f5b1.html

http://www.tensordata.cn/t/ubuntu16-0-4-tensorflow0-11/63

Win10下双系统Ubuntu14.04+GTX1070+CUDAcuDNN+Tensorflow环境搭建相关推荐

  1. ubuntu14.04 qt4 C++开发环境搭建

    ubuntu14.04 qt4 C++开发环境搭建 preFace:文章包括gnome,vnc-server,qt4安装配置及集成; apt-get update && apt-get ...

  2. WIN10下PyCharm+Anaconda+PyTorch-GPU+CUDA9.2+cuDNN7.2环境搭建

    国庆换了新机器联想y7000p,配置是八代I7+1066.终于可以用GPU版的框架了! 回到学校后就开始搭环境.过程中看了不少前辈们的经验,装的还算比较顺利,一个上午成功搞定. 为了以后的同学们少踩坑 ...

  3. Win10 下 Qt5.13.2+OpenCV4.5.1 开发环境搭建笔记

    写在前面 兜兜转转又回到了 OpenCV.因为项目需要,人脸识别+二维码解码,又回到了 OpenCV.先用 Win10 做功能验证,然后再转移到 Cortex-A8 的开发板. 首先感谢这篇文章的指导 ...

  4. win10下pyqt5低功耗蓝牙系列一:开发环境搭建

    1.序言 之前在网上搜索关于python实现低功耗蓝牙(BLE)的案例,基本都是让安装pybluez等之类的工具,实测发现基本行不通,具体原因也不记得了,折腾了将近一个星期时间.这两天看Qt的QtBl ...

  5. Win10+Ubuntu双系统之卸载Ubuntu

    适用范围 GPT分区,UEFI新式BIOS 查看分区形式: [我的电脑]右键->[管理]->[存储]->[磁盘管理]->[磁盘0]右键->[属性]->[卷]-> ...

  6. win10 mbr下装linux,在Win10下安装Ubuntu 18.04双系统(MBR+Legacy)

    刚刚在win10下安装了ubantu18.04系统,亲测有效!中途遇到了很多坑,一一为大家避免 以下就是我安装双系统的详细步骤 BIOS引导方式 目前主要的系统引导方式也有两种:传统的LegacyBI ...

  7. Win10下安装 [双系统Ubuntu18.04](图文步骤)

    前言 这是我第二次安装双系统Ubuntu,之前第一次安装是随意装的,出了很多问题,所以删掉了(想要完整删除步骤请看:Win10下完整删除 [双系统ubuntu18.04](以及EFI.启动项)) 本次 ...

  8. xps13安装linux系统,[操作系统]Dell XPS 13 (9360)安装配置 ubuntu 16.04 实现 win10 Linux双系统...

    [操作系统]Dell XPS 13 (9360)安装配置 ubuntu 16.04 实现 win10 Linux双系统 0 2017-07-17 12:00:18 博主今日投身于SLAM的研究事业,放 ...

  9. 如何在Ubuntu系统下挂载新硬盘(win10+Ubuntu双系统单硬盘挂载新硬盘)

    win10+Ubuntu双系统单硬盘挂载新硬盘 先在win10系统下找到新磁盘,分出需要扩充到Ubuntu的分区,新建简单卷再压缩卷. 进人Ubuntu系统,用磁盘管理工具,找到新分区,点齿轮把他格式 ...

最新文章

  1. input(position 1) must be Tensor, not NoneType
  2. 性能测试TPS与用户之间转换
  3. Spring注解编程基石(四)
  4. 字符串之找到字符串的最大无重复字符串子串
  5. Python filter 函数 - Python零基础入门教程
  6. Purism释出Librem 5智能型手机新进展
  7. java元数据是什么_Java和大数据是什么关系 杭州哪个就业前景更好
  8. 统计通话次数和时间的软件_通话时间统计手机下载-通话时间统计手机版下载v2.3-西西软件下载...
  9. 小度WiFi作为无线网卡设置的方法
  10. 2019年中国大学生计算机设计大赛国赛答辩
  11. COPRA算法学习笔记
  12. Android Binder -- AIDL 原理
  13. 计算机编程入门先学什么最好?
  14. springcloudfeign Required request body is missing
  15. Enovia 用户操作手册
  16. 这是广告clearview ai用来将您的脸卖给警察的广告
  17. 关于时间复杂度什么是时间复杂度
  18. RK3588平台开发系列讲解(DP篇)DP的相关调试手段
  19. 【学术】可以分享一下关于“社会计算”有哪些国内外顶级会议吗?
  20. 左旋肉碱的网络营销故事

热门文章

  1. Excel 将两列合并变成第三列,中间加一个连字符
  2. 滴滴共享单车在深圳被叫停;六六接受京东道歉;宝马发布最新充电网络计划丨价值早报
  3. mysql数据中包含不间断空格(ascii值为194和160)解决办法
  4. 装修细节注意问题 装修细节有哪些
  5. 2018-3-25至2018-8-9的日语笔记
  6. 通过plotly.express库和Flask框架部署企鹅数据可视化的网页
  7. 重拾Java基础知识:设计模式
  8. CSS选择器(id选择器,包含选择器,标签名选择器,类选择器,属性选择器,通配符选择器,伪类选择器,相邻选择器,选择器的优先级,子选择器)
  9. 《西游记》中师徒四人的形象探究及现实意义
  10. 2018年「编码美丽」公众号精华帖总结,建议收藏(文末赠书)!