💻

Razer Blade15にUbuntu22.04をホストインストールする

2023/04/15に公開

前回Razer BladeにUbuntu20.04をホストインストールしたが、今回はUbuntu22.04を
クリーンインストールしてみたので、そのときのメモを残しておく。

まずは、Ubuntu22.04のISOダウンロードしてEtcherでUSBメモリに書き込む。

https://jp.ubuntu.com/download

USBメモリから起動して、OEMインストールする。OEM名、パスワードを設定する。

パスワード設定

OEMユーザで最初自動ログインされるので、ここでパスワード入力とか緩くするなどしておいた。
(個人的にデフォルトだと都合が悪かったから。困ってないならやる必要なし)

> sudo vi /etc/security/pwquality.conf

minlen = 6 #最小長さ
minclass = 1 #使用する文字種類

今回は普段使うユーザ名をubuntuとした。パスワードはいつものを設定。
そのあとはとりあえず、サスペンドなどの設定を行った。

日本語ロケールでセットアップしたところ、ディレクトリ名が日本語になる。
これはこれで都合悪いので、英語表記に変更。

LANG=C xdg-user-dirs-gtk-update

キーボード設定で日本語(Mozc)を追加すると日本語入力できるようになる。

SSHサーバーインストール

openssh-serverがインストールされてなかったので、インストール。
インストールする場合、openssh-clientを削除してから改めてインストールしたほうが良い(依存関係のエラーが出る可能性がある)

> sudo apt-get remove –purge openssh-client
> sudo apt-get install openssh-server

サスペンド設定

いろいろ勝手にサスペンドされると困るので以下の対応をした。

  1. 閉じてもサスペンドしないようにする
  2. 電源ボタン押したらサスペンド

というようにしている。長時間計算させるときなど閉じてもスリープさせないほうが都合がいいのかもしれない。

【Ubuntu】蓋を閉じてもノートPCをスリープにしない方法
https://nisshingeppo.com/ai/ubuntu-nonsleep/

> sudo vi /etc/systemd/logind.conf

HandleLidSwitch=ignore

> sudo reboot

NVIDIA関連

以下の流れでドライバのインストールを実施した。

  1. カーネルドライバnouveauをロードさせないように設定する。
  2. UEFI Secure BootをOFF
  3. インストールしたいCUDAバージョンのrunfileを取得して、ついでにNVIDIAドライバもインストールする。

実は、ドライバのインストールはいろいろハマっていて、
結局のところNVIDIAドライバのインストールは
CUDAライブラリのインストーラーに任せるのが一番成功率高い。

apt installとか公式サイトからDLしたドライバ単体インストールなどやったが、最終的にnvidia-smiがエラーになったりしていた。

  1. nouveauをロードさせないようにブラックリストに登録して再起動する。
> sudo vi /etc/modprobe.d/blacklist.conf

blacklist nouveau

> sudo update-initramfs -u
> sudo reboot
  1. BIOSの設定でセキュアブートの設定をOFFにして再起動

  2. CUDAライブラリをインストールする。

今回はCUDA v11.8をインストール。ここでのポイントは、Driver v520.61を一緒にインストールすること。

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

> sudo init 3 # GUIを停止しないとエラーになる

> chmod +x cuda_11.8.0_520.61.05_linux.run
> ./cuda_11.8.0_520.61.05_linux.run

CUDA Installer 
 - [X] Driver
      [X] 520.61.05
 + [X] CUDA Toolkit 11.8
   [ ] CUDA Demo Suite 11.8
   [ ] CUDA Documentation 11.8
 - [ ] Kernel Objects
      [ ] nvidia-fs
   Options
   Install

環境変数を設定

> vi ~/.bashrc

export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64

cuDNNインストール(CUDA v11.8用)

NVIDIAのサイトにログインしてcuDNNのアーカイブを取得する。

> wget https://developer.nvidia.com/downloads/compute/cudnn/secure/8.8.1/local_installers/11.8/cudnn-linux-x86_64-8.8.1.3_cuda11-archive.tar.xz/
> tar xvf cudnn-11.2-linux-x64-v8.1.1.33.tgz
> cd cudnn-linux-x86_64-8.8.1.3_cuda11-archive/
> sudo cp include/* /usr/local/cuda/include/
> sudo cp lib/* /usr/local/cuda/lib64/

無事インストールできたか確認

> nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

> nvidia-smi -q

==============NVSMI LOG==============

Timestamp                                 : Sat Apr 15 15:53:33 2023
Driver Version                            : 520.61.05
CUDA Version                              : 11.8

Attached GPUs                             : 1
GPU 00000000:01:00.0
    Product Name                          : NVIDIA GeForce RTX 2060
    Product Brand                         : GeForce
    Product Architecture                  : Turing

DockerとNVIDIA toolkitインストール

Docker内でもGPUを使いたいので、Dockerだけでなく、NVIDIA toolkitも公式のやり方でインストールする。

Dockerインストール方法は以下
https://docs.docker.com/engine/install/ubuntu/#set-up-the-repository

> sudo gpasswd -a $USER docker
ユーザ ubuntu をグループ docker に追加

> docker -v
Docker version 23.0.3, build 3e7cbfd

NVIDIA Container Toolkitの設定を以下の手順でやる。

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

セットアップできたら、CUDAのDockerコンテナを起動して、コンテナ内でnvidia-smiを実行できればとりあえずOK。
nvidia-smi -LでGPU名だけ表示している。

> sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi -L

GPU 0: NVIDIA GeForce RTX 2060 (UUID: GPU-24ea6b18-f524-f10d-9c53-4579dbeb33f6)

リモートデスクトップ設定

Ubuntu22.04からリモートデスクトップでログインできる。ただし、リモート側でログインした状態じゃないとログインできない。

https://arakoki70.com/?p=7381

ただし、Win11のリモートデスクトップから接続すると、パイプ("|")が入力できない。(SSHログインしてターミナルからは入力できる) Win側のバグなのか、UbuntuのRDPバグどちらかだと思われる。

リモートデスクトップで接続してエディタでコード書いたりする場合、パイプが入力できないのは致命的。
どうにかしてほしい。。

Visual Studio Codeのリモートアドオンでコーディングするのが無難かもしれないし、コーディングしない場合はとりあえず使える。

あとは、エディタなど必要なアプリをインストールしてとりあえず完了とした。

Discussion