Ubuntu & ROS & Cuda インストール

引き続きつくばチャレンジネタです.
以前(1月位?)エントリに書いた,下記のロボットトレーニングなのですが,

daily-tech.hatenablog.com

はや8ヶ月.子分(笑)とのロボットトレーニングは進んでおりまして,現状の進捗はといいますと....

子分:PCにUbuntuがインストールできません(´・ω・`)
自分:おいっ(;´Д`)

という状況です(笑)実は二人とも仕事を変わって,特に子分に関しては新婚ホヤホヤという状態で,,,二人ともいろんなライフイベントがあった半年だったんです.「どんな凸凹コンビだよ」って話なんですが,あと2ヶ月,ここからがんばります...

PC購入

子分はもともとハードウェアが専門でして,まともなPCをもっていなかったので,奥さんを説得してPCを購入するところから始まりました.購入するときに考えた条件は...

  • 持ち運びできる.
  • ロボットに載せられる.(制御用PCとして使える)
  • 画像処理をするかもしれないから,GPUがほしい.
  • できるだけ安く...

という条件で探した結果,G-Tuneを購入することにしました.同一スペックのゲーミングPCで比較すると,やっぱりG-Tuneが一番安いように思います.

www.mouse-jp.co.jp

CPU      : インテル® Core™ i7-8700
グラフィックス : GeForce® GTX 1050
メモリ     : 16GB PC4-19200
M.2 SSD    : 256GB
ハードディスク : 1TB

購入した時は119,800円だったんですけど,このスペックでこの値段...パソコンもどんどん安くなりますね...

Ubuntu のインストール

で,Ubuntuのインストールに入ったんですが,ここで早くもトラブル...昨年に引き続いて Ubuntu16.04 & ROS Kinetic を使おうと思っていたんですが,新しいPCにUbuntu がインストールできず...orz Grubのメニュー画面で "Install Ubuntu" を選択して実行するも,USBがフリーズしてそれから全くインストールが進まないという状況になってしまいました.結構ハマったんですが,下記のサイトを参考にGRUBの起動オプションを変更してやればインストールできるということがわかり,ようやくインストール完了.

peshmerge.io

このPCの場合はgrubの起動オプションにacpi=offをつけてやればOKでした.で,acpi=offをつける場所なんですが,イマイチコマンドの意味を理解せずにやってたのでここでもはまったのですが,下記のように追記すればOKです.

f:id:rkoichi2001:20190922122321p:plain
grubの起動メニューに追記.

ということで, Ubuntu のインストール完了.めでたしめでたし.とはいかず...acpi=off の状態ではグラボがまともに使えないことが発覚.ちょっと粘ってみたものの,解決方法がわからなかったので Ubuntu 18.04 に乗り換えることにしました...この時点で日曜が終了(笑)OSのインストールが秋分の日に持ち越されることとなりました.

ちなみにUbuntu 18.04でもいまいちスッキリインストールが進まなかったので,同じく grub の起動画面で nomodeset というオプションをつけてインストールをすすめました.(上記写真の acpi=off の部分を nomodeset に置き換えた感じです.)

nomodeset の詳細は下記の通りで,BootのときにVideo Driver を読み込まないようにするみたいですね.確かに,nomodeset をつけて起動するとBoot 画面が解像度が荒い状態で立ち上がりました.

nomodeset

The newest kernels have moved the video mode setting into the kernel. So all the programming of the hardware specific clock rates and registers on the video card happen in the kernel rather than in the X driver when the X server starts.. This makes it possible to have high resolution nice looking splash (boot) screens and flicker free transitions from boot splash to login screen. Unfortunately, on some cards this doesnt work properly and you end up with a black screen. Adding the nomodeset parameter instructs the kernel to not load video drivers and use BIOS modes instead until X is loaded.

もっと詳細が知りたい方はこちらを!
https://ubuntuforums.org/showthread.php?t=1613132

Nvidiaのドライバインストール

せっかくGPU付きのPCを買ったので,Nvidia Driver と Cudaのインストールです.

Nvidia Driver の ppa 追加
sudo add-apt-repository ppa:graphics-drivers/ppa
搭載グラフィックドライバの確認
lspci | grep -i nvidia

01:00.0 VGA compatible controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)

と表示されます.

対応ドライバの確認

今までは Cuda 9.0 を使っていたのですが,Ubuntu も変えたので Cuda も変えることにしました.Cuda10 の対応ドライバは下記のサイトを見た感じ「>= 410.48」となっていたので,このバージョンより新しいドライバならOKそうです.
docs.nvidia.com

nouveauドライバのblacklist化

nouveau というオープンソースのドライバと NVIDIA のドライバがぶつかってしまうらしいので,これを立ち上げないようにします.

gedit /etc/modprobe.d/blacklist-nouveau.conf

blacklist nouveau
options nouveau modeset=0

を書き込みます.

ドライバのインストール

ここまでくれば,あとはインストールです.最後に,下記のコマンドで推奨ドライバを確認します.

ubuntu-drivers devices

vendor   : NVIDIA Corporation
model    : GP107M [GeForce GTX 1050 Mobile]
driver   : nvidia-driver-415 - third-party free
driver   : nvidia-driver-430 - third-party free
driver   : nvidia-driver-435 - third-party free recommended
driver   : nvidia-driver-390 - third-party free
driver   : nvidia-driver-410 - third-party free
driver   : xserver-xorg-video-nouveau - distro free builtin

と表示されます.で,435が推奨とのことなのですが,435は新しすぎるような気がしたので,430をインストールすることにしました.

sudo apt install nvidia-driver-430

で再起動して,下記のコマンドが使えるようになっていればOKです.

nvidia-smi

で,下記のような表示が出ればOK.

-----------------------------------------------------------------------------+
NVIDIA-SMI 430.50 Driver Version: 430.50 CUDA Version: 10.1
-------------------------------+----------------------+----------------------+
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 1080 Off 00000000:65:00.0 On N/A
28% 53C P0 49W / 200W 794MiB / 8116MiB 0% Default
-------------------------------+----------------------+----------------------+
-----------------------------------------------------------------------------+
Processes: GPU Memory
GPU PID Type Process name Usage
=============================================================================
0 1626 G /usr/lib/xorg/Xorg 40MiB
0 1673 G /usr/bin/gnome-shell 49MiB
0 2045 G /usr/lib/xorg/Xorg 383MiB
0 2174 G /usr/bin/gnome-shell 141MiB
0 2512 G ...quest-channel-token=5223014432444062971 176MiB
-----------------------------------------------------------------------------+

Cudaのインストール

Cudaは下記の Nvidia のサイトから持ってきてインストールします.ここまで来ていれば Cuda のインストールはすんなり行くと思うのですが,GPUのドライバはすでにインストール済なので,「インストールしますか?」と聞かれた時点で No と回答します.

Cuda のダウンロード先

developer.nvidia.com

Cuda のインストール
sudo sh cuda_10.0.130_410.48_linux.run
sudo sh cuda_10.0.130.1_linux.run

作業完了!!!

というわけで,PCインストールに熱狂した充実のシルバーウィーク後半戦でした(笑)頑張ったご褒美に,子分が牛角焼肉をおごってくれることでしょう!

f:id:rkoichi2001:20190925071709j:plain
3台のPCたちと..

ということで,ここから頑張るぞ!(;・∀・)