Comment puis-je mettre mon écran HDMI en (et hors) mode d'économie d'énergie?


20

J'utilise un Raspberry Pi pour exécuter un affichage d'informations dans un bureau. Je souhaite que l'écran soit en mode d'économie d'énergie en dehors des heures d'ouverture. J'allais utiliser cronpour exécuter quelque chose au début et à la fin de la journée, mais xset dpms force offcela ne fonctionne pas.

J'ai désactivé l'économiseur d'écran (donc les séjours d'affichage pendant la journée) avec l'ajout de xset s off, xset -dpmset xset s noblankdans le /etc/xdg/lxsession/LXDE/autostartfichier.

Voici les résultats de xset q:

Keyboard Control:
  auto repeat:  on    key click percent:  0    LED mask:  00000000
  XKB indicators:
    00: Caps Lock:   off    01: Num Lock:    off    02: Scroll Lock: off
    03: Compose:     off    04: Kana:        off    05: Sleep:       off
    06: Suspend:     off    07: Mute:        off    08: Misc:        off
    09: Mail:        off    10: Charging:    off    11: Shift Lock:  off
    12: Group 2:     off    13: Mouse Keys:  off
  auto repeat delay:  500    repeat rate:  33
  auto repeating keys:  00ffffffdffffbbf
                        fadfffefffedffff
                        9fffffffffffffff
                        fff7ffffffffffff
  bell percent:  0    bell pitch:  400    bell duration:  100
Pointer Control:
  acceleration:  20/10    threshold:  10
Screen Saver:
  prefer blanking:  no    allow exposures:  yes
  timeout:  0    cycle:  600
Colors:
  default colormap:  0x20    BlackPixel:  0x0    WhitePixel:  0xffff
Font Path:
  built-ins
DPMS (Energy Star):
  Standby: 600    Suspend: 600    Off: 600
  DPMS is Disabled

UPDATE:xset s blank && xset +dpms && xset dpms force off effacera l'affichage, mais ne le mettra pas en mode d'économie d'énergie. Après avoir lu beaucoup de discussions, je ne parviens toujours pas à obtenir l'heure système correcte (je pense que cela peut être un problème de pare-feu) ...


Vous obtenez une erreur xsetou rien ne se produit? Aussi quelle distribution? Si cela ne fonctionne pas, je suppose que ACPI n'est pas compilé dans le noyau. À titre de diagnostic, veuillez publier la sortie de xset q. Merci.
Jivings

@Jivings: pas d'erreur, l'écran passe en statique. Avant de désactiver la suppression, l'écran deviendrait en fait vide (je ne sais pas s'il passe en mode d'économie d'énergie). J'utilise 2012-09-18-wheezy-raspbian avec des mises à jour / mises à niveau logicielles / micrologicielles.

D'accord. Pouvez-vous modifier votre question avec la sortie de xset q?
Jivings

@jivings désolé, je n'étais pas en ville, mais j'ai mis à jour la question avec les informations que vous avez demandées.

En bas, il est écrit DPMS is disabled. Allumez-le: xset +dpmsalors vos commandes devraient fonctionner ...
Jivings

Réponses:


9

Cette question appartient vraiment à raspberrypi.stackexchange.com car c'est un problème spécifique à Raspberry Pi: le pilote de framebuffer du noyau pour le Raspberry Pi ne prend pas en charge la fonction que X utilise pour mettre le moniteur en veille:

https://github.com/raspberrypi/linux/issues/487

Jusqu'à ce que ce problème soit résolu, il ne sera pas possible pour X de mettre le moniteur en veille à l'aide de DPMS.

Vous pouvez avoir de la chance avec le /opt/vc/bin/tvserviceprogramme: tvservice -oéteint HDMI et tvservice -pdevrait rallumer HDMI .


2

Dissiper les mauvais chemins

Premièrement, pratiquement tous les écrans modernes prennent en charge les modes veille. De plus, xset dpms force off(ou d'autres façons de dire au serveur X) est la bonne façon (sous X) d'éteindre les moniteurs. Je l'utilise depuis des années sans accroc.

Deuxièmement, la mention DPMS is Disabledne vient que de votre xset -dpms. Dès que vous émettez xset dpms force offou une autre option xset liée à DPMS, elle est réactivée, il est donc normal que vous obteniez le même résultat avec ou sans xset +dpms.

Hypothèse

Maintenant, vous avez écrit que vous voyez "statique". Cet écran prend en charge les signaux de télévision analogique traditionnels, non?

Une hypothèse est que le téléviseur, au lieu de s'endormir, passe en fait à la télévision analogique, et comme il n'y a pas de signal, il montre ce qui est généralement appelé "statique".

Testez cette hypothèse

Voici une option à essayer. Essayez une fois de brancher un autre écran, idéalement celui qui ne prend pas en charge la télévision analogique. Voyez si cet écran se met en veille xset dpms force off. Si oui, la configuration est correcte du côté Pi.

Essayez des variantes

Peut-être que les autres états vidéo demanderont au téléviseur de rester sur le bon canal mais avec une réduction de la consommation d'énergie. Au lieu de cela xset dpms force off, essayez-les:

xset dpms force standby
xset dpms force suspend

Et voyez si l'un d'eux produit ce dont vous avez besoin. Attendez au moins 10 secondes après chaque essai pour voir ce que cela fait. Appuyez sur n'importe quelle touche du clavier Pi pour reprendre l'affichage (à distance, vous pouvez l'utiliser xset dpms force on).

Accéder à la production

Si l'une des variantes ci-dessus fait ce dont vous avez besoin, alors merci de partager!

Si ce n'est pas le cas et que vous avez vraiment besoin d'utiliser l'affichage d'origine, voyez dans les menus si vous pouvez désactiver les fonctionnalités de la télévision analogique.

Veuillez partager ce que vous avez appris de ces essais.


1

Ne vbetoolfonctionne pas ?

Écran de suspension (indique physiquement que le moniteur passe en mode veille): vbetool dpms suspend Reprise (quitte le mode veille):vbetool dpms on


1
vbetool est uniquement x86, je pense. Donc ça n'aidera pas ARM
Renan

0

Vous pouvez activer et désactiver le HDMI lui-même.

  • HDMI activé: /opt/vc/bin/tvservice -p

  • HDMI éteint: /opt/vc/bin/tvservice -o

Plus de détails sur le tvservicebinaire:

# dpkg -S /opt/vc/bin/tvservice
libraspberrypi-bin: /opt/vc/bin/tvservice

# dpkg -s libraspberrypi-bin
Package: libraspberrypi-bin
Maintainer: Serge Schneider <serge@raspberrypi.org>
Description: Miscellaneous Raspberry Pi utilities
 This package contains various utilities for interacting with the Raspberry
 Pi's VideoCore IV.
Homepage: https://github.com/raspberrypi/firmware

# /opt/vc/bin/tvservice
Usage: tvservice [OPTION]...
  -p, --preferred                   Power on HDMI with preferred settings
  -e, --explicit="GROUP MODE DRIVE" Power on HDMI with explicit GROUP (CEA, DMT, CEA_3D_SBS, CEA_3D_TB, CEA_3D_FP, CEA_3D_FS)
                                      MODE (see --modes) and DRIVE (HDMI, DVI)
  -t, --ntsc                        Use NTSC frequency for HDMI mode (e.g. 59.94Hz rather than 60Hz)
  -c, --sdtvon="MODE ASPECT [P]"    Power on SDTV with MODE (PAL or NTSC) and ASPECT (4:3 14:9 or 16:9) Add P for progressive
  -o, --off                         Power off the display
  -m, --modes=GROUP                 Get supported modes for GROUP (CEA, DMT)
  -M, --monitor                     Monitor HDMI events
  -s, --status                      Get HDMI status
  -a, --audio                       Get supported audio information
  -d, --dumpedid <filename>         Dump EDID information to file
  -j, --json                        Use JSON format for --modes output
  -n, --name                        Print the device ID from EDID
  -h, --help                        Print this information

-2

(vous avez lu des articles postés par des gens qui n'avaient aucune expérience, essayant de vous vendre un système d'exploitation différent ou couvrant le manque d'énergie star d'un appareil en porcelaine, ou et vous n'avez pas lu le code source - qui ne sont pas tous des suggestions de lecture) .

xset s on; OU ; xset + dpms

vous NE POUVEZ PAS faire les deux sauf si vous voulez des problèmes de suppression (comme le réveil). les deux font le même travail de façon légèrement différente - ils interfèrent l'un avec l'autre. (RedHat linux est célèbre pour avoir mal renseigné les gens à ce sujet et expédié de nombreuses distributions avec les deux activées par défaut, tout comme Debian)

lorsque vous utilisez "xset dpms force off; sleep 2", vous devez dormir pour qu'il ne se réveille pas en appuyant sur Entrée (en supposant que vous le faites en utilisant votre clavier et non un script)

en ce qui concerne HDMI, je ne sais pas si Energy Star fait partie de la spécification HDMI 1.0-2.x. mais si ça marche 1/2 alors c'est peut-être le cas.

Linux et FreeBSD sont astucieux mais si vous ne faites pas partie d'une grande équipe, il est impossible de penser qu'il peut faire fonctionner votre centre de divertissement à domicile (contrôler l'équipement multimédia en faisant des choses spécifiques au matériel comme Energy Star, véritable support de lecture MPEG matériel (TV), etc.) . ils ont des bibliothèques et des initiatives et des exemples de périphériques qui fonctionnent - mais ces choses sont de courte durée (vous devez utiliser le même système d'exploitation et le même périphérique bien connu, ou "bonne chance")

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.