ฉันจะนำหน้าจอ HDMI ของฉันเข้าสู่โหมดประหยัดพลังงาน (และออก) ได้อย่างไร


20

ฉันใช้ Raspberry Pi เพื่อเรียกใช้การแสดงข้อมูลในสำนักงาน ฉันต้องการให้จอแสดงผลในโหมดประหยัดพลังงานเมื่ออยู่นอกเวลาทำการ ฉันจะใช้cronเพื่อดำเนินการบางอย่างที่จุดเริ่มต้นและจุดสิ้นสุดของวัน แต่xset dpms force offไม่ทำงาน

ฉันได้ปิดการใช้งานโปรแกรมรักษาหน้าจอ (เพื่อให้การเข้าพักการแสดงผลบนในช่วงวันที่) ด้วยนอกเหนือจากxset s off, xset -dpmsและxset s noblankใน/etc/xdg/lxsession/LXDE/autostartไฟล์

นี่คือผลลัพธ์จาก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จะทำให้หน้าจอว่าง แต่จะไม่แสดงในโหมดประหยัดพลังงาน หลังจากอ่านเธรดจำนวนมากฉันยังไม่สามารถแก้ไขเวลาของระบบได้อย่างถูกต้อง (ฉันคิดว่าอาจเป็นปัญหาไฟร์วอลล์) ...


คุณได้รับข้อผิดพลาดจากxsetหรือไม่มีอะไรเกิดขึ้น? ยัง distro อะไร ถ้ามันไม่ทำงานฉันจะเดาว่า ACPI ไม่ได้ถูกคอมไพล์ในเคอร์เนล xset qในฐานะที่เป็นวินิจฉัยโปรดโพสต์การส่งออกของ ขอบคุณ
Jivings

@Jivings: ไม่มีข้อผิดพลาดหน้าจอจะคงที่ - ish ก่อนที่ฉันจะปิดการใช้งาน blanking หน้าจอจะว่างเปล่าจริง ๆ (ไม่แน่ใจว่ามันเข้าสู่โหมดประหยัดพลังงาน) ฉันใช้ 2012-09-18-wheezy-raspbian พร้อมการอัปเดตซอฟต์แวร์ / เฟิร์มแวร์ / การอัพเกรด

ถูก คุณสามารถแก้ไขคำถามของคุณด้วยผลลัพธ์ของxset q?
Jivings

@jivings ขอโทษฉันออกนอกเมือง แต่กลับและอัปเดตคำถามพร้อมข้อมูลที่คุณร้องขอ

DPMS is disabledที่ด้านล่างก็กล่าวว่า เปิดใช้งาน: xset +dpmsจากนั้นคำสั่งของคุณจะทำงาน ...
Jivings

คำตอบ:


9

คำถามนี้กลับมาอยู่ที่ raspberrypi.stackexchange.com จริง ๆ เพราะเป็นปัญหาเฉพาะของ Raspberry Pi: ไดรเวอร์ของเคอร์เนล framebuffer สำหรับ Raspberry Pi ไม่รองรับฟังก์ชั่นที่ X ใช้เพื่อทำให้จอภาพเข้าสู่โหมดสลีป:

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

จนกว่าปัญหานี้จะได้รับการแก้ไขจะไม่มีความเป็นไปได้ที่ X จะทำให้จอภาพเข้าสู่โหมดสลีปโดยใช้ DPMS

คุณอาจมีโชคกับ/opt/vc/bin/tvserviceโปรแกรม: tvservice -oปิด HDMI และtvservice -pควรเปิด HDMI อีกครั้ง


2

ปัดเป่าเส้นทางที่ผิด

ครั้งแรกที่แทบทุกจอแสดงผลที่ทันสมัยรองรับโหมดสลีป นอกจากนี้xset dpms force off(หรือวิธีอื่นในการบอกเซิร์ฟเวอร์ X) เป็นวิธีที่ถูกต้อง (ภายใต้ X) เพื่อปิดจอภาพ ฉันใช้มันมานานหลายปีโดยไม่ต้องผูกปม

ประการที่สองการกล่าวถึงDPMS is Disabledมาจากคุณxset -dpmsเท่านั้น ทันทีที่คุณออกxset dpms force offหรือ DPMS อื่น ๆ ที่เกี่ยวข้องตัวเลือก xset xset +dpmsจะได้รับการเปิดใช้อีกครั้งดังนั้นจึงเป็นเรื่องปกติที่คุณได้รับผลเดียวกันด้วยหรือไม่

สมมติฐาน

ตอนนี้คุณเขียนว่าคุณเห็น "คงที่" จอแสดงผลนี้รองรับสัญญาณทีวีอะนาล็อกแบบดั้งเดิมใช่ไหม

สมมุติฐานข้อหนึ่งคือว่าทีวีแทนที่จะเข้านอนจริงๆแล้วจะเปลี่ยนเป็นแอนะล็อกทีวีและเมื่อไม่มีสัญญาณจึงแสดงสิ่งที่มักเรียกว่า "คงที่"

ทดสอบสมมติฐานนั้น

นี่คือตัวเลือกที่จะลอง ลองหนึ่งครั้งเพื่อเสียบจอแสดงผลอีกอันหนึ่งที่ไม่รองรับ Analog TV ดูว่าจอภาพนั้นเข้าสู่โหมดสลีปxset dpms force offหรือไม่ ถ้าใช่แสดงว่าการตั้งค่านั้นใช้ได้ในฝั่ง Pi

ลองรูปแบบต่างๆ

บางทีสถานะวิดีโออื่น ๆ จะสั่งให้ทีวีอยู่ในช่องที่ถูกต้อง แต่ด้วยการลดการใช้พลังงาน แทนxset dpms force offลองทำสิ่งเหล่านี้:

xset dpms force standby
xset dpms force suspend

และดูว่าหนึ่งในนั้นสร้างสิ่งที่คุณต้องการ รออย่างน้อย 10 วินาทีหลังจากแต่ละครั้งพยายามดูว่ามันทำอะไร กดปุ่มใด ๆ บนแป้นพิมพ์ Pi จะกลับมาแสดงผล (คุณสามารถใช้จากระยะไกลxset dpms force on)

รับผลิต

หากหนึ่งในตัวแปรด้านบนทำในสิ่งที่คุณต้องการก็ดีกรุณาแบ่งปัน!

ถ้าไม่ใช่และคุณจำเป็นต้องใช้จอแสดงผลดั้งเดิมจริงๆให้ดูในเมนูหากคุณสามารถปิดใช้งานคุณสมบัติทีวีอะนาล็อกได้

โปรดแบ่งปันสิ่งที่คุณเรียนรู้จากความพยายามเหล่านี้


1

จะใช้vbetoolงานไม่ได้?

หน้าจอ Suspend (ทางกายภาพบอกว่าจอภาพให้ไปที่โหมด Standby): ทำvbetool dpms suspend ต่อ (ออกจากโหมด Standby):vbetool dpms on


1
ฉันคิดว่า vbetool เป็น x86 เท่านั้น ดังนั้นจะไม่ช่วย ARM
Renan

0

คุณสามารถเปิดและปิด HDMI ได้

  • เปิด HDMI: /opt/vc/bin/tvservice -p

  • ปิด HDMI: /opt/vc/bin/tvservice -o

รายละเอียดเพิ่มเติมเกี่ยวกับtvserviceไบนารี:

# 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

(คุณอ่านบทความที่โพสต์โดยคนที่ไม่มีประสบการณ์พยายามขายระบบปฏิบัติการอื่นหรือปกปิดการขาดดาวพลังงานจากอุปกรณ์จีนหรือและไม่ได้อ่านซอร์สโค้ดซึ่งทั้งหมดนี้ไม่แนะนำให้อ่านเนื้อหา) .

xset s บน; หรือ ; xset + dpms

คุณไม่สามารถทำทั้งสองอย่างยกเว้นกรณีที่คุณต้องการแก้ไขปัญหา blanking (เช่นตื่นขึ้น) ทั้งสองทำงานเดียวกันแตกต่างกันเล็กน้อย - พวกเขาแทรกแซงซึ่งกันและกัน (RedHat linux มีชื่อเสียงในการสอนผู้คนผิด ๆ เกี่ยวกับเรื่องนี้และจัดส่ง distros จำนวนมากโดยที่ทั้งคู่เปิดใช้งานตามค่าเริ่มต้นดังนั้น debian)

เมื่อคุณใช้ "xset dpms บังคับให้ปิด sleep 2" คุณต้องเข้าสู่โหมดสลีเพื่อให้ไม่ต้องตื่นขึ้นมาจากการกด Enter (สมมติว่าคุณทำสิ่งนี้โดยใช้แป้นพิมพ์ไม่ใช่สคริปต์)

เท่าที่ฉันไม่แน่ใจว่า Energy Star เป็นส่วนหนึ่งของข้อกำหนด HDMI 1.0-2.x แต่ถ้ามันทำงาน 1/2 แล้วบางทีมันอาจจะเป็น

linux และ freeBSD นั้นดี แต่ถ้าคุณไม่ใช่ "ส่วนหนึ่งของทีมใหญ่" มันก็เป็นไปไม่ได้ที่จะคิดว่ามันสามารถใช้งานศูนย์รวมความบันเทิงในบ้านของคุณได้ (การควบคุมอุปกรณ์สื่อที่ใช้ทำฮาร์ดแวร์เฉพาะอย่างเช่น Energy Star . พวกเขามี libs และความคิดริเริ่มและตัวอย่างของอุปกรณ์ที่ใช้ทำงาน - แต่สิ่งเหล่านี้มีอายุสั้น (คุณต้องใช้ระบบปฏิบัติการเดียวกันและอุปกรณ์เดียวกันที่รู้จักกันดีหรือ "โชคดี")

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.