Raspberry Pi/Quick Reference

From r00tedvw.com wiki
Jump to: navigation, search

Contents

 [hide

xset

Overview

xset allows you to control a few things, but the most common is the monitor states. You can manipulate, enable, or disable some features like:

  • dpms energy star features
  • monitor standby, suspend, off, or on
  • screen blanking
  • screen exposing
  • activate/reset screen saver
  • screen saver on/off

It should be noted that while this can blank the monitor, it does not tell the monitor to turn off it's backlight.

disable screen saver/blanking

a common issue with raspberry pis used in kiosk/monitor setups is the screen blanking/screen saver kicking in. You can disable them with the following commands:

~$xset s noblank
~$xset s noexpose
~$xset s off
~$xset dpms 0 0 0

check it by doing:

~$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:  no
  timeout:  0    cycle:  600
Colors:
  default colormap:  0x20    BlackPixel:  0x0    WhitePixel:  0xffff
Font Path:
  /usr/share/fonts/X11/misc,/usr/share/fonts/X11/Type1,built-ins
DPMS (Energy Star):
  Standby: 0    Suspend: 0    Off: 0
  DPMS is Enabled
  Monitor is On

Script xset settings in case of reboot/poweroff

Create a script for the default pi user to launch

~$ nano /home/pi/xset.sh

#!/bin/bash

xset s noblank
xset s noexpose
xset s off
xset dpms 0 0 0

Make it executable

~$ sudo chmod +x /home/pi/xset.sh

Add it to rc.local for launch on boot

~$ sudo nano /etc/rc.local

#run script to disable screensaver, screen blanking, screen exposure, standby, suspend, and energy star features.
sleep 5; export DISPLAY=:0; su - pi -c "/home/pi/xset.sh &"

Turn monitors on/off

You can use tvservice to turn the monitors on and off, however, turning them back on and displaying the signal is a bit tricky.

script to turn monitor on/off

#!/bin/bash -e

# /usr/local/sbin/raspi-monitor
# Script to enable and disable the HDMI signal of the Raspberry PI
# Inspiration: http://www.raspberrypi.org/forums/viewtopic.php?t=16472&p=176258

CMD="$1"

function on {
    /opt/vc/bin/tvservice --preferred

    # Hack to enable virtual terminal nr 7 again:
    chvt 6
    chvt 7
}

function off {
    /opt/vc/bin/tvservice --off
}

function must_be_root {
    if [ $USER != root ]; then
        echo "ERROR: Script must be executed as the root user"
        exit 1
    fi
}

function main {
    must_be_root
    if [ "$CMD" == "on" ]; then
        on
    elif [ "$CMD" == "off" ]; then
        off
    else
        echo "Usage: $0 <on|off>"
        exit 1
    fi
    exit 0
}

main

Add to cron job

Add the following script as a cronjob file

~$ sudo nano /etc/cron.d/raspi-monitor-scheduler
# /etc/cron.d/raspi-monitor-scheduler

# Enable the monitor every weekday morning at 7:00
0 7 * * 1,2,3,4,5 root /usr/local/sbin/raspi-monitor on > /dev/null 2>&1

# Disable the monitor every weekday evening at 19:30
30 19 * * 1,2,3,4,5 root /usr/local/sbin/raspi-monitor off > /dev/null 2>&1

Make it executable

~$ sudo chmod +x /etc/cron.d/raspi-monitor-scheduler

init.d script to control/check status

Add the following script to init.d

pi@raspberrypi:~$ sudo nano /etc/init.d/monitor 

 #!/bin/sh
 ### BEGIN INIT INFO
 # Provides: vncviewer
 # Required-Start: $remote_fs $syslog
 # Required-Stop: $remote_fs $syslog
 # Default-Start: 2 3 4 5
 # Default-Stop: 0 1 6
 # Short-Description: Turn on monitor at boot time
 # Description: Turn on monitor at boot time.
 ### END INIT INFO


monitor_status=$(tvservice -s | cut -c9-13)

case "$1" in
        start)
                /opt/vc/bin/tvservice --preferred
                # Hack to enable virtual terminal nr 7 again:
                chvt 6
                chvt 7
                ;;

        stop)
                /opt/vc/bin/tvservice --off
                ;;

        status)
                if [ "$monitor_status" -eq "12001" ]; then
                        echo 'Monitor is on'
                elif [ "$monitor_status" -eq "12000" ]; then
                        echo "Monitor is off"
                else
                        echo "Usage: $0 <start|stop|status>"
                        exit 1
                fi

Usage
Start
~$ sudo service monitor start
Powering on HDMI with preferred settings
Stop
~$ sudo service monitor stop
Powering off HDMI
Status
~$ sudo service monitor status
Monitor is on
Monitor is off
Personal tools
Namespaces

Variants
Actions
Navigation
Mediawiki