1.Ubuntu16.04系统安装
注意的问题:安装之前一定要记得断网。
安装流程:
1) 选取一个大于4G的优盘制作Ubuntu16.04 启动盘
2) 根据自己的电脑型号进行bios选择优盘启动,我自己的电脑是F8
3) 如下图,选择优盘启动
4)注意首先把网络断掉,选择Install Ubuntu
5)点击继续
6)选择其他选项,点击继续
7)划分swap分区和主分区:
选择一个空闲的盘对其进行划分,将swap分区的大小为系统内存大小的两倍,这里我们给其分配了100G,剩余的全部分配给主分区。
Swap分区:
![](https://i-blog.csdnimg.cn/blog_migrate/68e6a5eeb4457daaf9cb8c5d28e2bf75.png)
主分区:
启动引导器设备设置如下:
![](https://i-blog.csdnimg.cn/blog_migrate/4d4e62e5b6191b9d1735da82731d6390.png)
8)点击现在安装
9)点击继续
10)选择语言为汉语,点击继续
11)设置用户名及密码信息,之后点击继续。
![](https://i-blog.csdnimg.cn/blog_migrate/4f7b4bdabf020f3d11c6b6ad9dfa813d.png)
至此就Ubuntu16.04就安装成功了
2.更新Ubuntu16.04的源
如何更新源
1) 在修改source.lsit前最好先备份一份
执行备份命令:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
2) 执行命令打开source.list文件:
使用gedit工具打开
sudo gedit /etc/apt/source.list
1) 复制源
把下面的任意一个源复制到source.list中去,并覆盖原来的文件内容。
我只给出了清华大学的源:
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse
3.安装显卡驱动:
1)驱动程序下载:
安装完Ubuntu后需要关闭自动更新,若更新了显卡驱动,可能会与caffe不兼容。到NVIDIA官网下载驱动程序,具体参数如下图。
![](https://i-blog.csdnimg.cn/blog_migrate/03697f2ff9883c847ececd6d9ab4ca58.png)
点击开始搜索
选择其中的一个版本进行下载,我选择的版本:384.47
2)禁用nouveau(NVIDIA显卡驱动成序)
Ubuntu自带的nouveau驱动会影响cuda的安装,不当的操作会导致黑屏和登录循环,终端运行:
$lsmod |grep nouveau
如果有输出,则表示nouveau正在加载,在/etc/modprobe.d 中创建文件blacklist-nouveau.conf ,在终端使用gedit打开具体操作命令如下:
$cd /etc/modprobe.d
$sudo touch blacklist-nouveau.conf
$sudo gedit blacklist-nouveau.conf
在文件中输入一下内容并保存
blacklist nouveau
options nouveau modeset=0
之后跟新
$sudo update-initramfs -u
为了彻底的禁用,在以上的操作之后,删除文件nouveau.ko;nouveau.ko.org具体操作在终端运行如下:
$cd /lib/modules/4.4.0-83-generic/kernel/drivers/gpu/drm/nouveau
$sudo rm -rf nouveau.ko
$sudo rm -rf nouveau.ko.org
再次更新:
$sudo update-initramfs –u
重启电脑,再用终端检查是否存在nouveau:
$lsmod | grep nouveau
没有输出表示禁用成功。
3)驱动安装:
卸载原有的驱动:
$sudo apt-get remove --purge nvidia-*
Ctrl+alt+F1进入字符界面,关闭图形界面。
$sudo service lightdm stop
此时有可能关闭不了,即使上述操作都顺利通过,但此后开启时会有问题存在,此时需要删除图像用户界面,具体操作:
$cd /tmp
$sudo rm -rf .X*
如此就可以完全把X的图像用户界面文件删除。
安装驱动:
$sudo chmod a+x NVIDIA-Linux-x86_64-375.66.run
$sudo ./NVIDIA-Linux-x86_64-375.66.run –no-x-check –no-nouveau-check –no-opengl-files //安装驱动
· –no-x-check 安装驱动时关闭X服务
· –no-nouveau-check 安装驱动时禁用nouveau
· –no-opengl-files 只安装驱动文件,不安装OpenGL文件
Accept->Continue installation->sign the kernel module(为内核模块签名)?选择是->使用已有的密钥给模块签名还是重新生成?选重新生成密钥->是否删除已生成的密钥文件?选择否->安装完成
检查驱动是否安装成功:
$nvidia-smi
4安装所需要的开发包:
$sudo apt-get install build-essential # basic requirement
$sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler #required by caffe
5安装cuda8.0
1)根据NVIDIA官网进行cuda8.0下载
下载cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb
下载CUDNN
下载cudnn-8.0-linux-x64-v5.0-ga.tgz
确定GPU支持CUDA
$lspci | grep -i nvidia
到http://developer.nvidia.com/cuda-gpus去验证,发现支持CUDA
确定Linux版本支持CUDA
$uname -m && cat /etc/*release
确定系统是否安装gcc ,并按装与cuda兼容的版本
$gcc --version
没有的话可以通过sudo apt-get install gcc ,或者gcc/g++版本低于5.0,对其进行升级:
$sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$sudo apt-get update
$sudo apt-get install gcc-5
$sudo apt-get install g++-5
改变系统默认的gcc/g++编译器版本,换成gcc/g++-5
$sudo su
$cd /usr/bin
$ln -s /usr/bin/g++-5 /usr/bin/g++ -f
$ln -s /usr/bin/gcc-5 /usr/bin/gcc -f
确定系统已安装了正确的Kernel Headers和开发包
查看系统正在运行的Kernel版本:
$uname -r
安装对应的Kernels header和开发包:
$sudo apt-get install linux-headers-$(uname -r)
安装cuda8.0:
进行md5校验:
$md5sum cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb
对比相同,使用deb文件进行安装:
$sudo dpkg -i sudo dpkg -icuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb
$sudo apt-get update
$sudo apt-get install cuda
重启完成cuda安装
6安装 cuDNN
$tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
$cd cuda
$sudo cp lib64/lib* /usr/local/cuda/lib64/
$sudo cp include/cudnn.h /usr/local/cuda/include/
7更新软连接:
$cd /usr/local/cuda/lib64/
$sudo chmod +r libcudnn.so.5.1.10 # 自己查看.so的版本
$sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5
$sudo ln -sf libcudnn.so.5 libcudnn.so
$sudo ldconfig
8.设置环境变量:
在/etc/profile中添加CUDA环境变量
$sudo gedit /etc/profile #在打开的文件中加入如下两条语句:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
保存后,使环境变量立即生效:
$source /etc/profile
同时,进入/etc/ld.so.conf.d/文件夹,执行下面的命令,新建一个名为cuda.conf的文件,然后在文件中写入内容:
$cd /etc/ld.so.conf.d/
$sudo gedit cuda.conf
/usr/local/cuda/lib64
保存后执行下面的命令,使其生效
$sudo ldconfig
9安装cuda samples
进入/usr/local/cuda/samples ,执行以下命令来build samples
sudo make all -j4
全部编译完成后,进入 samples/bin/x86_64/linux/release, 运行deviceQuery: ./deviceQuery
如果出现显卡信息,且结尾有Result=PASS则驱动及显卡安装成功,结果如下:
10. 安装Intel MKL,openBlas或Atlas
我选择的是Atlas,为caffe默认使用的,不需要额外的配置,安装命令
$sudo apt-get install libatlas-base-dev
11. 安装opencv
1)首先安装必须的包
$sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
2)从opencv官网下载opencv-3.1.0.zip
3)解压opencv-3.1.0.zip
4)编译
$cd opencv-3.1.0
$mkdir release
$cd release
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
如果cmake过程中提示:ippicv_linux_20141027.tgz的hash码不对,出现上述问题,则将下载的ippicv_linux_20141027.tgz手动复制到 opencv-3.0.0-beta/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b文件夹中,重新cmake即可。此时cmake需要加一个选项“ -D WITH_IPP=OFF”
如果编译opencv程序时遇到如下错误:
libopencv_*.so:undefined reference to `TIFFIsTiled@LIBTIFF_4.0'
此时cmake需要添加选项“ -D BUILD_TIFF=ON”需要重新编译。
紧接着进行如下操作
$make
$sudo make install
$ sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
$ sudo ldconfig
5)测试安装是否成功
$mkdir ~/opencv-workshop
$cd ~/opencv-workshop/
$gedit DisplayImage.cpp
$gedit CMakeLists.txt
$cmake .
$make
其中Display.cpp的代码是:
#include <stdio.h>
#include <opencv2/opencv.hpp>using namespace cv;
int main(int argc, char** argv)
{
Mat image;
image = imread(argv[1], 1);
if (!image.data)
{
printf("No image data\n");
return -1;
}
namedWindow("display", WINDOW_AUTOSIZE);
imshow("display", image);
waitKey(0);
return 0;
}
其中 CMakeList.txt的内容是:
cmake_minimum_required(VERSION 3.1)
project(DisplayImage)
find_package(OpenCV REQUIRED)
add_executable(DisplayImage DisplayImage.cpp)
target_link_libraries(DisplayImage ${OpenCV_LIBS})
上述命令执行完毕后,生成可执行文件,运行期可执行文件:
./DisplayImage ~/图片/2018-04-13\ 21\:35\:01屏幕截图.png
如果图像显示成功,则表示openCV已成功安装。
12. 安装caffe所需要的Python Anaconda
下载Anaconda2-4.0.0-Linux-x86_64.sh,切换到文件所保存的路径,执行
$sh Anaconda2-4.0.0-Linux-x86_64.sh
按照提示进行安装。
安装好后,切换到/etc文件里面打开ld.so.conf添加如下语句:
/home/image/anaconda2/lib
使用gedit打开.bashrc文件添加下面语句:
$gedit ~/.bashrc
export LD_LIBRARY_PATH="/home/image/anaconda2/lib:$LD_LIBRARY_PATH"
添加清华大学anaconda仓库的镜https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
在终端运行以下操作:
$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
13.安装Python依赖库
下载caffe源码,解压之后进入打开中终端把工作目录切换到python文件中:
$cd ~/caffe-master/python
安装python-pip
$sudo apt-get install python-pip
执行以下命令:
for req in $(cat requirements.txt); do pip install $req; done
11. 编译Caffe
打开终端切换到caffe-mater中,复制一份Makefile.config.examples
$cp Makefile.config.example Makefile.config
使用gedit打开Makefile.config.example修改一下内容:
l 开启CUDNN支持:
USE_CUDNN:=1
l 开启Opencv支持
OPENCV_VERSION:=3
l 去掉对anaconda路径的注释
ANACONDA_HOME := $(HOME)/anaconda2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
l 去掉Python库文件
PYTHON_LIB := $(ANACONDA_HOME)/lib
l 开启使用支持使用python编写的层
WITH_PYTHON_LAYER := 1
保存退出,使用如下操作进行编译:
$make all
$make test
$make runtest