Good to Know Database

Raspbian: Automatisierte Installation der Software für den Raspberry Pi Power Button v2


Wie Sie die Software für den Raspberry Pi Power Button v2 von Hand installieren, wurde bereits auf der Seite Raspbian: Software für den Raspberry Pi Power Button v2 einrichten beschrieben. Mit dem folgenden Shell-Skript ist eine vollständig automatisierte Installation der für den Raspberry Pi Power Button v2 benötigten Software möglich.

###########################################################################
##                                                                       ##
##                 Raspbian Power Button v2 Setup Script                 ##
##                                                                       ##
## Creation:    05.04.2015                                               ##
## Last Update: 26.04.2015                                               ##
##                                                                       ##
## Copyright (c) 2015 by Georg Kainzbauer <http://www.gtkdb.de>          ##
##                                                                       ##
## This program is free software; you can redistribute it and/or modify  ##
## it under the terms of the GNU General Public License as published by  ##
## the Free Software Foundation; either version 2 of the License, or     ##
## (at your option) any later version.                                   ##
##                                                                       ##
###########################################################################
#!/bin/bash

###########################################################################
## Install shutdownbutton.py                                             ##
###########################################################################

RestartRequired=0

echo
echo "------------------------------------------------------"
echo "Create shutdownbutton.py"
echo "------------------------------------------------------"
echo

if [ ! -x /usr/local/bin/shutdownbutton.py ]; then
  cat <<\EOF > /usr/local/bin/shutdownbutton.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

#
# Creation:    09.06.2013
# Last Update: 26.04.2015
#
# Copyright (c) 2013-2015 by Georg Kainzbauer <http://www.gtkdb.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#

# import required modules
import time
import subprocess
import RPi.GPIO as GPIO

# define GPIO pin with connected button
GPIOPin = 4

# main function
def main():
  try:
    # use GPIO pin numbering convention
    GPIO.setmode(GPIO.BCM)

    # set up GPIO pin for input
    GPIO.setup(GPIOPin, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

    # reset value
    value = 0

    while True:
      # increment value if button is pressed
      if GPIO.input(GPIOPin):
        value += 0.5

      else:
        # restart selected if value is larger than 0 and less than 3
        if value > 0 and value < 3:
          subprocess.call(["shutdown", "-r", "now"])
          return 0

        # shutdown selected if value is larger than 3 or equal
        elif value >= 3:
          subprocess.call(["shutdown", "-h", "now"])
          return 0

      # wait 500ms
      time.sleep(0.5)

    return 0

  # reset GPIO settings if execution has been stopped
  except KeyboardInterrupt:
    print("Execution stopped by user")
    GPIO.cleanup()

if __name__ == '__main__':
  # call main function
  main()
EOF

  chown root:root /usr/local/bin/shutdownbutton.py
  chmod 0755 /usr/local/bin/shutdownbutton.py

  RestartRequired=1

  echo "Done."
else
  echo "Already done. Nothing to do."
fi

echo
echo "------------------------------------------------------"
echo "Add shutdownbutton.py to rc.local"
echo "------------------------------------------------------"
echo

if [ $(cat /etc/rc.local | grep "shutdownbutton.py" | wc -l) -eq 0 ]; then
  sed -i 's/^exit/\/usr\/local\/bin\/shutdownbutton.py \&\n\n&/' /etc/rc.local

  RestartRequired=1

  echo "Done."
else
  echo "Already done. Nothing to do."
fi

###########################################################################
## Restart system                                                        ##
###########################################################################

echo
echo "------------------------------------------------------"
echo "Restart system"
echo "------------------------------------------------------"
echo

if [ $RestartRequired -eq 1 ]; then
  shutdown -r now
else
  echo "No restart required."
fi

exit 0

Damit ich das Skript nach der Installation von Raspbian relativ schnell ausführen kann, habe ich das Shell-Skript auf meinem lokalen FTP-Server abgelegt. Von dort kann ich das Skript mit dem folgenden Befehl herunterladen und direkt ausführen.

pi@raspberrypi ~ $ wget -q ftp://ftp.home.lan/pub/linux/raspbian_power_button_v2.sh -O raspbian_power_button_v2.sh && chmod +x raspbian_power_button_v2.sh && sudo ./raspbian_power_button_v2.sh

Falls Sie das Shell-Skript ebenfalls für die Installation verwenden wollen, steht Ihnen dieses auch auf meinem Webserver zur Verfügung und kann mit folgendem Befehl heruntergeladen und direkt ausgeführt werden.

pi@raspberrypi ~ $ wget -q http://www.gtkdb.de/download_369.html -O raspbian_power_button_v2.sh && chmod +x raspbian_power_button_v2.sh && sudo ./raspbian_power_button_v2.sh

Weiterführende Tutorials

Raspbian: Automatisierte Deinstallation der Software für den Raspberry Pi Power Button


Dieser Eintrag wurde am 12.04.2015 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2682.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer