Embedded Linux findet in immer mehr Bereichen verwendung und dementsprechend erscheinen immer mehr Entwicklungsboards um den Einstieg in das embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. Dieser Artikel soll Neulingen dabei helfen den Einstieg in das embedded Linux zu erleichtern und dabei etwas Erfahrung mit dem Raspberry Pi zu sammeln.
(Dieser Artikel ist noch in Arbeit)
Inhaltsverzeichnis
Die ersten Schritte
Herzstück dieses Boards ist ein BCM2835 SoC von Broadcom der mit einer Taktfrequenz von 700MHz arbeitet. Ein SoC ist ein "System on a Chip" d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet aus 256MB RAM, einen ARM11 Prozessorkern und einer GPU. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, ein HDMI Anschluss, ein SD-Kartenslot und einen LAN Anschluss.
SD-Karten Setup
Bevor mit dem Raspberry Pi losgelegt werden kann, muss erst eine SD-Karte mit einem Debian Image erstellt werden. <br\>Hierbei ist darauf zu achten, dass für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet werden, da es bei Karten mit großer Speicherkapazität sowie bei Class 10 Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das die Karte vom Raspberry Pi nicht erkannt werden.<br\> Bei diesen zwei Karten kann ich jedoch versichern das sie funktionieren.
SD-Karte erstellen unter Windows
- Das Image unter: http://www.raspberrypi.org/downloads downloaden
- Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden
- Das Image entpacken
- SD-Karte in einen Kartenleser einlegen
- Win32 DiskImager starten
- Die SD-Karte und das Image im DiskImager auswählen
- Auf "Write" klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)
- Sobald der Schreibvorgang abgeschlossen wurde auf "OK" klicken
- DiskImager schließen
- SD-Karte in das Raspberry Pi einlegen
SD-Karte erstellen unter MAC OS
SD-Karte erstellen unter Linux
Die erste Inbetriebnahme
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen. Optional kann das Raspberry Pi noch mittels LAN an einen PC oder an einen Router angeschlossen werden. Dies wird aber erst später benötigt. Nach einiger Zeit sollte auf dem Bildschirm ein "raspberrypi login" erscheinen. Der Loginname lautet standardmässig "pi" und das Passwort ist "raspberry". <br\>Wichtig ist, dass das Raspberry Pi erstmal nur das Layout für amerikanische Tastaturen besitzt, sprich die Taste "Z" auf einer deutschen Tastatur ergibt den Buchstaben "Y".
Passwort ändern
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen "pi" ändern. Dies wird so gemacht:
$ passwd Das aktuelle Passwort Das neue Passwort Wiederholung vom neuen Passwort
Admin Account anlegen
Der nächste Schritt ist das anlegen eines Root-Accounts und die festlegung eines Root-Passwortes. Der Root-Account kann mit einem Administrator-Account unter Windows oder MAC OS gleichgesetzt werden. Er wird wie folgt angelegt:
$ sudo su Neues Root-Passwort Wiederholung vom neuen Passwort
LAN-Verbindung aktivieren
Jetzt wird noch der SSH-Server vom Raspberry Pi aktiviert. Dadurch hat man die Möglichkeit das Raspberry Pi von einem anderen Rechner aus zu bedienen, solange sich beide Geräte in einem Netzwerk befinden. Dazu aber später mehr. Das SSH wird wie folgt aktiviert:
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc
Anschließend wird das Raspberry Pi neu gebootet:
$ su root Passwort von "Root" eingeben $ shutdown -r now
Nach dem Neustart sollte vor dem "raspberrypi login" ein "starting OpenBSD Secure Shell Server: sshd" erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden. Die IP-Adresse vom Raspberry Pi findet ihr so heraus:
$ip addr
Das Raspberry Pi gibt nun folgendes zurück:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0
Die IP-Adresse meines Boards lautet also "192.168.178.25".
Fernzugriff auf das Raspberry Pi
Da nicht immer die Möglichkeit besteht das Raspberry Pi mit einem Monitor und einer Tastatur bzw. einer Maus zu verbinden (weil es z.B. irgendwo verbaut ist), haben wir SSH aktiviert. Nun wollen wir dies auch mal nutzen. Wir verbinden also unser Raspberry Pi mittels eines LAN-Hub, eines Routers oder direkt mit einem PC. Anschließend benötigen wir noch ein Programm welches SSH unterstützt. Ich verwende für Windows das Programm PuTTY. Das Programm wird gedownloadet und anschließend installiert. Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden. Nach dem Öffnen sieht das Programm so aus:
Nun wird bei "Host Name" die IP-Adresse des Boards eingegeben (bei mir wäre dies 192.168.178.25). Als Port wird 22 (Standard für SSH) angegeben und bei "Connection type" wird der Haken bei "SSH" gesetzt. Als nächstes könnt ihr bei "Saved Sessions" noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf "Save" wird das Profil gespeichert. Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:
Dort könnt ihr euch nun ganz normal anmelden. PuTTY verhält sich anschließend exakt genauso wie die Konsole direkt auf dem Raspberry Pi.
Datentransfer mit dem Raspberry Pi
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä. Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. Für Windows kann das Programm FileZilla verwendet werden.<br\> Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen. Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden. Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine VM (z.B. Virtual Box).
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen "Test.txt" auf dem Desktop. In dieses Dokument schreiben wir den Text "Hallo". Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.
Nun öffnen wir die Konsole und geben folgendes ein:
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25: Passwort
Das Kommando "SCP" setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall "Test.txt").<br\> Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf "Eigenschaften" geht.<br\> Der nächste Parameter ist der Name mit dem ihr euch beim Raspberry Pi anmelden wollt, gefolgt von einem @ und der IP-Adresse des Raspberry Pi.<br\> Soll die Datei "Test.txt" an den Benutzer "xy" gesendet werden, lautet der Parameter xy@IP-Adresse. Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl "SCP" angegeben habt. Nach dem Transfer sollte folgendes in der Konsole stehen:
Schreibt ihr hingegen folgendes:
$ scp scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt Passwort
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen "Text.txt" gespeichert. Wenn ihr den Parameter "abc/Text.txt" weglasst wird die Datei unter /home/pi gespeichert. Wird als Benutzername "xy" angegeben, befindet sich die Datei anschließend im Ordner /home/xy. <br\> Nun überprüfen wir ob die Datei übertragen wurde. Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.<br\> Anschließend loggen wir uns ein und tippen folgendes in die Konsole:
$ cd /home/pi $ ls
Mit dem Befehl "cd" wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis "pi"). <br\> Dann werden alle Dateien mit dem Befehl "ls" aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind. Es sollte nun die Datei "Test.txt" angezeigt werden. Wenn wir nun folgendes eingeben:
$ cat Test.txt
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.<br\> Um die Datei zu löschen schreiben wir einfach:
$ rm Test.txt
--Kampi 18:20, 5. Jul 2012 (CEST)