Good to Know Database

Raspbian Wheezy: Raspbian Wheezy Setup Script


Da ich sehr häufig meinen Raspberry Pi mit Raspbian neu aufsetze habe ich mir ein Shell-Skript geschrieben welches die notwendigen Einstellungen an Raspbian vollkommen automatisch durchführt. Das folgende Shell-Skript wurde bereits mit den folgenden Raspbian Images getestet.

- 2013-07-26-wheezy-raspbian.zip
- 2013-09-25-wheezy-raspbian.zip
- 2013-12-20-wheezy-raspbian.zip
- 2014-01-07-wheezy-raspbian.zip
- 2014-12-24-wheezy-raspbian.zip
- 2015-01-31-raspbian.zip
- 2015-02-16-raspbian-wheezy.zip
- 2015-05-05-raspbian-wheezy.zip

Nach dem Aufruf des Skripts wird zuerst das deutsche Tastaturlayout de als Standardlayout festgelegt und geladen. Anschließend wird der deutsche UTF-8 Zeichensatz de_DE.UTF-8 als zusätzlicher Zeichensatz für das System eingetragen. Im nächsten Schritt wird der aktive Zeichensatz und somit auch die Sprache des Systems auf de_DE.UTF-8 geändert. Als nächstes wird noch die Zeitzone auf Europe/Berlin geändert.

Bis jetzt wurden von dem Shell-Skript ausschließlich die Systemeinstellungen modifiziert. Im nächsten Abschnitt wird der Autostart von raspi-config deaktiviert. Die meisten Einstellungen des Systems werden durch dieses Skript vorgenommen und falls Sie weitere Einstellungen ändern wollen, können Sie raspi-config jederzeit manuell ausführen.

Damit die Root-Partition den vollständigen Speicherplatz der SD-Karte nutzt, wird im nächsten Schritt die Root-Partition vergrößert und ein Init-Skript erzeugt welches beim nächsten Systemstart das Dateisystem ebenfalls vergrößert.

Im Abschnitt Install some additional packages after restart wird ein weiteres Init-Skript erzeugt, welches beim nächsten Systemstart, nachdem das Dateisystem der Root-Partition vergrößert wurde, zusätzliche Programme installieren wird. In diesem Fall wird hier nur das Paket vim installiert. Sollten Sie weitere Programme benötigen, können Sie diese ergänzen.

Im letzten Abschnitt des Shell-Skriptes wird ein Neustart ausgelöst. Dieser ist notwendig, damit die erstellten Init-Skripte beim Systemstart ausgeführt und die noch ausstehenden Aktionen ausgeführt werden.

###########################################################################
##                                                                       ##
##                     Raspbian Wheezy Setup Script                      ##
##                                                                       ##
## Creation:    17.08.2013                                               ##
## Last Update: 14.02.2016                                               ##
##                                                                       ##
## Copyright (c) 2013-2016 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

###########################################################################
## Change keyboard layout                                                ##
###########################################################################

if [ ! $(cat /etc/default/keyboard | egrep "^XKBLAYOUT=\"gb\"" >/dev/null) ]; then
  echo
  echo "------------------------------------------------------"
  echo "Change keyboard layout"
  echo "------------------------------------------------------"

  sed -i 's/XKBLAYOUT=\"gb\"/XKBLAYOUT=\"de\"/g' /etc/default/keyboard
  sed -i 's/XKBOPTIONS=\"\"/XKBOPTIONS=\"terminate:ctrl_alt_bksp\"/g' /etc/default/keyboard
  invoke-rc.d keyboard-setup start

  echo
  echo "Done"
fi

###########################################################################
## Change system locales                                                 ##
###########################################################################

if [ ! $(cat /etc/locale.gen | egrep "^# de_DE.UTF-8 UTF-8" >/dev/null) ]; then
  echo
  echo "------------------------------------------------------"
  echo "Change system locales"
  echo "------------------------------------------------------"

  sed -i 's/^# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/g' /etc/locale.gen
  locale-gen

  echo
  echo "Done"
fi

###########################################################################
## Change default locale                                                 ##
###########################################################################

if [ ! $(cat /etc/default/locale | egrep "^LANG=en_GB.UTF-8" >/dev/null) ]; then
  echo
  echo "------------------------------------------------------"
  echo "Change default locale"
  echo "------------------------------------------------------"

  update-locale LANG=de_DE.UTF-8

  echo
  echo "Done"
fi

###########################################################################
## Change system timezone                                                ##
###########################################################################

if [ ! $(cat /etc/timezone | egrep "^Etc/UTC" >/dev/null) ]; then
  echo
  echo "------------------------------------------------------"
  echo "Change system timezone"
  echo "------------------------------------------------------"

  sed -i 's/Etc\/UTC/Europe\/Berlin/g' /etc/timezone
  cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime

  echo
  echo "Done"
fi

###########################################################################
## Disable raspi-config autostart                                        ##
###########################################################################

if [ -f /etc/profile.d/raspi-config.sh ]; then
  echo
  echo "------------------------------------------------------"
  echo "Disable raspi-config autostart"
  echo "------------------------------------------------------"

  rm -f /etc/profile.d/raspi-config.sh
  sed -i -e 's/^#\(.*\)#\s*RPICFG_TO_ENABLE\s*/\1/' -e '/#\s*RPICFG_TO_DISABLE/d' /etc/inittab

  echo
  echo "Done"
fi

###########################################################################
## Resize root partition                                                 ##
###########################################################################

ROOT_PART=$(readlink /dev/root)
PART_NUM=${ROOT_PART#mmcblk0p}
PART_START=$(parted /dev/mmcblk0 -ms unit s p | egrep "^${PART_NUM}" | cut -d: -f2)
PART_END=$(parted /dev/mmcblk0 -ms unit s p | egrep "^${PART_NUM}" | cut -d: -f3)

[ "${PART_START}" ] || exit 1
[ "${PART_END}" ] || exit 1

if [ $(echo ${PART_END} | sed 's/s//g') -eq 3788799 -o \
     $(echo ${PART_END} | sed 's/s//g') -eq 5785599 -o \
     $(echo ${PART_END} | sed 's/s//g') -eq 6399999 \
   ]; then
  echo
  echo "------------------------------------------------------"
  echo "Resize root partition"
  echo "------------------------------------------------------"

  fdisk /dev/mmcblk0 <<EOF
p
d
$PART_NUM
n
p
$PART_NUM
$PART_START

p
w
EOF

  echo
  echo "Done"
fi

if [ ! -f /etc/init.d/resize2fs_once ]; then
  echo
  echo "------------------------------------------------------"
  echo "Create init script for filesystem resize"
  echo "------------------------------------------------------"

  cat <<\EOF > /etc/init.d/resize2fs_once
#!/bin/sh
### BEGIN INIT INFO
# Provides:          resize2fs_once
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5 S
# Default-Stop:
# Short-Description: Resize the root filesystem to fill partition
# Description:
### END INIT INFO

. /lib/lsb/init-functions

case "$1" in
  start)
    log_daemon_msg "Starting resize2fs_once"

    resize2fs /dev/root

    rm /etc/init.d/resize2fs_once
    update-rc.d resize2fs_once remove

    log_end_msg $?
    ;;
  *)
    echo "Usage: $0 start" >&2
    exit 3
    ;;
esac
EOF

  chmod +x /etc/init.d/resize2fs_once
  update-rc.d resize2fs_once defaults

  echo
  echo "Done"
fi

###########################################################################
## Install some additional packages after restart                        ##
###########################################################################

if [ ! -f /etc/init.d/prepare_once ]; then
  echo
  echo "------------------------------------------------------"
  echo "Create init script for system preparation"
  echo "------------------------------------------------------"

  cat <<\EOF > /etc/init.d/prepare_once
#!/bin/sh
### BEGIN INIT INFO
# Provides:          prepare_once
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Installation of basic tools
# Description:
### END INIT INFO

. /lib/lsb/init-functions

case "$1" in
  start)
    log_daemon_msg "Starting prepare_once"

    apt-get update
    apt-get install -y vim

    rm /etc/init.d/prepare_once
    update-rc.d prepare_once remove

    log_end_msg $?
    ;;
  *)
    echo "Usage: $0 start" >&2
    exit 3
    ;;
esac
EOF

  chmod +x /etc/init.d/prepare_once
  update-rc.d prepare_once defaults

  echo
  echo "Done"
fi

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

echo
echo "------------------------------------------------------"
echo "Restart system"
echo "------------------------------------------------------"
shutdown -r now

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_wheezy_setup.sh -O raspbian_wheezy_setup.sh && chmod +x raspbian_wheezy_setup.sh && sudo ./raspbian_wheezy_setup.sh

Falls Sie das Shell-Skript ebenfalls für die Konfiguration von Raspbian 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_364.html -O raspbian_wheezy_setup.sh && chmod +x raspbian_wheezy_setup.sh && sudo ./raspbian_wheezy_setup.sh


Dieser Eintrag wurde am 14.09.2013 erstellt und zuletzt am 25.09.2016 bearbeitet.

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

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer