Pętla logowania po aktualizacji do 16.04

16

Napotkałem pętlę logowania po aktualizacji Xenial beta do najnowszych aktualizacji.

Próbowałem wielu rzeczy:

  • xauthoritylub /tmpzmiany uprawnień

  • Ponowna instalacja sterowników NVIDIA, usuwanie ich.

  • ponownej instalacji unity, unity-greeter, ubuntu-desktop, upstart, lightdmi compiz.

  • resetowanie compizi unityustawienia. (dostaję dbusbłędy uruchamiania:

    Failed to commit changes to dconf: error spawning command line 'dbus-launch -auto launch=..................)
    
  • używanie starszego jądra i bezpieczeństwa (raport bezpieczeństwa nie został znaleziony ekran)

  • Próbowałem uruchomić inny DE (duży obraz Steam)

Oto dziennik błędów 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

W dzienniku Unity (compiz) występuje wiele błędów związanych z wtyczką opengl

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

I wiele wtyczek wyładowanych z powodu opengl.

Lightdm ma nagły sygnał SIGTERM bez wcześniejszych błędów w dzienniku.

xserver ma 2 błędy:

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

Ale kontynuuje operacje wejściowe, aż nagle się zakończy.

Khalid Abu Shawarib
źródło

Odpowiedzi:

18

W moim przypadku przyczyną były oryginalne sterowniki NVIDIA i przejście z powrotem do wersji open source nouveau pomogło. Najpierw usunąłem wszystkie rzeczy z nvidii:

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

(źródło: Jak całkowicie odinstalować sterownik NVIDIA? )

Potem mogłem się zalogować, ale Unity się nie załadowało, nie było programu uruchamiającego itp. Okazało się, że musiałem ponownie włączyć wtyczkę Unity:

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

(źródło: Unity nie ładuje się, nie ma Launchera, nie pojawia się Dash )

Oskar Strączkowski
źródło
Usunięcie nvidia-*było dla mnie główną poprawką. W ~/.xsession.errorsmiałem wiadomość, cannot connect to brltty at 0która jest związana z NVIDIA.
Jon
1
Podążałem dokładnie tymi krokami, ale to nie działało dla mnie
Hakaishin,
Co więcej, jeśli muszę użyć sterowników Nvidia, to nie działa.
Hakaishin,
@Hakaishinrare jesteś w stanie to rozwiązać?
sagarr
3

Problem polega na tym, że podczas aktualizacji Ubuntu (a nawet podczas instalowania niektórych wywołujących programów /sbin/ldconfig) wprowadzane są zmiany /etc/ls.so.cache.

Spróbuj, a zobaczysz, że ld.so.cacheplik po takiej instalacji / aktualizacji będzie miał inny rozmiar niż przed operacją.

W Ubuntu 16.04 powoduje to pętlę logowania podczas logowania z lightDM. Dlatego powinieneś zachować kopię oryginału, ld.so.cacheponieważ dzięki nowej wersji wygenerowanej po instalacji / aktualizacji lightDM nie będzie już uwierzytelniany.

Miałem ten problem wiele razy i musiałem być bardzo ostrożny. Zawsze przechowuję kopię oryginalnego pliku ( /etc/ld.so.cache.orig), która pozwala mi zalogować się bez pętli logowania i użyć jej do zalogowania. Następnie, po pomyślnym zalogowaniu, kopiuję nowy ( /etc/ld.so.cache.new). W tym celu zmodyfikowałem ~/.bash_profileplik i dodałem następujący wiersz:

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

Następnie, aby skopiować oryginalny plik z powrotem przy wychodzeniu z sesji, abym mógł zalogować się, aby zyskać następnym razem, dodałem tę linię do /etc/gdm/PostSession/Default:

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

Aby to działało, zmodyfikowałem /etc/sudoers(uruchamiając sudo vosudo), aby umożliwić użytkownikom nieuprzywilejowanym uruchomienie polecenia kopiowania:

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

Może to wyglądać jak brzydki hack, ale omija ten problem z pętlą logowania, a także zachowuje nowy /etc/ld.so.cacheplik.

Juanjo
źródło
1
Lo siento, pero el Ask Ubuntu es una pagina donde solo se escribe en English. Gracias por la respuesta pero como es en Castellano, la tube que borrar. Si no hables, o no hables bien, el Ingles, puedes usar herramientas como el Translate Google for traducir tus contribuciones.
terdon
De hecho, la traduje yo ya que tiene pinta de ser una solución buena. Jeśli chcesz skorzystać z Tłumacza Google.
terdon
3

Miałem ten sam błąd również 16.04. W moim przypadku był to także problem ze sterownikiem NVidia. Mam 8 monitorów i podoba mi się, jak radzi sobie z nimi nurek NVidia. Aby to działało, ja:

  1. Wciśnięty CTRL+ ALT+ F1po znaku zachęty do logowania i zalogowany do terminala.

  2. Utworzono kopię zapasową starego /etc/X11/xorg.confpliku, ponieważ konfiguracja 8 monitorów była uciążliwa.

  3. Pobrałem plik sterownika z NVidii: NVIDIA-Linux-x86_64-367.44.run

  4. Uruchom następujące polecenie: sudo service lightdm stop(instalacja sterownika nie powiedzie się, jeśli ten krok zostanie pominięty).

  5. Ponownie zainstalowałem sterownik: sudo ./NVIDIA-Linux-x86_64-367.44.runZostałem powiadomiony, że skrypt wygenerowany automatycznie nie został ukończony, i zdecydowałem się kontynuować instalację, którą zaakceptowałem. Zdecydowałem się również zainstalować sterownik jako moduł jądra i pozwolić programowi wygenerować nowy xorg.confplik (wcześniej utworzył kopię zapasową mojego pliku). Pod koniec procesu narzekał na brakujący link do lib, ale podał instrukcje dotyczące linkowania do niego. Odłożyłem to na później.

  6. Zrestartowano i udało się zalogować za pomocą GUI.

Paul W.
źródło
1

Korzystałem z xfce i ręcznie sprawdziłem każdy folder i plik, zmieniając ich nazwę. Usuwanie ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xmldziałało dla mnie.

Miałem również sterowniki NVIDIA, ale działały dobrze, gdy zalogowałem się jako użytkownik root i użytkownik zapasowy.

Vibhav B.
źródło
0

W moim przypadku ten problem został spowodowany przypadkowym włączeniem Bezpiecznego rozruchu w UEFI, co powoduje, że sterowniki innych firm są bezużyteczne (np. Nvidia). To spowodowało błąd sesji X. Po wyłączeniu Bezpiecznego rozruchu wszystko wróciło do normy.

Władek Surala
źródło