Comment réparer le bogue de reprise NVIDIA sur le système d'exploitation élémentaire Loki
Elementary OS Loki se distingue par sa robustesse, cependant, l'utilisation conjointe avec les pilotes propriétaires Nvidia peut parfois engendrer un dysfonctionnement agaçant lors de la sortie de la mise en veille. Actuellement, ce problème de reprise lié à Nvidia persiste sur Elementary OS Loki, et la communauté cherche activement à en comprendre les raisons.
Notre solution pour pallier ce bug de reprise Nvidia n'est pas infaillible. Même après l'application de ce correctif, il est possible de rencontrer ces désagréments. Le correctif repose sur l'utilisation du système init systemd au sein d'Elementary OS, dans le but de réinitialiser le gestionnaire de fenêtres.
Il est possible que le gestionnaire de fenêtres Gala ne se réinitialise pas correctement. Si le service refuse de fonctionner, envisagez de supprimer les fichiers et de redémarrer le système, ou bien d'exécuter la commande manuellement via le lanceur d'applications Wingpanel :
gala --replace
Toutefois, procédez avec prudence, car cette manipulation n'est pas sans risque.
Création du script
Avant d'intégrer un hook de veille dans systemd, un script est nécessaire. Cette exigence est due à l'impossibilité d'écrire directement des commandes dans le fichier de service. Par conséquent, ouvrez une fenêtre de terminal sur votre bureau Elementary OS et accédez aux droits root à l'aide de la commande `sudo -s`.
Une fois le terminal en mode root, ouvrez l'éditeur de texte nano.
nano /usr/bin/pantheon-wm-refresh.sh
Cette commande permet de préparer un nouveau fichier SH qui sera sauvegardé dans le répertoire `/usr/bin/`. À l'intérieur de ce fichier, collez le code suivant au début. Cette ligne est cruciale car elle détermine l'environnement d'exécution du script. Sans elle, le script ne fonctionnera pas.
#!/bin/bash
La présence de cette ligne au début permet à l'interpréteur de comprendre le type de fichier. Maintenant, il est temps d'ajouter le reste des commandes. Commencez par spécifier l'affichage par défaut. Cela assure que le gestionnaire de fenêtres se rafraîchit sur l'écran approprié.
export DISPLAY=:0
Juste après `export DISPLAY=:0`, ajoutez la commande qui forcera l'environnement de bureau Pantheon à réinitialiser le gestionnaire de fenêtres lorsqu'il sortira de la veille. Cette commande demande simplement au gestionnaire de fenêtres d'Elementary OS (Gala) de se remplacer.
gala --replace
Maintenant que le script shell est complet, enregistrez-le en appuyant sur Ctrl + O. Ensuite, modifiez les permissions du fichier afin qu'il puisse être exécuté en tant que programme :
chmod +x /usr/bin/pantheon-wm-refresh.sh
Configuration d'un service Systemd
La prochaine étape dans la résolution de ce bug de reprise est la création d'un "hook de sommeil". Il s'agit d'un service qui s'exécutera dans systemd lorsque l'utilisateur sortira de la veille. Pour cela, vous aurez de nouveau besoin de l'éditeur de texte nano. Assurez-vous que votre terminal dispose toujours des droits root. Si ce n'est pas le cas, utilisez `sudo -s` pour y accéder et créez un nouveau fichier avec la commande :
nano /etc/systemd/system/[email protected]
Dans le fichier `[email protected]`, insérez le contenu suivant :
[Unit] Description=Actions de reprise utilisateur After=suspend.target [Service] User=%I Type=simple ExecStart=/usr/bin/pantheon-wm-refresh.sh [Install] WantedBy=suspend.target
Enregistrez ce nouveau fichier systemd avec Ctrl + O, puis utilisez la commande systemctl pour activer ce service dans le système init :
systemctl enable resume@user
et
systemctl start resume@user
Désormais, à chaque fois que votre PC sortira de la veille, le gestionnaire de fenêtres Pantheon sera rafraîchi. Ceci devrait éliminer le problème de scintillement de l'écran rencontré avec certains pilotes GPU propriétaires de Nvidia sous Elementary OS.
Autres solutions de dépannage
Mettre à jour les pilotes
Si la solution présentée ci-dessus ne fonctionne pas, envisagez les deux options suivantes. La première est de mettre à jour les pilotes propriétaires Nvidia vers la dernière version disponible sur votre système Elementary OS. Pour cela, commencez par installer un outil qui permet l'utilisation de PPA sur votre système :
sudo apt install software-properties-common
Ensuite, ajoutez le PPA contenant les pilotes mis à jour régulièrement :
sudo add-apt-repository ppa:graphics-drivers/ppa
Après cela, ouvrez le centre logiciel Elementary OS, recherchez "pilotes supplémentaires", cliquez sur installer et lancez-le (si ce n'est pas déjà fait). Désélectionnez la version actuelle des pilotes Nvidia que vous utilisez et installez la dernière version proposée. Cette opération mettra à jour votre système avec la dernière version des pilotes, ce qui peut résoudre certains bugs.
Restaurer les pilotes
Si la mise à jour des pilotes Nvidia vers la dernière version n'a pas été concluante, essayez de revenir à une version antérieure des pilotes propriétaires Nvidia, ou d'utiliser les pilotes open source Noveau. Bien que ceux-ci ne soient pas aussi performants que les pilotes Nvidia, ils ne présentent pas le bug de reprise.
Remplacer le gestionnaire de fenêtres d'Elementary OS
Si vous tenez absolument à utiliser les pilotes fermés sur Elementary OS, envisagez de remplacer manuellement le gestionnaire de fenêtres par une alternative, comme Mutter.
Mutter est un gestionnaire de fenêtres léger et agréable, offrant des effets visuels similaires à Gala. Pour l'installer, exécutez simplement cette commande dans le terminal :
sudo apt install mutter
Ensuite, allez dans les paramètres système (ou via la recherche du lanceur) et ajoutez `mutter --replace` en tant que commande d'exécution. Au démarrage, votre PC remplacera automatiquement Gala par Mutter. Bien qu'il s'agisse d'une solution de fortune, elle devrait résoudre le problème.