Ubuntu сразу просыпается из сна после обновления драйвера NVIDIA.

Вопрос или проблема

Я использовал драйвер Nouveau X.org для моей видеокарты, но сегодня я изменил драйвер на nvidia-driver-470 (проприетарный и протестированный) из программы “дополнительные драйверы” в Ubuntu. Все в порядке, кроме того, что каждый раз, когда я ставлю свой ноутбук в спящий режим, он сразу же сам просыпается.

Вот вывод следующей команды:

journalctl -b | grep suspend

вывод:

Sep 24 22:26:38 minaHP ModemManager[1527]: <info>  [sleep-monitor] система собирается перейти в спящий режим
Sep 24 22:26:39 minaHP systemd[1]: Начинаю действия по приостановке системы NVIDIA...
Sep 24 22:26:39 minaHP suspend[518255]: nvidia-suspend.service
Sep 24 22:26:39 minaHP logger[518255]: <13>Sep 24 22:26:39 suspend: nvidia-suspend.service
Sep 24 22:26:39 minaHP systemd[518256]: nvidia-suspend.service: Не удалось выполнить команду: Нет такого файла или каталога
Sep 24 22:26:39 minaHP systemd[518256]: nvidia-suspend.service: Ошибка на шаге EXEC при создании /usr/bin/nvidia-sleep.sh: Нет такого файла или каталога
Sep 24 22:26:39 minaHP systemd[1]: nvidia-suspend.service: Основной процесс завершился, код=exited, статус=203/EXEC
Sep 24 22:26:39 minaHP systemd[1]: nvidia-suspend.service: Завершено с результатом 'exit-code'.
Sep 24 22:26:39 minaHP systemd[1]: Не удалось запустить действия по приостановке системы NVIDIA.
Sep 24 22:26:39 minaHP systemd[1]: suspend.target: задание suspend.target/start завершилось неудачей с результатом 'dependency'.
Sep 24 22:26:39 minaHP systemd[1]: systemd-suspend.service: задание systemd-suspend.service/start завершилось неудачей с результатом 'dependency'.
Sep 24 22:26:39 minaHP suspend[518257]: nvidia-resume.service
Sep 24 22:26:39 minaHP logger[518257]: <13>Sep 24 22:26:39 suspend: nvidia-resume.service

Если кто-то может сказать, как это исправить, не возвращаясь к драйверу Nouveau, это было бы замечательно.

Вот другая команда и ее вывод, если это полезно.

mina@minaHP:~$ systemctl status nvidia-suspend nvidia-hibernate nvidia-resume
● nvidia-suspend.service - Действия по приостановке системы NVIDIA
     Загружен: загружен (/lib/systemd/system/nvidia-suspend.service; включен; предпросмотр производителя: включен)
     Активен: завершён (Результат: exit-code) с пт 2021-09-24 22:26:39 EET; 12мин назад
    Процесс: 518255 ExecStart=/usr/bin/logger -t suspend -s nvidia-suspend.service (код=выход, статус=0/УСПЕХ)
    Процесс: 518256 ExecStart=/usr/bin/nvidia-sleep.sh suspend (код=выход, статус=203/EXEC)
   Основной PID: 518256 (код=выход, статус=203/EXEC)

Sep 24 22:26:39 minaHP systemd[1]: Начинаю действия по приостановке системы NVIDIA...
Sep 24 22:26:39 minaHP suspend[518255]: nvidia-suspend.service
Sep 24 22:26:39 minaHP logger[518255]: <13>Sep 24 22:26:39 suspend: nvidia-suspend.service
Sep 24 22:26:39 minaHP systemd[518256]: nvidia-suspend.service: Не удалось выполнить команду: Нет такого файла или каталога
Sep 24 22:26:39 minaHP systemd[518256]: nvidia-suspend.service: Ошибка на шаге EXEC при создании /usr/bin/nvidia-sleep.sh: Нет такого файла или каталога
Sep 24 22:26:39 minaHP systemd[1]: nvidia-suspend.service: Основной процесс завершился, код=exited, статус=203/EXEC
Sep 24 22:26:39 minaHP systemd[1]: nvidia-suspend.service: Завершено с результатом 'exit-code'.
Sep 24 22:26:39 minaHP systemd[1]: Не удалось запустить действия по приостановке системы NVIDIA.

● nvidia-hibernate.service - Действия по гибернации системы NVIDIA
     Загружен: загружен (/lib/systemd/system/nvidia-hibernate.service; включен; предпросмотр производителя: включен)
     Активен: неактивен (мертв)

● nvidia-resume.service - Действия по пробуждению системы NVIDIA
     Загружен: загружен (/lib/systemd/system/nvidia-resume.service; включен; предпросмотр производителя: включен)
     Активен: завершён (Результат: exit-code) с пт 2021-09-24 22:26:39 EET; 12мин назад
    Процесс: 518257 ExecStart=/usr/bin/logger -t suspend -s nvidia-resume.service (код=выход, статус=0/УСПЕХ)
    Процесс: 518258 ExecStart=/usr/bin/nvidia-sleep.sh resume (код=выход, статус=203/EXEC)
   Основной PID: 518258 (код=выход, статус=203/EXEC)

Sep 24 22:26:39 minaHP systemd[1]: Начинаю действия по пробуждению системы NVIDIA...
Sep 24 22:26:39 minaHP suspend[518257]: nvidia-resume.service
Sep 24 22:26:39 minaHP logger[518257]: <13>Sep 24 22:26:39 suspend: nvidia-resume.service
Sep 24 22:26:39 minaHP systemd[518258]: nvidia-resume.service: Не удалось выполнить команду: Нет такого файла или каталога
Sep 24 22:26:39 minaHP systemd[518258]: nvidia-resume.service: Ошибка на шаге EXEC при создании /usr/bin/nvidia-sleep.sh: Нет такого файла или каталога
Sep 24 22:26:39 minaHP systemd[1]: nvidia-resume.service: Основной процесс завершился, код=exited, статус=203/EXEC
Sep 24 22:26:39 minaHP systemd[1]: nvidia-resume.service: Завершено с результатом 'exit-code'.
Sep 24 22:26:39 minaHP systemd[1]: Не удалось запустить действия по пробуждению системы NVIDIA.

Эти ошибки возникают, потому что вам нужно установить службы NVIDIA-{suspend/hibernate/resume}.

Что-то вроде этого:

sudo install /usr/share/doc/NVIDIA_GLX-1.0/samples/systemd/nvidia-suspend.service /etc/systemd/system
sudo install /usr/share/doc/NVIDIA_GLX-1.0/samples/systemd/nvidia-hibernate.service /etc/systemd/system
sudo install /usr/share/doc/NVIDIA_GLX-1.0/samples/systemd/nvidia-resume.service /etc/systemd/system
sudo install /usr/share/doc/NVIDIA_GLX-1.0/samples/systemd/nvidia /lib/systemd/system-sleep
sudo install /usr/share/doc/NVIDIA_GLX-1.0/samples/systemd/nvidia-sleep.sh /usr/bin

Службы NVIDIA systemd затем нужно включить:

sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-hibernate.service
sudo systemctl enable nvidia-resume.service

Переустановка драйвера NVIDIA должна помочь.

В моем случае я удалил nvidia и использовал драйвер nouveau, и при отладке с помощью journalctl --grep='suspend|sleep' --since="-1hour" я увидел ошибку желтым цветом:

введите описание изображения здесь

Решение заключалось в удалении всех оставшихся пакетов nvidia

sudo apt purge 'nvidia*'

Ответ или решение

Проблема с немедленным пробуждением вашего ноутбука после перехода на проприетарный драйвер NVIDIA (в данном случае nvidia-driver-470), скорее всего, связана с отсутствием необходимых скриптов для управления действиями при приостановке и возобновлении работы. Вывод, который вы предоставили, указывает на то, что службы nvidia-suspend и nvidia-resume не могут найти файл nvidia-sleep.sh, что и является причиной вашей проблемы.

Решение

Для устранения этой проблемы выполните следующие шаги:

  1. Переустановка драйвера NVIDIA: Это обеспечит наличие всех необходимых файлов и скриптов. Откройте терминал и выполните следующие команды:

    sudo apt update
    sudo apt install --reinstall nvidia-driver-470
  2. Копирование скриптов и служб: Вам нужно будет установить службы nvidia-suspend, nvidia-hibernate и nvidia-resume. Для этого выполните следующие команды:

    sudo install /usr/share/doc/NVIDIA_GLX-1.0/samples/systemd/nvidia-suspend.service /etc/systemd/system
    sudo install /usr/share/doc/NVIDIA_GLX-1.0/samples/systemd/nvidia-hibernate.service /etc/systemd/system
    sudo install /usr/share/doc/NVIDIA_GLX-1.0/samples/systemd/nvidia-resume.service /etc/systemd/system
    sudo install /usr/share/doc/NVIDIA_GLX-1.0/samples/systemd/nvidia /lib/systemd/system-sleep
    sudo install /usr/share/doc/NVIDIA_GLX-1.0/samples/systemd/nvidia-sleep.sh /usr/bin
  3. Активируйте службы: После установки служб вам нужно их активировать. Введите:

    sudo systemctl enable nvidia-suspend.service
    sudo systemctl enable nvidia-hibernate.service
    sudo systemctl enable nvidia-resume.service
  4. Перезагрузите компьютер: После выполнения всех вышеперечисленных шагов обязательно перезагрузите систему, чтобы изменения вступили в силу.

  5. Удаление конфликтующих драйверов (если проблема сохраняется): В некоторых случаях, если были установлены другие версии драйверов NVIDIA или драйвер Nouveau, это может привести к конфликтам. Пожалуйста, выполните следующую команду для удаления оставшихся пакетов NVIDIA:

    sudo apt purge 'nvidia*'

    Затем снова установите драйвер NVIDIA с помощью шагов, описанных выше.

  6. Проверка состояния служб: После перезагрузки проверьте состояние служб с помощью команды:

    systemctl status nvidia-suspend nvidia-hibernate nvidia-resume

    Убедитесь, что они активны и не выдают ошибок.

Заключение

Следуя приведенным выше шагам, вы должны устранить проблему с немедленным пробуждением ноутбука из режима ожидания после перехода на драйвер NVIDIA. Если проблема не исчезнет, проверьте логи с помощью:

journalctl -b | grep suspend

Это может предоставить дополнительную информацию о том, что произошло во время операции ожидания и пробуждения.

Оцените материал
Добавить комментарий

Капча загружается...