新しくパソコンを組みなおすに当たり、これまで押し入れの肥やしになっていたジャンクパーツを集め、もう1台パソコンを組むことにしました。
ありあわせのパーツでサブPCを組み立てるにあたり、メインPCのWindowsに対して、せっかくの機会なので、見分を広めるためにもOSとしてLinuxを導入することを決意!、、というのは建前で、
本音としては、中身にお金をかけたくないという安易な気持ちで無料OSのLinux(Ubuntu)に手を出し、まともに使い始められるまで2日間悪戦苦闘するはめになりました('д` ;)。
そこで、今回は解決まで最も時間のかかった「グラフィックドライバーのインストールと適用」までを備忘録的にお届けしたいと思います。
目次
Linuxでは、Windowsの実行ファイルを格納する拡張子.exeのファイルは使用できないため、Windowsに慣れている方にとっては少し複雑に感じることもあると思います。状況に応じて下記必要な操作を行ってください。
OSと環境
Linux(Ubuntu)を実装するうえで使用した環境は以下の通り
【構成】
グラフィックボード端子に4K表示対応のHDMIケーブルを接続し、ディスプレイと接続しています。- マザーボード:ASUS H97-PRO
- グラフィックボード:NVIDIA GeForce GTX750Ti
- 4Kディスプレイ(解像度3840×2160以上)
- 4K対応HDMI接続
- Ubuntu Desktop 20.04
パソコン性能的には十分に解像度3840×2160(4K)以上を出力可能な構成です。
Ubuntuインストール時にインターネットに接続できる状態の場合、各種ドライバーを自動でインストールするか尋ねられます。そのため、OSをインストールした段階でドライバーなどサードパーティのソフトウェアがインストールされている状態です。
4K表示できるまでの試行錯誤
- 適用されているドライバーの確認
- デフォルトドライバの無効化
- Nvidia公式サイトからドライバダウンロード
- コマンドでのドライバー自動インストール
- GUI操作でのドライバーインストール
- xrandrを使ってみる
- wineを使って.exeを使おうとする(迷走)
- コマンドでNvidiaサイトからインストール
- BIOS/UEFIでセキュアブートを無効化(成功)
結局、BIOS/UEFIでセキュアブートを無効にすることでインストールされたドライバーが適用され4K表示できるようになりました。
改善した今考えると、セキュアブートをUEFIで無効にしていなかったことが原因で、ドライバーの自動インストールもしくは、GUI操作によるドライバインストールなどセキュアブート無効後に行えば、すべてうまくいっていたと思います。
以降、必要な個所とハマらないための注意点などまとめています。まずは、私の反省点を生かしてお使いのPCのセキュアブートが無効になっていないか確認することから初めてください。確認の方法はこちら
グラフィックボード,初期ドライバー等確認
グラフィックボードの本来の性能を引き出すためには、NVIDIAでリリースしているドライバをインストールすることをお勧めします。また、4Kディスプレイを使用する場合、3Dグラフィックなど含め本来の性能を引き出すにはNVIDIAのドライバが必須のようです。
ひとまず、現在適用されているドライバ、グラフィックボード情報等を確認しておきましょう。NVIDIAのグラフィックボードを使用している場合、「nouveau」というドライバーが読み込まれている場合が多いようです。
また、「llvmpipe」というドライバーが適応されている場合もあります。(私の場合はこちらでした)
これらデフォルトで適応されているドライバーでは、少なくとも私の環境では解像度1920×1080までが上限でした。
GUI上での確認方法
- 「設定」を開く
- 「✦このシステムについて」のグラフィックを確認する

コマンドでの確認方法
端末を開き以下コマンドを入力$ 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
基本操作
設定の有効化- 「i」と入力でインサートモードに入る
- 必要な編集を行う
- ESCキーでインサートモードを出る
- 「:w」と入力で保存
- 「:q」と入力でviを終了
$ sudo update-initramfs -u
$ sudo reboot
$ lsmod | grep nouveau
コマンドでドライバー自動インストール
自動インストールでドライバーが適応できれば無事終了です。
パッケージリストの更新
$ sudo apt update
$ sudo apt upgrade
$ sudo apt full-upgrade
(方法1)
自分のGPUと適切なドライバの確認
$ ububtu-drivers devices
$ sudo apt install nvidia-driver-"上記コマンドで確認したバージョン"
$ sudo apt --purge autoremove nvidia*
(方法2:初心者推奨)
以下のコマンドで適切なドライバーをオートインストール
※この方法では自動で適切なドライバをインストールするため、特定のドライバをインストールしたい場合には方法1を行う
$ sudo ubuntu-drivers autoinstall
(方法1または2後)再起動
$ sudo reboot
再起動後以下のコマンドを実行
$ nvidia-smi
GUI操作でのドライバーインストール
セキュアブートの無効化さえされていれば、不慣れなコマンドで操作を行わなくとも「設定」から簡単にドライバをインストールすることができます。
1.「設定」→「✦このシステムについて」→「ソフトウェアのアップデート」

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

ここで適用することができるドライバーをインストール可能
NVIDIAサイトからインストール
「NVIDIA ドライバ」等でブラウザで検索すると以下のようなサイトにたどり着けると思う。

https://www.nvidia.co.jp/Download/index.aspx?lang=jp
Ubuntu上でFirefoxやGoogle Chromeでこのサイトへ行き、「Linux 64-bit」の製品に応じたドライバを入手しようとしたが、製品シリーズの欄でどうしても必要とする製品を選択できない謎の現象に見舞われた。
私がただ知識不足なだけかもしれないが、何度必要な製品シリーズを選んでも強制的に特定の製品シリーズに変更される。もしかしたら強制的に選ばれていたドライバが正しいものなのかもしれないが、今回は詳しいことが分からなかったため、コマンド上でサイトからドライバーをインストールする手法を取った。
補足
上記のサイトではドライバをダウンロードできなかったが、下記のページではGeForceのドライバを正常に選択できるようなので一度試してほしい。

https://www.nvidia.com/en-us/geforce/drivers/
前置きしておくと、この方法の途中でセキュアブートキーにあれこれできる項目でNVIDIAのドライバを正常に適用することができるようだが、私は再起動した段階で何度行ってもエラーが生じたためこの方法は諦めた。一応手順を以降にまとめる
手順
パッケージリストの更新$ sudo apt update
$ sudo apt install -y build-essential
$ cd Download
$ 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
正しい選択肢については、以下サイトなどを参考に
BIOS/UEFIでセキュアブートを無効化
自分の場合は上記までの工程どれを試みてもNVIDIAドライバーが適応されず、この方法で最終的に無事適応させることができました。
これまでは「端末」、Windowsで言うところの「コマンドプロンプト」やGUI内の操作など、あくまでOSの範囲でのアプローチを行っていましたが、機能階層の違うOS外のBIOS/UEFIでの設定を変更することで解決しました。
解決法
※Windowsとのデュアルブート構成の場合:Windows側で起動しなくなる可能性があるようなので下記補足など参考にして署名キーなどを作成し、セキュアブートを維持したままドライバーを有効にする手順を行ってください。
OS構成がLinuxだけの場合:
- BIOS/UEFI画面を開く(起動時にF2またはDELキー)
- Advanced Mode(F7)⇒Boot(起動)⇒Secure Boot
- セキュアブートキーの削除
セキュアブートキーは削除しても、元に戻せるため消してしまって大丈夫です。
メーカーにより方法が異なるため、詳しくはマニュアルに従ってください。
セキュアブート【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のドライバを入れる際の注意点