Não é possível efetuar login após suspender com vários monitores

7

Como eu conectei um monitor externo ao meu laptop, não consigo mais fazer login ao retomar da suspensão. O LightDM aparece em ambas as telas e mostra meu nome na caixa de login, mas o campo de senha não está visível e a inserção da senha não tem efeito.

A máquina ainda está em execução e eu posso acessá-la por SSH ou por um shell alternativo (com ctrl-alt e teclas de função), mas não consigo voltar à minha sessão Unity anterior.

Fazer o logout e voltar novamente sem suspender as obras corretamente.

O laptop é um Dell Precision M6700 com uma nVidia Quadro K4000M e o monitor externo está conectado via DisplayPort 1.2. O SO é o Ubuntu 16.04 e o problema ocorre com os drivers mais recentes da nVidia e com o driver de exibição Nouveau.

O que posso fazer para corrigir o LightDM?

    
por Ian Mackinnon 12.05.2016 / 11:25

3 respostas

2

Aqui está uma solução que usa a ideia da resposta de Malith, mas automatiza alguns passos, deixe-me saber se funciona para você e, caso contrário, tenho outras ideias que podem funcionar.

Crie um arquivo chamado /etc/systemd/system/suspend-workaround.service , com o seguinte conteúdo:

[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

Digite o seguinte em um terminal para recarregar os arquivos do systemd e habilitar a unidade acima:

sudo systemctl enable suspend-workaround.service
sudo systemctl daemon-reload

Tente suspender e denunciar seus resultados.

EDITAR: Se o texto acima desbloquear sua sessão (não deveria), você pode retomar sua postagem de bloqueio de sessão, substituindo o ExecStop=/bin/chvt 7 por ExecStop=/bin/chvt 7 ; /bin/loginctl lock-sessions .

Você também pode desabilitar o bloqueio de sessão nas configurações do sistema e forçá-lo a bloquear o pós-currículo usando um script systemd como o acima, chamando /bin/loginctl lock-sessions e deixando todo o chvt esgotado.

    
por Daniel 05.07.2016 / 18:12
1

Quando você precisar suspender, faça-o usando o shell aberto por Ctrl + Alt + F2 Faça login nesse shell usando seu nome de usuário e senha. Em seguida, digite sudo pm-suspend para suspender a máquina. (Se não, tente instalar o pm-utils usando sudo apt-get install pm-utils ) Para continuar, pressione qualquer tecla e você verá a última janela do shell. Agora você pode pressionar Ctrl + Alt + F7 para obter sua sessão do Unity.

    
por Malith 04.07.2016 / 17:25
0

Estou frustrado com isso e encontrei uma solução que funcionou agora. Eu não sei se vai funcionar de forma confiável. Eu estou no Ubuntu 14.04 mas aparentemente também acontece em versões posteriores.

Use cntrl-alt-f1 para chegar a um console alternativo. Entre como normal (não precisa ser root). Use ps -aef e grep para encontrar o compiz. Então mate o compiz com "kill -9". Certifique-se de entrar pid do compiz não pid do pai do compiz (ppid). O comando "top" pode ajudá-lo a encontrar o processo certo e k (para matar) pode ser usado para fazer o trabalho.

Volte para cntrl-alt-f7 e a tela pisca, redesenha, etc (como quando o gerenciador de janelas desiste de janelas, solta as decorações, etc.). Em seguida, ele exibiu a interface do usuário com o meu nome de usuário e (Sim!) Uma caixa de entrada de texto de senha. Digitei minha senha e voltei para a minha área de trabalho. Parecia um pouco estranho, e começou uma nova instância de compiz sem eu mesmo fazer isso. Eu examinei cada janela, salvando o trabalho onde necessário, e saí de cada janela. Finalmente todas as janelas estão fechadas e eu fiz as anotações que eu precisava. Então eu fiz uma reinicialização do sistema linux.

Após a reinicialização, vejo a página de saudação normal com meu nome de usuário E a caixa de entrada de texto da senha. Sim!

    
por Alan Carwile 26.01.2018 / 02:38