mon ordinateur portable Dell est sujet à ce bogue avec le noyau 3.14. Comme solution de contournement, j'ai écrit un script simple
/ usr / bin / fix de luminosité:
#!/bin/bash
echo 0 > /sys/class/backlight/intel_backlight/brightnes
(et rendu exécutable chmod +x /usr/bin/brightness-fix
)
et un service systemd l'appelant qui est exécuté au démarrage:
/etc/systemd/system/brightness-fix.service
[Unit]
Description=Fixes intel backlight control with Kernel 3.14
[Service]
Type=forking
ExecStart=/usr/bin/brightness-fix
TimeoutSec=0
StandardOutput=syslog
#RemainAfterExit=yes
#SysVStartPriority=99
[Install]
WantedBy=multi-user.target
et activé: systemctl enable /etc/systemd/system/brightness-fix.service
Cela fonctionne comme un charme et je peux contrôler la luminosité de mon écran comme je le souhaite. Le problème survient lorsque l'ordinateur portable reprend après être passé en mode veille (par exemple lors de la fermeture de la lèvre de l'ordinateur portable): le contrôle de la luminosité ne fonctionne plus sauf si j'exécute manuellement mon premier script ci-dessus:/usr/bin/brightness-fix
Comment puis-je créer un autre service systemd comme le mien ci-dessus à exécuter au moment de la reprise?
EDIT:
Selon les commentaires ci-dessous, j'ai modifié mon brightness-fix.service
comme ceci:
[Unit]
Description=Fixes intel backlight control with Kernel 3.14
[Service]
Type=oneshot
ExecStart=/usr/local/bin/brightness-fix
TimeoutSec=0
StandardOutput=syslog
[Install]
WantedBy=multi-user.target sleep.target
J'ai également ajouté echo "$1 $2" > /home/luca/br.log
à mon script pour vérifier s'il est réellement exécuté. Le script est en fait également exécuté à resume ( post suspend
) mais il n'a aucun effet (rétroéclairé à 100% et ne peut pas être modifié). J'ai également essayé de me connecter $DISPLAY
et $USER
, au moment de la reprise, ils sont vides. Donc, je suppose que le script est exécuté trop tôt au réveil. Un indice?
WantedBy=sleep.target
.../usr/local/bin
pas/usr/bin
. ce répertoire est réservé au gestionnaire de packages uniquement.sleep.target
exécutera l'unité lorsque l'ordinateur sera en veille, plutôt que lorsqu'il reprendra. Voir ma réponse ci-dessous pour un fichier d'unité qui a fonctionné pour moi avec un problème similaire.Réponses:
Je sais que c'est une vieille question, mais le fichier d'unité suivant a fonctionné pour moi pour exécuter un script à la sortie du sommeil:
Je crois que c'est ce
After=suspend.target
qui le fait fonctionner à la reprise, plutôt que lorsque l'ordinateur se met en veille.la source
After=suspend.target
dans l' unité etWantedBy=multi-user.target sleep.target
dans l' installation .Comme alternative à l'écriture et à l'activation d'un fichier d'unité, vous pouvez également mettre un script shell (ou un lien symbolique vers votre script) dans
/lib/systemd/system-sleep/
.Il sera appelé avant le sommeil / l'hibernation et au moment de la reprise.
De
man systemd-suspend.service
:Testez-le avec ceci:
la source
/usr/lib
mais tous vos exemples font référence à des fichiers sous/lib
system-sleep
répertoire semble être dans/lib/systemd/
et/usr/lib/systemd
contient d'autres éléments.Suivi de la réponse de mivk, dans laquelle j'évite de nettoyer avec un nouveau fichier d'unité (voir ma question ici Comment réagir aux événements de couvercle d'ordinateur portable? ). Voici ma solution; ce n'est pas simple à 100% ( soupir ) car le système n'est pas stable lorsqu'il sort du sommeil:
Sur ma boîte Fedora 26 j'ai mis un lien symbolique ici:
/usr/lib/systemd/system-sleep/sleepyhead
qui pointe ici :,/root/bin/sleepyhead
qui contient:Le
/root/bin/trackpoint
script suit. Notez que le premier sommeil est critique. L'appareil est configuré à chaque ouverture du couvercle, il n'existe donc pas au départ. Si j'essaie de faire autre chose que dormir, le script "sleepyhead" met très longtemps à sortir et mon pointeur sera figé pendant au moins 60 secondes. De plus, notez que vous ne pouvez pas mettre le/root/bin/trackpoint
script en arrière-plan danssleepyhead
, ci-dessus. Si vous le faites, le processus sera tué à lasleepyhead
sortie.la source