Der Raspberry Pi ist ein sehr einfach aufgebauer kleiner und sehr günstiger Einplatinencomputer. Die Platine ist mit einem 700 MHz (übertacktbar bis 1 GHz) ARM11 Prozessor, 512 MByte Arbeitsspeicher (bei Model B) bestückt. Dieser Beitrag beschreibt die Installation von Raspbian und Konfiguration von WLAN, SSH, VNC, Webserver usw. für den Betrieb.
Technische Daten des Raspberry Pi
- SoC: Broadcom BCM2835
- CPU: ARM1176JZF-S (700 MHz)
- GPU: Broadcom VideoCore IV
- Arbeitsspeicher (SDRAM): 256 MB bei Model A und 512 MB Model B
- USB-2.0-Anschlüsse: 2
- Videoausgabe: FBAS Chinch-Anschluss, HDMI
- Tonausgabe: 3,5-mm-Klinkenstecker (analog), HDMI (digital)
- Nicht-flüchtiger Speicher: SD-Kartenlesser für SDHC und SDXC/MMC/SDIO
- Netzwerk: 10/100-MBit-Ethernet-Controller
- Schnittstellen: Bis zu 17 GPIO-Pins, SPI, I²C, UART, EGL
- Leistungsaufnahme: 5 V, 700 mA (3,5 Watt)
- Stromversorgung: 5-V-Micro-USB-Anschluss (Micro-B) oder 4 × AA-Batterien
- Größe: 85,60 mm × 56 mm × 21 mm
- Preis: ab 35,- EUR (Raspberry Pi bei Amazon*)
Zusatzausstattung
- USB WLAN Stick: „Edimax“ (Edimax-Wireless Adapter bei Amazon*)
- Display: RPi 2.8” Display von Wetterott Electronics
- Netzteil mit Micro-USB-Adapter: Output 5V mit mindestens 2A (500mA sind zu gering!)
- WebCam „Pi-Cam“ oder „NoIR-Cam“ (von Amazon*)
- Kühlkörper (optional, Kühlkörper für Raspberry Pi bei Amazon*)
- Zur Erst-Installation wird ein USB-Keyboard benötigt, danach Zugang über SSH
- Raspberry Pi Gehäuse (bei Amazon*)
Betriebsysteme
- Raspbian: Debian Wheezy
- Pidora: Fedora Remix
- OpenELEC: An XBMC Media Centre
- RaspBMC: An XBMC Media Centre
- RISC OS: A non-Linux distribution
- Arch Linux: A lightweight Linux distribution
Downloads: http://www.raspberrypi.org/downloads/
Bedeutung des LEDs
ACT | grün | SDCard Zugriff (über GPIO16) |
PWR | rot | 3.3 V Spannung |
FDX | grün | Full Duplex (LAN) (Model B) |
LNK | grün | Ethernet Link/Aktivität (LAN) (Model B) |
100 | gelb | Ethernet 10/100Mbit (LAN) (Model B) |
LED-Fehlercodes des Raspberry Pi
3x | start.elf wurde nicht gefunden |
4x | start.elf konnte nicht ausgeführt werden |
7x | kernel.img wurde nicht gefunden |
8x | SDRAM wurde nicht erkannt. Eine neue bootcode.bin/start.elf firmware wird benötigt |
Installation des Raspberry Pi
Bevor das Betriebssystem Raspbian installiert werden kann, muss der Raspberry Pi über den HDMI Anschluss an einen Monitor sowie über die Ethernet-Schnittstelle an ein Netzwerk mit Internetzugang angeschlossen werden. Weiters ist eine USB-Maus und USB-Tastatur zu Beginn der Installation nötig, da vorerst nicht über SSH auf den Raspberry Pi zugegriffen werden kann.
Sobald WLAN und der SSH-Zugang eingerichtet ist, wird nur mehr das Netzkabel benötigt.
Raspberry Pi benötigt ein stärkeres Netzteil um stabil betrieben zu werden. Kleine USB-Ladegeräte für Handys sind kaum geeignet, da diese zu wenig Strom liefern. Ohne zusätzlicher Hardware benötigt der Raspberry Pi mindestens 700 mA (besser 1A). Mit Zusatzplatien und USB-Geräten dürfen es auch 2 A sein.
Installation des Betriebssystem
Download der Linux-Distribution „Raspbian“ von http://www.raspberrypi.org/downloads/
Schreiben des Images auf eine SD-Karte (Card-Reader wird benörigt!): http://www.raspberrypi.org/documentation/installation/installing-images/README.md
Mac OS
Im Terminal alle gefundenen Laufwerke auflisten lassen:
diskutil list /dev/disk2 #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *15.9 GB disk2 1: Windows_FAT_32 NO NAME 15.9 GB disk2s1
SD-Karte unmounten:
diskutil unmountDisk /dev/disk2
Zuvor heruntergeladenes und entpacktes Betriebssystem-Image auf SD-Karte kopieren:
sudo dd if=2014-06-20-wheezy-raspbian.img of=/dev/disk2 bs=4m
Der Vorgang kann eine geraume Zeit dauern, in der keine Ausgabe im Terminal erscheint. Lediglich die LED am Card-Reader blinkt.
Der Kopiervorgang wurde korrekt abgeschlossen, wenn danach etwa folgendes erscheint:
706+1 records in 706+1 records out 2962227200 bytes transferred in 429.987618 secs (6889099 bytes/sec)
Quelle: http://www.datenreise.de/raspberry-pi-inbetriebnahme-howto/
WLAN Zugang einrichten
Leider besitzt der Raspberry Pi keinen eigenen WLAN Chip und ist nur mit einem Ethernet-Anschluss ausgestattet. Für WLAN-Empfang wird ein USB WLAN Stick benötigt. Der sehr kleine WLAN-Stick von „Edimax“ (Edimax-Wireless Adapter bei Amazon*) ist zu empfehlen. Die Edimax-Sticks werden vom Betriebssystem „Raspbian“ automatisch mit dem Kernel-Treiber für Realtek-Chips (RTL8192CU) eingebunden.
Mit folgendem Befehl, läßt sich die erkannte Hardware und der verwendete Treiber überprüfen:
dmesg
Das neue WLAN sollte nun auch mit ipconfig aufgelistet werden:
ifconfig
Um zu verhindern, dass die WLAN Verbindung aufgrund des Stromsparmodus unterbrochen wird, sollte folgende Konfigurations-Datei geändert werden:
sudo nano /etc/modprobe.d/8192cu.conf # neuer Inhalt:
options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
Fixe IP konfigurieren (optional)
Um den RPi über eine Port-Freigabe im Router nach außen hin über per IP oder Dyn-DNS-Service erreichbar zu machen, wird eine fixe IP vorausgesetzt.
sudo nano /etc/network/interfaces
iface wlan0 inet dhcp
ändern in
iface wlan0 inet static
Anschließend müssen die Netzwerk-Dienste neu gestartet werden:
sudo service networking restart
siehe: https://www.modmypi.com/blog/tutorial-how-to-give-your-raspberry-pi-a-static-ip-address
Free Dyn DNS Service (optional)
Profil anlegen unter: http://www.dnsdynamic.org/signup.php
sudo apt-get install ddclient
- Dynamischer Server: www.dnsdynamic.com
- Protokoll für die dynamische DNS-Aktualisierung: dyndns2
- Benutzername: <>
- Password: <password>
- Netzwerkschnittstelle: wlan0
- Vollständige DynDNS-Domainnamen: <domain-name.com>
sudo nano /etc/ddclient.conf # Configuration file for ddclient generated by debconf # # /etc/ddclient.conf daemon=60 syslog=yes mail=root mail-failure=root pid=/var/run/ddclient.pid ssl=yes protocol=dyndns2 use=if, if=wlan0 server=www.dnsdynamic.org login= password='password***' myscope.dnsd.info
siehe: http://blog.mivia.dk/free-dynamic-dns-for-raspberry-pi/
SSH Zugang aktivieren
sudo raspi-config
Advanced Options > SSH > Enable
VNC-Server installieren
Als VNC-Server eignet sich der schlanke tightvncserver, der mit folgendem Kommando installiert wird:
sudo apt-get install tightvncserver
VNC Server starten und Eingabe eines 8-Zeichen langen Passwortes:
$ vncserver You will require a password to access your desktops. Password: ******** Warning: password truncated to the length of 8. Verify: ******** Would you like to enter a view-only password (y/n)? n
Konfiguration von TightVNC Server neu anlegen mit:
sudo nano /etc/init.d/tightvncserver.sh
#!/bin/bash ### BEGIN INIT INFO # Provides: tightvncserver # Required-Start: $remotefs $syslog # Required-Stop: $remotefs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start VNC server at boot time # Description: Start VNC Server at boot time ### END INIT INFO # The Username:Group that will run VNC export USER=&quot;pi&quot; #${RUNAS} # The display that VNC will use DISPLAY=&quot;1&quot; # Color depth (between 8 and 32) DEPTH=&quot;16&quot; # The Desktop geometry to use. #GEOMETRY=&quot;x&quot; #GEOMETRY=&quot;800x600&quot; GEOMETRY=&quot;1024x786&quot; #GEOMETRY=&quot;1440x900&quot; #GEOMETRY=&quot;1280x1024&quot; #GEOMETRY=&quot;1920x1080&quot; # The name that the VNC Desktop will have. NAME=&quot;my-vnc-server&quot; OPTIONS=&quot;-name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}&quot; . /lib/lsb/init-functions case &quot;$1&quot; in start) log_action_begin_msg &quot;Starting vncserver for user '${USER}' on localhost:${DISPLAY}&quot; su ${USER} -c &quot;/usr/bin/vncserver ${OPTIONS}&quot; ;; stop) log_action_begin_msg &quot;Stoping vncserver for user '${USER}' on localhost:${DISPLAY}&quot; su ${USER} -c &quot;/usr/bin/vncserver -kill :${DISPLAY}&quot; ;; restart) $0 stop $0 start ;; esac exit 0
sudo chmod +x /etc/init.d/tightvncserver.sh # Sicherstellen, dass der VNC Server nicht läuft ps aux | grep vnc # optional wenn Process läuft: sudo killall Xtightvnc # VNC Server starten und auto-Start einrichten: sudo /etc/init.d/tightvncserver.sh start cd /etc/init.d sudo update-rc.d tightvncserver.sh defaults
Apache2 Webserver installieren
sudo apt-get install apache2 sudo apt-get install php5 libapache2-mod-php5 sudo service apache2 restart
Apache SSL-Modul aktivieren (optional)
Ein selbst-signiertes Server-Zertifikat ersellen:
sudo mkdir /etc/apache2/ssl cd /etc/apache2/ssl sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -out /etc/apache2/ssl/server.crt -keyout /etc/apache2/ssl/server.key
SSL Module des Apache aktivieren und eine SSL-Konfiguration anlegen:
sudo a2enmod ssl sudo ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/000-default-ssl
SSL-Konfiguration anpassen und die erstellten Keys konfigurieren:
sudo nano /etc/apache2/sites-enabled/000-default-ssl SSLCertificateFile /etc/apache2/ssl/server.crt SSLCertificateKeyFile /etc/apache2/ssl/server.key
service apache2 restart
Ein offizielles freies Zertifikat kann zum Beispiel über https://www.startssl.com erstellt werden.
Um zum Beispiel phpMyAdmin nur über HTTPS zugänglich zu machen, muss in der Konfiguration von phpMyAdmin „/etc/phpmyadmin/config.inc.php“ folgender Eintrag geändert werden:
$cfg['ForceSSL'] = 'true';
Bei einer WordPress-Installation klappt das über die Konfiguration in „wp-config.php“ mit:
&lt;span class=&quot;crayon-e&quot;&gt;define&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-s&quot;&gt;'FORCE_SSL_LOGIN'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;crayon-t&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;; &lt;span class=&quot;crayon-e&quot;&gt;define&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-s&quot;&gt;'FORCE_SSL_ADMIN'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;crayon-t&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;)&lt;/span&gt;;
Filesharing (Windows & Apple Netzwerke)
sudo apt-get install netatalk sudo apt-get install avahi-daemon sudo update-rc.d avahi-daemon defaults
Quelle: http://4dc5.com/2012/06/12/setting-up-vnc-on-raspberry-pi-for-mac-access/
Konfigurations-Datei als root anlegen /etc/avahi/services/afpd.service mit:
sudo nano /etc/avahi/services/afpd.service
und folgenden Inhalt einfügen und speichern:
&lt;?xml version=&quot;1.0&quot; standalone='no'?&gt;&lt;!--*-nxml-*--&gt; &lt;!DOCTYPE service-group SYSTEM &quot;avahi-service.dtd&quot;&gt; &lt;service-group&gt; &lt;name replace-wildcards=&quot;yes&quot;&gt;%h&lt;/name&gt; &lt;service&gt; &lt;type&gt;_afpovertcp._tcp&lt;/type&gt; &lt;port&gt;548&lt;/port&gt; &lt;/service&gt; &lt;/service-group&gt;
Nach dieser Änderung muss der AVAHI-Daemon mit folgendem Befehl neu gestartet werden:
sudo /etc/init.d/avahi-daemon restart
Danach sollte der RPi an Mac/PC als Gerät im Netzwerk gefunden werden.
Automatisches Login Raspbian
Damit sich der Raspbery Pi unter Raspbian nach einem Neustart automatisch an der Konsole (nicht x!) einloggt, müssen folgende Änderungen an der inittab durchgeführt werden:
sudo nano /etc/inittab
Fogende Zeile muss mit einem #-Zeichen auskommentiert werden:
1:2345:respawn:/sbin/getty 115200 tty1
Statt obiger Zeile muss direkt danach folgende Zeile eingefügt werden:
1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1
Nach einem Neustart des Pi erfolgt ein automatisches Login in die Konsole.
Autostart eines Programms nach dem Login
Terminal öffnen und entweder mit root-Rechten die /etc/profile oder als User .bash_profile bearbeiten:
sudo nano /etc/profile # ODER nano .bash_profile
Den Aufruf des Programms/Scriptes am Ende einfügen zB:
/home/pi/your_script_name.sh
Anmerkung: an dieser Stelle NICHT X mit startx starten lassen! Sollte der Raspberry Pi in die GUI starten, so muss das mit raspi-config geändert werden!
Automatisch USB-Sticks mounten
apt-get install usbmount df -h
Konfiguration anpassen in:
sudo nano /etc/usbmount/usbmount.conf
FS_MOUNTOPTIONS="-fstype=vfat,gid=users,dmask=0007,fmask=0117"
Nützliche Tools
# PHP5/SQLite sudo apt-get install php5-sqlite # VN-Stat sudo apt-get install vnstat # ImageMagick / Convert sudo apt-get install imagemagick # FTP Client sudo apt-get install ftp # WGET sudo apt-get install wget # Beispiel Download von Files mit wget: wget http://www.domain.com/filename.ext # Posfix sudo apt-get install postfix # locate sudo apt-get install locate
Wichtiges
Der Raspberry Pi (Model A/B) sollten grundsätzlich nie durch Ausstecken des Netzsteckers heruntergefahren oder neugestartet werden, da durch Schreibfehler die Parition der SD-Karte zerstört werden kann. Nur mit Glück, lässt sich eine derart beschädigte Parition mit testdisk wieder reparieren! Zum Ausschalten oder Neustarten des Raspberry Pi sollten die Befehle „shutdown“, „reboot“ oder „halt“ verwendet werden:
# Ausschalten: sudo halt # Neustart: sudo reboot # Diskcheck nach Neustart: sudo touch /forcedsck sudo reboot # oder sudo shutdown -rF now
Zeitzone einstellen
Mit folgendem Copy-Befehlt wird die Zeitzone des Raspberry Pi von UTC auf eine Lokale Zeit gestellt. Die Änderung der Zeit wird danach sofort aktiv und kann mit „date“ überprüft werden.
sudo cp /usr/share/zoneinfo/Europe/Vienna /etc/localtime date Mit Feb 18 13:38:52 CET 2015
Hinweise
Die mit * gekennzeichneten Links sind sogenannte Affiliate Links.
Kommt über einen solchen Link ein Einkauf zustande, werde ich mit
einer Provision beteiligt. Für Dich entstehen dabei keine Mehrkosten.
Wo, wann und wie Du ein Produkt kaufst, bleibt natürlich Dir überlas-
sen