Ноутбук не подвешивает должным образом закрывающую крышку

Я запускаю Ubuntu 16.04 LTS на моем Lenovo G50, и все идет хорошо, за исключением того, что я не могу закрыть крышку моего ноутбука без необходимости перезагрузки после этого. Когда я закрою крышку (или если я запустил pm-suspend), мой экран ноутбука потемнеет на несколько секунд, а затем снова включится.

Проблема в том, что когда я пытаюсь возобновить ее, мой ноутбук в основном превращается в картофель ... По какой-то причине сетевой менеджер (как Wi-Fi, так и ethernet) не работает, терминал становится очень медленным, и я не могу запускать какую-либо команду, используя sudo, потому что она будет вешать там навсегда.

Я попытался изменить файл logind.conf, я попытался изменить Power System Settings, обновил драйвер графической подсистемы Intel, я установил такие инструменты, как pmi или laptop-mode ... У меня заканчиваются идеи, но я бы сделал все, чтобы исправить эту проблему.

Если есть какая-либо системная информация, которая может быть полезна, сообщите мне, и я добавлю ее в сообщение.

0
задан 24 February 2018 в 22:25

4 ответа

Чтобы изменить действие закрывающей крышки в Ubuntu:

Откройте файл /etc/systemd/logind.conf в текстовом редакторе с правами root, например

sudo nano /etc/systemd/logind.conf

Изменить эта строка:

#HandleLidSwitch=ignore

К этой строке:

HandleLidSwitch=suspend

Убедитесь, что ее комментарий отсутствует.

В качестве альтернативы вы также можете добавить эту строку, но i предпочитайте первый:

HandleLidSwitchDocked=suspend

Затем запустите:

sudo service systemd-logind restart

Или Убедитесь, что он закомментирован. .

Чтобы изменить действие закрывающей крышки в Ubuntu:

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

Fix suspend на ноутбуках

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
2
ответ дан 17 July 2018 в 20:05

После установки 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

Надеюсь, это сработает для вас!

0
ответ дан 17 July 2018 в 20:05

Чтобы изменить действие закрывающей крышки в Ubuntu:

Откройте файл /etc/systemd/logind.conf в текстовом редакторе с правами root, например

sudo nano /etc/systemd/logind.conf

Изменить эта строка:

#HandleLidSwitch=ignore

К этой строке:

HandleLidSwitch=suspend

Убедитесь, что ее комментарий отсутствует.

В качестве альтернативы вы также можете добавить эту строку, но i предпочитайте первый:

HandleLidSwitchDocked=suspend

Затем запустите:

sudo service systemd-logind restart

Или Убедитесь, что он закомментирован. .

Чтобы изменить действие закрывающей крышки в Ubuntu:

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

Fix suspend на ноутбуках

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
2
ответ дан 23 July 2018 в 20:48
  • 1
    Я пробовал каждую комбинацию из этих 2, но он все еще полностью запутывает попытку приостановить – TheGirrafish 24 February 2018 в 23:13
  • 2
    Что вы имеете в виду с ошибками? Что произойдет, если вы приостановите действие вручную? – An0n 24 February 2018 в 23:17
  • 3
    Если я попытаюсь приостановить каким-либо способом, сетевой диспетчер перестанет работать, терминал станет очень медленным, и я не могу запускать какие-либо команды с помощью sudo, потому что он будет вешать бесконечно. У меня в значительной степени нет выбора, кроме как жестко перезагрузить мой ноутбук (команда reboot заставляет ноутбук зависать на экране выключения) – TheGirrafish 24 February 2018 в 23:24
  • 4
    Используйте метод устранения проблем, описанный в моем ответе, чтобы проверить, какая программа заставит ваш ubuntu зависнуть / ошибка. – An0n 24 February 2018 в 23:32
  • 5
    Нет проблем, рад его исправлен. – An0n 25 February 2018 в 01:29

После установки 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

Надеюсь, это сработает для вас!

0
ответ дан 23 July 2018 в 20:48

Другие вопросы по тегам:

Похожие вопросы: