新しくパソコンを組みなおすに当たり、これまで押し入れの肥やしになっていたジャンクパーツを集め、もう1台パソコンを組むことにしました。

ありあわせのパーツでサブPCを組み立てるにあたり、メインPCのWindowsに対して、せっかくの機会なので、見分を広めるためにもOSとしてLinuxを導入することを決意!、、というのは建前で、

本音としては、中身にお金をかけたくないという安易な気持ちで無料OSのLinux(Ubuntu)に手を出し、まともに使い始められるまで2日間悪戦苦闘するはめになりました('д` ;)。
そこで、今回は解決まで最も時間のかかった「グラフィックドライバーのインストールと適用」までを備忘録的にお届けしたいと思います。


Linuxでは、Windowsの実行ファイルを格納する拡張子.exeのファイルは使用できないため、Windowsに慣れている方にとっては少し複雑に感じることもあると思います。状況に応じて下記必要な操作を行ってください。



OSと環境


Linux(Ubuntu)を実装するうえで使用した環境は以下の通り
【構成】
  • マザーボード:ASUS H97-PRO
  • グラフィックボード:NVIDIA GeForce GTX750Ti
  • 4Kディスプレイ(解像度3840×2160以上)
  • 4K対応HDMI接続
【Ubuntu】
  • Ubuntu Desktop 20.04
グラフィックボード端子に4K表示対応のHDMIケーブルを接続し、ディスプレイと接続しています。
パソコン性能的には十分に解像度3840×2160(4K)以上を出力可能な構成です。

Ubuntuインストール時にインターネットに接続できる状態の場合、各種ドライバーを自動でインストールするか尋ねられます。そのため、OSをインストールした段階でドライバーなどサードパーティのソフトウェアがインストールされている状態です。


4K表示できるまでの試行錯誤

  1. 適用されているドライバーの確認
  2. デフォルトドライバの無効化
  3. Nvidia公式サイトからドライバダウンロード
  4. コマンドでのドライバー自動インストール
  5. GUI操作でのドライバーインストール
  6. xrandrを使ってみる
  7. wineを使って.exeを使おうとする(迷走)
  8. コマンドでNvidiaサイトからインストール
  9. BIOS/UEFIでセキュアブートを無効化(成功)

結局、BIOS/UEFIでセキュアブートを無効にすることでインストールされたドライバーが適用され4K表示できるようになりました。

改善した今考えると、セキュアブートをUEFIで無効にしていなかったことが原因で、ドライバーの自動インストールもしくは、GUI操作によるドライバインストールなどセキュアブート無効後に行えば、すべてうまくいっていたと思います。

以降、必要な個所とハマらないための注意点などまとめています。まずは、私の反省点を生かしてお使いのPCのセキュアブートが無効になっていないか確認することから初めてください。確認の方法はこちら



グラフィックボード,初期ドライバー等確認


グラフィックボードの本来の性能を引き出すためには、NVIDIAでリリースしているドライバをインストールすることをお勧めします。また、4Kディスプレイを使用する場合、3Dグラフィックなど含め本来の性能を引き出すにはNVIDIAのドライバが必須のようです。


ひとまず、現在適用されているドライバ、グラフィックボード情報等を確認しておきましょう。NVIDIAのグラフィックボードを使用している場合、「nouveau」というドライバーが読み込まれている場合が多いようです。

また、「llvmpipe」というドライバーが適応されている場合もあります。(私の場合はこちらでした)

これらデフォルトで適応されているドライバーでは、少なくとも私の環境では解像度1920×1080までが上限でした。

GUI上での確認方法

  1. 「設定」を開く
  2. 「✦このシステムについて」のグラフィックを確認する
llvmpipe

コマンドでの確認方法

端末を開き以下コマンドを入力
$ sudo lshw -C display
確認できるグラフィック情報例↓
*-display
	詳細:
	製品:
	ベンダー:
	物理ID:
	パス情報:
	バージョン:
	幅:
	クロック:
	性能:
	設定:
	リソース:

また、以下コマンドで適切なGPUとドライバーを確認可能
$ ubuntu-drivers devices
確認できる情報例↓
== /sys/devices/pci0000:00/0000:00:00.0 ==
modalias :
vendor   :
model    :
manual_install:
driver   :推奨ドライバー欄
driver   :推奨ドライバー欄



デフォルトグラフィックドライバーの無効化


上記で確認したような、デフォルトで読み込まれているグラフィックのドライバーが適応されたまま、NVIDIAのドライバをインストールすると、互いに競合することがあるとかないとか、、

そこで、ドライバのインストールに必要な前処理として、デフォルトでロードされている「nouveau」ドライバを無効化しておきます。
「llvmpipe」が適用されていた私の場合、無効化しなくても特に問題なかったような気がします。無用かもしれませんが念のため行っておいても構いません。

nouveauの状態確認
$ lsmod | grep nouveau
いろいろ情報が返ってくるが、特にここでは気にしない。
※何も返ってこない場合は無効化されている。もしくは、初めから適用されていないためここで終了

nouveauを無効化
$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf
最終行に以下を追記(ファイルがない場合は新規作成される)
blacklist nouveau
option nouveau modeset=0
「vi」はLinuxで使われるテキストエディタで「$ vi ファイル名」とすることでファイルの編集画面に入ります。この「vi」は特殊な操作方法をしており基本的にすべての操作をキーボードのみで行うこととなります。
基本操作
  1. 「i」と入力でインサートモードに入る
  2. 必要な編集を行う
  3. ESCキーでインサートモードを出る
  4. 「:w」と入力で保存
  5. 「:q」と入力でviを終了
設定の有効化
$ sudo update-initramfs -u
再起動
$ sudo reboot
正常に無効になっていることを確認
$ lsmod | grep nouveau
先ほどまでと違い、何も返ってこなければ正常に無効化されている。



コマンドでドライバー自動インストール


自動インストールでドライバーが適応できれば無事終了です。

パッケージリストの更新
$ sudo apt update
インストール済みのパッケージをアップグレード(最新バージョンをインストール)
$ sudo apt upgrade
必要に応じてパッケージの削除を伴う更新を行う場合に実行
$ sudo apt full-upgrade
「full-upgrade」は保留とされるパッケージが存在する場合に実行することで、パッケージを削除しないと更新できないパッケージを処理してくれる。

(方法1)
自分のGPUと適切なドライバの確認
$ ububtu-drivers devices
上記で確認したコマンドのバージョンを指定し、以下を実行
$ sudo apt install nvidia-driver-"上記コマンドで確認したバージョン"
もしインストール中に既存のプログラムとの競合が発生した場合、以下で関連プログラムを削除して再試行
$ sudo apt --purge autoremove nvidia*


(方法2:初心者推奨)
以下のコマンドで適切なドライバーをオートインストール
※この方法では自動で適切なドライバをインストールするため、特定のドライバをインストールしたい場合には方法1を行う
$ sudo ubuntu-drivers autoinstall
実行後、sudoからパスワードを求められるので打ち込む。(※パスワードはタイプしても表示されない)インストール時に設定したパスワードでOK

(方法1または2後)再起動
$ sudo reboot
必要に応じて行う。

再起動後以下のコマンドを実行
$ nvidia-smi
nvidiaのドライバ情報を確認できれば完了です。



GUI操作でのドライバーインストール


セキュアブートの無効化さえされていれば、不慣れなコマンドで操作を行わなくとも「設定」から簡単にドライバをインストールすることができます。

1.「設定」→「✦このシステムについて」→「ソフトウェアのアップデート」
GUI1com

2.「追加のドライバー」
GUI2com

ここで適用することができるドライバーをインストール可能




NVIDIAサイトからインストール


「NVIDIA ドライバ」等でブラウザで検索すると以下のようなサイトにたどり着けると思う。

nvidiahpcom
https://www.nvidia.co.jp/Download/index.aspx?lang=jp

Ubuntu上でFirefoxやGoogle Chromeでこのサイトへ行き、「Linux 64-bit」の製品に応じたドライバを入手しようとしたが、製品シリーズの欄でどうしても必要とする製品を選択できない謎の現象に見舞われた。

私がただ知識不足なだけかもしれないが、何度必要な製品シリーズを選んでも強制的に特定の製品シリーズに変更される。もしかしたら強制的に選ばれていたドライバが正しいものなのかもしれないが、今回は詳しいことが分からなかったため、コマンド上でサイトからドライバーをインストールする手法を取った。


補足


上記のサイトではドライバをダウンロードできなかったが、下記のページではGeForceのドライバを正常に選択できるようなので一度試してほしい。

nvidia2com
https://www.nvidia.com/en-us/geforce/drivers/



前置きしておくと、この方法の途中でセキュアブートキーにあれこれできる項目でNVIDIAのドライバを正常に適用することができるようだが、私は再起動した段階で何度行ってもエラーが生じたためこの方法は諦めた。一応手順を以降にまとめる

手順

パッケージリストの更新
$ sudo apt update
「build-essential」(パッケージ)のインストール
$ sudo apt install -y build-essential
Download(ディレクトリ)へ移動
$ cd Download
URLを指定してシェルスクリプトをダウンロード
$ wget http://us.download.nvidia.com/XFree86/Linux-x86_64/440.59/NVIDIA-Linux-x86_64-440.59.run
シェルスクリプトに対する権限を設定
$ chmod u+x NVIDIA-Linux-x86_64-440.59.run
シェルスクリプトの実行
$ sudo ./NVIDIA-Linux-x86_64-440.59.run
ここから、表示される選択肢の必要な項目を選んでいく。ここでも操作はすべてキーボードで行うため「Tabキー」で選択、「Enterキー」で決定であることに注意する

正しい選択肢については、以下サイトなどを参考に




BIOS/UEFIでセキュアブートを無効化


自分の場合は上記までの工程どれを試みてもNVIDIAドライバーが適応されず、この方法で最終的に無事適応させることができました。

これまでは「端末」、Windowsで言うところの「コマンドプロンプト」やGUI内の操作など、あくまでOSの範囲でのアプローチを行っていましたが、機能階層の違うOS外のBIOS/UEFIでの設定を変更することで解決しました。

解決法

※Windowsとのデュアルブート構成の場合:
Windows側で起動しなくなる可能性があるようなので下記補足など参考にして署名キーなどを作成し、セキュアブートを維持したままドライバーを有効にする手順を行ってください。

OS構成がLinuxだけの場合:
  1. BIOS/UEFI画面を開く(起動時にF2またはDELキー)
  2. Advanced Mode(F7)⇒Boot(起動)⇒Secure Boot
  3. セキュアブートキーの削除
セキュアブートの項目はグレーアウトしていて選択できませんが、セキュアブートキーの設定から無効にすることが可能です。

セキュアブートキーは削除しても、元に戻せるため消してしまって大丈夫です。
メーカーにより方法が異なるため、詳しくはマニュアルに従ってください。

セキュアブート【Secure Boot】ドライバーやOSなどブートソフトウェア各部の署名をチェックし、改竄されていないかチェックするセキュリティ機能。起動時のデジタル署名をチェックし、署名があるソフトウェアのみ実行する。
セキュリティの向上が見込めるが、デジタル署名のないソフトウェアの実行を行うと拒否されることがあるため、そのような場合は意図的にセキュアブートを無効化する。

Since Ubuntu kernel 4.4.0-20 the EFI_SECURE_BOOT_SIG_ENFORCE kernel config has been enabled. That prevents from loading unsigned third party modules if UEFI Secure Boot is enabled. The easiest way to fix this issue is to disable Secure Boot in UEFI (BIOS) settings.
こちらの情報によると、Ubuntuカーネル4.4.0-20以降、UEFIセキュアブートが有効になっている場合、署名されていないドライバーをロードできなくなったとのこと


補足

コマンド操作でSecure Bootの無効化を行う方法もありますが、このやり方では以下のサイトでも取り上げられている「ドライバーのインストール時"5%"でビルドが止まるバグ」によりループに陥り、私はできませんでした。

一応参考↓

そもそもセキュアブートが障害となっていることを知っているか、よほど前知識がある方でないと解決策を見つけることが難しいと思います。ハマってしまうとなおさらです。

私自身Linuxを触る機会がめったにないので、コマンドが全く分からず、四苦八苦しながらドライバーを適用することとなりました。Steamのゲームを楽しむくらいならLinuxでも十分問題ない動作を確認することができました!



xrandrを使ってみる【ドライバー適用後】


直接ドライバーのインストールには関係ないのですが、ドライバーの適用後4Kで表示されない場合、必要に応じて「xrandr」を使用し画質の変更を行うことができるようです。

必要に応じて↓



参考:
UbuntuへNVIDIAのドライバを入れる際の注意点


このエントリーをはてなブックマークに追加
コメントを閉じる

コメント

コメントフォーム
記事の評価
  • リセット
  • リセット