Як виправити помилку NVIDIA Resume на елементарній ОС Loki

Elementary OS Loki – це стабільна операційна система на базі Linux, проте користувачі, які використовують її з пропрієтарними драйверами Nvidia, іноді стикаються з неприємною помилкою після виходу зі стану сну. Проблема з відновленням Nvidia в Elementary OS Loki залишається актуальною, і спільнота користувачів активно намагається з’ясувати її причину.

Запропоноване нами рішення для усунення помилки відновлення Nvidia не є абсолютно гарантованим. Навіть після застосування цього виправлення ви все ще можете зіткнутися з цією проблемою. Суть виправлення полягає у використанні системи ініціалізації systemd в Elementary OS для перезапуску менеджера вікон.

Ви можете помітити, що менеджер вікон Gala не перезапускається. Якщо служба не працює, спробуйте видалити файли і запустити її знову, або скористайтеся ручним запуском через програму Wingpanel, виконавши команду:

gala --replace

Застосовуйте це рішення на свій власний ризик.

Створення скрипту

Перед налаштуванням хука сну в systemd, нам потрібен скрипт. Це пов’язано з тим, що не можна напряму прописувати команди у файлі служби. Відкрийте термінал в Elementary OS та отримайте права root, виконавши команду sudo -s.

У терміналі з правами root, відкрийте текстовий редактор nano:

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

Ця команда створить новий файл SH, який буде збережено в каталозі /usr/bin/. Скопіюйте наступний код у верхній частині файлу. Цей код є важливим, оскільки він встановлює середовище, в якому запускається скрипт. Без нього скрипт може не спрацювати.

#!/bin/bash

Рядок #!/bin/bash у верхній частині скрипту 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

Наступним кроком є створення “хука сну”. Це сервіс, який запускається в systemd, коли користувач виходить зі стану сну. Для цього нам знову знадобиться редактор nano. Переконайтесь, що термінал має права root. Якщо ні, виконайте sudo -s, щоб отримати root доступ, та відкрийте новий файл, скориставшись командою:

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

Всередині файлу [email protected] вставте наступне:

[Unit]
Description=Дії користувача після виходу зі сну
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 [email protected]

та

systemctl start [email protected]

Відтепер, кожного разу, коли ваш комп’ютер виходить зі стану сну, менеджер вікон 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, вони можуть уникнути проблеми з відновленням.

Заміна менеджера вікон

Якщо ви хочете використовувати драйвери з закритим кодом в Elementary OS, розгляньте можливість ручної заміни менеджера вікон Elementary OS на інший, наприклад, Mutter.

Mutter — це легкий і красивий менеджер вікон зі схожими візуальними ефектами. Просто введіть цю команду в терміналі:

sudo apt install mutter

Потім перейдіть до налаштувань системи (або скористайтеся пошуком) і додайте mutter --replace як команду. При запуску ваш комп’ютер автоматично замінить Gala на Mutter. Це може бути грубим рішенням, але воно має допомогти.