Boucle de connexion après la mise à niveau vers 16.04

16

J'ai rencontré une boucle de connexion après la mise à jour de xenial beta vers les dernières mises à jour.

J'ai essayé beaucoup de choses:

  • xauthorityou les /tmpprivilèges changent

  • Réinstaller les pilotes nvidia, les supprimer.

  • réinstallant unity, unity-greeter, ubuntu-desktop, upstart, lightdmet compiz.

  • réinitialisation compizet unityparamètres. ( dbusJ'obtiens des erreurs de lancement:

    Failed to commit changes to dconf: error spawning command line 'dbus-launch -auto launch=..................)
    
  • en utilisant un noyau plus ancien et un système de sécurité (rapport de sécurité aucun écran trouvé)

  • essayé de lancer un autre DE (vue d'ensemble de la vapeur)

Voici le journal des erreurs 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

Dans le journal Unity (compiz), il y a beaucoup d'erreurs sur le plugin opengl

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

Et beaucoup de plugins déchargés à cause de opengl.

Lightdm a un signal SIGTERM soudain sans erreur préalable dans le journal.

xserver a 2 erreurs:

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

Mais il continue à travers des opérations d'entrée jusqu'à ce qu'il soit soudainement terminé.

Khalid Abu Shawarib
la source

Réponses:

18

Dans mon cas, les pilotes nvidia d'origine en étaient la cause et le retour à l'open source nouveau a aidé. Tout d'abord, j'ai supprimé toutes les choses de 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

(source: Comment puis-je désinstaller complètement un pilote nvidia? )

Après cela, je pouvais me connecter, mais l'unité ne se chargeait pas, il n'y avait pas de lanceur, etc. Il s'est avéré que je devais réactiver le plugin Unity:

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

(source: Unity ne se charge pas, aucun lanceur, aucun Dash n'apparaît )

Oskar Strączkowski
la source
La suppression de nvidia-*était la principale solution pour moi. Dans ~/.xsession.errorsJ'ai eu un message cannot connect to brltty at 0qui est lié à NVIDIA.
Jon
1
J'ai suivi ces étapes exactes mais cela n'a pas fonctionné pour moi
Hakaishin
De plus, si j'ai besoin d'utiliser les pilotes Nvidia, cela ne fonctionne pas.
Hakaishin
@Hakaishinrare êtes-vous capable de le résoudre?
sagarr
3

Le problème est que, lorsque vous mettez à jour Ubuntu (et même lorsque vous installez certains programmes qui appellent /sbin/ldconfig), des modifications sont apportées à /etc/ls.so.cache.

Essayez-le et vous verrez que le ld.so.cachefichier après une telle installation / mise à jour aura une taille différente qu'avant l'opération.

Dans Ubuntu 16.04, cela se traduit par une boucle de connexion lors de la connexion à partir de lightDM. Par conséquent, vous devez conserver une copie de l'original ld.so.cachecar, avec la nouvelle version générée après l'installation / la mise à jour, lightDM ne s'authentifiera plus.

J'ai eu ce problème à plusieurs reprises et j'ai dû être très prudent avec cela. Je garde toujours une copie du fichier d'origine ( /etc/ld.so.cache.orig) qui me permet de me connecter sans la boucle de connexion et de l'utiliser pour me connecter. Ensuite, une fois que je me suis connecté avec succès, je recopie le nouveau ( /etc/ld.so.cache.new). Pour ce faire, j'ai modifié mon ~/.bash_profilefichier et ajouté cette ligne:

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

Ensuite, afin de recopier le fichier d'origine à la sortie de la session afin que je sois ab; e pour me connecter un gain la prochaine fois, j'ai ajouté cette ligne à /etc/gdm/PostSession/Default:

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

Pour que cela fonctionne, j'ai modifié /etc/sudoers(en exécutant sudo vosudo) pour permettre aux utilisateurs non privilégiés d'exécuter la commande de copie:

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

Cela peut ressembler à un hack laid, mais il contourne ce problème de boucle de connexion et, également, pour conserver le nouveau /etc/ld.so.cachefichier.

Juanjo
la source
1
Lo siento, pero el Ask Ubuntu es una pagina donde solo se escribe in Ingles. 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 Google Translate para traducir tus contribuciones.
terdon
De hecho, la traduje yo ya que tiene pinta de ser una solución buena. Pero en el futuro, por favor pásala por Google Translate.
terdon
3

J'ai également eu la même erreur le 16.04. Dans mon cas, c'était aussi un problème de pilote NVidia. J'ai 8 moniteurs et j'aime la performance du plongeur NVidia avec eux. Donc, pour le faire fonctionner, je:

  1. Appuyez sur CTRL+ ALT+ F1à l'invite de connexion et connectez-vous via le terminal.

  2. Le /etc/X11/xorg.conffichier sauvegardé peut être ancien , car il était difficile de configurer 8 moniteurs.

  3. Téléchargé le fichier du pilote depuis NVidia: NVIDIA-Linux-x86_64-367.44.run

  4. Exécutez la commande suivante: sudo service lightdm stop(l'installation du pilote échouera si cette étape est ignorée).

  5. Réinstallation du pilote: sudo ./NVIDIA-Linux-x86_64-367.44.runj'ai été informé que le script généré automatiquement n'était pas terminé et j'ai eu le choix de continuer l'installation que j'ai acceptée. J'ai également choisi d'avoir le pilote installé en tant que module du noyau et que le programme génère un nouveau xorg.conffichier (sauvegardé le mien avant). À la fin du processus, il s'est plaint d'un lien manquant vers une bibliothèque, mais a donné des instructions pour établir un lien avec celle-ci. Je remets cela à plus tard.

  6. Redémarré et a pu se connecter via l'interface graphique.

Paul W
la source
1

J'utilisais xfce et j'ai vérifié manuellement chaque dossier et fichier en les renommant. La suppression a ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xmlfonctionné pour moi.

J'avais également des pilotes nvidia, mais ils fonctionnaient bien lorsque je me suis connecté en tant qu'utilisateur root et utilisateur de sauvegarde.

Vibhav B
la source
0

Dans mon cas, ce problème est dû à l'activation accidentelle du démarrage sécurisé dans UEFI, ce qui affecte les pilotes tiers inutilisables (par exemple Nvidia). Cela a provoqué une erreur de session X. Après avoir désactivé le démarrage sécurisé, tout est revenu à la normale.

Wladek Surala
la source