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 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のドライバーをここで動作させるにはどうすればよいですか?ボーナス:Bumblebeeの代わりにprime-select nvidia
を使用する場合、Nvidiaドライバーを完全に機能させるにはどうすればよいですか?
私がこれまでに見つけたソリューションは、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
を使用してプログラムを実行すると、これらのドライバーが自動的にリロードされます。