久しぶりにPCのセットアップを行ったのでメモっておく。
- ubuntu16.04LTSのインストール
- nomodesetを設定してインストール
- CUDA8とCUDNN6のインストール
- Anaconda3のインストール
- tensorflowのインストール
- GALLERIA ZZの有線LANドライバのインストール
今回は、以下のMSIとGALLERIA ZZに元々ついているGTX1080ti。大きさが違いすぎて驚き。MSIのはデカすぎて、DELL precision twoerの蓋が閉まらないので、GALLERIA ZZについていたのを、DELL precision towerに挿し、MSIのをGALLERIA ZZに挿した。
まず、Ubuntu16.04 LTSのインストールしたのだが、これまでのUbuntuインストール経験史上1,2位を争うくらい苦戦した。原因は、GTX1080tiというハイエンドで、Ubuntuにデフォルトでドライバが入っていないGGPUを挿した状態でインストールしたからである。
ubuntu16.04LTSのインストール
1) 以下から、ubuntu-16.04.3-desktop-amd64.isoをダウンロード
https://www.ubuntu.com/download/desktop
2)以下からMD5のchecksumを比較するソフトをダウンロード
http://www.nullriver.com/downloads/Install-winMd5Sum.exe
ダウンロードしたisoファイルに対応する以下のMD5と、上記のソフトで計算したMD5と一致していることを確認。
0d9fe8e1ea408a5895cbbe3431989295 *ubuntu-16.04.3-desktop-amd64.iso
http://releases.ubuntu.com/xenial/MD5SUMS
3) DVD-Rを入れて、ダウンロードしたisoファイルを右クリックし、「ディスクイメージの書き込み」を選択し書き込む
なお、以下のソフトを用いてisoファイルをUSBメモリに書き込んでもよい。
http://unetbootin.github.io/
https://etcher.io/
4) DVDを入れて起動し、起動時にF2を押してBIOSを立ち上げ、DVDから優先的にBootするように設定
nomodesetを設定してインストール
5) DVDから起動し、「Install Ubuntu」を実行。しかし、ずーと黒いスクリーンのまま。。。久しぶりに嫌な予感。
ここにきて、いろいろ調べると、gtx1080tiのドライバが入っていないので、表示上の問題がでていることがわかる。他でもトラブル続出状態。。。
https://askubuntu.com/questions/38780/how-do-i-set-nomodeset-after-ive-already-installed-ubuntu
https://qiita.com/bohemian916/items/8c7f0c4b3d3ea0958559
https://qiita.com/kunihikot/items/588f39b4b11024ae0c41
6)もう一度再起動して、今度は「Install Ubuntu」に「↓」で移動し「e」を押し編集モードに入る。 そして、「quiet splash」を「nomodeset」に書き換えて「F10」を押しインストールを開始する
7) インストールの言語を「日本語」に変えて手順に従って進む。なお、パーティションの切り方は、以下のようにする。
ーBoot用「EFIシステムパーティション」に100MB
ーSWAP用にメモリの容量+2GB
ー残りは、/(およびまたは/home)にマウントポイントを設定し、ext4フォーマットを割り当てる
8)インストールしたので再起動。通常のインストールに戻ったと思いきや、今度は紫の画面がずーーーと続く。嫌な予感。先ほどと同様にドライバの問題が起きているとのこと。
なお、DELL precision towerの場合は、Windows10とデュアルブートにしていたため、まだGRUB2のメニュが表示されるが、GALLERIA ZZの場合、マシンに依存するというよりは、Ubuntu単独ブートにしていたためGRUB2の画面がでず、最初から紫画面のまま。
DELLの場合は、GRUB2のメニューの"Ubuntu"(上の写真)にて"e"を押して、編集モードに入り、nomodesetを付ければ起動できたのだが、GALLERIA ZZは手の出しようがない。。。ちなみに、以下のブログでは、別パーティションにもう一つUbuntuをインストールして、GRUB2のメニューが出るように強引に対応したとのこと。
qiita.com
もう一つubuntuを入れるのはどうしても避けたいので、手元にある(もともとDELL Precision Towerに挿してあった)Quadro k620を、以下のように挿して起動したところ、ドライバがデフォルトに入っていたようで、見事に起動できた。
9) 起動後はどちらでも、/etc/default/grubの「GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"のイコール以降を、"queit splash nomodeset"に変える。そして、sudo update-grubを実行すると、再起動は問題なくできるようになった。
* GTX 1080tiのドライバーのインストール
以下を参考にして、gtx-1080tiのドライバーをインストールした。
qiita.com
上記の説明では、381のドライバーをインストールしているが、結局CUDA8をインストールする際に384.98のドライバがインストールされたので、このステップは必要ないかもしれない。。。追記:他のPCで試してみたが、このステップは飛ばしても(つまり、neauvouをブラックリストに入れて、381をインストール)、問題なかった。
CUDA8とCUDNN6のインストール
1) 以下から、cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.debおよびパッチのcuda-repo-ubuntu1604-8-0-local-cublas-performance-update_8.0.61-1_amd64.debをダウンロードする。
https://developer.nvidia.com/cuda-80-ga2-download-archive
2)以下を参考にレポジトリを作って、パッケージをインストールする
hirotaka-hachiya.hatenablog.com
> 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
3)次に以下のコマンドでパッチをあてる
> sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-cublas-performance-update_8.0.61-1_amd64.deb
4)次に、cudnn-8.0-linux-x64-v6.0.tgzを以下からダウンロードする
https://developer.nvidia.com/rdp/cudnn-download
5)以下のコマンドでインストール
> tar xzvf cudnn-8.0-linux-x64-v6.0.tgz > sudo cp -a cuda/lib64/* /usr/local/cuda-8.0/lib64/ > sudo cp -a cuda/include/* /usr/local/cuda-8.0/include/ > sudo ldconfig
6)最後に、パスを通す
> vi ~/.bashrc export PATH=/usr/local/cuda-8.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:%LD_LIBRARY_PATH > source ~/.bashrc
再起動し、secure bootをdisableにする(このステップを飛ばすと、ログイン画面が出るけれど、ログインできない症状が起こるので要注意。
7) GTX1080tiが認識されているか確認
> nvidia-smi Wed Dec 27 20:53:24 2017 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 384.98 Driver Version: 384.98 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 108... Off | 00000000:03:00.0 On | N/A | | 25% 46C P0 60W / 250W | 283MiB / 11163MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 1391 G /usr/lib/xorg/Xorg 158MiB | | 0 2139 G compiz 122MiB | +-----------------------------------------------------------------------------+ > lsmod | grep nvidia nvidia_uvm 671744 0 nvidia_drm 45056 1 nvidia_modeset 843776 4 nvidia_drm nvidia 13119488 188 nvidia_modeset,nvidia_uvm drm_kms_helper 151552 1 nvidia_drm drm 352256 4 nvidia_drm,drm_kms_helper
384.98のドライバが入っている。
Anaconda3のインストール
以下を参考にして、Anaconda3をインストールした。
hirotaka-hachiya.hatenablog.com
tensorflowのインストール
以下を参考にして、tensorflowのGPU版をインストールした。
hirotaka-hachiya.hatenablog.com
なお、Anacondaを/usr/local/anaconda3にルート権限で入れた場合、sudoで「pip install」を実行すると、パスが通ってないのでpipが無いとエラーがでる場合があるので要注意。/root/.bashrcにも以下のようにパスの設定をする必要がある。
export PATH=/usr/local/cuda-8.0/bin:/usr/local/anaconda3/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
GALLERIA ZZの有線LANドライバのインストール
GALLERIA ZZがやっと起動できるようになったと思ったつかの間、インターネットに繋がっていないことがわかった。
以下のようなドライバーe1000eのロード時にエラーが出ているようだ。
> dmesg | grep e1000e [ 2.026555] e1000e: probe of 0000:00:1f.6 failed with error -5
そこで、インテルのサイトからドライバーをダウンロードする。なお、バージョンは3.3.5.10と3.3.6 で動作確認ができたが、最新版の3.4.0.2では別のエラーがでて動かなかった。
https://downloadcenter.intel.com/ja/download/27158/-PCIe-Linux-
1) 下記のサイトによるとチェックサムのところでエラーが出ているようなので、下記のようにsrc/nvm.cのe1000e_validate_nvm_checksum_generic関数を、常に0を返すように変更する。
https://blog.spiralray.net/archives/474
s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw) { return 0; }
2)コンパイルしてインストール
> make > sudo make install
3) ドライバの読み込み
> sudo rmmod e1000e > sudo modprobe e1000e
4) 再起動時にもドライバを読み込むように設定
> sudo update-initramfs -u
なお、ここでも、secure bootをdisableにしないとドライバーがインストールできない問題が起こるので要注意。