Вопрос или проблема
Я использовал драйвер 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
, что и является причиной вашей проблемы.
Решение
Для устранения этой проблемы выполните следующие шаги:
-
Переустановка драйвера NVIDIA: Это обеспечит наличие всех необходимых файлов и скриптов. Откройте терминал и выполните следующие команды:
sudo apt update sudo apt install --reinstall nvidia-driver-470
-
Копирование скриптов и служб: Вам нужно будет установить службы 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
-
Активируйте службы: После установки служб вам нужно их активировать. Введите:
sudo systemctl enable nvidia-suspend.service sudo systemctl enable nvidia-hibernate.service sudo systemctl enable nvidia-resume.service
-
Перезагрузите компьютер: После выполнения всех вышеперечисленных шагов обязательно перезагрузите систему, чтобы изменения вступили в силу.
-
Удаление конфликтующих драйверов (если проблема сохраняется): В некоторых случаях, если были установлены другие версии драйверов NVIDIA или драйвер Nouveau, это может привести к конфликтам. Пожалуйста, выполните следующую команду для удаления оставшихся пакетов NVIDIA:
sudo apt purge 'nvidia*'
Затем снова установите драйвер NVIDIA с помощью шагов, описанных выше.
-
Проверка состояния служб: После перезагрузки проверьте состояние служб с помощью команды:
systemctl status nvidia-suspend nvidia-hibernate nvidia-resume
Убедитесь, что они активны и не выдают ошибок.
Заключение
Следуя приведенным выше шагам, вы должны устранить проблему с немедленным пробуждением ноутбука из режима ожидания после перехода на драйвер NVIDIA. Если проблема не исчезнет, проверьте логи с помощью:
journalctl -b | grep suspend
Это может предоставить дополнительную информацию о том, что произошло во время операции ожидания и пробуждения.