Il y a donc une sorte d'enregistrement, et je pense que je peux maintenant confirmer que le sommeil aléatoire de l'affichage que j'ai observé est effectivement dû à un bogue logiciel.
Tout d'abord, l'enregistrement (et l'état actuel) des événements et des états liés à la mise en veille du système et de l'affichage peuvent être trouvés en exécutant la commande
pmset -g assertionslog
Hier, mon écran est resté allumé toute la journée. Cependant, en retournant à mon ordinateur ce matin, j'ai constaté que l'écran était éteint. En appuyant sur une touche, il s'est allumé et la fenêtre de connexion était là, comme si je ne lui avais pas demandé de garder l'écran allumé (mais je l'ai quand même autorisé à verrouiller l'écran - il semble que l'économiseur d'écran ait quand même réussi à éteindre l'écran à la fin).
Environ cinq à dix minutes plus tard, l'écran est redevenu noir alors que je faisais défiler les pages. Il a continué à s'éteindre quelques instants après avoir été rallumé.
Après avoir expérimenté pendant un certain temps pour voir s'il y avait un modèle reconnaissable dans les pmset
j'ai décidé d'essayer de tuer les processus qui semblaient changer d'état (c.-à-d. avec une simple commande SIGTERM
).
Le premier que j'ai essayé était /usr/libexec/hidd
qui a été rapidement relancé par launchd
. Cela n'a rien changé au fait que l'écran s'éteignait quelques instants après avoir été réveillé.
Le suivant que j'ai essayé était useractivityd
. L'effet a été immédiat et positif. L'écran n'est pas devenu noir depuis. Il est intéressant de noter que ce processus n'est pas mort - il fonctionne toujours et utilise l'unité centrale, mais il n'est plus mentionné dans aucun document de l'UE. pmset
de la production.
La saga en cours...
Aujourd'hui, après environ une heure d'utilisation normale, l'écran s'est à nouveau éteint, puis à nouveau, puis à nouveau, souvent seulement une seconde ou deux après l'avoir réveillé. L'envoi de SIGTERM
à useractivityd
n'a pas fait grand-chose, j'ai donc envoyé une lettre d'information à ce sujet. SIGKILL
. Il a été immédiatement redémarré par launchd
Mais la bataille pour le maintien de l'affichage s'est poursuivie.
Les choses se sont enfin calmées, mais je ne sais pas exactement ce que j'ai fait pour qu'il en soit ainsi.
Les choses s'aggravent, puis s'améliorent peut-être à nouveau
Hier, je n'ai pas pu garder l'écran allumé plus de quelques secondes, puis j'ai réussi à bloquer quelque chose pour que l'écran de connexion ne s'active pas, et j'ai fini par éteindre le système à partir d'une session SSH, l'éteindre complètement et le redémarrer, pour que le problème recommence peu de temps après.
Aujourd'hui, il a fonctionné pendant un petit moment, puis il a recommencé à s'éteindre et à être pratiquement inutilisable.
Je commençais presque à penser qu'il s'agissait d'un problème matériel.
Puis, sur un coup de tête, j'ai désactivé et désinstallé f.Lux. Depuis, il s'est éteint lorsqu'il était sans surveillance, puis une fois de plus lorsqu'il était en cours d'utilisation, mais à part cela, il va beaucoup mieux qu'avant.
PAS un problème de logiciel : l'ordinateur est maintenant pratiquement inutilisable.
Aujourd'hui, l'ordinateur est pratiquement inutilisable (au moins au niveau du clavier et de l'écran).
Si la machine est très froide, l'écran restera allumé pendant quelques minutes au maximum. Toutefois, si la machine est à une température de fonctionnement "normale" (selon tous les capteurs et l'historique de tous les capteurs), l'écran peut même s'éteindre pendant les toutes premières phases du démarrage (c'est-à-dire pendant que les messages de démarrage de la console défilent encore lors d'un démarrage en mode "verbeux").
Ce qui est intéressant, c'est que l'écran peut être allumé par le système d'exploitation (c'est-à-dire en appuyant sur une touche et en générant une "activité" avec des touches ou en déplaçant le curseur de la souris, etc.), pour être ensuite éteint quelques instants ou quelques secondes plus tard par n'importe quel matériel et/ou microprogramme défaillant.
Si je parviens à trouver un moyen d'allumer l'écran par programmation (par exemple en générant les mêmes événements clavier que ceux que j'utilise manuellement), je pourrai alors rallumer continuellement l'écran à l'aide d'un démon, ce qui me permettra de tenir le coup jusqu'à ce que je sois en mesure de remplacer la machine dans son intégralité.
Un sursis, des sorts....
Juste après avoir effectué la dernière modification, je suis tombé sur un article décrivant le même problème. Après la quantité habituelle de pontifications inutiles et mal dirigées sur les causes possibles du problème (toutes totalement impossibles) et la série habituelle de suggestions d'actions inutiles, il y avait une petite indication que baisser la luminosité pourrait aider.
Je n'y avais pas pensé plus tôt, car je n'ai pas réussi à améliorer la situation en faisant fonctionner tous les ventilateurs à plein régime.
Cependant, j'ai baissé la luminosité au minimum et j'ai laissé l'écran activé toute la nuit - et que sais-je encore ! Le lendemain matin, l'écran n'était toujours pas éteint !
Cela fait maintenant quelques jours que j'utilise l'appareil, malgré une certaine fatigue oculaire, y compris aujourd'hui, alors que la température de la pièce a légèrement augmenté (malgré l'air conditionné - il fait 43°C à l'extérieur), sans que l'écran ne s'éteigne. Je peux faire fonctionner la luminosité à 5 barres affichées sur le contrôle à l'écran, ou à 0,33 avec la fonction https://github.com/nriley/brightness