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.conf
nvidia-current
nvidia-367
/etc/modprobe.d/bumblebee.conf
blacklist nvidia-367
nvidia-367-updates
nvidia-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 nvidia
Bumblebee の代わりに Nvidia ドライバーを完全に動作させるにはどうしたらいいのでしょうか。
答え1
これまでに見つけた解決策は、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 アドレスが確認されます。
に基づくと、電源の問題は、モジュールが GPU の電源オフを妨げていたdmesg | grep bbswitch
ことです。Nvidia GPU を手動でオフにするには、、、を実行してから、を実行します。しかし、あまり良い方法ではないので、これを機能させる自動的な方法を探しました。nvidia
sudo rmmod nvidia_drm
sudo rmmod nvidia_uvm
sudo rmmod nvidia_modeset
sudo rmmod nvidia
sudo 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/modules
sudo update-initramfs -u
cat /proc/acpi/bbswitch
rmmod
optirun
primusrun