16.04 へのアップグレード後のログイン ループ

16.04 へのアップグレード後のログイン ループ

xenial beta を最新のアップデートに更新した後、ログイン ループが発生しました。

いろいろ試してみました:

  • xauthorityまたは/tmp権限の変更

  • NVIDIA ドライバーを削除して再インストールします。

  • unity、、、、およびunity-greeterを再インストールします。ubuntu-desktopupstartlightdmcompiz

  • リセットcompizunity設定。(dbus起動エラーが発生します:

    Failed to commit changes to dconf: error spawning command line 'dbus-launch -auto launch=..................)
    
  • 古いカーネルとフェイルセーフを使用 (フェイルセーフ レポートの画面が見つかりません)

  • 他のDEを起動しようとした(Steamの大きな画像)

xsession エラー ログは次のとおりです。

unity:
open connection: connect: No such file or directory
Cannot connect to brltty at :0
upstart: gnome-session (unity) main process (5441) terminated with status 1
upstart unity-settings-daemon main process (5434) killed by TERM signal

steam big picture:
open connection: connect: No such file or directory
Cannot connect to brltty at :0
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file(: ignored.
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file(: ignored
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file(: ignored
Could not create GLX context
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file(: ignored

Unity (compiz) ログには OpenGL プラグインに関するエラーが多数あります

Compiz (opengl) - Fatal: glXQueryExtenisonsString is NULL for screen 0

また、OpenGL のせいで多くのプラグインがアンロードされました。

Lightdm では、ログにエラーが記録されていないにもかかわらず、突然 SIGTERM 信号が発生します。

xserver には 2 つのエラーがあります:

xf86EnablePorts: failed to set IOPL for I/O (Operation not permitted)
(EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)

しかし、突然終了するまで入力操作は継続されます。

答え1

私の場合、オリジナルの NVIDIA ドライバーが原因でしたが、オープンソースの Nouveau に戻すことで解決しました。まず、NVIDIA からすべてのものを削除しました。

sudo apt-get remove --purge 'nvidia-*'
sudo apt-get install ubuntu-desktop
sudo rm /etc/X11/xorg.conf
echo 'nouveau' | sudo tee -a /etc/modules

(ソース:NVIDIA ドライバーを完全にアンインストールするにはどうすればいいですか?

その後、ログインできましたが、Unity が読み込まれず、ランチャーなどが表示されませんでした。結局、Unity プラグインを再度有効にする必要があることがわかりました。

sudo apt-get install compizconfig-settings-manager
DISPLAY=:0 ccsm
Find the Unity plugin and enable it.

(ソース:Unityが読み込まれず、ランチャーもダッシュも表示されない

答え2

問題は、Ubuntu を更新すると (および を呼び出す特定のプログラムをインストールすると/sbin/ldconfig)、 に変更が加えられることです/etc/ls.so.cache

ld.so.cache試してみると、インストール/更新後のファイルのサイズが操作前と異なることがわかります。

これにより、Ubuntu 16.04 では、lightDM からログインするときにログイン ループが発生します。したがって、インストール/更新後に生成された新しいバージョンでは lightDM が認証されなくなるため、オリジナルのコピーを保持する必要がありますld.so.cache

私は何度もこの問題に遭遇しており、非常に注意する必要がありました。私は常に、/etc/ld.so.cache.origログイン ループなしでログインできる元のファイル ( ) のコピーを保持し、それを使用してログインします。その後、正常にログインしたら、新しいファイル ( /etc/ld.so.cache.new) をコピーします。これを行うには、ファイルを変更して~/.bash_profile次の行を追加しました。

sudo /bin/cp /etc/ld.so.cache.new /etc/ld.so.cache

次に、セッションを終了するときに元のファイルをコピーして、次回再度ログインできるようにするために、次の行を追加しました/etc/gdm/PostSession/Default:

/bin/cp /etc/ld.so.cache.orig /etc/ld.so.cache

これを機能させるために、権限のないユーザーがコピー コマンドを実行できるように/etc/sudoers( を実行して)変更しました。sudo vosudo

ALL     ALL= NOPASSWD: /bin/cp /etc/ld.so.cache.new /etc/ld.so.cache

これは醜いハックのように見えるかもしれませんが、ログイン ループの問題を回避し、新しい/etc/ld.so.cacheファイルを保持することもできます。

答え3

16.04 でも同じエラーが発生しました。私の場合は、これも NVidia ドライバーの問題でした。私は 8 台のモニターを持っており、それらでの NVidia ドライバーのパフォーマンスに満足しています。そこで、これを動作させるために、次の操作を実行しました。

  1. ログインプロンプトでCTRL+ ALT+ を押して、ターミナル経由でログインしました。F1

  2. /etc/X11/xorg.conf8 台のモニターを構成するのは面倒だったので、古いファイルをバックアップしました。

  3. NVidiaからドライバーファイルをダウンロードしました:NVIDIA-Linux-x86_64-367.44.run

  4. 次のコマンドを実行しました: sudo service lightdm stop(この手順をスキップすると、ドライバーのインストールは失敗します)。

  5. ドライバーを再インストールしました。sudo ./NVIDIA-Linux-x86_64-367.44.run自動生成されたスクリプトが完了しなかったことが通知され、インストールを続行する選択肢が提示されたので、それを受け入れました。また、ドライバーをカーネル モジュールとしてインストールし、プログラムで新しいxorg.confファイルを生成するように選択しました (事前にバックアップしておきました)。プロセスの最後に、ライブラリへのリンクが見つからないというメッセージが表示されましたが、リンクする方法が示されました。その処理は後回しにしました。

  6. 再起動してGUI経由でログインできました。

答え4

私の場合、この問題は、誤って UEFI でセキュア ブートを有効にしたことが原因で発生しました。これにより、サード パーティ ドライバー (Nvidia など) が使用できなくなりました。これにより、X セッション エラーが発生しました。セキュア ブートを無効にすると、すべて正常に戻りました。

関連情報