Я запускаю Ubuntu 16.04 LTS на моем Lenovo G50, и все идет хорошо, за исключением того, что я не могу закрыть крышку моего ноутбука без необходимости перезагрузки после этого. Когда я закрою крышку (или если я запустил pm-suspend), мой экран ноутбука потемнеет на несколько секунд, а затем снова включится.
Проблема в том, что когда я пытаюсь возобновить ее, мой ноутбук в основном превращается в картофель ... По какой-то причине сетевой менеджер (как Wi-Fi, так и ethernet) не работает, терминал становится очень медленным, и я не могу запускать какую-либо команду, используя sudo, потому что она будет вешать там навсегда.
Я попытался изменить файл logind.conf, я попытался изменить Power System Settings, обновил драйвер графической подсистемы Intel, я установил такие инструменты, как pmi или laptop-mode ... У меня заканчиваются идеи, но я бы сделал все, чтобы исправить эту проблему.
Если есть какая-либо системная информация, которая может быть полезна, сообщите мне, и я добавлю ее в сообщение.
Откройте файл /etc/systemd/logind.conf в текстовом редакторе с правами root, например
sudo nano /etc/systemd/logind.conf
Изменить эта строка:
#HandleLidSwitch=ignore
К этой строке:
HandleLidSwitch=suspend
Убедитесь, что ее комментарий отсутствует.
В качестве альтернативы вы также можете добавить эту строку, но i предпочитайте первый:
HandleLidSwitchDocked=suspend
Затем запустите:
sudo service systemd-logind restart
Или Убедитесь, что он закомментирован. .
dmesg|less
Как правило, запись о том, какое приложение вызвало отказ подвески:
[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
sudo apt-get install uswsusp
Теперь тест suspend with:
sudo s2ram
Если это не сработает:
sudo s2ram --force
Далее отредактируйте этот файл:
sudo nano /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux
Изменить код на:
#!/bin/sh
/sbin/s2ram --force
Изменить: другое исправление:
Поместить скрипт в '/etc/pm/sleep.d/ ', скрипты будут запускаться при приостановке и возобновлении. Имя файла должно начинаться с порядкового номера 00-49 для пользовательских скриптов (более подробно см. Man pm-suspend).
Скрипт может выглядеть следующим образом:
#!/bin/sh
(killall -9 mount.nfs; exit 0)
Если у вас возникли проблемы, проверьте /var/log/pm-suspend.log, который будет регистрировать попытку приостановления и запуска вашего скрипта.
Шаг 1. Откройте терминал и создайте файл сценария следующим образом:
sudo nano /etc/pm/sleep.d/20_custom-ehci_hcd
Шаг 2. Скопируйте весь сценарий ниже в только что созданный файл и сохраните его:
#!/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
Шаг 3: Дайте разрешения запуска сценария, набрав:
sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
После установки uswsusp, запуск sudo pm-suspend начал работать, но мой ноутбук все равно потерпел крах при попытке закрыть крышку. После прочтения я нашел этот пост о том, как улавливать события крышки, поэтому я создал файл в /etc/acpi/ для обработки закрывающих событий и проигнорировал все остальные операции.
Сначала установите пакет (возможно, не (d1) sudo apt-get install uswsusp
Затем добавьте следующий код, используя sudo nano /etc/acpi/lid.sh:
#!/bin/sh
grep -q closed /proc/acpi/button/lid/LID0/state
if [ $? = 0 ]
then
pm-suspend
fi
Примечание: для запуска команды при открытии lid и else.
Затем добавьте следующие строки, используя sudo nano /etc/acpi/events/lm_lid:
event=button/lid.*
action=/etc/acpi/lid.sh
Теперь раскомментируйте и установите следующую строку, используя sudo nano /etc/systemd/logind.conf:
HandleLidSwitch=ignore
Наконец, перейдите в System Settings > Power и поместите все параметры закрывающей крышки на Do Nothing.
Для завершения изменений выполните следующее:
sudo /etc/init.d/acpid restart
sudo service systemd-logind restart
Надеюсь, это сработает для вас!
Откройте файл /etc/systemd/logind.conf в текстовом редакторе с правами root, например
sudo nano /etc/systemd/logind.conf
Изменить эта строка:
#HandleLidSwitch=ignore
К этой строке:
HandleLidSwitch=suspend
Убедитесь, что ее комментарий отсутствует.
В качестве альтернативы вы также можете добавить эту строку, но i предпочитайте первый:
HandleLidSwitchDocked=suspend
Затем запустите:
sudo service systemd-logind restart
Или Убедитесь, что он закомментирован. .
dmesg|less
Как правило, запись о том, какое приложение вызвало отказ подвески:
[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
sudo apt-get install uswsusp
Теперь тест suspend with:
sudo s2ram
Если это не сработает:
sudo s2ram --force
Далее отредактируйте этот файл:
sudo nano /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux
Изменить код на:
#!/bin/sh
/sbin/s2ram --force
Изменить: другое исправление:
Поместить скрипт в '/etc/pm/sleep.d/ ', скрипты будут запускаться при приостановке и возобновлении. Имя файла должно начинаться с порядкового номера 00-49 для пользовательских скриптов (более подробно см. Man pm-suspend).
Скрипт может выглядеть следующим образом:
#!/bin/sh
(killall -9 mount.nfs; exit 0)
Если у вас возникли проблемы, проверьте /var/log/pm-suspend.log, который будет регистрировать попытку приостановления и запуска вашего скрипта.
Шаг 1. Откройте терминал и создайте файл сценария следующим образом:
sudo nano /etc/pm/sleep.d/20_custom-ehci_hcd
Шаг 2. Скопируйте весь сценарий ниже в только что созданный файл и сохраните его:
#!/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
Шаг 3: Дайте разрешения запуска сценария, набрав:
sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
После установки uswsusp, запуск sudo pm-suspend начал работать, но мой ноутбук все равно потерпел крах при попытке закрыть крышку. После прочтения я нашел этот пост о том, как улавливать события крышки, поэтому я создал файл в /etc/acpi/ для обработки закрывающих событий и проигнорировал все остальные операции.
Сначала установите пакет (возможно, не (d1) sudo apt-get install uswsusp
Затем добавьте следующий код, используя sudo nano /etc/acpi/lid.sh:
#!/bin/sh
grep -q closed /proc/acpi/button/lid/LID0/state
if [ $? = 0 ]
then
pm-suspend
fi
Примечание: для запуска команды при открытии lid и else.
Затем добавьте следующие строки, используя sudo nano /etc/acpi/events/lm_lid:
event=button/lid.*
action=/etc/acpi/lid.sh
Теперь раскомментируйте и установите следующую строку, используя sudo nano /etc/systemd/logind.conf:
HandleLidSwitch=ignore
Наконец, перейдите в System Settings > Power и поместите все параметры закрывающей крышки на Do Nothing.
Для завершения изменений выполните следующее:
sudo /etc/init.d/acpid restart
sudo service systemd-logind restart
Надеюсь, это сработает для вас!