前回 lspci を行って、 dGPU の存在は確認できたけれど、nvidia のグラフィックカードを使うソフトをインストールしようとすると軒並み失敗する。
曰く
Nvidia のビデオカードが無いじゃん
…なぜ、無いと判断されるのかと言うと、ドライバーが入っていないから。
これの判断は簡単でnvidia のドライバーが入っている時に同時に入るコマンド
$ nvidia-smi
を打ち込んでみて、そんなコマンドは無いとエラーが返ってきた場合はまずドライバーが入っていません。
Linux のビデオドライバーというのは Windows の様には手軽なものでは無く、インストール後カーネル(OSの核)に組み込んでやる必要がります。
カーネルの組み直しというと大事な気がするけれど、linux-surface をインストールした時点で実は1回カーネルが組み変っていたりするので、Linux では割とある事という認識で良いと思います。
ドライバーは Nvidia のホームページからダウンロードできて、恐らく
NVIDIA-Linux-x86_64- ~バージョン~ .run
というファイルのハズ。
.run というファイルは聞き馴れなかったけれど、実行権限を付けて
$ sudo ./xxxx.run
と直接実行するタイプのファイルだそうです。
で、実行してみると
というエラーが。
要約すると
Xサーバーが起動している間はインストール作業はできないよ
という事らしいです。
- ではXサーバーって何のサーバーだよって話ですが、これが面倒。
むかしむかし、コンピューターは文字を入力すると文字を返してくるCUI(キャラクタユーザーインターフェース)という、入出力を行う計算機でした。
※厳密には、それ以前のブラウン管ディスプレイすら無い時代にもコンピューターは存在します。戦艦アイオワに積まれていたアナログコンピューターとか
今から40年程前に流石にそれでは不便じゃないかと気づいて、今日のようなグラフィカルな入出力GUI(グラフィカルユーザーインターフェース)という物が作られ始めます。
UNIX を設計の母体とするOSグループ( UNIX Linux FreeBSD... )はこの GUI として X Window System というものを使う事にしました。
ただ、この X Window も大変シンプルなシロモノだったので、もうちょい使い勝手を良くしようという事で、盛り付ける形でさまざまなデスクトップ環境が産まれます。
GNOME KDE Xfce MATE 等です。
図にするとこんな感じ
で、ざっくり言うと、この X Window System を動かしているのが X Server。
つまり、これを止めろという事はGUI操作を辞めなさいという事。
GUIから操作しているのに、GUIを辞めろと言われると一見詰んだようにも見えますがやりようはあります。
ひとまず、説明を簡単にする為に成功したパターンのお話を順を追って書いていきます。
1.CUIベースへ退避
ショートカットキー Ctrl+Alt+F1~F6
これでひとまず CUI ベースのOSに移行します。
ちなみにログインのやり直しという形をとるので、最初にコンソールからユーザー名を聞かれます。
ユーザー名、パスワードを入力するとコマンド入力(文字入力)を受け付けるようになります。
尚、この状態から元のGUIに戻るショートカットは Ctrl+Alt+F7
2.X Server を止める
止める為のコマンドはデスクトップ環境により異なります。私の場合は LMDE5 MATE なので
$ sudo service lightdm stop
GUIが止まってしまったので、当然ショートカットを使ってもGUIへ戻れません。
3.ドライバーのインストール
$ cd ドライバーがあるフォルダ
$ sudo ./NVIDIA-Linux-x86_64- ~バージョン~ .run
4.X Server を起動
$ sudo service lightdm start
これももちろん、デスクトップ環境によってコマンドが異なります。
…以上の手順が無事に済めば再起動後にドライバーが組み込まれます。
- 実は失敗してました。
3のドライバーインストール時にこんなメッセージが
ERROR: Unable to load the kernel module ‘nvidia.ko’. This happens most frequently when this kernel module was built against the wrong or improperly configured kernel sources, with a version of gcc that differs from the one used to build the target kernel, or if another driver, such as nouveau, is present and prevents the NVIDIA kernel module from obtaining ownership of the NVIDIA GPU(s), or no NVIDIA GPU installed in this system is supported by this NVIDIA Linux graphics driver release.
要約すると
ドライバーをインストールしようとしているハードウェアになんかソフトがくっついてるから無理だわ nouveau とかね。
という事らしいです。
nouveau って何?という事で調べてみたら、Linux のエンジニアが Nvidia のハードをなんとか動かす為に作ったドライバー的な物らしいです。
なんとかって?という話なのですが、Nvidia は最近までドライバー情報を公開していませんでした。そこで Linux 側のエンジニアがなんとか動かせるように作ったのが nouveau という訳です。
ちなみに情報を公開したのは22年5月。前述したように、ドライバーはカーネルの組み直しを伴います。
22年4月にメジャーアップデートを行った Ubuntu のエンジニアはたった半月後に巨大な組み直し作業を迫られた事になりますね…鬼かな?
で、情報公開してこなかったくせに、邪魔な先住民が居るので除けないとドライバーはインストールできないと言っている訳です。
$ lsmod | grep video
等で確認すると標準の i915 (Core 系 CPU 内のビデオ機能)の他に nouveau が割り付けられていたりします。
そしてもう一つ、 nvidiafb というものも悪さをします。
これらはカーネルに組み込まれているので、カーネルに組み込まないで欲しいモジュールにリストアップして、その後カーネルを組み直す必要があります。
そのリストというのは名前そのまま blacklist なのですが、
/etc/modprobe.d/blacklist.conf
に追記します。ファイルが無かった場合はドキュメントの新規作成で作ってください。
追記内容は
blacklist nouveaublacklist nvidiafb
その後、
$ sudo update-initramfs -u
でカーネルに反映。
無事に終ったら再起動すると反映された状態で起動するハズです。
再度 lsmod 等を使って余計なモジュールが追加されていないかを確認して、前述のドライバーインストール手順にを行ってください。
- ドライバーが入った…が?
おお!夢にまで見た nvidia-smi !
このVRAM1GBの電源が落ちているGPUは正に Surface Book の dGPU !
Blender には GPU 選択オプションが!
レンダリングしてみたらちゃんと3MB分VRAMを消費している!
コレは成功したのでは!!
…と、思ったのですが。
…?!GPUの電源が落ちてる?
…つまりGPUは寝たままレンダリング用にVRAMを貸してくれただけの塩対応だったようです。
GPUはいつになったら起きるのか、道は険しいですね。
※2023/02/09追記
この3MBの消費はどうやらMSIそのものが消費している気がします。後日実際に動作した際には数百MBの消費をしているので、この程度では何もできませんしね。
0 件のコメント:
コメントを投稿