ubuntu安装(历险)记
目标:安装ubuntu+Cuda等+tensorflow
1.首先使用u盘安装ubuntu
用UEFI应该可以直接将光盘解压到U盘中启动,grub引导亦可。
grub引导,需解压iso中vmlinuz和initrd到对应文件夹,iso改名后放到根目录:
title [13]--ISO UBUNTU
find --set-root /ubuntu.iso
kernel /ubuntu/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu.iso nomodeset ro
initrd /ubuntu/initrd.lz
boot
开机狂点F10-F12,选择U盘启动到grub目录,通常可选择ubuntu启动。
然而,启动中很可能出现显示器无信号的情况,这时需要修改启动项。在grub界面按e,在splash前添加nomodeset,再启动。
安装完成后也有同样的问题,第一次需要添加相同参数才能启动。
启动后修复,此处修改 GRUB_CMDLINE_LINUX_DEFAULT :
sudo nano /etc/default/grub
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
GRUB_CMDLINE_LINUX=""
sudo update-grub
2.修改源
主要是加速。国内很多源,清华、163皆可。
cd /etc/apt/
sudo cp sources.list sources.list.bak
sudo vi sources.list
把下面的这些源添加到source.list文件头部:
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
最后更新源和更新已安装的包:
sudo apt-get update
sudo apt-get upgrade
3.安装驱动
最新驱动370,可安装更新驱动。
sudo add-apt-repository ppa:graphics-drivers/ppa
回车后继续:
sudo apt-get update
sudo apt-get install nvidia-370 mesa-common-dev freeglut3-dev
重启修改分辨率,驱动安装完成。
4.安装cuda
下载Cuda8 https://developer.nvidia.com/cuda-release-candidate-download,需注册。
下载最新的 runfile 版本,当前为 8.0.27 和 8.0.27.1。
sudo sh cuda_8.0.27_linux.run --tmpdir=/opt/temp/ --override
由于gcc版本问题,需要添加override参数,编译无问题。
同时,询问 Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 时选n。
添加到 ~/.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}}
nvidia-smi
8.0.27.1类似:
sudo sh cuda_8.0.27.1_linux.run --tmpdir=/opt/temp/
5.安装Cudnn
下载cudnn https://developer.nvidia.com/rdp/cudnn-download,这里安装cudnn 5.1RC。
tar -zxvf cudnn-8.0-linux-x64-*
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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
6.源码编译TensorFlow GPU
tensorflow9.0需从源码编译才支持cudnn5.1+cuda8.0。
sudo apt-get install python-pip
sudo apt-get install swig python-dev python-whee
pip install numpy
#如果编译目标切换python3 还需安装
sudo apt-get install python3-pip python3-dev libcurl3-dev
pip3 install numpy
注意,bazel需要最新版本(以解决后续配置、编译的workspace问题,这里使用0.3.1),查看在 https://github.com/bazelbuild/bazel/releases/ 。
sudo apt-get update
sudo apt-get install default-jre default-jdk
chmod +x bazel-0.3.1-installer-linux-x86_64.sh
./bazel-0.3.1-installer-linux-x86_64.sh --user
环境 ~/.bashrc中追加,其中 textminer 为用户名。
source /home/textminer/.bazel/bin/bazel-complete.bash
export PATH=$PATH:/home/textminer/.bazel/bin
source ~/.bashrc
再安装tensorflow。
sudo apt-get install libcurl3 libcurl3-dev zlib1g-dev git
下载源码
git clone https://github.com/tensorflow/tensorflow编译过程中若出现类似如下信息
#git是下载最新源码,也可以到release页面 https://github.com/tensorflow/tensorflow/releases 下载发布的源码,。推荐下载发布的源码。这里使用0.10rc。
./configure
#在询问是否开启GPU时选Y,其余可忽略
#如果编译python3,则python路径为/usr/bin/python3
#库路径通常为 /usr/local/lib/python3.5/dist-packages/
bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
#开始编译
ERROR: /home/ggg/000/tensorflow/tensorflow/core/kernels/BUILD:1515:1: undeclared inclusion(s) in rule '//tensorflow/core/kernels:depth_space_ops_gpu': this rule is missing dependency declarations for the following files included by 'tensorflow/core/kernels/depthtospace_op_gpu.cu.cc': '/usr/local/cuda-7.5/include/cuda_runtime.h' '/usr/local/cuda-7.5/include/host_config.h' '/usr/local/cuda-7.5/include/builtin_types.h' '/usr/local/cuda-7.5/include/device_types.h' '/usr/local/cuda-7.5/include/host_defines.h' '/usr/local/cuda-7.5/include/driver_types.h' '/usr/local/cuda-7.5/include/surface_types.h'
可参考如下issue解决https://github.com/tensorflow/tensorflow/issues/3589。我没有删除原来的那一行,而是直接添加cxx_builtin_include_directory: "/usr/local",编译通过。
$ git diff third_party/gpus/crosstool/CROSSTOOL
diff --git a/third_party/gpus/crosstool/CROSSTOOL b/third_party/gpus/crosstool/CROSSTOOL
index 8db81a9..dfc568b 100644
--- a/third_party/gpus/crosstool/CROSSTOOL
+++ b/third_party/gpus/crosstool/CROSSTOOL
@@ -58,7 +58,7 @@ toolchain {
# absolute locations and has no remote execution, yet. However, this will need
# to be fixed, maybe with auto-detection?
cxx_builtin_include_directory: "/usr/lib/gcc/"
- cxx_builtin_include_directory: "/usr/local/include"
+ cxx_builtin_include_directory: "/usr/local"
cxx_builtin_include_directory: "/usr/include"
tool_path { name: "gcov" path: "/usr/bin/gcov" }
然后编译python相关模块
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.9.0-py2-none-any.whl
至此,tensorflow完成。
7.Docker安装tensorflow
如果源码方式感觉麻烦,或者老是失败,可以选择docker安装tensorflow。
首先,参照官方教程 https://docs.docker.com/engine/installation/linux/ubuntulinux/ 安装docker:
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudo vi /etc/apt/sources.list.d/docker.list
deb https://apt.dockerproject.org/repo ubuntu-xenial main
$ sudo apt-get update
$ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
$ sudo apt-get install docker-engine
# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f sudo apt-get purge -y nvidia-docker # Add the package repositories curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \ sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \ sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update # Install nvidia-docker2 and reload the Docker daemon configuration sudo apt-get install -y nvidia-docker2 sudo pkill -SIGHUP dockerd # Test nvidia-smi with the latest official CUDA image docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
旧:
并且安装nvidia-docker https://github.com/NVIDIA/nvidia-docker :
#从https://github.com/NVIDIA/nvidia-docker/releases下载好最新版本
sudo dpkg -i /tmp/nvidia-docker*.deb
sudo systemctl start nvidia-docker
//end旧
然后启动docker
nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:latest-gpu
sudo docker run --runtime=nvidia -it -p 8888:8888 -v /home/nbd/wp/proj/Somiao-Pinyin/:/so:rw -p 4022:22 tensorflow/tensorflow:latest-gpu-py3
推荐在-p后多加几个映射端口,如-p 4022:22。
8.安装其他软件
主要参考:http://blog.csdn.net/liuqz2009/article/details/52087019#t0
搜狗输入法 http://pinyin.sogou.com/linux/?r=pinyin 。
sudo dpkg -i sogoupinyin*.deb
sudo apt-get install -f
安装chrome
sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt-get update
sudo apt-get install google-chrome-stable
安装Genymotion
https://www.virtualbox.org/wiki/Linux_Downloads
https://www.genymotion.com/thank-you-freemium/
sudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
arm translation:http://download.csdn.net/detail/yyddhh123/9070315
安装Genymotion后,发现无法上网,经过一番搜索后,发现只要在模拟器里面连接上那个默认的wifi就可以了
安装vlc
sudo add-apt-repository ppa:videolan/master-daily
sudo apt-get update
sudo apt-get install vlc
解决时区、时间问题
sudo timedatectl set-local-rtc 1
解决我的键盘ctrl、alt等都是shift的问题:
如果过程中键盘无法使用别怕,可以打开系统设置里的屏幕键盘顶上。。
没什么难度,直接用dmks方案就好。完美补丁上。
如果打完补丁后wasd和上下左右交换了,按Fn+w即可。
如果安装使用过程中遇到需要访问某些不可访问网站的情况,可以安装proxychains,然后通过一些管s道s访问。