xset dpms 指令未關閉監視器

xset dpms 指令未關閉監視器

我對這個命令有一個問題: xset dpms force off。它使螢幕變黑,但不會關閉或暫停(使用暫停命令)顯示器。

該命令'xset -q'顯示我的顯示器中已啟用 DPMS。

我正在使用帶有 Raspbian 的 Raspberry Pi,顯示器透過 hdmi - DVI 電纜連接(並且傳輸資料連接的引腳正在工作)。

您能幫助我嗎,也許告訴我在哪裡可以找到答案或一些日誌?也許某個地方有一個配置文件,其中包含有關顯示器處於待機、啟用或關閉狀態時發送到顯示器的能量資訊?

我找到了這個解決方案:http://shallowsky.com/linux/x-screen-blanking.html ,但我無法在我的電腦上安裝 VBETOOL,因為它沒有 PCI 連接埠(和 /pci 資料夾)。

答案1

我發現這個樹莓派的具體問題在這篇文章中討論過問題 有一些解決方法。

pi 上的幀緩衝區驅動程式是否實現了適當的 ioctl FBIOBLANK 來將顯示器設定為視訊關閉。

解決方法是使用tvservice命令關閉視訊訊號的電源,最終顯示器應該關閉。tvservice然而,當您重新開啟視訊電源時會遇到一個小問題,您也需要透過chvt從 X11 切換到控制台虛擬終端,然後再返回來解決該問題。

演示:

sudo tvservice  -o # turn off video
sleep 5
sudo tvservice  -p # turn on video
whichvt=$(sudo fgconsole) # which vt are we on
let othervt=which==1?2:1
sudo chvt $othervt; sudo chvt $whichvt

答案2

在目前版本的 raspbian 上,不再需要這些解決方法,dpms 功能已新增到驅動程式中。唯一的問題:預設情況下它是關閉的。你需要把

hdmi_blanking=1

在 /boot/config.txt 中啟用。官方文件尚未更新以包含此設置,因此有點難以找到。

答案3

另一種方法是使用:

vcgencmd display_power 0
vcgencmd display_power 1

就是這樣。

這是更有效的方式。它不需要重新初始化所有幀緩衝區,也不會更改解析度。主要是它比 tvservice 更快。起初,它返回了一個錯誤,但我用 rpi-update 更新了 RPi 上的固件,重新啟動後它就工作了。

相關內容