88

I am running the Debian wheezy beta and using my Pi to display my geckoboard dashboards using midori, as a result I want to prevent the screen from going blank, which it does after 10 minutes (though it doesn't seem to turn off the backlight). I have searched through the menu options and can not find how to prevent this. I came across a post on raspberrypi.org suggesting that the following:

sudo sh -c "TERM=linux setterm -blank 0 >/dev/tty0"

would solve the problem, but it does not work. I have also tried changing BLANK_TIME to zero in /etc/kbd/config without success.

Steve Robillard
  • 34,687
  • 17
  • 103
  • 109

5 Answers5

76

This is an X power-saving thing.

Firstly, you may need to install xset, a lightweight application that controls some X settings.

apt-get install x11-xserver-utils

Now open up your ~/.xinitrc file (if you don't have one then create it) and enter this:

xset s off         # don't activate screensaver
xset -dpms         # disable DPMS (Energy Star) features.
xset s noblank     # don't blank the video device

exec /etc/alternatives/x-session-manager      # start lxde

This file runs once every time X starts and should solve the problem. I copy and pasted it from my own .xinitrc and can confirm that my screen does not blank.

Jivings
  • 22,538
  • 11
  • 90
  • 139
  • @SteveRobillard apt-get install x11-xserver-utils – Flexo Jun 26 '12 at 19:54
  • 3
    Which account should the .xinitrc be created for? The pi account (which auto-logs in) or the root account (which owns the x-server)? – Salim Fadhley Oct 01 '12 at 14:27
  • I created it for the pi account and it works OK! Thank you all. –  Oct 03 '12 at 21:02
  • 2
    what does exec /etc/alternatives/x-session-manager do? When I take it out the bar at the bottom is gone. I'm curious about how it all fits together. A brief explanation would be appreciated. – Scoop Dec 21 '12 at 21:52
  • 1
    @Scoop It just starts lxde with session management. This allows you to boot up with applications from your previous session still running. If you remove it lxde will start from a blank slate, which is why there is no toolbar (it's not been started). – Jivings Dec 22 '12 at 10:16
  • 3
    Modifying: /etc/xdg/lxsession/LXDE/autostart as described here and modifying ~/.xinitrc + /etc/kbd/config as described from cwd did not get me any further. My screen still gets black with backlight. – Andi Giga Apr 14 '16 at 12:21
  • 8
    Can confirm this does not work on the Pi 3 – djthoms Apr 14 '16 at 18:40
  • 2
    This certainly didn't work on my Raspberry PI 2 Model B running Raspbian Jessie. – ThN Jul 25 '16 at 15:53
  • This doesn't work in the Debian Jessie (8) that I run with parallels VM in a MacBook Pro. – Arefe Dec 22 '17 at 07:25
  • 1
    Just wanted to say that this worked for me on Pi 3 with the Lite image of Raspbian and nodm as the display manager. Only difference is that in my case the commands had to be put in the ~/.xsession. I think the reason this solution doesn't appear to work for most people is related to lightdm specifically which is what most use. – Manolis Agkopian Jan 11 '19 at 16:25
28

The other solutions here did not work for me (fresh Raspbian, boot to GUI). Instead, this worked:

  1. Open up /etc/lightdm/lightdm.conf using your favorite text editor (I prefer nano).
  2. Look for the line #xserver-command=X. Change it to xserver-command=X -s 0 dpms
    • It should be at line 87 if things don't change.
  3. Save and reboot.

Source

Aloha
  • 7,136
  • 1
  • 28
  • 52
  • This DID work on my Raspberry PI 2 Model B running Raspbian Jessie. – ThN Jul 25 '16 at 18:19
  • 1
    This worked for me on Pi3 with Jessie – MikeT Oct 10 '16 at 20:32
  • I'm trying to understand these options. -s 0 sets the screen timeout to 0 minutes, which I assume makes it 'never'. (Is this different from -s off?) Why dpms, though, not -dpms? Don't I want to disable display power management services? – The Guy with The Hat Nov 15 '17 at 15:17
  • @TheGuywithTheHat Have you tried this solution with -dpms? Please report back and maybe we can infer what's going on. – Aloha Nov 15 '17 at 17:09
  • @pandalion98 Testing it right now with dpms, -dpms, and neither. Will report back soon. – The Guy with The Hat Nov 15 '17 at 17:29
  • I realized I'm not on a Pi here, so I don't know how general this is. That being said, -s 0 appears to be all that's necessary on my system. Neither dpms nor -dpms appeared to have any effect. – The Guy with The Hat Nov 15 '17 at 18:08
  • This also worked for me on my Raspberry Pi 3. Line number to change though was 91 now. – timbram Apr 01 '18 at 19:59
  • Using -dpms disables DPMS, while +dpms enables it. Using just dpms also enables it, in practice, though "man xset" says it can be followed by up to three numbers (to set standby/suspend/off timeouts), or other options such as "force on" or "suspend". See "man xset" for details.

    FYI, with a Pi 3 and a Raspbian lite (Stretch/9.4) install to which I then added the GUI stuff, this answer worked for me, when using -dpms.

    – Peter Hansen Aug 08 '18 at 18:30
14

I think @Jivings answer may be better, but I have it in my notes to do this:

  • Install apt-get install x11-xserver-utils

  • Edit /etc/xdg/lxsession/LXDE/autostart

Append these lines:

@xset s noblank
@xset s off
@xset -dpms

Possibly also comment out the line that says @xscreensaver -no-splash, so the complete file should look something like this:

@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
# @xscreensaver -no-splash

@xset s noblank
@xset s off
@xset -dpms

Also edit /etc/kbd/config and make sure these values are set as follows (however I believe this is only for when the lightweight desktop (LXDE) is not running (i.e. the pi is still in text / terminal mode):

BLANK_TIME=0
BLANK_DPMS=off
POWERDOWN_TIME=0

I believe that the /etc/xdg/lxsession/LXDE/autostart may be the sort of system-wide version of ~/.xinitrc but someone else probably knows the nuances better.

cwd
  • 318
  • 1
  • 4
  • 12
  • 2
    Edits to /etc/kbd/config solved the problem for me. – Steve Dec 12 '14 at 16:47
  • I applied all the changes mentioned in this answer. This certainly didn't work on my Raspberry PI 2 Model B running Raspbian Jessie. – ThN Jul 25 '16 at 17:38
  • 1
    I think there has been some change with profiles by default, the autostart you need to edit might be ~/.config/lxprofile/LXDE-pi/autostart. – Jason Goemaat Jan 02 '17 at 21:23
  • my rpi 2 on raspbian jessie needed the above edits to ~/.config/lxsession/LXDE-pi/autostart as jason points out below – mfink Jul 09 '17 at 13:03
10

To prevent the screen from going blank try adding consoleblank=0 to the end of the first line of /boot/cmdline.txt

Source

Tim Penner
  • 221
  • 2
  • 6
  • Please don't post duplicate answers for duplicate questions. – Dmitry Grigoryev Feb 02 '17 at 14:40
  • 3
    It was a very difficult answer to find and figured it applied. Why not vote for this to be a duplicate question instead of commenting? – Tim Penner Feb 02 '17 at 15:15
  • I voted for the original question to be marked as duplicate of this one. Keeping either of the answers sounds fine, but I suppose you prefer to have the one that got upvoted. – Dmitry Grigoryev Feb 02 '17 at 15:30
  • 2
    I wouldn't want my answer to only be on the duplicate, I would want it on the master of the two - even if I found the other question first. Which is why i suggested you vote instead of comment – Tim Penner Feb 02 '17 at 15:31
  • 1
    This is the only solution that has worked for my Pi Zero with a monitor but no keyboard, and no X11. – Memetic Mar 30 '17 at 00:29
4

What worked for me was editing ~/.config/lxsession/LXDE-pi/autostart and commenting out the screensaver, all the other xset commands didn't seem to affect it when it is started here:

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
#@xscreensaver -no-splash

You might also need to add one or both of these lines to disable the power management:

@xset dpms 0 0 0
@xset -dpms

On the version of Raspbian Jessie I got the utils were already installed.