Dell Latitude ノートパソコンに Nvidia ドライバーをインストールする方法 - Ubuntu 16.04

Dell Latitude ノートパソコンに Nvidia ドライバーをインストールする方法 - Ubuntu 16.04

Ubuntu 15.10 から 16.04.1 (どちらも 64 ビット) にアップグレードした後、無限ログイン ループに陥りました。 にログインするたびにlightdm、ログイン後に画面が真っ暗になり、その後ログイン画面に戻ります。 へのログインはtty0正常に機能しました。私は、Core i5 5200U と Nvidia GeForce 830M を搭載した Del Latitude 3350 ラップトップを持っています。nvidia-361を使用する前に、アップグレードによってドライバーが必要であると判断されましたnvidia-352。私が以前に遭遇した多くの手順では、UEFI BIOS のセキュア ブートについて言及されていましたが、これは既にオフになっていました (ラップトップを入手してすぐにオフにしたのか、Dell からその状態で出荷されたのかは覚えていません)。再インストールや再構成もlightdm役に立ちませんでした。少なくとも Nvidia ドライバーをアンインストールするように指示されましたが、それは部分的な解決策にすぎません。これは、askubuntu で見た他の質問の重複ではありません。他の人には機能した手順が私には機能しなかったためです。おそらく最も近いガイドは*Ubuntu 16.04 に Nvidia Optimus ハードウェア用の適切なグラフィック ドライバーをインストールするにはどうすればいいですか?しかし、これではNvidia GPUが使えるようになるわけではなく、Bumblebeeをインストールする必要がありました。また、そのガイドは[XUbuntu/Ubuntu 16.04 LTSを搭載したLenovo T440p [NVidia GT 730M]上のBumblebee]{にリンクしています。http://lenovolinux.blogspot.co.za/2016/05/bumblebee-on-lenovo-t440p-nvidia-gt.html?m=1ただし、これらの指示に従うと、実際には動作する Bumblebee も使用できなくなります。

グーグルでいろいろ調べた結果、部分的な解決策はNvidiaのドライバーをアンインストールすることだとわかりました。最終的にこれらログインできるようになるまでの説明がありました。

続行する前に重要な注意事項ですが、システム設定の「追加ドライバー」タブを使用してドライバーをインストールする必要があるようですintel-microcode。私はすでにドライバーをインストールしていました (おそらく Ubuntu 15.10 の頃から) ので、インストールされていない場合に何が起こるかはテストしていません。

次のコマンドを使用して、Bumblebee と Nvidia ドライバーを削除し、Nvidia ドライバーを再インストールしました。最新の Nvidia ドライバーを取得するには、グラフィック ドライバー リポジトリを追加する必要があることに注意してください。

sudo apt-get purge .*nvidia.* bumblebee.* .*primus.*
sudo apt-get --purge autoremove
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt install nvidia-367 nvidia-prime nvidia-settings

その結果、次のパッケージがインストールされました。

bbswitch-dkms libcuda1-367 libjansson4 nvidia-367 nvidia-opencl-icd-367 nvidia-prime nvidia-settings screen-resolution-extra

それから私はやりましたrm .nvidia-settings-rc

この時点で、手順では GPU を使用するいくつかのプログラムを実行するように指示されています。実行するとclinfo(OpenCL 開発には GPU を使用します)、すべて正常に動作します。他の OpenCL プログラムも正常に動作します。ただし、実行するとglxinfo次の出力が表示されます。

name of display: :0
Error: couldn't find RGB GLX visual or fbconfig

私は指示に従って進み、Bumblebee を実行できるようにしました。sudo prime-select intelが必要でした。そうしないと、再起動後に無限ログイン ループに戻ってしまいます。再起動後、 を実行し、 のすべてのインスタンスを に変更するように編集しました。またsudo apt install bumblebee、の行を含めるように編集しました。インストールするまたはパッケージがないため、ブラックリストには入れませんでした。/etc/bumblebee/bumblebee.confnvidia-currentnvidia-367/etc/modprobe.d/bumblebee.confblacklist nvidia-367nvidia-367-updatesnvidia-experimental-367

再起動後、 を実行するとprimusrun clinfo、Nvidia プラットフォームが出力されます。 を使用すると、Nvidia GPU で OpenCL プログラムを実行することもできますprimusrun。ただし、primusrun glxinfoでエラーが発生します。

primus: fatal: Bumblebee daemon reported: error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

for anythingを使用するとoptirun、同様のエラーが発生します。たとえば、optirun clinfoと はoptirun glxinfo両方とも次のようになります。

[  462.796690] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

[  462.796725] [ERROR]Aborting because fallback start is disabled.

Bridge=の 行を にBridge=primus、 行PMMethod=autoを にPMMethod=bbswitch変更してみましたが/etc/bumblebee/bumblebee.conf、効果はありませんでした。

ここで Bumblebee と Nvidia のドライバーを動作させるにはどうしたらいいのでしょうか。単一の命令セットでは動作しないようです。ボーナス: prime-select nvidiaBumblebee の代わりに Nvidia ドライバーを完全に動作させるにはどうしたらいいのでしょうか。

答え1

これまでに見つけた解決策は、Bumblebee を (ほぼ) 動作させ、使用していないときに Nvidia GPU を手動でオフにする手段を提供します。の代わりにglxinfoを使用する場合はまだ機能していません。prime-select nvidiaoptirun

フォローし始めましたこれら指示。i915bbswitchを に追加し/etc/modulesました。sudo gpasswd -a $USER bumblebeeとをsudo systemctl enable bumblebeed実行しました。これら 2 つのコマンドは正常に終了したようです。再起動後も、問題は同じままです。sudo prime-select nvidiaに続けてを実行すると、glxinfo依然としてエラー が発生しますcouldn't find RGB GLS visual or fbconfig

この時点で、インストールすることに決めましたbumblebee-nvidia。質問でリンクした手順ではインストールしないようにと書かれていましたが、上記のリンクにはインストールが含まれていました。驚いたことに、これでほとんどの問題が解決しました。今では、optirun glxinfoまたは を実行するとprimusrun glxinfo、Nvidia GPU の情報が出力されます。optirun glxgearsおよびoptirun glxheads(および の使用primusrun) は正常に動作します。注意点として、この問題を修正しようとした以前の反復で、 のインストールにより/ がbumblebee-nvidia壊れました。optirunprimusrun

動作しないのは、prime-select nvidiaが続く場合だけですglxinfo。その後も、モジュール「マウス」のロードに失敗したというエラーが表示されます。また、 を実行するとcat /proc/acpi/bbswitchが表示され続けますが0000:04:00.0 ON、これは Nvidia GPU がまだオンになっていることを示していると思います。 を実行するlspci | grep NVIDIAと が返され04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 830M] (rev a2)、Nvidia GPU の PCIe アドレスが確認されます。

に基づくと、電源の問題は、モジュールが GPU の電源オフを妨げていたdmesg | grep bbswitchことです。Nvidia GPU を手動でオフにするには、、、を実行してから、を実行します。しかし、あまり良い方法ではないので、これを機能させる自動的な方法を探しました。nvidiasudo rmmod nvidia_drmsudo rmmod nvidia_uvmsudo rmmod nvidia_modesetsudo rmmod nvidiasudo tee /proc/acpi/bbswitch <<<OFF

バンブルビーがNvidia GPUをオフにしない問題を解決するために、私は以下の手順を試しました。バンブルビープロジェクトよりしかし、成功しませんでした。具体的には、 に/etc/modprobe.d/bbswitch.confは が含まれており、の末尾に をoptions bbswitch load_state=0追加しました。 を実行し、再起動しましたが、GPU がオンのままであると表示されます。現時点では、Nvidia GPU をオフにするコマンドを含むスクリプトを使用して、この問題を回避しています。 または を含むプログラムを実行すると、それらのドライバーが自動的に再ロードされます。bbswitch load_state=0/etc/modulessudo update-initramfs -ucat /proc/acpi/bbswitchrmmodoptirunprimusrun

関連情報