Skip to content

Instantly share code, notes, and snippets.

@AGWA
Last active June 9, 2024 15:15
Show Gist options
  • Save AGWA/9874925 to your computer and use it in GitHub Desktop.
Save AGWA/9874925 to your computer and use it in GitHub Desktop.
Enable and disable the HDMI port on the Raspberry Pi: `rpi-hdmi on` to turn on, `rpi-hdmi off` to turn off. X is properly reinitialized when re-enabling.
#!/bin/sh
# Enable and disable HDMI output on the Raspberry Pi
is_off ()
{
tvservice -s | grep "TV is off" >/dev/null
}
case $1 in
off)
tvservice -o
;;
on)
if is_off
then
tvservice -p
curr_vt=`fgconsole`
if [ "$curr_vt" = "1" ]
then
chvt 2
chvt 1
else
chvt 1
chvt "$curr_vt"
fi
fi
;;
status)
if is_off
then
echo off
else
echo on
fi
;;
*)
echo "Usage: $0 on|off|status" >&2
exit 2
;;
esac
exit 0
@SteveMacLowell
Copy link

@leemcarthur - not sure if you got your answer, but the second cron you see is actually capturing that the second part of your command (grep cron) is running.

@dlasher
Copy link

dlasher commented Jan 26, 2019

Couldn't make this script work right on Pi3's.. screen would go off, then never go back on, error message was "failed to set"

Searched and found:

tvservice is not the best to turn off and on the screen. Much better way to do this (found after a day of searching) is using vcgencmd command (more on this here).
vcgencmd display_power 0 turns off the screen
vcgencmd display_power 1 turns on the screen
(From Here : https://raspberrypi.stackexchange.com/questions/52042/turning-tvservice-on-and-off-leaves-screen-blank )

works perfectly.

@DonSpain
Copy link

I am a senior citizen, with the ambition to use DAKboard to coordinate daily activities between myself and my wife. We have entered the stage in life were we often forget what we are told by the other. DAKboard is perfect for the purpose to keep each other updated on what is coming up the next days. I am not at all familiar with coding, but my experience is good with cut and paste. So DIASHER (my screen also does not come back on in he morning), what would the totalt script look like? Are you able to give me a hand?

@SirCrocker
Copy link

Hi @DonSpain, in case you haven't found an answer yet I made a small script that uses vcgencmd and works with DAKboard.
(Link to it: https://gist.github.com/SirCrocker/937d06f8f2c1227a83802b9b77f60ba0)

@JMS1717
Copy link

JMS1717 commented Apr 4, 2019

@SirCrocker can you copy and paste this INSTEAD of the TV Service one or do you have to do other stuff in crontab to accommodate?

@LFAB3
Copy link

LFAB3 commented Sep 2, 2019

It works on Raspberry Pi 4, but is necessary run it twice for HDMI poweroff.
Thanks!

@manconti
Copy link

@quelleck, your fork worked perfectly on my Raspberry PI with the latest version of Rasbian as of Jan 2020. Thank you!

@jomy-matthews
Copy link

Good script. Is there a similar script to disable the SPI port at night time? I have a youtube subscribers LCD running along with the Dakboard setup and I want them both to turn off at the same time. Will the same code above also work for the SPI port? Thanks in advance.

@JeedHome44
Copy link

hello, my raspberry Pi3B + Recalbox activates my automatic HDMI switch even when the Pi has no power. So this script allows you to completely disable the HDMI port when the Pi is turned off?

@JeedHome44
Copy link

sudo vcgencmd display_power 0

Turns off video output.

sudo vcgencmd display_power 1

Turns on video output.

More easy no?

@JeedHome44
Copy link

don't work...

@macninja
Copy link

I couldn't get it to work so I rewrote it to use cec-hdmi instead.

https://gist.github.com/macninja/6c13596f06206eec162f9dce1fc4313b

I have it working on a Raspberry Pi 4. But only in HDMI port 2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment