Как исправить ошибку резюме NVIDIA в Elementary OS Loki

Elementary OS Loki — действительно надежный дистрибутив Linux, но при использовании его с проприетарными драйверами Nvidia пользователи иногда сталкиваются с раздражающей ошибкой, выходящей из состояния приостановки. На данный момент ошибка возобновления Nvidia в Elementry OS Loki сохраняется, и пользователи сообщества пытаются понять, почему.

Наше решение для исправления ошибки возобновления Nvidia не на 100% надежно. Даже после установки этого исправления вы все равно можете столкнуться с этими проблемами. Само исправление полагается на использование системы инициализации systemd в Elementary OS для сброса оконного менеджера.

Вы можете заметить, что оконный менеджер Gala не сбрасывается. Если служба отказывается работать, подумайте об удалении файлов и запуске снова или вручную в средстве запуска приложений Wingpanel:

gala --replace

Попробуйте на свой страх и риск.

Написание сценария

Перед созданием ловушки сна в systemd необходим сценарий. Это связано с тем, что вы не можете точно писать команды прямо внутри служебного файла. Вместо этого откройте окно терминала на рабочем столе Elementary OS и получите root-доступ с помощью sudo -s.

В корневом терминале откройте текстовый редактор nano.

nano /usr/bin/pantheon-wm-refresh.sh

Следующая команда подготовит новый SH-файл к сохранению в каталоге / usr / bin /. Отсюда вставьте следующий код вверху файла. Этот код важен, так как он устанавливает среду, в которой запускается сценарий. Без этой строки все не удастся.

#!/bin/bash

С shebang в верхней части сценария в SH-файле есть все необходимое для его чтения интерпретатором. Теперь пришло время добавить остальные аргументы команды. Начнем с определения дисплея по умолчанию. Это необходимо для того, чтобы оконный менеджер обновлялся на правом экране.

export DISPLAY=:0

Сразу после «export DISPLAY =: 0» мы можем указать команду, которая заставит среду рабочего стола Pantheon сбрасывать оконный менеджер, когда он выходит из возобновления. Это простая команда, которая сообщает оконному менеджеру Elementary OS (известному как Gala) о необходимости замены.

gala --replace

С последней командой, записанной в сценарий оболочки, пора экономить. Нажмите Ctrl + O, чтобы сохранить все в nano. После сохранения обновите права доступа к файлу, чтобы он мог работать как программа:

chmod +x /usr/bin/pantheon-wm-refresh.sh

Создание службы Systemd

Следующим шагом в процессе исправления ужасной ошибки возобновления работы Nvidia является создание так называемой «ловушки сна». Это служба, которая может выполняться в systemd, когда пользователь возвращается из «сна». Для начала нам снова понадобится текстовый редактор nano. Убедитесь, что у вашего терминала все еще есть root-доступ. Если нет, используйте sudo -s для получения root и откройте новый файл с помощью:

nano /etc/systemd/system/[email protected]

Внутри файла «resume @ .service» вставьте следующее:

[Unit]
Description=User resume actions
After=suspend.target

[Service]
User=%I
Type=simple
ExecStart=/usr/bin/pantheon-wm-refresh.sh

[Install]
WantedBy=suspend.target

Сохраните новый файл systemd с помощью Ctrl + O, а затем используйте команду systemctl, чтобы включить эту новую службу в системе инициализации.

systemctl enable resume@user

и

systemctl start resume@user

Отсюда, каждый раз, когда вы выводите свой компьютер из режима ожидания, оконный менеджер Pantheon будет обновляться. Это предотвратит раздражающую проблему с глючным экраном, которая возникает в некоторых проприетарных драйверах графического процессора Nvidia, работающих под управлением Elementary OS.

Другие варианты устранения неполадок

Обновите драйверы

Попробуйте наше решение, и ничего не работает? Попробуйте сделать одно из этих двух. Первое, что нужно сделать, это установить самую последнюю версию проприетарных драйверов Nvidia в вашей системе Elementary OS. Это начинается с установки программного обеспечения, которое позволяет использовать PPA в операционной системе.

sudo apt install software-properties-common

Затем добавьте регулярно обновляемый драйвер PPA с помощью:

sudo add-apt-repository ppa:graphics-drivers/ppa

Отсюда откройте центр программного обеспечения Elementary OS, найдите «дополнительные драйверы», нажмите «Установить» и запустите его (если у вас его еще нет). Отмените выбор текущей версии проприетарного драйвера Nvidia, который вы используете, и установите самую последнюю. Это обновит вашу систему до последней версии драйверов — что-то, что может очень хорошо решить досадные ошибки.

Откат драйверов

Если исправление или обновление Nvidia до последней версии не помогло, попробуйте откатить проприетарные драйверы Nvidia и вместо этого использовать драйверы Noveau с открытым исходным кодом. Хотя они не так эффективны, как прямиком от Nvidia, у них не будет ошибки с резюме.

Заменить оконный менеджер Elementry OS

Если вы категорически настроены на использование драйверов с закрытым исходным кодом в Elementary OS, подумайте о том, чтобы вручную заменить оконный менеджер Elementary OS чем-то другим, например Mutter.

Mutter — это легкий, красивый оконный менеджер с похожими визуальными эффектами. Просто запустите эту команду в терминале:

sudo apt install mutter

Затем перейдите в настройки системы (или найдите автозагрузку) и добавьте в качестве команды: mutter –replace. При запуске ваш компьютер автоматически заменит Gala на Mutter. Это грубое решение, но оно выполнит свою работу.