Estou executando o Ubuntu 16.04 LTS no meu Lenovo G50 e tudo está indo bem, exceto que não consigo fechar a tampa do meu laptop sem precisar reiniciar depois. Quando fecho a tampa (ou se executo pm-suspend
), a tela do meu laptop fica escura por alguns segundos e depois liga novamente.
O problema é que quando tento retomá-lo, meu laptop basicamente vira uma batata... Por algum motivo, o gerenciador de rede (wifi e ethernet) não funciona de jeito nenhum, o terminal fica extremamente lento e não consigo rodar qualquer comando usando sudo
porque ele ficará pendurado para sempre.
Tentei alterar o logind.conf
arquivo, tentei alterar o Power System Settings
, atualizei meu driver Intel Graphics, instalei ferramentas como pmi
ou laptop-mode
... Estou ficando sem ideias, mas faria qualquer coisa para corrigir esse problema .
Se houver alguma informação do sistema que possa ser útil, me avise e eu a adicionarei ao post.
Responder1
Para alterar a ação de fechar a tampa no Ubuntu:
Abra o arquivo /etc/systemd/logind.conf em um editor de texto como root, por exemplo,
sudo nano /etc/systemd/logind.conf
Altere esta linha:
#HandleLidSwitch=ignore
Para esta linha:
HandleLidSwitch=suspend
Certifique-se de que esteja comentado.
Alternativamente, você também pode adicionar esta linha, mas eu prefiro a primeira:
HandleLidSwitchDocked=suspend
Então corra :
sudo service systemd-logind restart
Oureinício.
Para solucionar problemas do modo de hibernação/suspensão, você deve digitar o seguinte comando no terminal:
dmesg|less
Geralmente há uma entrada sobre qual aplicativo causou a falha da suspensão:
[32467.560058] Freezing of tasks failed after 20.01 seconds (1 tasks refusing to freeze, wq_busy=0):
[32467.560115] plasma-desktop D 0000000000000000 0 2065 1 0x00800004
Corrigir suspensão em laptops
sudo apt-get install uswsusp
Agora teste a suspensão com:
sudo s2ram
Se não funcionar use:
sudo s2ram --force
Em seguida edite este arquivo:
sudo nano /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux
Altere o código para:
#!/bin/sh
/sbin/s2ram --force
Editar: Outra correção:
Coloque um script em ' /etc/pm/sleep.d/ ' , os scripts serão executados na suspensão e na retomada. O nome do arquivo deve começar com um número de pedido, 00-49 para scripts de usuário (para obter mais detalhes, consulte man pm-suspend).
O script poderia ficar assim
#!/bin/sh
(killall -9 mount.nfs; exit 0)
Se você estiver tendo problemas, verifique /var/log/pm-suspend.log que registrará a tentativa de suspensão e execução do seu script.
Ubuntu Suspend não funciona CORREÇÃO
Passo 1: Abra um terminal e crie um arquivo de script da seguinte forma:
sudo nano /etc/pm/sleep.d/20_custom-ehci_hcd
Passo 2: Copie todo o script abaixo no arquivo que você acabou de criar e salve-o:
#!/bin/sh
VERSION=1.1
DEV_LIST=/tmp/usb-dev-list
DRIVERS_DIR=/sys/bus/pci/drivers
DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd
HEX="[[:xdigit:]]"
MAX_BIND_ATTEMPTS=2
BIND_WAIT=0.1
unbindDev() {
echo -n > $DEV_LIST 2>/dev/null
for driver in $DRIVERS; do
DDIR=$DRIVERS_DIR/${driver}_hcd
for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do
echo -n "$dev" > $DDIR/unbind
echo "$driver $dev" >> $DEV_LIST
done
#for bus in $EHCI_BUSES; do
echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/unbind
# done
done
}
bindDev() {
if [ -s $DEV_LIST ]; then
while read driver dev; do
DDIR=$DRIVERS_DIR/${driver}_hcd
#for bus in $EHCI_BUSES; do
echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/bind
#done
while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do
echo -n "$dev" > $DDIR/bind
if [ ! -L "$DDIR/$dev" ]; then
sleep $BIND_WAIT
else
break
fi
MAX_BIND_ATTEMPTS=$((MAX_BIND_ATTEMPTS-1))
done
done < $DEV_LIST
fi
rm $DEV_LIST 2>/dev/null
chvt 1
chvt 7
}
EHCI_BUSES="0000:00:1a.0 0000:00:1d.0"
case "$1" in
hibernate|suspend)
unbindDev;;
resume|thaw)
bindDev;;
esac
Etapa 3: conceda permissões de execução ao script digitando:
sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
Responder2
Depois de ler, descobri que o problema estava na placa WiFi Qualcomm Atheros QCA6164 usada em muitos laptops Lenovo (G50-80 no meu caso). O Ubuntu não parece ter o firmware adequado para esta placa, o que a faz funcionar.
Também descobri que desligar o Wifi antes de fechar meu laptop evitaria que tudo bugasse, então coloquei isso e a solução destepublicarjuntos e criamos um arquivo /etc/acpi/
para lidar com o evento de fechamento da tampa.
Adicione o seguinte código usando sudo nano /etc/acpi/lid.sh
:
#!/bin/sh
grep -q closed /proc/acpi/button/lid/LID0/state
if [ $? = 0 ]
then
nmcli radio wifi off
pm-suspend
else
nmcli radio wifi on
fi
Em seguida, adicione as seguintes linhas usando sudo nano /etc/acpi/events/lm_lid
:
event=button/lid.*
action=/etc/acpi/lid.sh
Agora, remova o comentário e defina a seguinte linha usando sudo nano /etc/systemd/logind.conf
:
HandleLidSwitch=ignore
Por fim, entre System Settings > Power
e coloque todas as opções de fechamento da tampa em Do Nothing
.
Execute o seguinte para definir as permissões e finalizar as alterações:
sudo chmod 755 /etc/acpi/lid.sh
sudo /etc/init.d/acpid restart
sudo service systemd-logind restart
Espero que funcione para você!