Raspberry PI

    Betriebssystem (OS)

    Um mit dem Raspberry Pi arbeiten zu können, muss man ein Betriebssystem installieren. Als Speicher sollte man die SD Karte verwenden (min. 2GB). Ich habe mich für das Betriebssystem Arch Linux ARM entschieden. Um damit weiter zu arbeiten muss man sich ein wenig mit der Syntax von Linux auskennen. Die Größe des Archivs ist ca. 194MB, packt man den Inhalt aus, so wird der Inhalt auf 1,9GB anwachsen. Wie schon geschrieben habe ich eine 8GB SD Karte.

    Um das Betriebssystem auf die SD Karte raufspielen zu können, kann man entweder mit Linux oder Windows arbeiten. Ich habe alles unter Windows 7 x64 gemacht. Dazu muss man die SD Karte in einen Lokalen PC oder Notebook reinstecken.

      Linux

    Folgendes in die Konsole eingeben: (natürlich den Pfad der Image anpassen und das Ziel wo es installiert werden soll)

    dd bs=1M if=/path/to/archlinux-hf-2013-02-11.img of=/dev/sdX

      Windows

    Um untet Windows das OS auf die SD Karte installiern zu können, braucht man Win32DiskImager.

    win32DiskImage

    Nach dem Vorgang sieht man eine 90MB große Partition wo das OS installiert wurde. Der Rest ist dann in eine 1,7GB Partition eingeteilt. Die restlichen xGB sind dann nicht zugeordnet. Ich konnte unter Windows Datenträgerverwaltung die Partition leider nicht vergrößern, also habe ich eine andere Freeware Software verwendet, diese ist Paragon Partition Manager Free dort kann man die 1,7GB Partition auf ca. 7,2GB vergrößern.

    Ist das OS auf die SD Karte installiert wurden, kann man diese dann in das Raspberry Pi einstecken und los geht's.

    Sollte was schief gehen dann kann man die SD Karte formatieren. Dafür hatte ich ebenfalls eine Freeware Software verwendet, diese ist SDFormatter.

    Standardlogin: Name: root Password: root

    nach jedem booten ist das Tastaturenlayout auf englisch (z = y). Um das zu ändern sollteman folgendes eingeben

    loadkeys de

    Damit nicht jeder mit Rootrechten auf den PI zugreiffen kann, sollte man das default Password von root ändern

    passwd

    So wird das Password des gerade angemeldeten Users geändert

    index

    Netzwerk

    Ich habe kein DHCP auf meinen Router eingeschaltet, deswegen muss man dem PI eine statische IP vergeben. Hat man einen DHCP Server eingeschaltet, so sollte der PI automatisch eine IP Adresse bekommen

    ip addr add [ipadresse]/[mask] dev eth0 Bsp.: ip addr add 192.168.1.23/24 dev eth0

    Da ich keine zwei Monitore mit HDMI Eingang habe, hatte ich zu folgender Lösung gegriffen:

    Ich habe über eine SSH Verbindung den PI konfiguriert. Dafür habe ich die Freeware Software putty verwendet. Dazu muss man die IP Adresse des PI's kennen.

      statische IP vergeben

    Dafür muss man folgende Datei bearbeiten bzw. anpassen

    nano /etc/network.d/ethernet-eth0 CONNECTION='ethernet' DESCRIPTION='A basic dhcp ethernet connection using iproute' INTERFACE='eth0' IP='dhcp' ## for DHCPv6 #IP6='dhcp' ## for IPv6 autoconfiguration #IP6='stateless' ## Some networks like this #PRE_UP="sleep 10" ## Change for static CONNECTION='ethernet' DESCRIPTION='A basic static ethernet connection using iproute' INTERFACE='eth0' IP='static' ADDR='192.168.1.23' ##ROUTES=('192.168.0.0/24 via 192.168.1.2') GATEWAY='192.168.1.2' DNS=('192.168.1.2') ## For IPv6 autoconfiguration #IP6=stateless ## For IPv6 static address configuration #IP6='static' #ADDR6=('1234:5678:9abc:def::1/64' '1234:3456::123/96') #ROUTES6=('abcd::1234') #GATEWAY6='1234:0:123::abcd'

    Hatt man dieses erledigt sollte man den PI neu starten. Anschließend kann man die Konfiguration überprüfen

    reboot ifconfig eth0

    Ist die Konfiguration erfolgreich verlaufen sollte man den PI bzw. das OS aktualisieren. So wird das komplette System aktualisieren

    pacman -Syu

    So ist dann das PI auch Internetfähig

    index

    XBMC Media Center

    Was ist ein XBMC, es ist ein Media Center womit man Videos/Bilde/Musik vom lokalen Datenträger oder auch online auf den Fernsehenr streamen kann, auch in HD Qualität, sowie viele andere Funktionen. Das Packet lässt sich einfach mit

    pacman -Syu xbmc

    installieren.

    Danach einfach zwischen 1 und 2 entscheiden, ich hatte das erste Packet installiert. Um XBMC zu starten einfach

    xbmc

    eingeben

    Um das Media Center bedienen zu können gibt es mehrere Möglichkeiten. Natürlich vor allem mit der angeschlossenen Tastatur. Manche Fernseher unterstützen auch die Kontrolle über die HDMI Schnittstelle, womit man dann mit der dazugehörigen Fernbedienung das XBMC bedienen kann (TOSHIBA hat sowas nennt sich Regaza-Link). Eine weitere Möglichkeit ist das Smartphone, es gibt eine app die xbmc heißt und über die man das XBMC bedienen kann. Voraussetzung ist natürlich das das Smartphone sich im selben Netzt befindet wie der PI

    index

    FTP Server

    Es gibt verschiedene FTP Server die man installieren kann, ich habe mich für eine schnelle Variante entschieden. ProFTPD für den Client habe ich Filezilla genommen

    pacman -Syu proftpd

    Damit der Dienst beim neustart wieder gestartet wird, sollte man folgendes

    systemctl start proftpd.service systemctl enable proftpd.service

    eingeben

    Ich habe noch zusätzlich den Dienst SSL installiert

    pacman -Syu openssl

    Zusätzlich sollte man noch folgende Schritte in der Console ausführen

    cd /usr/local/etc mkdir ftpcert cd ftpcert openssl genrsa 1024 > host.key chmod 400 host.key openssl req -new -x509 -nodes -sha1 -days 365 -key host.key > host.cert

    hat mann das muss man noch einen Eintrag in die conf einfügen

    nano /etc/proftpd.conf

    hat man diese Datei gefunden einfach folgendes einfügen

    # TLS <IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/proftpd_tls.log TLSProtocol TLSv1 TLSRequired off TLSVerifyClient off TLSRSACertificateFile /usr/local/etc/ftpcert/host.cert TLSRSACertificateKeyFile /usr/local/etc/ftpcert/host.key </IfModule>

    Damit der User nicht die ganze Ordnerstruktur sehen kann sollte man in dieser conf Datei folgendes auskommentieren

    DefaultRoot ~

    Da man aus Sicherheitsaspekten sich nicht mit dem root anmelden kann, sollte man einen User erstellen

    useradd -m -g <gruppe> -s /bin/bash <benutzername>

    Das Password sollte noch vergeben werden

    passwd <benutzername>

    Und so ist ein FTP Acc erstellt, man kann sich dann mit dem erzeugten User in das Homeverzeichnis einlogen

    index

Webserver HTML und PHP

Die installation erfolgt wiederum mit

pacman -Syu apache php php-apache

Mit folgenden Befehlen kann man den Dienst ein oder ausschalten bzw. neustarten oder einstellen das er beim neustart gestartet wird.

systemctl start httpd.service #start systemctl stop httpd.service #stop systemctl restart httpd.service #neustart systemctl enable httpd.service #autostart

Hat man die Installation erfolgreich abgeschlossen, so muss man dann die conf Datei bearbeiten

nano /etc/httpd/conf/httpd.conf

Folgendes müsste in die Datei eingefügt werden bzw. umgeändert

LoadModule php5_module modules/libphp5.so Include conf/extra/php5_module.conf AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

Einige Module könnten auskommentiert werden damit keine unnötige Module geladen werden und so die Leistung schwächen

Benötigte Module LoadModule alias_module modules/mod_alias.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule deflate_module modules/mod_deflate.so LoadModule dir_module modules/mod_dir.so LoadModule log_config_module modules/mod_log_config.so LoadModule mime_module modules/mod_mime.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule setenvif_module modules/mod_setenvif.so

Dieses Modul sollte noch eingefügt werden

LoadModule userdir_module modules/mod_userdir.so

Folgende Abschnitte suchen und anpassen

ServerRoot "/etc/httpd" Listen 80 ServerAdmin webmaster@domain.com ServerName 127.0.0.1 DocumentRoot "/srv/http/webseite" <Directory /> Options None AllowOverride None Order deny,allow Deny from all </Directory> <Directory "/srv/http"> AllowOverride AuthConfig FileInfo Options=Indexes Order allow,deny Allow from all </Directory>

Ist die Anpassung fertig muss man noch die httpd-userdir.conf bearbeiten

nano /etc/httpd/conf/extra/httpd-userdir.conf

UserDir web <Directory "/home/*/web/"> Options Indexes AllowOverride AuthConfig FileInfo Options=Indexes Order allow,deny Allow from all </Directory>

Damit man mit einem erzeugten User auf das Verzeichnis zugreifen kann, sollte man das Verzeichnis wo die Webseite liegt in das Homeverzeichnis des Users mounten. Der erster Pfad ist die Quelle der zweiter ist das Ziel. Das Standardverzeichnis wo die Webseite abgelegt werden kann lautet /srv/http/

mount -B /srv/http/webseite /home/web/webseite

Damit das gemountetes Verzeichnis beim Neustart wieder gemountet wird, sollte man in die folgende Datei

nano /etc/fstab

folgendes einfügen

/srv/http/webseite /home/web/webseite none bind 0 0

Da der erzeugte User z.B. "Web" nur das Homeverzeichnis sehen kann und sich darin befindliche Daten, kann er wenn die Rechte ordnungsgemäß vergeben wurden nichts in das eingemountete Verzeichnis ablegen. Der Grund ist das der Erzeuger des Verzeichnises root ist und auch zu der Gruppe root angehört. Der User "Web" kann aber nichts verändern da er nicht der Erzeuger ist und auch nich zu der Gruppe root gehört. Man sollte also das Verzeichnis /srv/http/webseite der Gruppe http einfügen. Also sollte man folgendes tun. Das Verzeichnis

/srv/http/webseite

der Gruppe des Users hinzufügen, so kann der User auf das Verzeichnis zugreifen und die Webseite dort ablegen. So wirds gemacht

cd /srv/http/ chgrp <Gruppe> <Datei>

Damit der Erzeuger und die Gruppe auf das Verzeichnis zugreifen können und nur diese, sollten die Rechte so vergeben werden

chmod 770 <Verzeichnis>

So können die Erzeuger und die User der Gruppe die Inhalte verändern, der Rest darf nichts tun.

index


Kontakt