Depuis que j'ai connecté un moniteur externe à mon ordinateur portable, je ne suis plus en mesure de me connecter lors de la reprise de la suspension. LightDM apparaît sur les deux écrans et affiche mon nom dans la zone de connexion, mais le champ du mot de passe n'est pas visible et la saisie du mot de passe n'a aucun effet.
La machine est toujours en cours d'exécution, et je peux y accéder via SSH ou un autre shell (avec ctrl-alt
et touches de fonction), mais je ne peux pas revenir à ma session précédente d'Unity.
Se déconnecter et entrer à nouveau sans suspension fonctionne correctement.
L'ordinateur portable est un Dell Precision M6700 avec un nVidia Quadro K4000M et le moniteur externe est connecté via DisplayPort 1.2. Le système d'exploitation est Ubuntu 16.04 et le problème survient à la fois avec les derniers pilotes nVidia et le pilote d'affichage Nouveau.
Que puis-je faire pour réparer LightDM?
Voici une solution de contournement qui utilise l'idée de la réponse de Malith, mais automatise quelques étapes, laissez-moi savoir si cela fonctionne pour vous, et si ce n'est pas le cas, j'ai d'autres idées qui peuvent fonctionner.
Créez un fichier nommé /etc/systemd/system/suspend-workaround.service
avec le contenu suivant:
[Unit]
Description=suspend lightdm workaround
Before=sleep.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/chvt 1
ExecStop=/bin/chvt 7
[Install]
WantedBy=sleep.target
Tapez ce qui suit sur un terminal pour recharger des fichiers systemd et activer l’unité ci-dessus:
Sudo systemctl enable suspend-workaround.service
Sudo systemctl daemon-reload
Essayez de suspendre et de signaler vos résultats.
EDIT: Si ce qui précède déverrouille votre session (cela ne devrait pas être le cas), vous pouvez verrouiller votre session après la reprise en remplaçant le ExecStop=/bin/chvt 7
par ExecStop=/bin/chvt 7 ; /bin/loginctl lock-sessions
.
Vous pouvez également désactiver le verrouillage de session sur les paramètres système et le forcer à verrouiller la reprise après utilisation à l'aide d'un script systemd semblable au précédent, en appelant /bin/loginctl lock-sessions
et en laissant tous les éléments chvt
.
Lorsque vous avez besoin de suspendre, faites-le en utilisant le shell ouvert par Ctrl + Alt + F2 connectez-vous à ce Shell en utilisant votre nom d'utilisateur et votre mot de passe. Puis tapez Sudo pm-suspend
pour suspendre la machine. (Si ce n'est pas le cas, essayez d'installer pm-utils en utilisant Sudo apt-get install pm-utils
]. Pour le reprendre, appuyez sur n'importe quelle touche pour afficher la dernière fenêtre du shell. Maintenant vous pouvez appuyer sur Ctrl + Alt + F7 pour obtenir votre session Unity.
Cela m'a frustré et j'ai trouvé une solution qui fonctionnait tout à l'heure. Je ne sais pas si cela fonctionnera de manière fiable. Je suis sur Ubuntu 14.04 mais cela se produit apparemment aussi sur les versions ultérieures.
Utilisez cntrl-alt-f1 pour accéder à une autre console. Connectez-vous normalement (vous n'avez pas besoin d'être root). Utilisez ps -aef et grep pour trouver compiz. Puis tuez Compiz avec "kill -9". Assurez-vous de saisir le pid de compiz et non le pid du parent de compiz. La commande "top" peut vous aider à trouver le bon processus et k (for kill) peut être utilisé pour effectuer le travail.
Revenez à cntrl-alt-f7 et l'écran scintille, redessine, etc. (comme lorsque le gestionnaire de fenêtres abandonne des fenêtres, supprime des décorations, etc.). Ensuite, il affiche l’interface utilisateur de la page d’accueil avec mon nom d’utilisateur et (oui!) Une zone de saisie de texte Mot de passe. J'ai tapé mon mot de passe et je suis revenu sur mon bureau. Cela paraissait un peu étrange et cela a lancé une nouvelle instance de compiz sans que je le fasse moi-même. J'ai examiné chaque fenêtre, en sauvegardant le travail si nécessaire, et je suis sortie de chaque fenêtre. Finalement, toutes les fenêtres sont fermées et j'ai pris toutes les notes dont j'avais besoin. Ensuite, j'ai redémarré le système Linux.
Après le redémarrage, la page d'accueil normale contenant mon nom d'utilisateur ET la zone de saisie du mot de passe s'affiche. Oui!