Help us understand the problem. What is going on with this article?

[おぼえがき] Windows10 Ubuntu16.04 ディアルブート環境構築手順

More than 3 years have passed since last update.

Windows10 の環境に Ubuntu16.04 を 追加で入れる手順の覚え書き。
またポカして吹っ飛ばした時に参照しやすいように...。
ハマった所、反省点を中心に記載します。

概要

  • Windows10 のみの構成 → Windows10 + Ubuntu16.04 (ディアルブート) にする。
  • 記録デバイスは一つ、Windows用のパーティーションサイズを減らし、Ubuntu用にパーティーションを追加する。
  • Ubuntu16.04 での環境構築 (2016/4 時点で最新安定版のVerで例示。都度最新安定版Verを確認のこと)

Windows10 側の準備

BackUpを必ず作成

 [コントロールパネル]→ [システムとセキュリティ]→ [バックアップと復元(Windows 7)]
   ・システムイメージのバックアップ
   ・ファイルのバックアップ

高速スタートアップを無効化

 [コントロールパネル]→ [ハードウェアとサウンド]→ [電源オプション]→ [電源ボタンの動作を選択する(システム設定)]→
    電源ボタンの定義とパスワード保護の有効化の[現在利用可能でない設定を変更します]をクリック→
    シャットダウン設定の「高速スタートアップを有効にする(推奨)」のチェックを外す→
    [変更の保存]を押下。

Window用領域の縮め方

 [ディスクの管理]→
    デフラグ
    Windows用領域のサイズ縮小

Ubuntu16.04 のインストールDisk

 WebからダウンロードしDVD-Rに書き出しておく。
 (レスキューディスクとしても重宝する)

Ubuntu16.04 インストール

キャプチャ画面で示します。(※画像はVirtualBoxでのインストール時のもの。ディアルブート用に模してある)

画面1

ub_01_.PNG
[Ubuntをインストール]ボタンを押下

画面2

ub_02.PNG
デフォルトのまま。[続ける]ボタンを押下

画面3

ub_03_.png
「それ以外」を選択。[続ける]ボタンを押下

画面4-1

ub_04_.png
 1.「空き領域」を選択
 2.「+」(追加)ボタンを押下

画面4-2 swap 領域の作成

ub_05_.png
 1.「基本パーティーション」
 2.「この領域の終点」
 3.「スワップ領域」
4.「OK」ボタン押下。

画面4-1 にて、再度
 1.「空き領域」を選択
 2.「+」(追加)ボタンを押下

画面4-3

ub_06_.png
 1. 残りの全容量
 2.「基本パーティーション」
 3.「ext4ジャーナリングファイルシステム」
 4.「/」を選択
 5.「OK」ボタン押下

画面4-4

ub_07_.png
ブートローダをインストールするデバイスを「/dev/sda4」(画面4-3 で作成したパーティーション) を選択し、
「インストール」ボタンを押下

画面5

ub_08.PNG
デフォルトのまま

画面6

ub_09.PNG
デフォルトのまま

画面7

ub_10.PNG
 指示に従い入力し「続ける」ボタンを押下

インストールが完了したら再起動。

Windows10 側で、ディアルブート設定

EasyBCD を用いて設定します。

画面1 起動時画面

BCD_01.PNG
Windows10 用 の Entry のみ存在している。

画面2 Ubuntu 用の Entry 作成する

BCD_02_.png
 1. 「Add New Entry」ボタン押下
 2. 「Linux/BSD」タグを選択
 3. type: に「GRUB 2」を選択。(GRUBではない
 4. Name: に「ubuntu1604」を入力
 5. Drive:に「Partetin4 」 (Ubuntu をインストールしたパーティーション)を選択
 6. 「Add Enty」ボタンを押下

画面3 Entry 確認

BCD_03_.png
1. 「View Setting」ボタンを押下
2. Entry #2 が追加されている

時刻設定

Windows側の時刻設定をUTC にする。(しないと、WindowsとUbuntuで時刻が9時間ずれる)
管理者権限でコマンドプロンプトを開き、下記のコマンドを実行する。

> reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

再起動。
水色背景で ブートOS の選択画面が表示され、Ubuntu16.04 を選択。

Ubuntu 16.04 環境構築

ソフトウェアアップデート

$ sudo apt-get update 
$ sudo apt-get upgrade

nvidia driver.

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

再起動

cuda

https://developer.nvidia.com/cuda-downloads から cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb をダウンロードする。

$ sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda

下コマンドでは cuda 7.5 がインストールされる。 8.0を使いたいため、下は行わない

$ sudo apt install nvidia-cuda-toolkit

cuda インストール先にpath を通す。

~/.profile の末尾に 下行を追加

PATH="$PATH:/usr/local/cuda/bin"

反映させる。

$source ~/.profile

cudnn

https://developer.nvidia.com/rdp/cudnn-download から下記をダウンロード

  • cuDNN User Guide
  • cuDNN Install Guide (インストール時に目を通す)
  • cuDNN v6.0 Runtime Library for Ubuntu16.04 (Deb)
  • cuDNN v6.0 Developer Library for Ubuntu16.04 (Deb)
  • cuDNN v6.0 Code Samples and User Guide for Ubuntu16.04 (Deb)
$ sudo dpkg -i libcudnn6_6.0.21-1+cuda8.0_amd64.deb
$ sudo dpkg -i libcudnn6-dev_6.0.21-1+cuda8.0_amd64.deb
$ sudo dpkg -i libcudnn6-doc_6.0.21-1+cuda8.0_amd64.deb

OpenBLAS

$ sudo apt-get install libopenblas-base libopenblas-dev

Google Chrome

$ wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 
$ sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list
$ sudo apt-get update 
$ sudo apt-get install libindicator7 libappindicator1
$ sudo apt-get install google-chrome-stable

Google Drive

$ sudo add-apt-repository ppa:alessandro-strada/ppa
$ sudo apt-get update
$ sudo apt-get install google-drive-ocamlfuse
$ google-drive-ocamlfuse

GNOME(Unity)の場合は「自動起動するアプリケーション」 (gnome-session-properties) を起動し、
以下のように追加する(ディレクトリ名は上記設定に合わせる)。

名前 : google-drive-ocamlfuse
コマンド : google-drive-ocamlfuse /home/ユーザ名/GoogleDrive

C/C++

$ sudo apt-get install clang
$ sudo apt-get install gcc-multilib g++-multilib

GStreamer

$ sudo apt-get install libgstreamer-plugins-good1.0-dev
$ sudo apt-get install libgstreamer-plugins-bad1.0-dev

jansson

$ sudo apt-get install libjansson4
$ sudo apt-get install libjansson-dev
$ sudo apt-get install libjansson-doc

curl

$ sudo apt-get install libjansson-dev

ffmpeg

$ sudo apt-get install ffmpeg

openGL

$ sudo apt-get install freeglut3-dev
$ sudo apt-get install libglfw3-dev
$ sudo apt-get install libglfw3-doc
$ sudo apt-get install libglewmx-dev

ランチャ

Ubuntu の ディスクトップの 仮想画面(ワークスペース)数の調整用ツール

ランチャの Ubuntu SoftWare から Unity Tweak Tool をインストール

core 出力

~/.bashrc の最下行に 下記行を追加
    ulimit -c unlimited     

/etc/sysctl.conf に 下記行を追加
    kernel.core_pattern = /dev/shm/core.%p

/etc/default/apport の enabled=1 を enabled=0 に変更

java (eclipse 用)

$ sudo apt-get install default-jre

python 環境

$ sudo apt install python-setuptools
$ sudo easy_install virtualenv
$ sudo easy_install virtualenvwrapper
$ sudo apt-get install build-essential cmake pkg-config
$ sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev

$ sudo apt-get install libgtk-3-dev
$ sudo apt-get install libatlas-base-dev gfortran
$ sudo apt-get install python3.5-dev

$ cd ~
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py
$ sudo pip3 install virtualenv virtualenvwrapper
$ sudo rm -rf ~/get-pip.py ~/.cache/pip

$ sudo pip3 install matplotlib
$ sudo pip3 install pandas
$ sudo pip3 install jupyter

virtualenv & virtualenvwrapper

$ export WORKON_HOME=$HOME/.virtualenvs
$ source /usr/local/bin/virtualenvwrapper.sh

$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
$ echo -e "export PYTHONPATH=/usr/lib/python3/dist-packages/" >> ~/.bashrc
$ echo -e "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
$ echo -e "export WORKON_HOME=/home/ub/.virtualenvs" >> ~/.bashrc
$ echo -e "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
$ source ~/.bashrc

$ mkvirtualenv ml -p python3

OpenCV 3.2

cuda 使用させたいため build する。

依存パッケージ インストール
$ sudo apt-get -y install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg cmake qt5-default liblapacke-dev checkinstall
ソース取得
$ cd /tmp
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip
展開 (/tmp)
$ unzip opencv-3.2.0.zip
$ unzip opencv_contrib.zip  
ビルド用ディレクトリ作成
$ cd /tmp/opencv-3.2.0/
$ mkdir build
(ml)環境 活性化
$ workon ml 
cmake オプション指定
(ml)$ cmake -D CMAKE_BUILD_TYPE=RELEAS -D CMAKE_INSTALL_PREFIX=/opt/opencv-3.2.0 -D INSTALL_PYTHON_EXAMPLES=ON -D ENABLE_NEON=OFF -D WITH_TBB=OFF -D BUILD_TBB=OFF -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_CUBLAS=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules -D BUILD_opencv_freetype=ON -D PYTHON_EXECUTABLE=~/.virtualenvs/ml/bin/python -D BUILD_EXAMPLES=ON ..
build & install (3時間以上要した)
(ml)$ make -j8
(ml)$ sudo make install
Python用 .so への シンボリックリンク作成
$ cd ~/.virtualenvs/ml/lib/python3.5/site-packages/
$ ln -s /opt/opencv-3.2.0/lib/python3.5/site-packages/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so

プロファイラー gperftools(Google)

$ sudo apt-get install google-perftools
$ sudo apt-get install libgoogle-perftools-dev
$ sudo apt-get install kcachegrind
t-tkd3a
機械学習 について実装できる位の理解を目指します。学ぶ過程の資料・成果を公開していきます。 また Linux での 開発環境・ツール類についても忘備録かねて記載していきます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away