web-dev-qa-db-ja.com

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でセキュアブートについて言及していましたが、すでにオフになっています(ラップトップを手に入れてすぐにオフにしたのか、それがデルから出荷されたのか覚えていません) 。 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 }ただし、これらの指示に従うと実際に動作するバンブルビーもなくなりました。

グーグルで何度も調べた結果、部分的な解決策は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

私はバンブルビーを走らせるために指示を続けました。 Sudo prime-select intelが必要だったのは、そうしないと、再起動後に無限ログインループに戻るためです。再起動後、Sudo apt install bumblebeeを実行し、/etc/bumblebee/bumblebee.confを編集してnvidia-currentのすべてのインスタンスをnvidia-367に変更しました。 /etc/modprobe.d/bumblebee.confも編集してblacklist nvidia-367行を追加しました。インストールするnvidia-367-updatesまたはnvidia-experimental-367パッケージがないため、ブラックリストに登録しませんでした。

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

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

何かにoptirunを使用すると、同様のエラーが発生します。 optirun clinfooptirun 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=autoPMMethod=bbswitch/etc/bumblebee/bumblebee.confに変更しようとしました。それは助けにはなりませんでした。

BumblebeeとNvidiaのドライバーをここで動作させるにはどうすればよいですか?ボーナス:Bumblebeeの代わりにprime-select nvidiaを使用する場合、Nvidiaドライバーを完全に機能させるにはどうすればよいですか?

1
chippies

私がこれまでに見つけたソリューションは、Bumblebeeを(ほとんど)動作させ、使用していないときにNvidia GPUを手動でオフにする手段を提供します。 glxinfoの代わりに_prime-select nvidia_を使用すると、optirunが機能しません。

これら の指示に従い始めました。 _i915_とbbswitchを_/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_をインストールすると、optirun/primusrunが破損しました。

動作しない唯一のものは_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アドレスが確認されます。

_dmesg | grep bbswitch_に基づく電源の問題は、nvidiaモジュールがGPUのスイッチオフを妨げていたことです。 Nvidia GPUを手動でオフにするには、_Sudo rmmod nvidia_drm_、_Sudo rmmod nvidia_uvm_、_Sudo rmmod nvidia_modeset_、および_Sudo rmmod nvidia_を実行し、その後に_Sudo tee /proc/acpi/bbswitch <<<OFF_を実行します。あまり良くないので、私はこの作業を自動化する方法を探しに行きました。

Nvidia GPUをオフにしないでBumblebeeを整理するために、指示を試しました bumblebeeプロジェクトから ですが、成功しませんでした。具体的には、私の_/etc/modprobe.d/bbswitch.conf_には_options bbswitch load_state=0_が含まれ、_bbswitch load_state=0_を_/etc/modules_の最後に追加しました。 _Sudo update-initramfs -u_を実行した後、再起動しましたが、_cat /proc/acpi/bbswitch_はGPUがオンであることを示しています。現時点では、rmmodコマンドでスクリプトを使用してNvidia GPUをオフにすることで、この問題を回避しています。 optirunまたはprimusrunを使用してプログラムを実行すると、これらのドライバーが自動的にリロードされます。

1
chippies