<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://rn-wissen.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kampi</id>
		<title>RN-Wissen.de - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://rn-wissen.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kampi"/>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Spezial:Beitr%C3%A4ge/Kampi"/>
		<updated>2026-04-11T21:16:31Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21030</id>
		<title>AVR-Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21030"/>
				<updated>2012-09-16T11:02:49Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Grundschaltung mit Quarz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:avr8.jpg|thumb|300px|Einen Controller zum Leben zu erwecken ist nicht schwer, manchmal reichen ein paar Teile! Beispiel mit Mega8]]&lt;br /&gt;
==Wir starten mit einem ATMega32== &lt;br /&gt;
Immer wieder gibt es in Foren, wie dem Roboternetz, Einsteiger, die das erste Mal mit einem [[Microcontroller]] in Berührung kommen. Trotz zahlreicher Einstiegsbeiträge im Forum wiederholen sich doch bestimmte Anfängerfragen immer wieder. Daher soll dieser Artikel noch einmal aufzeigen, wie die ersten Schritte aussehen, um einen Controller zum Leben zu erwecken. Es werden verschiedene Grundschaltungen aufgezeigt und erläutert, welche Bauteile benötigt werden und welche Funktion sie besitzen.&lt;br /&gt;
Als Controller verwenden wir einen [[AVR]] [[ATMega32]], der derzeit größte [[AVR]]-Controller, welcher noch im bastlerfreundlichen DIP-Gehäuse verfügbar ist. Für kleine bis mittlere Projekte ein sehr empfehlenswerter Controller, zumal er preislich mit ca. 3-4 Euro noch sehr günstig ist und zudem mit seinem 40-Pin-Gehäuse reichlich Anschlussmöglichkeiten besitzt.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Mega1632.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Wie auf dem Bild zu sehen ist, verfügt auch der etwas günstigere ATMega16 über die gleiche Pinbelegung, daher könnten wir in diesem Tutorial auch diesen Typ verwenden. Der ATMega32 hat aber doppelt soviel Speicherplatz für Programmdaten (Flash), daher hat man für eine geringe Preisdifferenz doch mehr Möglichkeiten.&lt;br /&gt;
Wer noch 1-2 Euro sparen will, dem sei der [[ATMega8]] oder [[ATMega168]] empfohlen, diese Typen sind sehr ähnlich, so dass das Tutorial weitgehend auch auf diese Typen bezogen werden kann. Allerdings haben diese Typen deutlich weniger Anschlussmöglichkeiten (28 Pin DIP Gehäuse). &lt;br /&gt;
&lt;br /&gt;
Die Frage, ob man mit einem fertigen Controllerboard, einer Experimentierplatine oder einem Steckbrett beginnen sollte, wurde ja in dem RN-Wissen Wiki Beitrag &amp;quot;[[Mit welchem Controllerboard fang ich an]]&amp;quot; angesprochen. In den meisten Fällen favorisiert der Autor dieses Artikels ein fertiges Controllerboard. Warum das so ist, dazu am Ende noch ein paar Anmerkungen. Dennoch soll diese Einführung schrittweise anhand eines Steckbrettes erläutert werden.&lt;br /&gt;
&lt;br /&gt;
==Start mit handelsüblichem Steckbrett==&lt;br /&gt;
Ein Steckbrett hat den Vorteil, dass man theoretisch ohne Löten alle Bauteile relativ zügig zusammenstecken kann. Bestimmte Steckkontakte innerhalb einer Reihe sind im Steckbrett miteinander verbunden, so dass man nachher pro Bauteilbeinchen noch einige Steckkontakte zum Verdrahten mit Schaltdraht oder speziell konfektionierter Litze verwenden kann.&lt;br /&gt;
&lt;br /&gt;
'''Die Vorteile eines Steckbretts:'''&lt;br /&gt;
&lt;br /&gt;
*Bauteile können ohne Löten eingesetzt und verdrahtet werden&lt;br /&gt;
*recht zügiger Schaltungsaufbau&lt;br /&gt;
*eine Schaltung kann leicht geändert oder korrigiert werden, defekte Teile sind leicht tauschbar&lt;br /&gt;
*ein Steckbrett kann auch für ganz andere Schaltungen verwendet werden&lt;br /&gt;
'''Die Nachteile eines Steckbretts gegenüber gedruckten Schaltungen und Experimentierplatinen sind:'''&lt;br /&gt;
&lt;br /&gt;
*nicht alle Bauteile passen, so dass wir doch noch etwas löten müssen&lt;br /&gt;
*nur geringer Schaltungsumfang möglich, da es schnell unübersichtlich wird&lt;br /&gt;
*sehr störanfällig wegen grosser Kabellängen, dadurch oft Funktionsstörungen&lt;br /&gt;
*Bauteile müssen zum Teil verbogen werden, damit sie passen&lt;br /&gt;
&lt;br /&gt;
Man beginnt, indem man den Controller AVR [[ATMega32]] auf das Board aufsetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrettmega32.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Die Grundschaltung==&lt;br /&gt;
Damit ein Controller erst mal zum Laufen kommt, benötigt man zumindest einen 10-k-Widerstand, einen 100-nF-Kondensator und eine 5V-Spannungsquelle. Das Ganze muss entsprechend dem unteren Schaltplan verschaltet werden, man spricht von einer sogenannten Grundschaltung. In dem Schaltplan wurde der Controller im Übrigen pinkompatibel als Schaltzeichen verwendet, die Pinreihenfolge ist also im Schaltplan identisch mit der echten Bauteilpin-Reihenfolge. Diese Darstellung erleichtert den Nachbau der Schaltung auf einem Steckbrett aber auch einer Experimentierplatine ungemein. Gewöhnlich verwendet man in Schaltplänen eine etwas andere Darstellung, bei der die Pins nach Funktionsgruppen geordnet sind. Bei solchen Schaltplänen muss man sich dann anhand der Pin-Nummern orientieren, man wird dies am Ende des Artikels noch bei dem IC MAX232 sehen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mega32.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn man schon einige Grundschaltungen in anderen Tutorials gesehen hat, dann wird man bemerken, dass unsere doch noch etwas einfacher ist und weniger Bauteile benötigt.  Hier wird beispielsweise kein Quarz verwendet, da der ATMega32 auch intern einen Takt generieren kann. Wer mit dem ADC genau messen will, sollte statt der Beschaltung im Bild, zwischen Vcc und AVcc eine Spule von 10uH und einen Kondensator von 100nF zwischen AVcc und GND schalten. Will man AVcc als Referenzspannung verwenden, muss noch ein 100nF Kondensator von ARef nach GND.&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht die obere Schaltung wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um den Controller in Betrieb zu nehmen, benötigt man bei dieser Schaltung ein Netzteil, das eine stabilisierte Spannung von 4 bis 5V liefert. Wir gehen erst einmal davon aus, dass man über dieses verfügt. &lt;br /&gt;
Erwähnenswert ist noch, dass der Kondensator als [[Abblockkondensator]] zur Unterdrückung von Störungen dient. Er muss so nah wie möglich an die Spannungszuführung am Controller selbst gesetzt werden. Ohne Kondensator enstehen erhebliche Störungen in der Versorgungsspannung, das Bild verdeutlicht es:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Abblockkondensator OhneC amAVR.jpg|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Der Widerstand in der Grundschaltung dient dazu, die Reset-Leitung konstant auf definiertem High-Pegel zu halten. Verbindet man diesen RESET-Pin später kurz mit GND (Masse), dann wird das Programm im Controller neu gestartet.&lt;br /&gt;
&lt;br /&gt;
==Woran merkt man, dass der Controller funktioniert?==&lt;br /&gt;
Gute Frage! Man merkt es garnicht. Genau genommen funktioniert ja auch trotz korrekter Schaltung noch immer nichts, denn es muss zuerst ein Programm in den Controller geladen werden, damit er überhaupt weiß, was zu tun ist. Ohne Programm ist der Controller quasi tot.&lt;br /&gt;
&lt;br /&gt;
==Wie bekommt man das Programm in den Controller?==&lt;br /&gt;
Der Controller verfügt über eine sogenannte [[ISP]]-Schnittstelle. Das bedeutet, über bestimmte Pins ([[SPI]]) kann der Controller mit einer geeigneten PC-Software (zum Beispiel Bascom) programmiert werden. Zum Anschluss an den PC benötigt man jedoch einen sogenannten ISP-Dongle, auch Programmieradapter genannt. Hier gibt es verschiedene Lösungen: Adapter, die über die serielle oder parallele Schnittstelle arbeiten, und zukunftsweisend auch welche, die das Programm über USB-Schnittstelle auf den Mikrocontroller übertragen. Es gibt sowohl Originale von Atmel als auch kompatible Lösungen. Der am meisten verwendete ISP-Dongle wird am Druckerport betrieben. Diese gibt es inzwischen recht preiswert, sodass sich das Selbstbauen eigentlich nicht lohnt. Da man auch gern auf ein paar Fehlerquellen verzichten sollte, würde ich eine Fertiglösung empfehlen. Wer ihn selbst bauen möchte, findet ([[AVR-ISP_Programmierkabel|hier]] eine ISP-Dongle-Bauanleitung und sogar eine fertige Platine dafür  ([[AVR-ISP_Programmierkabel]]).&lt;br /&gt;
&lt;br /&gt;
Sowas sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Avrtutorial_ispkabel.jpeg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Schaltplan eines solchen Programmierkabels:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:ispschaltplan.gif|center|thumb|400px|Schaltplan des ISP-Dongels nach unserem Wiki-Bauplan, mit SUB-D Buchse. Bitte beachten, dass das IC1 hier im Plan als verschiedene Blöcke (IC1A/IC1B) dargestellt wird. Dies dient nur zur Übersicht, es handelt sich nur um ein IC, einfach auf die Pinnummern achten. Zum vergrößern anklicken.]]&lt;br /&gt;
&lt;br /&gt;
Ein noch einfacheres Programmierkabel ist auf der Seite http://thomaspfeifer.net/ beschrieben.&lt;br /&gt;
Dort findet man unter &amp;quot;AVR-Projekte&amp;quot; den Artikel &amp;quot;Ein einfaches Programmierkabel für Atmel-AVR Mikrocontroller&amp;quot;.&lt;br /&gt;
Will man dieses Kabel verwenden, sollte man in BASCOM unter &amp;quot;Options/Programmer&amp;quot; den Programmertyp &amp;quot;Samples Electronic Programmer&amp;quot; wählen, sonst funktioniert das Autodetect, das die eingestzte Version des AVR (Mikrocontroller) erkennt nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Problem ist nun, wie schließe ich einen handelsüblichen ISP-Programmieradapter an den Controller auf dem Steckbrett an? Der normale 10-polige Wannenstecker (nach [[RN-Definitionen]]) passt nicht in ein Steckbrett. Das ist wieder so ein typischer Nachteil bei Steckbrettern! In unserem Beispiel haben wir dazu auf einem kleinen Stück Experimentierplatine einen steckbaren Adapter für das Steckboard gelötet.&lt;br /&gt;
Somit kann man die Schaltung um einen üblichen 10-poligen ISP-Programmieranschluss ergänzen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mitisp.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht das gleiche so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitisp.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt endlich ist es soweit, jetzt kann man den Controller über einen ISP-Programmieradapter mit dem PC verbinden. Aber unbedingt darauf achten, dass auch alles korrekt nach Schaltplan gesteckt wurde und dass die Betriebsspannung 5V nicht übersteigt. Ansonsten könnte man sich Dongle oder sogar die PC-Schnittstelle beschädigen.&lt;br /&gt;
Als Entwicklungsumgebung nutzen wir hier im Tutorial [[Bascom]]. [[Bascom]] ist ein sehr beliebter Basic-[[Compiler]], der zahlreiche [[AVR]] Controllertypen programmieren kann. Da auch ein [[Terminalprogramm]] und ein Programmer integriert ist, enthält diese PC-Software alles, was man braucht, das erleichtert den Einstieg zusätzlich. Die Software gibts kostenlos als Demo bis 4K Code, für unsere Beispiele und den Einstieg reicht das allemal, siehe dazu Artikel Bascom.&lt;br /&gt;
&lt;br /&gt;
Wie man ein Programm schreibt, kompiliert und überträgt, wurde schon in diesem Beitrag [[Bascom - Erstes Programm in den AVR Controller übertragen]] ausführlich behandelt, wir ersparen uns deshalb diese Details. Man sollte aber bei Unklarheiten zum Kompilieren und Übertragen diesen Artikel auf jeden Fall lesen.&lt;br /&gt;
&lt;br /&gt;
Als erstes kompilieren und übertragen wir folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step1.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Programm macht eigentlich nichts, außer dass es eine Endlosschleife ausführt. Aber da wir noch überhaupt nix am Controller angeschlossen haben, können wir eh noch nicht sehen, ob ein Programm nun richtig ausgeführt wird oder nicht.&lt;br /&gt;
Allerdings können wir schonmal üben, das Programm mit Bascom zu übertragen. Wenn wir alles richtig aufgebaut haben und Spannung anliegt, dann sollte automatisch der Controller in Bascom erkannt werden. Die Übertragung sollte dann ohne Fehlermeldung erfolgen können. Wenn wir das geschafft haben, geht’s weiter.&lt;br /&gt;
&lt;br /&gt;
==Läuft die Schaltung und das Programm?==&lt;br /&gt;
Damit wir nun endlich sehen, ob sich bei unserer Schaltung auch was tut, schließen wir eine LED über einen 1k-Vorwiderstand an einen Port an. Da wir die Kathode an den Controllerpin und die Anode an Plus legen, leuchtet die LED immer dann, wenn dieser Pin auf Low geschaltet wird.&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial grundschaltung mitled.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's nun so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitled.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit man nun auch wirklich sieht, ob das Programm läuft, schreiben wir ein kleines Basic-Programm, welches eine LED abwechselnd ein– und ausschaltet. Wir kompilieren und übertragen also folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step2.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output       'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  Portc.0 = 1                 'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
  Portc.0 = 0                 'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn die LED nun schnell blinkt, dann funktioniert die aufgebaute Schaltung perfekt. Wir haben gleichzeitig gelernt, wie man einen Ausgangsport, also Controllerpin, ein- und ausschalten kann. Nahezu alle Pins beim ATMega32 können auf diese Weise als Ausgangsport betrieben werden. Somit lassen sich nicht nur viele Leds, sondern unter Zuhilfenahme eines Treibers (z.B. Transistors) auch Relais und andere Aktoren schalten.&lt;br /&gt;
&lt;br /&gt;
Alternativ das gleiche Programm in C (für AVR-GCC):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Testprogramm: Blinken auf Pin PC0&lt;br /&gt;
//&lt;br /&gt;
#ifndef MCU             // Welcher AVR genutzt wird, wird i.A. im Makefile definiert&lt;br /&gt;
#define MCU  atmega32&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef F_CPU           // kann auch im Makefile definiert sein&lt;br /&gt;
#define F_CPU 1000000UL // Takt als LONG definieren, da zu groß für Integer &lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;     // Namen der IO Register&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt; // Funktionen zum warten&lt;br /&gt;
// Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
 DDRC = _BV(0);         // Nur PC0 als output,  _BV(0) = (1&amp;lt;&amp;lt;0) = 1&lt;br /&gt;
 PORTC = 254;           // Pullups auf allen anderen Pins &lt;br /&gt;
    &lt;br /&gt;
 while (1)&lt;br /&gt;
 { &lt;br /&gt;
   PORTC &amp;amp;= 255-_BV(0); //  0 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);      //  100 ms Warten&lt;br /&gt;
   PORTC |= _BV(0);     //  1 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eingangsport fragt Taster ab==&lt;br /&gt;
Nun erweitern wir die Schaltung noch um einen Taster. Nahezu jedes Port kann bei einem ATMega32 auch per Software als Eingangsport konfiguriert werden. Wir schließen z.B. einen Taster an Port-Pin PA7 an. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial grundschaltung mittaster.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Port wird in der Software so konfiguriert, dass es als Eingang arbeitet und intern über einen hohen Widerstand  (Pullup-Widerstand) ständig auf High-Pegel gelegt wird. Wird nun eine Taste gedrückt, so wird der Pegel auf Low gezogen.&lt;br /&gt;
Das Beispielprogramm ist nun so gestaltet, dass bei gedrückter Taste die LED leuchtet und beim Loslassen wieder ausgeht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step3.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output        'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input          'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                    'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  End If&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Grundschaltung mit Quarz==&lt;br /&gt;
Obwohl wir ab der letzten Schaltung schon einiges mit dem Controller anfangen können, so fehlt doch noch etwas Wichtiges. Oft ist es nämlich notwendig, dass ein Controller sehr genaue Frequenzen mißt oder ganz genaue Taktraten ausgeben kann. Leider ist der interne Taktgenerator nicht 100% exakt, was bei manchen Anwendungen störend ist. Zum Beispiel können über die RS232-Schnittstelle Daten nicht immer ganz fehlerfrei übertragen werden, wenn die Taktfrequenz nicht genau stimmt. Daher wird in den meisten Anwendungsfällen ein Quarz zur Takterzeugung genutzt, Sie kennen das sicher aus anderen Grundschaltungen. Also erweitern wir unsere Schaltung gleich noch um einen Quarz mit den zugehörigen 22pF-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial grundschaltung mitquarz.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf unserem Steckbrett wird's langsam voller, hier sieht's also inzwischen so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitquarz.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Normalerweise sollte der Quarz genauso wie die beiden 22pF-Kondensatoren, die zum Anschwingen des Quarzes dienen, möglichst nahe am Controller platziert werden. Auf dem Steckbrett ist das manchmal gar nicht so einfach, insbesondere wenn man wie in diesem Fall den Quarz erst später hinzufügt. Wichtig ist nämlich, dass die Leitungen vom Quarz zum Controller möglichst kurz sind, bei gedruckten Schaltungen oft nur 1 bis 2 cm! Auch die einzelnen Bauteilbeinchen, z.B. der Kondensatoren, sollten normalerweise so kurz wie möglich sein.&lt;br /&gt;
Ist dies nicht der Fall, wie auch in unserem Bild, dann fungieren diese Leitungen fast wie eine Funkantenne. Dies führt in der Regel zu starken Hochfrequenzsignalen, die nicht nur unsere Schaltung, sondern auch andere Schaltungen in der Nähe stören könnten. Man merkt dies auch oft daran, dass sich ein Board bei höherer Quarzfrequenz immer seltener fehlerfrei ohne Übertragungsfehler programmieren läßt.&lt;br /&gt;
Grundsätzlich sind daher Schaltungen mit Quarz auf einem Steckbrett nicht sonderlich zu empfehlen, die Betriebssicherheit ist nicht immer gegeben. &lt;br /&gt;
&lt;br /&gt;
Auch wenn nun ein Quarz angeschlossen ist, so wird er noch immer nicht genutzt. Noch immer arbeitet der [[ATMega32]] mit seiner intern voreingestellten 1 Mhz Taktfrequenz. Um dies umzustellen, muss man ein sogenanntes [[Fusebits|Fusebit]] im Controller umprogrammieren. Auch dies wurde schon im Beitrag [[Bascom - Erstes Programm in den AVR_Controller übertragen]] näher beschrieben. Hier sei daher nur nochmals gesagt, dass dies auch sehr bequem in [[Bascom]] erfolgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_bascomfusebitquarz.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald wir das umgestellt haben, müssen wir auch in dem Programm die Anweisung &lt;br /&gt;
&lt;br /&gt;
 $crystal = 1000000 &lt;br /&gt;
&lt;br /&gt;
durch &lt;br /&gt;
&lt;br /&gt;
 $crystal = 16000000 &lt;br /&gt;
&lt;br /&gt;
ersetzen, denn unser Quarz taktet nun mit 16 MHz.&lt;br /&gt;
&lt;br /&gt;
==Spannung stabilisieren==&lt;br /&gt;
Auch wenn unsere Basis-Schaltung für Experimente inzwischen schon ganz nett ist, so ist es doch etwas ungünstig, dass wir stets 5V zur Verfügung haben müssen. Nicht immer steht ein geeignetes Netzteil zur Verfügung, zudem soll ein Controller auch oft mit Batterien versorgt werden. Aus diesem Grund verfügen fast alle Entwicklungsboards wie ([[RN-Control]], STK500 etc.) über einen [[Spannungsregler]].&lt;br /&gt;
[[Bild:78s05.jpg|thumb|Spannungsregler 78S05]] Dieser wandelt eine höhere Eingangsspannung (ca. 7 bis 20 V) immer genau in  5V  um. Sowas erhöht die Betriebssicherheit einer Schaltung nochmals immens. Als [[Spannungsregler]] (IC2) wird oft der 7805 genutzt.&lt;br /&gt;
Die beiden 100nF-Kondensatoren sind wichtig, sie sollen HF-Störungen und Schwingungen vermeiden. Der Elko vor dem Spannungsregler ist vor allem dann wichtig, wenn die Spannung von einem Netzgerät kommt und noch etwas geglättet werden muss. Je höher der Strombedarf der Schaltung, desto größer muss man die Kapazität wählen. Es schadet nicht, wenn man den Elko einige Nummern größer wählt, man ist dann quasi für alle Fälle gerüstet. So sind Werte zwischen 100 uF und 2200 uF durchaus denkbar.&lt;br /&gt;
&lt;br /&gt;
Wir erweitern unsere Schaltung somit wie folgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_spannung.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_spannung.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Daten und Texte zum PC übertragen==&lt;br /&gt;
In vielen Programmen müssen Daten oder Texte vom Controller an den PC oder umgekehrt gesendet werden. Insbesondere bei komplexen Programmen kann man auf diese Weise Variableninhalte ausgeben und somit auch Fehler im Programmcode schneller finden und korrigieren. In der Regel ist das ganz einfach, denn der [[Microcontroller]] [[ATMega32]] verfügt über einen internen [[UART]], also ein Modul, das Daten über die [[RS232]]-Schnittstelle zum PC senden bzw. auch von ihm empfangen kann. Leider arbeitet jedoch die Controllerschnittstelle mit 5V und die PC-Schnittstelle der Norm entsprechend mit +-12V. Daher muss unbedingt ein Schaltkreis dazwischen, welcher die Pegel anpasst. Gewöhnlich nimmt man hier das IC MAX232(CPE), welches inzwischen sehr preiswert erhältlich ist.&lt;br /&gt;
&lt;br /&gt;
Wir müssen also die Schaltung nochmals erweitern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_max232.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das IC Max232 ist im Schaltplan in der üblichen funktionsorientierten Darstellung gezeichnet. '''Zur besseren Übersichtlichkeit wurden die immer benötigten Anschlüsse für VCC (Pin 16) und GND (Pin 15) am MAX232 getrennt oben rechts im Schaltplan dargestellt. Also nicht vergessen !!'''&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_max232.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über eine dreipolige Stiftleiste ([[RN-Definitionen]]) wird nun das Steckboard mit der [[RS232]]-Schnittstelle des PC verbunden. Es ist nun ein Leichtes, mit einem Programm Daten zum PC zu senden. Das nachfolgende Programm gibt Hinweise mit der Anweisung '''PRINT''' aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step5.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 16000000&lt;br /&gt;
$baud = 9600&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output              'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input                'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                          'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                      'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter nicht gedrückt&amp;quot;&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                      'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter gedrückt&amp;quot;&lt;br /&gt;
  End If&lt;br /&gt;
  Wait 1&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Möglichkeiten des Steckbrettes erreicht==&lt;br /&gt;
Inzwischen füllt der Schaltplan fast ein DIN-A4-Blatt und auf dem Steckbrett sieht's auch schon recht wirr aus, dabei haben wir nur die wichtigsten Grundelemente auf dem Steckbrett. Für eine Roboter-Steuerung oder andere Anwendung fehlt doch noch einiges. Zum Beispiel weitere Taster, weitere LEDs, Motortreiber, damit der Controller auch Motoren ansteuern kann und ein [[I2C]]-Bus-Anschluss.&lt;br /&gt;
Dies alles noch auf einem Steckbrett zu realisieren macht wenig Sinn, zumal bereits jetzt schon durch die doch recht langen Leitungen/Verkabelungen erhebliche Störungen auftreten. In der letzten Phase ist es immer öfters zu Übertragungsfehlern beim Programmieren gekommen, oft musste dies 20mal wiederholt werden. Dies zeigt, dass ein Steckbrett bestenfalls für ganz kleine Controller-Experimente herhalten kann. Für größere Dinge sollte man dann doch zu einer Lösung auf einer gedruckten Platine greifen. Spezielle Experimentierboards  bieten mehr Sicherheit und haben neben den Grundelementen, die hier beschrieben wurden, noch eine ganze Menge mehr drauf. Bei [[RN-Control]] zum Beispiel 5 Tasten, 8 Leds, Motortreiber, Lautsprecher, diverse Anschlüsse etc. &lt;br /&gt;
Der Größenunterschied wird im Bild deutlich:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_rncontrol.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auch wenn das Steckbrett also kein Controllerboard ersetzen kann, so hat das kleine Tutorial doch gezeigt, wie eine [[Avr]]-Schaltung aufzubauen ist. Dieses Wissen sollte man auch besitzen, wenn man ein Controllerboard nutzt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Was braucht man, wenn man mit einem Controllerboard den Einstieg startet?==&lt;br /&gt;
[[Bild:avrtutorial_ispkabel.jpg|thumb|ISP-Programmierkabel]]Neben dem eigentlichen Board braucht man, wie schon zuvor angesprochen, ein [[AVR-ISP Programmierkabel]]. Wenn der PC noch einen Parallelport oder RS232 Port on Board hat, kann man ein einfaches Programmierkabel nutzen. Das kann man selbst bauen oder auch fertig mitzubestellen (siehe Bild). &lt;br /&gt;
Wenn man nur USB zur verfügung hat, wird man den Programmer wohl kaufen müssen, denn USB-RS232 oder USB-LPT Adapter funktionieren fast nie mit den einfachen Programmern, die man gut selber bauen kann. Die Kombination aus eine USB-RS232 und einem Intelligenten Seriellen Programmer (z.B. STK500) funktioniert dagegen.&lt;br /&gt;
&lt;br /&gt;
Als zweites braucht man natürlich eine Stromversorgung. Ideal sind Gleichspannungsnetzgeräte, die zwischen 9 und 12V liefern, vorausgesetzt, das Board hat einen Spannungsregler wie in der Regel die RN-Boards. Man kann hier ein normales Steckernetzteil oder ein komfortables Labornetzteil nehmen. Um etwas Reserve zu haben, wäre es gut, wenn das Netzteil mindestens 200 mA (mit Motoren besser 1 A) liefern kann. Der Controller selber baucht nur etwa 1 mA je MHz Taktfrequenz.&lt;br /&gt;
Alternativ kann man auch Akkupacks oder Batterien nutzen, allerdings mindestens 7,2V sollten die schon liefern können, sicherer sind 8,4-, 9,6- oder 12V-Akkus.&lt;br /&gt;
Das wäre eigentlich schon das Wichtigste, um ein Board in Betrieb zu nehmen und Experimente zu machen. &lt;br /&gt;
&lt;br /&gt;
Allerdings, ein RS232-Kabel ist ebenfalls noch sehr empfehlenswert. Dieses erlaubt die Ausgabe von Texten und Variablen auf den PC, wir haben es ja oben im Steckbrettbeispiel schon gesehen. Dazu wird auf dem PC ein [[Terminalprogramm]] gestartet und über die [[RS232]] Schnittstelle mit dem PC verbunden. Bei manchen Boards ist sowieso ein RS232 Kabel unerläßlich, wie z.B. RN-Motor, RN-Speak etc. Nützlich ist es aber überall. Man kann ein solches Kabel selbst bauen oder gleich beim Kauf eines Boardes mitbestellen.&lt;br /&gt;
&lt;br /&gt;
Also nochmal die Zusammenfassung für den Einstieg:&lt;br /&gt;
&lt;br /&gt;
* Controllerboard&lt;br /&gt;
* [[AVR-ISP Programmierkabel]] mit 10-poligem Wannenstecker&lt;br /&gt;
* RS-232-Kabel (mit 3-poligem Adapter, wenn Board [[RN-Definitionen]] erfüllt)&lt;br /&gt;
* Netzgerät oder Akku (ideal 9 bis 12V, notfalls auch 7,2 bis 20V)&lt;br /&gt;
* [[Bascom]]-Compiler-Vollversion ist nur nötig, wenn man gleich größere Sachen anstrebt, ansonsten reicht das Demo, genauso wie ein [[Avr-gcc]]-Compiler. Bei RN-Boards sind diese Programme beim Board- oder Platinenkauf sowieso dabei, ansonsten kann man diese im Internet downloaden.&lt;br /&gt;
* Ein gutes Buch ist immer gut, siehe [[Buchvorstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
*[[Benutzer:Frank|Frank]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quellen===&lt;br /&gt;
* [[Abblockkondensator]] Artikel von Uwegw&lt;br /&gt;
* RN-Board Dokumentationen aus [[:Kategorie:Projekte]]&lt;br /&gt;
* diverse Datenblätter&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[AVR-ISP Programmierkabel]]&lt;br /&gt;
*[[Mit welchem Controllerboard fang ich an]]&lt;br /&gt;
*[[Abblockkondensator]]&lt;br /&gt;
*[[Bascom]]&lt;br /&gt;
*[[Bascom - Erstes Programm in den AVR_Controller übertragen]]&lt;br /&gt;
*[[Avr]]&lt;br /&gt;
*[[Atmel Controller Mega16 und Mega32]]&lt;br /&gt;
*[[Spannungsregler]]&lt;br /&gt;
*[[Hallo_Welt_für_AVR_(LED_blinken)#Quellcode]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.youtube.com/watch?v=cGtC7e44abA&amp;amp;feature=plcp&amp;amp;context=C37e7441UDOEgsToPDskJmsEAf0l4u9UVXLqURe7ID Neu - Video zu AVR Experimentierboard RN-AVR Universal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:Quellcode_Bascom]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:800px-Avrtutorial_grundschaltung_mitquarz.gif&amp;diff=21029</id>
		<title>Datei:800px-Avrtutorial grundschaltung mitquarz.gif</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:800px-Avrtutorial_grundschaltung_mitquarz.gif&amp;diff=21029"/>
				<updated>2012-09-16T11:02:35Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: Grundschaltung mit Quarz, Mega32, Led, Taster, ISP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grundschaltung mit Quarz, Mega32, Led, Taster, ISP&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21028</id>
		<title>AVR-Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21028"/>
				<updated>2012-09-16T11:00:21Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Eingangsport fragt Taster ab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:avr8.jpg|thumb|300px|Einen Controller zum Leben zu erwecken ist nicht schwer, manchmal reichen ein paar Teile! Beispiel mit Mega8]]&lt;br /&gt;
==Wir starten mit einem ATMega32== &lt;br /&gt;
Immer wieder gibt es in Foren, wie dem Roboternetz, Einsteiger, die das erste Mal mit einem [[Microcontroller]] in Berührung kommen. Trotz zahlreicher Einstiegsbeiträge im Forum wiederholen sich doch bestimmte Anfängerfragen immer wieder. Daher soll dieser Artikel noch einmal aufzeigen, wie die ersten Schritte aussehen, um einen Controller zum Leben zu erwecken. Es werden verschiedene Grundschaltungen aufgezeigt und erläutert, welche Bauteile benötigt werden und welche Funktion sie besitzen.&lt;br /&gt;
Als Controller verwenden wir einen [[AVR]] [[ATMega32]], der derzeit größte [[AVR]]-Controller, welcher noch im bastlerfreundlichen DIP-Gehäuse verfügbar ist. Für kleine bis mittlere Projekte ein sehr empfehlenswerter Controller, zumal er preislich mit ca. 3-4 Euro noch sehr günstig ist und zudem mit seinem 40-Pin-Gehäuse reichlich Anschlussmöglichkeiten besitzt.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Mega1632.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Wie auf dem Bild zu sehen ist, verfügt auch der etwas günstigere ATMega16 über die gleiche Pinbelegung, daher könnten wir in diesem Tutorial auch diesen Typ verwenden. Der ATMega32 hat aber doppelt soviel Speicherplatz für Programmdaten (Flash), daher hat man für eine geringe Preisdifferenz doch mehr Möglichkeiten.&lt;br /&gt;
Wer noch 1-2 Euro sparen will, dem sei der [[ATMega8]] oder [[ATMega168]] empfohlen, diese Typen sind sehr ähnlich, so dass das Tutorial weitgehend auch auf diese Typen bezogen werden kann. Allerdings haben diese Typen deutlich weniger Anschlussmöglichkeiten (28 Pin DIP Gehäuse). &lt;br /&gt;
&lt;br /&gt;
Die Frage, ob man mit einem fertigen Controllerboard, einer Experimentierplatine oder einem Steckbrett beginnen sollte, wurde ja in dem RN-Wissen Wiki Beitrag &amp;quot;[[Mit welchem Controllerboard fang ich an]]&amp;quot; angesprochen. In den meisten Fällen favorisiert der Autor dieses Artikels ein fertiges Controllerboard. Warum das so ist, dazu am Ende noch ein paar Anmerkungen. Dennoch soll diese Einführung schrittweise anhand eines Steckbrettes erläutert werden.&lt;br /&gt;
&lt;br /&gt;
==Start mit handelsüblichem Steckbrett==&lt;br /&gt;
Ein Steckbrett hat den Vorteil, dass man theoretisch ohne Löten alle Bauteile relativ zügig zusammenstecken kann. Bestimmte Steckkontakte innerhalb einer Reihe sind im Steckbrett miteinander verbunden, so dass man nachher pro Bauteilbeinchen noch einige Steckkontakte zum Verdrahten mit Schaltdraht oder speziell konfektionierter Litze verwenden kann.&lt;br /&gt;
&lt;br /&gt;
'''Die Vorteile eines Steckbretts:'''&lt;br /&gt;
&lt;br /&gt;
*Bauteile können ohne Löten eingesetzt und verdrahtet werden&lt;br /&gt;
*recht zügiger Schaltungsaufbau&lt;br /&gt;
*eine Schaltung kann leicht geändert oder korrigiert werden, defekte Teile sind leicht tauschbar&lt;br /&gt;
*ein Steckbrett kann auch für ganz andere Schaltungen verwendet werden&lt;br /&gt;
'''Die Nachteile eines Steckbretts gegenüber gedruckten Schaltungen und Experimentierplatinen sind:'''&lt;br /&gt;
&lt;br /&gt;
*nicht alle Bauteile passen, so dass wir doch noch etwas löten müssen&lt;br /&gt;
*nur geringer Schaltungsumfang möglich, da es schnell unübersichtlich wird&lt;br /&gt;
*sehr störanfällig wegen grosser Kabellängen, dadurch oft Funktionsstörungen&lt;br /&gt;
*Bauteile müssen zum Teil verbogen werden, damit sie passen&lt;br /&gt;
&lt;br /&gt;
Man beginnt, indem man den Controller AVR [[ATMega32]] auf das Board aufsetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrettmega32.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Die Grundschaltung==&lt;br /&gt;
Damit ein Controller erst mal zum Laufen kommt, benötigt man zumindest einen 10-k-Widerstand, einen 100-nF-Kondensator und eine 5V-Spannungsquelle. Das Ganze muss entsprechend dem unteren Schaltplan verschaltet werden, man spricht von einer sogenannten Grundschaltung. In dem Schaltplan wurde der Controller im Übrigen pinkompatibel als Schaltzeichen verwendet, die Pinreihenfolge ist also im Schaltplan identisch mit der echten Bauteilpin-Reihenfolge. Diese Darstellung erleichtert den Nachbau der Schaltung auf einem Steckbrett aber auch einer Experimentierplatine ungemein. Gewöhnlich verwendet man in Schaltplänen eine etwas andere Darstellung, bei der die Pins nach Funktionsgruppen geordnet sind. Bei solchen Schaltplänen muss man sich dann anhand der Pin-Nummern orientieren, man wird dies am Ende des Artikels noch bei dem IC MAX232 sehen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mega32.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn man schon einige Grundschaltungen in anderen Tutorials gesehen hat, dann wird man bemerken, dass unsere doch noch etwas einfacher ist und weniger Bauteile benötigt.  Hier wird beispielsweise kein Quarz verwendet, da der ATMega32 auch intern einen Takt generieren kann. Wer mit dem ADC genau messen will, sollte statt der Beschaltung im Bild, zwischen Vcc und AVcc eine Spule von 10uH und einen Kondensator von 100nF zwischen AVcc und GND schalten. Will man AVcc als Referenzspannung verwenden, muss noch ein 100nF Kondensator von ARef nach GND.&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht die obere Schaltung wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um den Controller in Betrieb zu nehmen, benötigt man bei dieser Schaltung ein Netzteil, das eine stabilisierte Spannung von 4 bis 5V liefert. Wir gehen erst einmal davon aus, dass man über dieses verfügt. &lt;br /&gt;
Erwähnenswert ist noch, dass der Kondensator als [[Abblockkondensator]] zur Unterdrückung von Störungen dient. Er muss so nah wie möglich an die Spannungszuführung am Controller selbst gesetzt werden. Ohne Kondensator enstehen erhebliche Störungen in der Versorgungsspannung, das Bild verdeutlicht es:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Abblockkondensator OhneC amAVR.jpg|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Der Widerstand in der Grundschaltung dient dazu, die Reset-Leitung konstant auf definiertem High-Pegel zu halten. Verbindet man diesen RESET-Pin später kurz mit GND (Masse), dann wird das Programm im Controller neu gestartet.&lt;br /&gt;
&lt;br /&gt;
==Woran merkt man, dass der Controller funktioniert?==&lt;br /&gt;
Gute Frage! Man merkt es garnicht. Genau genommen funktioniert ja auch trotz korrekter Schaltung noch immer nichts, denn es muss zuerst ein Programm in den Controller geladen werden, damit er überhaupt weiß, was zu tun ist. Ohne Programm ist der Controller quasi tot.&lt;br /&gt;
&lt;br /&gt;
==Wie bekommt man das Programm in den Controller?==&lt;br /&gt;
Der Controller verfügt über eine sogenannte [[ISP]]-Schnittstelle. Das bedeutet, über bestimmte Pins ([[SPI]]) kann der Controller mit einer geeigneten PC-Software (zum Beispiel Bascom) programmiert werden. Zum Anschluss an den PC benötigt man jedoch einen sogenannten ISP-Dongle, auch Programmieradapter genannt. Hier gibt es verschiedene Lösungen: Adapter, die über die serielle oder parallele Schnittstelle arbeiten, und zukunftsweisend auch welche, die das Programm über USB-Schnittstelle auf den Mikrocontroller übertragen. Es gibt sowohl Originale von Atmel als auch kompatible Lösungen. Der am meisten verwendete ISP-Dongle wird am Druckerport betrieben. Diese gibt es inzwischen recht preiswert, sodass sich das Selbstbauen eigentlich nicht lohnt. Da man auch gern auf ein paar Fehlerquellen verzichten sollte, würde ich eine Fertiglösung empfehlen. Wer ihn selbst bauen möchte, findet ([[AVR-ISP_Programmierkabel|hier]] eine ISP-Dongle-Bauanleitung und sogar eine fertige Platine dafür  ([[AVR-ISP_Programmierkabel]]).&lt;br /&gt;
&lt;br /&gt;
Sowas sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Avrtutorial_ispkabel.jpeg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Schaltplan eines solchen Programmierkabels:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:ispschaltplan.gif|center|thumb|400px|Schaltplan des ISP-Dongels nach unserem Wiki-Bauplan, mit SUB-D Buchse. Bitte beachten, dass das IC1 hier im Plan als verschiedene Blöcke (IC1A/IC1B) dargestellt wird. Dies dient nur zur Übersicht, es handelt sich nur um ein IC, einfach auf die Pinnummern achten. Zum vergrößern anklicken.]]&lt;br /&gt;
&lt;br /&gt;
Ein noch einfacheres Programmierkabel ist auf der Seite http://thomaspfeifer.net/ beschrieben.&lt;br /&gt;
Dort findet man unter &amp;quot;AVR-Projekte&amp;quot; den Artikel &amp;quot;Ein einfaches Programmierkabel für Atmel-AVR Mikrocontroller&amp;quot;.&lt;br /&gt;
Will man dieses Kabel verwenden, sollte man in BASCOM unter &amp;quot;Options/Programmer&amp;quot; den Programmertyp &amp;quot;Samples Electronic Programmer&amp;quot; wählen, sonst funktioniert das Autodetect, das die eingestzte Version des AVR (Mikrocontroller) erkennt nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Problem ist nun, wie schließe ich einen handelsüblichen ISP-Programmieradapter an den Controller auf dem Steckbrett an? Der normale 10-polige Wannenstecker (nach [[RN-Definitionen]]) passt nicht in ein Steckbrett. Das ist wieder so ein typischer Nachteil bei Steckbrettern! In unserem Beispiel haben wir dazu auf einem kleinen Stück Experimentierplatine einen steckbaren Adapter für das Steckboard gelötet.&lt;br /&gt;
Somit kann man die Schaltung um einen üblichen 10-poligen ISP-Programmieranschluss ergänzen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mitisp.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht das gleiche so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitisp.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt endlich ist es soweit, jetzt kann man den Controller über einen ISP-Programmieradapter mit dem PC verbinden. Aber unbedingt darauf achten, dass auch alles korrekt nach Schaltplan gesteckt wurde und dass die Betriebsspannung 5V nicht übersteigt. Ansonsten könnte man sich Dongle oder sogar die PC-Schnittstelle beschädigen.&lt;br /&gt;
Als Entwicklungsumgebung nutzen wir hier im Tutorial [[Bascom]]. [[Bascom]] ist ein sehr beliebter Basic-[[Compiler]], der zahlreiche [[AVR]] Controllertypen programmieren kann. Da auch ein [[Terminalprogramm]] und ein Programmer integriert ist, enthält diese PC-Software alles, was man braucht, das erleichtert den Einstieg zusätzlich. Die Software gibts kostenlos als Demo bis 4K Code, für unsere Beispiele und den Einstieg reicht das allemal, siehe dazu Artikel Bascom.&lt;br /&gt;
&lt;br /&gt;
Wie man ein Programm schreibt, kompiliert und überträgt, wurde schon in diesem Beitrag [[Bascom - Erstes Programm in den AVR Controller übertragen]] ausführlich behandelt, wir ersparen uns deshalb diese Details. Man sollte aber bei Unklarheiten zum Kompilieren und Übertragen diesen Artikel auf jeden Fall lesen.&lt;br /&gt;
&lt;br /&gt;
Als erstes kompilieren und übertragen wir folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step1.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Programm macht eigentlich nichts, außer dass es eine Endlosschleife ausführt. Aber da wir noch überhaupt nix am Controller angeschlossen haben, können wir eh noch nicht sehen, ob ein Programm nun richtig ausgeführt wird oder nicht.&lt;br /&gt;
Allerdings können wir schonmal üben, das Programm mit Bascom zu übertragen. Wenn wir alles richtig aufgebaut haben und Spannung anliegt, dann sollte automatisch der Controller in Bascom erkannt werden. Die Übertragung sollte dann ohne Fehlermeldung erfolgen können. Wenn wir das geschafft haben, geht’s weiter.&lt;br /&gt;
&lt;br /&gt;
==Läuft die Schaltung und das Programm?==&lt;br /&gt;
Damit wir nun endlich sehen, ob sich bei unserer Schaltung auch was tut, schließen wir eine LED über einen 1k-Vorwiderstand an einen Port an. Da wir die Kathode an den Controllerpin und die Anode an Plus legen, leuchtet die LED immer dann, wenn dieser Pin auf Low geschaltet wird.&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial grundschaltung mitled.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's nun so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitled.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit man nun auch wirklich sieht, ob das Programm läuft, schreiben wir ein kleines Basic-Programm, welches eine LED abwechselnd ein– und ausschaltet. Wir kompilieren und übertragen also folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step2.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output       'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  Portc.0 = 1                 'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
  Portc.0 = 0                 'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn die LED nun schnell blinkt, dann funktioniert die aufgebaute Schaltung perfekt. Wir haben gleichzeitig gelernt, wie man einen Ausgangsport, also Controllerpin, ein- und ausschalten kann. Nahezu alle Pins beim ATMega32 können auf diese Weise als Ausgangsport betrieben werden. Somit lassen sich nicht nur viele Leds, sondern unter Zuhilfenahme eines Treibers (z.B. Transistors) auch Relais und andere Aktoren schalten.&lt;br /&gt;
&lt;br /&gt;
Alternativ das gleiche Programm in C (für AVR-GCC):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Testprogramm: Blinken auf Pin PC0&lt;br /&gt;
//&lt;br /&gt;
#ifndef MCU             // Welcher AVR genutzt wird, wird i.A. im Makefile definiert&lt;br /&gt;
#define MCU  atmega32&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef F_CPU           // kann auch im Makefile definiert sein&lt;br /&gt;
#define F_CPU 1000000UL // Takt als LONG definieren, da zu groß für Integer &lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;     // Namen der IO Register&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt; // Funktionen zum warten&lt;br /&gt;
// Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
 DDRC = _BV(0);         // Nur PC0 als output,  _BV(0) = (1&amp;lt;&amp;lt;0) = 1&lt;br /&gt;
 PORTC = 254;           // Pullups auf allen anderen Pins &lt;br /&gt;
    &lt;br /&gt;
 while (1)&lt;br /&gt;
 { &lt;br /&gt;
   PORTC &amp;amp;= 255-_BV(0); //  0 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);      //  100 ms Warten&lt;br /&gt;
   PORTC |= _BV(0);     //  1 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eingangsport fragt Taster ab==&lt;br /&gt;
Nun erweitern wir die Schaltung noch um einen Taster. Nahezu jedes Port kann bei einem ATMega32 auch per Software als Eingangsport konfiguriert werden. Wir schließen z.B. einen Taster an Port-Pin PA7 an. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial grundschaltung mittaster.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Port wird in der Software so konfiguriert, dass es als Eingang arbeitet und intern über einen hohen Widerstand  (Pullup-Widerstand) ständig auf High-Pegel gelegt wird. Wird nun eine Taste gedrückt, so wird der Pegel auf Low gezogen.&lt;br /&gt;
Das Beispielprogramm ist nun so gestaltet, dass bei gedrückter Taste die LED leuchtet und beim Loslassen wieder ausgeht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step3.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output        'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input          'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                    'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  End If&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Grundschaltung mit Quarz==&lt;br /&gt;
Obwohl wir ab der letzten Schaltung schon einiges mit dem Controller anfangen können, so fehlt doch noch etwas Wichtiges. Oft ist es nämlich notwendig, dass ein Controller sehr genaue Frequenzen mißt oder ganz genaue Taktraten ausgeben kann. Leider ist der interne Taktgenerator nicht 100% exakt, was bei manchen Anwendungen störend ist. Zum Beispiel können über die RS232-Schnittstelle Daten nicht immer ganz fehlerfrei übertragen werden, wenn die Taktfrequenz nicht genau stimmt. Daher wird in den meisten Anwendungsfällen ein Quarz zur Takterzeugung genutzt, Sie kennen das sicher aus anderen Grundschaltungen. Also erweitern wir unsere Schaltung gleich noch um einen Quarz mit den zugehörigen 22pF-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mitquarz.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf unserem Steckbrett wird's langsam voller, hier sieht's also inzwischen so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitquarz.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Normalerweise sollte der Quarz genauso wie die beiden 22pF-Kondensatoren, die zum Anschwingen des Quarzes dienen, möglichst nahe am Controller platziert werden. Auf dem Steckbrett ist das manchmal gar nicht so einfach, insbesondere wenn man wie in diesem Fall den Quarz erst später hinzufügt. Wichtig ist nämlich, dass die Leitungen vom Quarz zum Controller möglichst kurz sind, bei gedruckten Schaltungen oft nur 1 bis 2 cm! Auch die einzelnen Bauteilbeinchen, z.B. der Kondensatoren, sollten normalerweise so kurz wie möglich sein.&lt;br /&gt;
Ist dies nicht der Fall, wie auch in unserem Bild, dann fungieren diese Leitungen fast wie eine Funkantenne. Dies führt in der Regel zu starken Hochfrequenzsignalen, die nicht nur unsere Schaltung, sondern auch andere Schaltungen in der Nähe stören könnten. Man merkt dies auch oft daran, dass sich ein Board bei höherer Quarzfrequenz immer seltener fehlerfrei ohne Übertragungsfehler programmieren läßt.&lt;br /&gt;
Grundsätzlich sind daher Schaltungen mit Quarz auf einem Steckbrett nicht sonderlich zu empfehlen, die Betriebssicherheit ist nicht immer gegeben. &lt;br /&gt;
&lt;br /&gt;
Auch wenn nun ein Quarz angeschlossen ist, so wird er noch immer nicht genutzt. Noch immer arbeitet der [[ATMega32]] mit seiner intern voreingestellten 1 Mhz Taktfrequenz. Um dies umzustellen, muss man ein sogenanntes [[Fusebits|Fusebit]] im Controller umprogrammieren. Auch dies wurde schon im Beitrag [[Bascom - Erstes Programm in den AVR_Controller übertragen]] näher beschrieben. Hier sei daher nur nochmals gesagt, dass dies auch sehr bequem in [[Bascom]] erfolgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_bascomfusebitquarz.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald wir das umgestellt haben, müssen wir auch in dem Programm die Anweisung &lt;br /&gt;
&lt;br /&gt;
 $crystal = 1000000 &lt;br /&gt;
&lt;br /&gt;
durch &lt;br /&gt;
&lt;br /&gt;
 $crystal = 16000000 &lt;br /&gt;
&lt;br /&gt;
ersetzen, denn unser Quarz taktet nun mit 16 MHz.&lt;br /&gt;
&lt;br /&gt;
==Spannung stabilisieren==&lt;br /&gt;
Auch wenn unsere Basis-Schaltung für Experimente inzwischen schon ganz nett ist, so ist es doch etwas ungünstig, dass wir stets 5V zur Verfügung haben müssen. Nicht immer steht ein geeignetes Netzteil zur Verfügung, zudem soll ein Controller auch oft mit Batterien versorgt werden. Aus diesem Grund verfügen fast alle Entwicklungsboards wie ([[RN-Control]], STK500 etc.) über einen [[Spannungsregler]].&lt;br /&gt;
[[Bild:78s05.jpg|thumb|Spannungsregler 78S05]] Dieser wandelt eine höhere Eingangsspannung (ca. 7 bis 20 V) immer genau in  5V  um. Sowas erhöht die Betriebssicherheit einer Schaltung nochmals immens. Als [[Spannungsregler]] (IC2) wird oft der 7805 genutzt.&lt;br /&gt;
Die beiden 100nF-Kondensatoren sind wichtig, sie sollen HF-Störungen und Schwingungen vermeiden. Der Elko vor dem Spannungsregler ist vor allem dann wichtig, wenn die Spannung von einem Netzgerät kommt und noch etwas geglättet werden muss. Je höher der Strombedarf der Schaltung, desto größer muss man die Kapazität wählen. Es schadet nicht, wenn man den Elko einige Nummern größer wählt, man ist dann quasi für alle Fälle gerüstet. So sind Werte zwischen 100 uF und 2200 uF durchaus denkbar.&lt;br /&gt;
&lt;br /&gt;
Wir erweitern unsere Schaltung somit wie folgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_spannung.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_spannung.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Daten und Texte zum PC übertragen==&lt;br /&gt;
In vielen Programmen müssen Daten oder Texte vom Controller an den PC oder umgekehrt gesendet werden. Insbesondere bei komplexen Programmen kann man auf diese Weise Variableninhalte ausgeben und somit auch Fehler im Programmcode schneller finden und korrigieren. In der Regel ist das ganz einfach, denn der [[Microcontroller]] [[ATMega32]] verfügt über einen internen [[UART]], also ein Modul, das Daten über die [[RS232]]-Schnittstelle zum PC senden bzw. auch von ihm empfangen kann. Leider arbeitet jedoch die Controllerschnittstelle mit 5V und die PC-Schnittstelle der Norm entsprechend mit +-12V. Daher muss unbedingt ein Schaltkreis dazwischen, welcher die Pegel anpasst. Gewöhnlich nimmt man hier das IC MAX232(CPE), welches inzwischen sehr preiswert erhältlich ist.&lt;br /&gt;
&lt;br /&gt;
Wir müssen also die Schaltung nochmals erweitern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_max232.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das IC Max232 ist im Schaltplan in der üblichen funktionsorientierten Darstellung gezeichnet. '''Zur besseren Übersichtlichkeit wurden die immer benötigten Anschlüsse für VCC (Pin 16) und GND (Pin 15) am MAX232 getrennt oben rechts im Schaltplan dargestellt. Also nicht vergessen !!'''&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_max232.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über eine dreipolige Stiftleiste ([[RN-Definitionen]]) wird nun das Steckboard mit der [[RS232]]-Schnittstelle des PC verbunden. Es ist nun ein Leichtes, mit einem Programm Daten zum PC zu senden. Das nachfolgende Programm gibt Hinweise mit der Anweisung '''PRINT''' aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step5.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 16000000&lt;br /&gt;
$baud = 9600&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output              'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input                'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                          'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                      'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter nicht gedrückt&amp;quot;&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                      'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter gedrückt&amp;quot;&lt;br /&gt;
  End If&lt;br /&gt;
  Wait 1&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Möglichkeiten des Steckbrettes erreicht==&lt;br /&gt;
Inzwischen füllt der Schaltplan fast ein DIN-A4-Blatt und auf dem Steckbrett sieht's auch schon recht wirr aus, dabei haben wir nur die wichtigsten Grundelemente auf dem Steckbrett. Für eine Roboter-Steuerung oder andere Anwendung fehlt doch noch einiges. Zum Beispiel weitere Taster, weitere LEDs, Motortreiber, damit der Controller auch Motoren ansteuern kann und ein [[I2C]]-Bus-Anschluss.&lt;br /&gt;
Dies alles noch auf einem Steckbrett zu realisieren macht wenig Sinn, zumal bereits jetzt schon durch die doch recht langen Leitungen/Verkabelungen erhebliche Störungen auftreten. In der letzten Phase ist es immer öfters zu Übertragungsfehlern beim Programmieren gekommen, oft musste dies 20mal wiederholt werden. Dies zeigt, dass ein Steckbrett bestenfalls für ganz kleine Controller-Experimente herhalten kann. Für größere Dinge sollte man dann doch zu einer Lösung auf einer gedruckten Platine greifen. Spezielle Experimentierboards  bieten mehr Sicherheit und haben neben den Grundelementen, die hier beschrieben wurden, noch eine ganze Menge mehr drauf. Bei [[RN-Control]] zum Beispiel 5 Tasten, 8 Leds, Motortreiber, Lautsprecher, diverse Anschlüsse etc. &lt;br /&gt;
Der Größenunterschied wird im Bild deutlich:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_rncontrol.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auch wenn das Steckbrett also kein Controllerboard ersetzen kann, so hat das kleine Tutorial doch gezeigt, wie eine [[Avr]]-Schaltung aufzubauen ist. Dieses Wissen sollte man auch besitzen, wenn man ein Controllerboard nutzt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Was braucht man, wenn man mit einem Controllerboard den Einstieg startet?==&lt;br /&gt;
[[Bild:avrtutorial_ispkabel.jpg|thumb|ISP-Programmierkabel]]Neben dem eigentlichen Board braucht man, wie schon zuvor angesprochen, ein [[AVR-ISP Programmierkabel]]. Wenn der PC noch einen Parallelport oder RS232 Port on Board hat, kann man ein einfaches Programmierkabel nutzen. Das kann man selbst bauen oder auch fertig mitzubestellen (siehe Bild). &lt;br /&gt;
Wenn man nur USB zur verfügung hat, wird man den Programmer wohl kaufen müssen, denn USB-RS232 oder USB-LPT Adapter funktionieren fast nie mit den einfachen Programmern, die man gut selber bauen kann. Die Kombination aus eine USB-RS232 und einem Intelligenten Seriellen Programmer (z.B. STK500) funktioniert dagegen.&lt;br /&gt;
&lt;br /&gt;
Als zweites braucht man natürlich eine Stromversorgung. Ideal sind Gleichspannungsnetzgeräte, die zwischen 9 und 12V liefern, vorausgesetzt, das Board hat einen Spannungsregler wie in der Regel die RN-Boards. Man kann hier ein normales Steckernetzteil oder ein komfortables Labornetzteil nehmen. Um etwas Reserve zu haben, wäre es gut, wenn das Netzteil mindestens 200 mA (mit Motoren besser 1 A) liefern kann. Der Controller selber baucht nur etwa 1 mA je MHz Taktfrequenz.&lt;br /&gt;
Alternativ kann man auch Akkupacks oder Batterien nutzen, allerdings mindestens 7,2V sollten die schon liefern können, sicherer sind 8,4-, 9,6- oder 12V-Akkus.&lt;br /&gt;
Das wäre eigentlich schon das Wichtigste, um ein Board in Betrieb zu nehmen und Experimente zu machen. &lt;br /&gt;
&lt;br /&gt;
Allerdings, ein RS232-Kabel ist ebenfalls noch sehr empfehlenswert. Dieses erlaubt die Ausgabe von Texten und Variablen auf den PC, wir haben es ja oben im Steckbrettbeispiel schon gesehen. Dazu wird auf dem PC ein [[Terminalprogramm]] gestartet und über die [[RS232]] Schnittstelle mit dem PC verbunden. Bei manchen Boards ist sowieso ein RS232 Kabel unerläßlich, wie z.B. RN-Motor, RN-Speak etc. Nützlich ist es aber überall. Man kann ein solches Kabel selbst bauen oder gleich beim Kauf eines Boardes mitbestellen.&lt;br /&gt;
&lt;br /&gt;
Also nochmal die Zusammenfassung für den Einstieg:&lt;br /&gt;
&lt;br /&gt;
* Controllerboard&lt;br /&gt;
* [[AVR-ISP Programmierkabel]] mit 10-poligem Wannenstecker&lt;br /&gt;
* RS-232-Kabel (mit 3-poligem Adapter, wenn Board [[RN-Definitionen]] erfüllt)&lt;br /&gt;
* Netzgerät oder Akku (ideal 9 bis 12V, notfalls auch 7,2 bis 20V)&lt;br /&gt;
* [[Bascom]]-Compiler-Vollversion ist nur nötig, wenn man gleich größere Sachen anstrebt, ansonsten reicht das Demo, genauso wie ein [[Avr-gcc]]-Compiler. Bei RN-Boards sind diese Programme beim Board- oder Platinenkauf sowieso dabei, ansonsten kann man diese im Internet downloaden.&lt;br /&gt;
* Ein gutes Buch ist immer gut, siehe [[Buchvorstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
*[[Benutzer:Frank|Frank]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quellen===&lt;br /&gt;
* [[Abblockkondensator]] Artikel von Uwegw&lt;br /&gt;
* RN-Board Dokumentationen aus [[:Kategorie:Projekte]]&lt;br /&gt;
* diverse Datenblätter&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[AVR-ISP Programmierkabel]]&lt;br /&gt;
*[[Mit welchem Controllerboard fang ich an]]&lt;br /&gt;
*[[Abblockkondensator]]&lt;br /&gt;
*[[Bascom]]&lt;br /&gt;
*[[Bascom - Erstes Programm in den AVR_Controller übertragen]]&lt;br /&gt;
*[[Avr]]&lt;br /&gt;
*[[Atmel Controller Mega16 und Mega32]]&lt;br /&gt;
*[[Spannungsregler]]&lt;br /&gt;
*[[Hallo_Welt_für_AVR_(LED_blinken)#Quellcode]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.youtube.com/watch?v=cGtC7e44abA&amp;amp;feature=plcp&amp;amp;context=C37e7441UDOEgsToPDskJmsEAf0l4u9UVXLqURe7ID Neu - Video zu AVR Experimentierboard RN-AVR Universal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:Quellcode_Bascom]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:800px-Avrtutorial_grundschaltung_mittaster.gif&amp;diff=21026</id>
		<title>Datei:800px-Avrtutorial grundschaltung mittaster.gif</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:800px-Avrtutorial_grundschaltung_mittaster.gif&amp;diff=21026"/>
				<updated>2012-09-16T11:00:07Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: Grundschaltung mit ISP und Taster&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grundschaltung mit ISP und Taster&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21025</id>
		<title>AVR-Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21025"/>
				<updated>2012-09-16T10:57:22Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Läuft die Schaltung und das Programm? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:avr8.jpg|thumb|300px|Einen Controller zum Leben zu erwecken ist nicht schwer, manchmal reichen ein paar Teile! Beispiel mit Mega8]]&lt;br /&gt;
==Wir starten mit einem ATMega32== &lt;br /&gt;
Immer wieder gibt es in Foren, wie dem Roboternetz, Einsteiger, die das erste Mal mit einem [[Microcontroller]] in Berührung kommen. Trotz zahlreicher Einstiegsbeiträge im Forum wiederholen sich doch bestimmte Anfängerfragen immer wieder. Daher soll dieser Artikel noch einmal aufzeigen, wie die ersten Schritte aussehen, um einen Controller zum Leben zu erwecken. Es werden verschiedene Grundschaltungen aufgezeigt und erläutert, welche Bauteile benötigt werden und welche Funktion sie besitzen.&lt;br /&gt;
Als Controller verwenden wir einen [[AVR]] [[ATMega32]], der derzeit größte [[AVR]]-Controller, welcher noch im bastlerfreundlichen DIP-Gehäuse verfügbar ist. Für kleine bis mittlere Projekte ein sehr empfehlenswerter Controller, zumal er preislich mit ca. 3-4 Euro noch sehr günstig ist und zudem mit seinem 40-Pin-Gehäuse reichlich Anschlussmöglichkeiten besitzt.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Mega1632.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Wie auf dem Bild zu sehen ist, verfügt auch der etwas günstigere ATMega16 über die gleiche Pinbelegung, daher könnten wir in diesem Tutorial auch diesen Typ verwenden. Der ATMega32 hat aber doppelt soviel Speicherplatz für Programmdaten (Flash), daher hat man für eine geringe Preisdifferenz doch mehr Möglichkeiten.&lt;br /&gt;
Wer noch 1-2 Euro sparen will, dem sei der [[ATMega8]] oder [[ATMega168]] empfohlen, diese Typen sind sehr ähnlich, so dass das Tutorial weitgehend auch auf diese Typen bezogen werden kann. Allerdings haben diese Typen deutlich weniger Anschlussmöglichkeiten (28 Pin DIP Gehäuse). &lt;br /&gt;
&lt;br /&gt;
Die Frage, ob man mit einem fertigen Controllerboard, einer Experimentierplatine oder einem Steckbrett beginnen sollte, wurde ja in dem RN-Wissen Wiki Beitrag &amp;quot;[[Mit welchem Controllerboard fang ich an]]&amp;quot; angesprochen. In den meisten Fällen favorisiert der Autor dieses Artikels ein fertiges Controllerboard. Warum das so ist, dazu am Ende noch ein paar Anmerkungen. Dennoch soll diese Einführung schrittweise anhand eines Steckbrettes erläutert werden.&lt;br /&gt;
&lt;br /&gt;
==Start mit handelsüblichem Steckbrett==&lt;br /&gt;
Ein Steckbrett hat den Vorteil, dass man theoretisch ohne Löten alle Bauteile relativ zügig zusammenstecken kann. Bestimmte Steckkontakte innerhalb einer Reihe sind im Steckbrett miteinander verbunden, so dass man nachher pro Bauteilbeinchen noch einige Steckkontakte zum Verdrahten mit Schaltdraht oder speziell konfektionierter Litze verwenden kann.&lt;br /&gt;
&lt;br /&gt;
'''Die Vorteile eines Steckbretts:'''&lt;br /&gt;
&lt;br /&gt;
*Bauteile können ohne Löten eingesetzt und verdrahtet werden&lt;br /&gt;
*recht zügiger Schaltungsaufbau&lt;br /&gt;
*eine Schaltung kann leicht geändert oder korrigiert werden, defekte Teile sind leicht tauschbar&lt;br /&gt;
*ein Steckbrett kann auch für ganz andere Schaltungen verwendet werden&lt;br /&gt;
'''Die Nachteile eines Steckbretts gegenüber gedruckten Schaltungen und Experimentierplatinen sind:'''&lt;br /&gt;
&lt;br /&gt;
*nicht alle Bauteile passen, so dass wir doch noch etwas löten müssen&lt;br /&gt;
*nur geringer Schaltungsumfang möglich, da es schnell unübersichtlich wird&lt;br /&gt;
*sehr störanfällig wegen grosser Kabellängen, dadurch oft Funktionsstörungen&lt;br /&gt;
*Bauteile müssen zum Teil verbogen werden, damit sie passen&lt;br /&gt;
&lt;br /&gt;
Man beginnt, indem man den Controller AVR [[ATMega32]] auf das Board aufsetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrettmega32.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Die Grundschaltung==&lt;br /&gt;
Damit ein Controller erst mal zum Laufen kommt, benötigt man zumindest einen 10-k-Widerstand, einen 100-nF-Kondensator und eine 5V-Spannungsquelle. Das Ganze muss entsprechend dem unteren Schaltplan verschaltet werden, man spricht von einer sogenannten Grundschaltung. In dem Schaltplan wurde der Controller im Übrigen pinkompatibel als Schaltzeichen verwendet, die Pinreihenfolge ist also im Schaltplan identisch mit der echten Bauteilpin-Reihenfolge. Diese Darstellung erleichtert den Nachbau der Schaltung auf einem Steckbrett aber auch einer Experimentierplatine ungemein. Gewöhnlich verwendet man in Schaltplänen eine etwas andere Darstellung, bei der die Pins nach Funktionsgruppen geordnet sind. Bei solchen Schaltplänen muss man sich dann anhand der Pin-Nummern orientieren, man wird dies am Ende des Artikels noch bei dem IC MAX232 sehen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mega32.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn man schon einige Grundschaltungen in anderen Tutorials gesehen hat, dann wird man bemerken, dass unsere doch noch etwas einfacher ist und weniger Bauteile benötigt.  Hier wird beispielsweise kein Quarz verwendet, da der ATMega32 auch intern einen Takt generieren kann. Wer mit dem ADC genau messen will, sollte statt der Beschaltung im Bild, zwischen Vcc und AVcc eine Spule von 10uH und einen Kondensator von 100nF zwischen AVcc und GND schalten. Will man AVcc als Referenzspannung verwenden, muss noch ein 100nF Kondensator von ARef nach GND.&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht die obere Schaltung wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um den Controller in Betrieb zu nehmen, benötigt man bei dieser Schaltung ein Netzteil, das eine stabilisierte Spannung von 4 bis 5V liefert. Wir gehen erst einmal davon aus, dass man über dieses verfügt. &lt;br /&gt;
Erwähnenswert ist noch, dass der Kondensator als [[Abblockkondensator]] zur Unterdrückung von Störungen dient. Er muss so nah wie möglich an die Spannungszuführung am Controller selbst gesetzt werden. Ohne Kondensator enstehen erhebliche Störungen in der Versorgungsspannung, das Bild verdeutlicht es:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Abblockkondensator OhneC amAVR.jpg|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Der Widerstand in der Grundschaltung dient dazu, die Reset-Leitung konstant auf definiertem High-Pegel zu halten. Verbindet man diesen RESET-Pin später kurz mit GND (Masse), dann wird das Programm im Controller neu gestartet.&lt;br /&gt;
&lt;br /&gt;
==Woran merkt man, dass der Controller funktioniert?==&lt;br /&gt;
Gute Frage! Man merkt es garnicht. Genau genommen funktioniert ja auch trotz korrekter Schaltung noch immer nichts, denn es muss zuerst ein Programm in den Controller geladen werden, damit er überhaupt weiß, was zu tun ist. Ohne Programm ist der Controller quasi tot.&lt;br /&gt;
&lt;br /&gt;
==Wie bekommt man das Programm in den Controller?==&lt;br /&gt;
Der Controller verfügt über eine sogenannte [[ISP]]-Schnittstelle. Das bedeutet, über bestimmte Pins ([[SPI]]) kann der Controller mit einer geeigneten PC-Software (zum Beispiel Bascom) programmiert werden. Zum Anschluss an den PC benötigt man jedoch einen sogenannten ISP-Dongle, auch Programmieradapter genannt. Hier gibt es verschiedene Lösungen: Adapter, die über die serielle oder parallele Schnittstelle arbeiten, und zukunftsweisend auch welche, die das Programm über USB-Schnittstelle auf den Mikrocontroller übertragen. Es gibt sowohl Originale von Atmel als auch kompatible Lösungen. Der am meisten verwendete ISP-Dongle wird am Druckerport betrieben. Diese gibt es inzwischen recht preiswert, sodass sich das Selbstbauen eigentlich nicht lohnt. Da man auch gern auf ein paar Fehlerquellen verzichten sollte, würde ich eine Fertiglösung empfehlen. Wer ihn selbst bauen möchte, findet ([[AVR-ISP_Programmierkabel|hier]] eine ISP-Dongle-Bauanleitung und sogar eine fertige Platine dafür  ([[AVR-ISP_Programmierkabel]]).&lt;br /&gt;
&lt;br /&gt;
Sowas sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Avrtutorial_ispkabel.jpeg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Schaltplan eines solchen Programmierkabels:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:ispschaltplan.gif|center|thumb|400px|Schaltplan des ISP-Dongels nach unserem Wiki-Bauplan, mit SUB-D Buchse. Bitte beachten, dass das IC1 hier im Plan als verschiedene Blöcke (IC1A/IC1B) dargestellt wird. Dies dient nur zur Übersicht, es handelt sich nur um ein IC, einfach auf die Pinnummern achten. Zum vergrößern anklicken.]]&lt;br /&gt;
&lt;br /&gt;
Ein noch einfacheres Programmierkabel ist auf der Seite http://thomaspfeifer.net/ beschrieben.&lt;br /&gt;
Dort findet man unter &amp;quot;AVR-Projekte&amp;quot; den Artikel &amp;quot;Ein einfaches Programmierkabel für Atmel-AVR Mikrocontroller&amp;quot;.&lt;br /&gt;
Will man dieses Kabel verwenden, sollte man in BASCOM unter &amp;quot;Options/Programmer&amp;quot; den Programmertyp &amp;quot;Samples Electronic Programmer&amp;quot; wählen, sonst funktioniert das Autodetect, das die eingestzte Version des AVR (Mikrocontroller) erkennt nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Problem ist nun, wie schließe ich einen handelsüblichen ISP-Programmieradapter an den Controller auf dem Steckbrett an? Der normale 10-polige Wannenstecker (nach [[RN-Definitionen]]) passt nicht in ein Steckbrett. Das ist wieder so ein typischer Nachteil bei Steckbrettern! In unserem Beispiel haben wir dazu auf einem kleinen Stück Experimentierplatine einen steckbaren Adapter für das Steckboard gelötet.&lt;br /&gt;
Somit kann man die Schaltung um einen üblichen 10-poligen ISP-Programmieranschluss ergänzen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mitisp.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht das gleiche so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitisp.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt endlich ist es soweit, jetzt kann man den Controller über einen ISP-Programmieradapter mit dem PC verbinden. Aber unbedingt darauf achten, dass auch alles korrekt nach Schaltplan gesteckt wurde und dass die Betriebsspannung 5V nicht übersteigt. Ansonsten könnte man sich Dongle oder sogar die PC-Schnittstelle beschädigen.&lt;br /&gt;
Als Entwicklungsumgebung nutzen wir hier im Tutorial [[Bascom]]. [[Bascom]] ist ein sehr beliebter Basic-[[Compiler]], der zahlreiche [[AVR]] Controllertypen programmieren kann. Da auch ein [[Terminalprogramm]] und ein Programmer integriert ist, enthält diese PC-Software alles, was man braucht, das erleichtert den Einstieg zusätzlich. Die Software gibts kostenlos als Demo bis 4K Code, für unsere Beispiele und den Einstieg reicht das allemal, siehe dazu Artikel Bascom.&lt;br /&gt;
&lt;br /&gt;
Wie man ein Programm schreibt, kompiliert und überträgt, wurde schon in diesem Beitrag [[Bascom - Erstes Programm in den AVR Controller übertragen]] ausführlich behandelt, wir ersparen uns deshalb diese Details. Man sollte aber bei Unklarheiten zum Kompilieren und Übertragen diesen Artikel auf jeden Fall lesen.&lt;br /&gt;
&lt;br /&gt;
Als erstes kompilieren und übertragen wir folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step1.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Programm macht eigentlich nichts, außer dass es eine Endlosschleife ausführt. Aber da wir noch überhaupt nix am Controller angeschlossen haben, können wir eh noch nicht sehen, ob ein Programm nun richtig ausgeführt wird oder nicht.&lt;br /&gt;
Allerdings können wir schonmal üben, das Programm mit Bascom zu übertragen. Wenn wir alles richtig aufgebaut haben und Spannung anliegt, dann sollte automatisch der Controller in Bascom erkannt werden. Die Übertragung sollte dann ohne Fehlermeldung erfolgen können. Wenn wir das geschafft haben, geht’s weiter.&lt;br /&gt;
&lt;br /&gt;
==Läuft die Schaltung und das Programm?==&lt;br /&gt;
Damit wir nun endlich sehen, ob sich bei unserer Schaltung auch was tut, schließen wir eine LED über einen 1k-Vorwiderstand an einen Port an. Da wir die Kathode an den Controllerpin und die Anode an Plus legen, leuchtet die LED immer dann, wenn dieser Pin auf Low geschaltet wird.&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial grundschaltung mitled.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's nun so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitled.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit man nun auch wirklich sieht, ob das Programm läuft, schreiben wir ein kleines Basic-Programm, welches eine LED abwechselnd ein– und ausschaltet. Wir kompilieren und übertragen also folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step2.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output       'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  Portc.0 = 1                 'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
  Portc.0 = 0                 'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn die LED nun schnell blinkt, dann funktioniert die aufgebaute Schaltung perfekt. Wir haben gleichzeitig gelernt, wie man einen Ausgangsport, also Controllerpin, ein- und ausschalten kann. Nahezu alle Pins beim ATMega32 können auf diese Weise als Ausgangsport betrieben werden. Somit lassen sich nicht nur viele Leds, sondern unter Zuhilfenahme eines Treibers (z.B. Transistors) auch Relais und andere Aktoren schalten.&lt;br /&gt;
&lt;br /&gt;
Alternativ das gleiche Programm in C (für AVR-GCC):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Testprogramm: Blinken auf Pin PC0&lt;br /&gt;
//&lt;br /&gt;
#ifndef MCU             // Welcher AVR genutzt wird, wird i.A. im Makefile definiert&lt;br /&gt;
#define MCU  atmega32&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef F_CPU           // kann auch im Makefile definiert sein&lt;br /&gt;
#define F_CPU 1000000UL // Takt als LONG definieren, da zu groß für Integer &lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;     // Namen der IO Register&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt; // Funktionen zum warten&lt;br /&gt;
// Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
 DDRC = _BV(0);         // Nur PC0 als output,  _BV(0) = (1&amp;lt;&amp;lt;0) = 1&lt;br /&gt;
 PORTC = 254;           // Pullups auf allen anderen Pins &lt;br /&gt;
    &lt;br /&gt;
 while (1)&lt;br /&gt;
 { &lt;br /&gt;
   PORTC &amp;amp;= 255-_BV(0); //  0 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);      //  100 ms Warten&lt;br /&gt;
   PORTC |= _BV(0);     //  1 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eingangsport fragt Taster ab==&lt;br /&gt;
Nun erweitern wir die Schaltung noch um einen Taster. Nahezu jedes Port kann bei einem ATMega32 auch per Software als Eingangsport konfiguriert werden. Wir schließen z.B. einen Taster an Port-Pin PA7 an. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mittaster.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Port wird in der Software so konfiguriert, dass es als Eingang arbeitet und intern über einen hohen Widerstand  (Pullup-Widerstand) ständig auf High-Pegel gelegt wird. Wird nun eine Taste gedrückt, so wird der Pegel auf Low gezogen.&lt;br /&gt;
Das Beispielprogramm ist nun so gestaltet, dass bei gedrückter Taste die LED leuchtet und beim Loslassen wieder ausgeht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step3.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output        'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input          'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                    'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  End If&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Grundschaltung mit Quarz==&lt;br /&gt;
Obwohl wir ab der letzten Schaltung schon einiges mit dem Controller anfangen können, so fehlt doch noch etwas Wichtiges. Oft ist es nämlich notwendig, dass ein Controller sehr genaue Frequenzen mißt oder ganz genaue Taktraten ausgeben kann. Leider ist der interne Taktgenerator nicht 100% exakt, was bei manchen Anwendungen störend ist. Zum Beispiel können über die RS232-Schnittstelle Daten nicht immer ganz fehlerfrei übertragen werden, wenn die Taktfrequenz nicht genau stimmt. Daher wird in den meisten Anwendungsfällen ein Quarz zur Takterzeugung genutzt, Sie kennen das sicher aus anderen Grundschaltungen. Also erweitern wir unsere Schaltung gleich noch um einen Quarz mit den zugehörigen 22pF-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mitquarz.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf unserem Steckbrett wird's langsam voller, hier sieht's also inzwischen so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitquarz.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Normalerweise sollte der Quarz genauso wie die beiden 22pF-Kondensatoren, die zum Anschwingen des Quarzes dienen, möglichst nahe am Controller platziert werden. Auf dem Steckbrett ist das manchmal gar nicht so einfach, insbesondere wenn man wie in diesem Fall den Quarz erst später hinzufügt. Wichtig ist nämlich, dass die Leitungen vom Quarz zum Controller möglichst kurz sind, bei gedruckten Schaltungen oft nur 1 bis 2 cm! Auch die einzelnen Bauteilbeinchen, z.B. der Kondensatoren, sollten normalerweise so kurz wie möglich sein.&lt;br /&gt;
Ist dies nicht der Fall, wie auch in unserem Bild, dann fungieren diese Leitungen fast wie eine Funkantenne. Dies führt in der Regel zu starken Hochfrequenzsignalen, die nicht nur unsere Schaltung, sondern auch andere Schaltungen in der Nähe stören könnten. Man merkt dies auch oft daran, dass sich ein Board bei höherer Quarzfrequenz immer seltener fehlerfrei ohne Übertragungsfehler programmieren läßt.&lt;br /&gt;
Grundsätzlich sind daher Schaltungen mit Quarz auf einem Steckbrett nicht sonderlich zu empfehlen, die Betriebssicherheit ist nicht immer gegeben. &lt;br /&gt;
&lt;br /&gt;
Auch wenn nun ein Quarz angeschlossen ist, so wird er noch immer nicht genutzt. Noch immer arbeitet der [[ATMega32]] mit seiner intern voreingestellten 1 Mhz Taktfrequenz. Um dies umzustellen, muss man ein sogenanntes [[Fusebits|Fusebit]] im Controller umprogrammieren. Auch dies wurde schon im Beitrag [[Bascom - Erstes Programm in den AVR_Controller übertragen]] näher beschrieben. Hier sei daher nur nochmals gesagt, dass dies auch sehr bequem in [[Bascom]] erfolgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_bascomfusebitquarz.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald wir das umgestellt haben, müssen wir auch in dem Programm die Anweisung &lt;br /&gt;
&lt;br /&gt;
 $crystal = 1000000 &lt;br /&gt;
&lt;br /&gt;
durch &lt;br /&gt;
&lt;br /&gt;
 $crystal = 16000000 &lt;br /&gt;
&lt;br /&gt;
ersetzen, denn unser Quarz taktet nun mit 16 MHz.&lt;br /&gt;
&lt;br /&gt;
==Spannung stabilisieren==&lt;br /&gt;
Auch wenn unsere Basis-Schaltung für Experimente inzwischen schon ganz nett ist, so ist es doch etwas ungünstig, dass wir stets 5V zur Verfügung haben müssen. Nicht immer steht ein geeignetes Netzteil zur Verfügung, zudem soll ein Controller auch oft mit Batterien versorgt werden. Aus diesem Grund verfügen fast alle Entwicklungsboards wie ([[RN-Control]], STK500 etc.) über einen [[Spannungsregler]].&lt;br /&gt;
[[Bild:78s05.jpg|thumb|Spannungsregler 78S05]] Dieser wandelt eine höhere Eingangsspannung (ca. 7 bis 20 V) immer genau in  5V  um. Sowas erhöht die Betriebssicherheit einer Schaltung nochmals immens. Als [[Spannungsregler]] (IC2) wird oft der 7805 genutzt.&lt;br /&gt;
Die beiden 100nF-Kondensatoren sind wichtig, sie sollen HF-Störungen und Schwingungen vermeiden. Der Elko vor dem Spannungsregler ist vor allem dann wichtig, wenn die Spannung von einem Netzgerät kommt und noch etwas geglättet werden muss. Je höher der Strombedarf der Schaltung, desto größer muss man die Kapazität wählen. Es schadet nicht, wenn man den Elko einige Nummern größer wählt, man ist dann quasi für alle Fälle gerüstet. So sind Werte zwischen 100 uF und 2200 uF durchaus denkbar.&lt;br /&gt;
&lt;br /&gt;
Wir erweitern unsere Schaltung somit wie folgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_spannung.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_spannung.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Daten und Texte zum PC übertragen==&lt;br /&gt;
In vielen Programmen müssen Daten oder Texte vom Controller an den PC oder umgekehrt gesendet werden. Insbesondere bei komplexen Programmen kann man auf diese Weise Variableninhalte ausgeben und somit auch Fehler im Programmcode schneller finden und korrigieren. In der Regel ist das ganz einfach, denn der [[Microcontroller]] [[ATMega32]] verfügt über einen internen [[UART]], also ein Modul, das Daten über die [[RS232]]-Schnittstelle zum PC senden bzw. auch von ihm empfangen kann. Leider arbeitet jedoch die Controllerschnittstelle mit 5V und die PC-Schnittstelle der Norm entsprechend mit +-12V. Daher muss unbedingt ein Schaltkreis dazwischen, welcher die Pegel anpasst. Gewöhnlich nimmt man hier das IC MAX232(CPE), welches inzwischen sehr preiswert erhältlich ist.&lt;br /&gt;
&lt;br /&gt;
Wir müssen also die Schaltung nochmals erweitern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_max232.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das IC Max232 ist im Schaltplan in der üblichen funktionsorientierten Darstellung gezeichnet. '''Zur besseren Übersichtlichkeit wurden die immer benötigten Anschlüsse für VCC (Pin 16) und GND (Pin 15) am MAX232 getrennt oben rechts im Schaltplan dargestellt. Also nicht vergessen !!'''&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_max232.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über eine dreipolige Stiftleiste ([[RN-Definitionen]]) wird nun das Steckboard mit der [[RS232]]-Schnittstelle des PC verbunden. Es ist nun ein Leichtes, mit einem Programm Daten zum PC zu senden. Das nachfolgende Programm gibt Hinweise mit der Anweisung '''PRINT''' aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step5.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 16000000&lt;br /&gt;
$baud = 9600&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output              'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input                'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                          'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                      'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter nicht gedrückt&amp;quot;&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                      'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter gedrückt&amp;quot;&lt;br /&gt;
  End If&lt;br /&gt;
  Wait 1&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Möglichkeiten des Steckbrettes erreicht==&lt;br /&gt;
Inzwischen füllt der Schaltplan fast ein DIN-A4-Blatt und auf dem Steckbrett sieht's auch schon recht wirr aus, dabei haben wir nur die wichtigsten Grundelemente auf dem Steckbrett. Für eine Roboter-Steuerung oder andere Anwendung fehlt doch noch einiges. Zum Beispiel weitere Taster, weitere LEDs, Motortreiber, damit der Controller auch Motoren ansteuern kann und ein [[I2C]]-Bus-Anschluss.&lt;br /&gt;
Dies alles noch auf einem Steckbrett zu realisieren macht wenig Sinn, zumal bereits jetzt schon durch die doch recht langen Leitungen/Verkabelungen erhebliche Störungen auftreten. In der letzten Phase ist es immer öfters zu Übertragungsfehlern beim Programmieren gekommen, oft musste dies 20mal wiederholt werden. Dies zeigt, dass ein Steckbrett bestenfalls für ganz kleine Controller-Experimente herhalten kann. Für größere Dinge sollte man dann doch zu einer Lösung auf einer gedruckten Platine greifen. Spezielle Experimentierboards  bieten mehr Sicherheit und haben neben den Grundelementen, die hier beschrieben wurden, noch eine ganze Menge mehr drauf. Bei [[RN-Control]] zum Beispiel 5 Tasten, 8 Leds, Motortreiber, Lautsprecher, diverse Anschlüsse etc. &lt;br /&gt;
Der Größenunterschied wird im Bild deutlich:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_rncontrol.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auch wenn das Steckbrett also kein Controllerboard ersetzen kann, so hat das kleine Tutorial doch gezeigt, wie eine [[Avr]]-Schaltung aufzubauen ist. Dieses Wissen sollte man auch besitzen, wenn man ein Controllerboard nutzt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Was braucht man, wenn man mit einem Controllerboard den Einstieg startet?==&lt;br /&gt;
[[Bild:avrtutorial_ispkabel.jpg|thumb|ISP-Programmierkabel]]Neben dem eigentlichen Board braucht man, wie schon zuvor angesprochen, ein [[AVR-ISP Programmierkabel]]. Wenn der PC noch einen Parallelport oder RS232 Port on Board hat, kann man ein einfaches Programmierkabel nutzen. Das kann man selbst bauen oder auch fertig mitzubestellen (siehe Bild). &lt;br /&gt;
Wenn man nur USB zur verfügung hat, wird man den Programmer wohl kaufen müssen, denn USB-RS232 oder USB-LPT Adapter funktionieren fast nie mit den einfachen Programmern, die man gut selber bauen kann. Die Kombination aus eine USB-RS232 und einem Intelligenten Seriellen Programmer (z.B. STK500) funktioniert dagegen.&lt;br /&gt;
&lt;br /&gt;
Als zweites braucht man natürlich eine Stromversorgung. Ideal sind Gleichspannungsnetzgeräte, die zwischen 9 und 12V liefern, vorausgesetzt, das Board hat einen Spannungsregler wie in der Regel die RN-Boards. Man kann hier ein normales Steckernetzteil oder ein komfortables Labornetzteil nehmen. Um etwas Reserve zu haben, wäre es gut, wenn das Netzteil mindestens 200 mA (mit Motoren besser 1 A) liefern kann. Der Controller selber baucht nur etwa 1 mA je MHz Taktfrequenz.&lt;br /&gt;
Alternativ kann man auch Akkupacks oder Batterien nutzen, allerdings mindestens 7,2V sollten die schon liefern können, sicherer sind 8,4-, 9,6- oder 12V-Akkus.&lt;br /&gt;
Das wäre eigentlich schon das Wichtigste, um ein Board in Betrieb zu nehmen und Experimente zu machen. &lt;br /&gt;
&lt;br /&gt;
Allerdings, ein RS232-Kabel ist ebenfalls noch sehr empfehlenswert. Dieses erlaubt die Ausgabe von Texten und Variablen auf den PC, wir haben es ja oben im Steckbrettbeispiel schon gesehen. Dazu wird auf dem PC ein [[Terminalprogramm]] gestartet und über die [[RS232]] Schnittstelle mit dem PC verbunden. Bei manchen Boards ist sowieso ein RS232 Kabel unerläßlich, wie z.B. RN-Motor, RN-Speak etc. Nützlich ist es aber überall. Man kann ein solches Kabel selbst bauen oder gleich beim Kauf eines Boardes mitbestellen.&lt;br /&gt;
&lt;br /&gt;
Also nochmal die Zusammenfassung für den Einstieg:&lt;br /&gt;
&lt;br /&gt;
* Controllerboard&lt;br /&gt;
* [[AVR-ISP Programmierkabel]] mit 10-poligem Wannenstecker&lt;br /&gt;
* RS-232-Kabel (mit 3-poligem Adapter, wenn Board [[RN-Definitionen]] erfüllt)&lt;br /&gt;
* Netzgerät oder Akku (ideal 9 bis 12V, notfalls auch 7,2 bis 20V)&lt;br /&gt;
* [[Bascom]]-Compiler-Vollversion ist nur nötig, wenn man gleich größere Sachen anstrebt, ansonsten reicht das Demo, genauso wie ein [[Avr-gcc]]-Compiler. Bei RN-Boards sind diese Programme beim Board- oder Platinenkauf sowieso dabei, ansonsten kann man diese im Internet downloaden.&lt;br /&gt;
* Ein gutes Buch ist immer gut, siehe [[Buchvorstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
*[[Benutzer:Frank|Frank]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quellen===&lt;br /&gt;
* [[Abblockkondensator]] Artikel von Uwegw&lt;br /&gt;
* RN-Board Dokumentationen aus [[:Kategorie:Projekte]]&lt;br /&gt;
* diverse Datenblätter&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[AVR-ISP Programmierkabel]]&lt;br /&gt;
*[[Mit welchem Controllerboard fang ich an]]&lt;br /&gt;
*[[Abblockkondensator]]&lt;br /&gt;
*[[Bascom]]&lt;br /&gt;
*[[Bascom - Erstes Programm in den AVR_Controller übertragen]]&lt;br /&gt;
*[[Avr]]&lt;br /&gt;
*[[Atmel Controller Mega16 und Mega32]]&lt;br /&gt;
*[[Spannungsregler]]&lt;br /&gt;
*[[Hallo_Welt_für_AVR_(LED_blinken)#Quellcode]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.youtube.com/watch?v=cGtC7e44abA&amp;amp;feature=plcp&amp;amp;context=C37e7441UDOEgsToPDskJmsEAf0l4u9UVXLqURe7ID Neu - Video zu AVR Experimentierboard RN-AVR Universal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:Quellcode_Bascom]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21024</id>
		<title>AVR-Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21024"/>
				<updated>2012-09-16T10:56:15Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Läuft die Schaltung und das Programm? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:avr8.jpg|thumb|300px|Einen Controller zum Leben zu erwecken ist nicht schwer, manchmal reichen ein paar Teile! Beispiel mit Mega8]]&lt;br /&gt;
==Wir starten mit einem ATMega32== &lt;br /&gt;
Immer wieder gibt es in Foren, wie dem Roboternetz, Einsteiger, die das erste Mal mit einem [[Microcontroller]] in Berührung kommen. Trotz zahlreicher Einstiegsbeiträge im Forum wiederholen sich doch bestimmte Anfängerfragen immer wieder. Daher soll dieser Artikel noch einmal aufzeigen, wie die ersten Schritte aussehen, um einen Controller zum Leben zu erwecken. Es werden verschiedene Grundschaltungen aufgezeigt und erläutert, welche Bauteile benötigt werden und welche Funktion sie besitzen.&lt;br /&gt;
Als Controller verwenden wir einen [[AVR]] [[ATMega32]], der derzeit größte [[AVR]]-Controller, welcher noch im bastlerfreundlichen DIP-Gehäuse verfügbar ist. Für kleine bis mittlere Projekte ein sehr empfehlenswerter Controller, zumal er preislich mit ca. 3-4 Euro noch sehr günstig ist und zudem mit seinem 40-Pin-Gehäuse reichlich Anschlussmöglichkeiten besitzt.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Mega1632.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Wie auf dem Bild zu sehen ist, verfügt auch der etwas günstigere ATMega16 über die gleiche Pinbelegung, daher könnten wir in diesem Tutorial auch diesen Typ verwenden. Der ATMega32 hat aber doppelt soviel Speicherplatz für Programmdaten (Flash), daher hat man für eine geringe Preisdifferenz doch mehr Möglichkeiten.&lt;br /&gt;
Wer noch 1-2 Euro sparen will, dem sei der [[ATMega8]] oder [[ATMega168]] empfohlen, diese Typen sind sehr ähnlich, so dass das Tutorial weitgehend auch auf diese Typen bezogen werden kann. Allerdings haben diese Typen deutlich weniger Anschlussmöglichkeiten (28 Pin DIP Gehäuse). &lt;br /&gt;
&lt;br /&gt;
Die Frage, ob man mit einem fertigen Controllerboard, einer Experimentierplatine oder einem Steckbrett beginnen sollte, wurde ja in dem RN-Wissen Wiki Beitrag &amp;quot;[[Mit welchem Controllerboard fang ich an]]&amp;quot; angesprochen. In den meisten Fällen favorisiert der Autor dieses Artikels ein fertiges Controllerboard. Warum das so ist, dazu am Ende noch ein paar Anmerkungen. Dennoch soll diese Einführung schrittweise anhand eines Steckbrettes erläutert werden.&lt;br /&gt;
&lt;br /&gt;
==Start mit handelsüblichem Steckbrett==&lt;br /&gt;
Ein Steckbrett hat den Vorteil, dass man theoretisch ohne Löten alle Bauteile relativ zügig zusammenstecken kann. Bestimmte Steckkontakte innerhalb einer Reihe sind im Steckbrett miteinander verbunden, so dass man nachher pro Bauteilbeinchen noch einige Steckkontakte zum Verdrahten mit Schaltdraht oder speziell konfektionierter Litze verwenden kann.&lt;br /&gt;
&lt;br /&gt;
'''Die Vorteile eines Steckbretts:'''&lt;br /&gt;
&lt;br /&gt;
*Bauteile können ohne Löten eingesetzt und verdrahtet werden&lt;br /&gt;
*recht zügiger Schaltungsaufbau&lt;br /&gt;
*eine Schaltung kann leicht geändert oder korrigiert werden, defekte Teile sind leicht tauschbar&lt;br /&gt;
*ein Steckbrett kann auch für ganz andere Schaltungen verwendet werden&lt;br /&gt;
'''Die Nachteile eines Steckbretts gegenüber gedruckten Schaltungen und Experimentierplatinen sind:'''&lt;br /&gt;
&lt;br /&gt;
*nicht alle Bauteile passen, so dass wir doch noch etwas löten müssen&lt;br /&gt;
*nur geringer Schaltungsumfang möglich, da es schnell unübersichtlich wird&lt;br /&gt;
*sehr störanfällig wegen grosser Kabellängen, dadurch oft Funktionsstörungen&lt;br /&gt;
*Bauteile müssen zum Teil verbogen werden, damit sie passen&lt;br /&gt;
&lt;br /&gt;
Man beginnt, indem man den Controller AVR [[ATMega32]] auf das Board aufsetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrettmega32.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Die Grundschaltung==&lt;br /&gt;
Damit ein Controller erst mal zum Laufen kommt, benötigt man zumindest einen 10-k-Widerstand, einen 100-nF-Kondensator und eine 5V-Spannungsquelle. Das Ganze muss entsprechend dem unteren Schaltplan verschaltet werden, man spricht von einer sogenannten Grundschaltung. In dem Schaltplan wurde der Controller im Übrigen pinkompatibel als Schaltzeichen verwendet, die Pinreihenfolge ist also im Schaltplan identisch mit der echten Bauteilpin-Reihenfolge. Diese Darstellung erleichtert den Nachbau der Schaltung auf einem Steckbrett aber auch einer Experimentierplatine ungemein. Gewöhnlich verwendet man in Schaltplänen eine etwas andere Darstellung, bei der die Pins nach Funktionsgruppen geordnet sind. Bei solchen Schaltplänen muss man sich dann anhand der Pin-Nummern orientieren, man wird dies am Ende des Artikels noch bei dem IC MAX232 sehen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mega32.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn man schon einige Grundschaltungen in anderen Tutorials gesehen hat, dann wird man bemerken, dass unsere doch noch etwas einfacher ist und weniger Bauteile benötigt.  Hier wird beispielsweise kein Quarz verwendet, da der ATMega32 auch intern einen Takt generieren kann. Wer mit dem ADC genau messen will, sollte statt der Beschaltung im Bild, zwischen Vcc und AVcc eine Spule von 10uH und einen Kondensator von 100nF zwischen AVcc und GND schalten. Will man AVcc als Referenzspannung verwenden, muss noch ein 100nF Kondensator von ARef nach GND.&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht die obere Schaltung wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um den Controller in Betrieb zu nehmen, benötigt man bei dieser Schaltung ein Netzteil, das eine stabilisierte Spannung von 4 bis 5V liefert. Wir gehen erst einmal davon aus, dass man über dieses verfügt. &lt;br /&gt;
Erwähnenswert ist noch, dass der Kondensator als [[Abblockkondensator]] zur Unterdrückung von Störungen dient. Er muss so nah wie möglich an die Spannungszuführung am Controller selbst gesetzt werden. Ohne Kondensator enstehen erhebliche Störungen in der Versorgungsspannung, das Bild verdeutlicht es:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Abblockkondensator OhneC amAVR.jpg|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Der Widerstand in der Grundschaltung dient dazu, die Reset-Leitung konstant auf definiertem High-Pegel zu halten. Verbindet man diesen RESET-Pin später kurz mit GND (Masse), dann wird das Programm im Controller neu gestartet.&lt;br /&gt;
&lt;br /&gt;
==Woran merkt man, dass der Controller funktioniert?==&lt;br /&gt;
Gute Frage! Man merkt es garnicht. Genau genommen funktioniert ja auch trotz korrekter Schaltung noch immer nichts, denn es muss zuerst ein Programm in den Controller geladen werden, damit er überhaupt weiß, was zu tun ist. Ohne Programm ist der Controller quasi tot.&lt;br /&gt;
&lt;br /&gt;
==Wie bekommt man das Programm in den Controller?==&lt;br /&gt;
Der Controller verfügt über eine sogenannte [[ISP]]-Schnittstelle. Das bedeutet, über bestimmte Pins ([[SPI]]) kann der Controller mit einer geeigneten PC-Software (zum Beispiel Bascom) programmiert werden. Zum Anschluss an den PC benötigt man jedoch einen sogenannten ISP-Dongle, auch Programmieradapter genannt. Hier gibt es verschiedene Lösungen: Adapter, die über die serielle oder parallele Schnittstelle arbeiten, und zukunftsweisend auch welche, die das Programm über USB-Schnittstelle auf den Mikrocontroller übertragen. Es gibt sowohl Originale von Atmel als auch kompatible Lösungen. Der am meisten verwendete ISP-Dongle wird am Druckerport betrieben. Diese gibt es inzwischen recht preiswert, sodass sich das Selbstbauen eigentlich nicht lohnt. Da man auch gern auf ein paar Fehlerquellen verzichten sollte, würde ich eine Fertiglösung empfehlen. Wer ihn selbst bauen möchte, findet ([[AVR-ISP_Programmierkabel|hier]] eine ISP-Dongle-Bauanleitung und sogar eine fertige Platine dafür  ([[AVR-ISP_Programmierkabel]]).&lt;br /&gt;
&lt;br /&gt;
Sowas sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Avrtutorial_ispkabel.jpeg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Schaltplan eines solchen Programmierkabels:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:ispschaltplan.gif|center|thumb|400px|Schaltplan des ISP-Dongels nach unserem Wiki-Bauplan, mit SUB-D Buchse. Bitte beachten, dass das IC1 hier im Plan als verschiedene Blöcke (IC1A/IC1B) dargestellt wird. Dies dient nur zur Übersicht, es handelt sich nur um ein IC, einfach auf die Pinnummern achten. Zum vergrößern anklicken.]]&lt;br /&gt;
&lt;br /&gt;
Ein noch einfacheres Programmierkabel ist auf der Seite http://thomaspfeifer.net/ beschrieben.&lt;br /&gt;
Dort findet man unter &amp;quot;AVR-Projekte&amp;quot; den Artikel &amp;quot;Ein einfaches Programmierkabel für Atmel-AVR Mikrocontroller&amp;quot;.&lt;br /&gt;
Will man dieses Kabel verwenden, sollte man in BASCOM unter &amp;quot;Options/Programmer&amp;quot; den Programmertyp &amp;quot;Samples Electronic Programmer&amp;quot; wählen, sonst funktioniert das Autodetect, das die eingestzte Version des AVR (Mikrocontroller) erkennt nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Problem ist nun, wie schließe ich einen handelsüblichen ISP-Programmieradapter an den Controller auf dem Steckbrett an? Der normale 10-polige Wannenstecker (nach [[RN-Definitionen]]) passt nicht in ein Steckbrett. Das ist wieder so ein typischer Nachteil bei Steckbrettern! In unserem Beispiel haben wir dazu auf einem kleinen Stück Experimentierplatine einen steckbaren Adapter für das Steckboard gelötet.&lt;br /&gt;
Somit kann man die Schaltung um einen üblichen 10-poligen ISP-Programmieranschluss ergänzen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mitisp.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht das gleiche so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitisp.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt endlich ist es soweit, jetzt kann man den Controller über einen ISP-Programmieradapter mit dem PC verbinden. Aber unbedingt darauf achten, dass auch alles korrekt nach Schaltplan gesteckt wurde und dass die Betriebsspannung 5V nicht übersteigt. Ansonsten könnte man sich Dongle oder sogar die PC-Schnittstelle beschädigen.&lt;br /&gt;
Als Entwicklungsumgebung nutzen wir hier im Tutorial [[Bascom]]. [[Bascom]] ist ein sehr beliebter Basic-[[Compiler]], der zahlreiche [[AVR]] Controllertypen programmieren kann. Da auch ein [[Terminalprogramm]] und ein Programmer integriert ist, enthält diese PC-Software alles, was man braucht, das erleichtert den Einstieg zusätzlich. Die Software gibts kostenlos als Demo bis 4K Code, für unsere Beispiele und den Einstieg reicht das allemal, siehe dazu Artikel Bascom.&lt;br /&gt;
&lt;br /&gt;
Wie man ein Programm schreibt, kompiliert und überträgt, wurde schon in diesem Beitrag [[Bascom - Erstes Programm in den AVR Controller übertragen]] ausführlich behandelt, wir ersparen uns deshalb diese Details. Man sollte aber bei Unklarheiten zum Kompilieren und Übertragen diesen Artikel auf jeden Fall lesen.&lt;br /&gt;
&lt;br /&gt;
Als erstes kompilieren und übertragen wir folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step1.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Programm macht eigentlich nichts, außer dass es eine Endlosschleife ausführt. Aber da wir noch überhaupt nix am Controller angeschlossen haben, können wir eh noch nicht sehen, ob ein Programm nun richtig ausgeführt wird oder nicht.&lt;br /&gt;
Allerdings können wir schonmal üben, das Programm mit Bascom zu übertragen. Wenn wir alles richtig aufgebaut haben und Spannung anliegt, dann sollte automatisch der Controller in Bascom erkannt werden. Die Übertragung sollte dann ohne Fehlermeldung erfolgen können. Wenn wir das geschafft haben, geht’s weiter.&lt;br /&gt;
&lt;br /&gt;
==Läuft die Schaltung und das Programm?==&lt;br /&gt;
Damit wir nun endlich sehen, ob sich bei unserer Schaltung auch was tut, schließen wir eine LED über einen 1k-Vorwiderstand an einen Port an. Da wir die Kathode an den Controllerpin und die Anode an Plus legen, leuchtet die LED immer dann, wenn dieser Pin auf Low geschaltet wird.&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mitled|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's nun so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitled.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit man nun auch wirklich sieht, ob das Programm läuft, schreiben wir ein kleines Basic-Programm, welches eine LED abwechselnd ein– und ausschaltet. Wir kompilieren und übertragen also folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step2.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output       'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  Portc.0 = 1                 'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
  Portc.0 = 0                 'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn die LED nun schnell blinkt, dann funktioniert die aufgebaute Schaltung perfekt. Wir haben gleichzeitig gelernt, wie man einen Ausgangsport, also Controllerpin, ein- und ausschalten kann. Nahezu alle Pins beim ATMega32 können auf diese Weise als Ausgangsport betrieben werden. Somit lassen sich nicht nur viele Leds, sondern unter Zuhilfenahme eines Treibers (z.B. Transistors) auch Relais und andere Aktoren schalten.&lt;br /&gt;
&lt;br /&gt;
Alternativ das gleiche Programm in C (für AVR-GCC):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Testprogramm: Blinken auf Pin PC0&lt;br /&gt;
//&lt;br /&gt;
#ifndef MCU             // Welcher AVR genutzt wird, wird i.A. im Makefile definiert&lt;br /&gt;
#define MCU  atmega32&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef F_CPU           // kann auch im Makefile definiert sein&lt;br /&gt;
#define F_CPU 1000000UL // Takt als LONG definieren, da zu groß für Integer &lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;     // Namen der IO Register&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt; // Funktionen zum warten&lt;br /&gt;
// Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
 DDRC = _BV(0);         // Nur PC0 als output,  _BV(0) = (1&amp;lt;&amp;lt;0) = 1&lt;br /&gt;
 PORTC = 254;           // Pullups auf allen anderen Pins &lt;br /&gt;
    &lt;br /&gt;
 while (1)&lt;br /&gt;
 { &lt;br /&gt;
   PORTC &amp;amp;= 255-_BV(0); //  0 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);      //  100 ms Warten&lt;br /&gt;
   PORTC |= _BV(0);     //  1 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eingangsport fragt Taster ab==&lt;br /&gt;
Nun erweitern wir die Schaltung noch um einen Taster. Nahezu jedes Port kann bei einem ATMega32 auch per Software als Eingangsport konfiguriert werden. Wir schließen z.B. einen Taster an Port-Pin PA7 an. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mittaster.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Port wird in der Software so konfiguriert, dass es als Eingang arbeitet und intern über einen hohen Widerstand  (Pullup-Widerstand) ständig auf High-Pegel gelegt wird. Wird nun eine Taste gedrückt, so wird der Pegel auf Low gezogen.&lt;br /&gt;
Das Beispielprogramm ist nun so gestaltet, dass bei gedrückter Taste die LED leuchtet und beim Loslassen wieder ausgeht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step3.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output        'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input          'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                    'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  End If&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Grundschaltung mit Quarz==&lt;br /&gt;
Obwohl wir ab der letzten Schaltung schon einiges mit dem Controller anfangen können, so fehlt doch noch etwas Wichtiges. Oft ist es nämlich notwendig, dass ein Controller sehr genaue Frequenzen mißt oder ganz genaue Taktraten ausgeben kann. Leider ist der interne Taktgenerator nicht 100% exakt, was bei manchen Anwendungen störend ist. Zum Beispiel können über die RS232-Schnittstelle Daten nicht immer ganz fehlerfrei übertragen werden, wenn die Taktfrequenz nicht genau stimmt. Daher wird in den meisten Anwendungsfällen ein Quarz zur Takterzeugung genutzt, Sie kennen das sicher aus anderen Grundschaltungen. Also erweitern wir unsere Schaltung gleich noch um einen Quarz mit den zugehörigen 22pF-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mitquarz.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf unserem Steckbrett wird's langsam voller, hier sieht's also inzwischen so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitquarz.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Normalerweise sollte der Quarz genauso wie die beiden 22pF-Kondensatoren, die zum Anschwingen des Quarzes dienen, möglichst nahe am Controller platziert werden. Auf dem Steckbrett ist das manchmal gar nicht so einfach, insbesondere wenn man wie in diesem Fall den Quarz erst später hinzufügt. Wichtig ist nämlich, dass die Leitungen vom Quarz zum Controller möglichst kurz sind, bei gedruckten Schaltungen oft nur 1 bis 2 cm! Auch die einzelnen Bauteilbeinchen, z.B. der Kondensatoren, sollten normalerweise so kurz wie möglich sein.&lt;br /&gt;
Ist dies nicht der Fall, wie auch in unserem Bild, dann fungieren diese Leitungen fast wie eine Funkantenne. Dies führt in der Regel zu starken Hochfrequenzsignalen, die nicht nur unsere Schaltung, sondern auch andere Schaltungen in der Nähe stören könnten. Man merkt dies auch oft daran, dass sich ein Board bei höherer Quarzfrequenz immer seltener fehlerfrei ohne Übertragungsfehler programmieren läßt.&lt;br /&gt;
Grundsätzlich sind daher Schaltungen mit Quarz auf einem Steckbrett nicht sonderlich zu empfehlen, die Betriebssicherheit ist nicht immer gegeben. &lt;br /&gt;
&lt;br /&gt;
Auch wenn nun ein Quarz angeschlossen ist, so wird er noch immer nicht genutzt. Noch immer arbeitet der [[ATMega32]] mit seiner intern voreingestellten 1 Mhz Taktfrequenz. Um dies umzustellen, muss man ein sogenanntes [[Fusebits|Fusebit]] im Controller umprogrammieren. Auch dies wurde schon im Beitrag [[Bascom - Erstes Programm in den AVR_Controller übertragen]] näher beschrieben. Hier sei daher nur nochmals gesagt, dass dies auch sehr bequem in [[Bascom]] erfolgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_bascomfusebitquarz.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald wir das umgestellt haben, müssen wir auch in dem Programm die Anweisung &lt;br /&gt;
&lt;br /&gt;
 $crystal = 1000000 &lt;br /&gt;
&lt;br /&gt;
durch &lt;br /&gt;
&lt;br /&gt;
 $crystal = 16000000 &lt;br /&gt;
&lt;br /&gt;
ersetzen, denn unser Quarz taktet nun mit 16 MHz.&lt;br /&gt;
&lt;br /&gt;
==Spannung stabilisieren==&lt;br /&gt;
Auch wenn unsere Basis-Schaltung für Experimente inzwischen schon ganz nett ist, so ist es doch etwas ungünstig, dass wir stets 5V zur Verfügung haben müssen. Nicht immer steht ein geeignetes Netzteil zur Verfügung, zudem soll ein Controller auch oft mit Batterien versorgt werden. Aus diesem Grund verfügen fast alle Entwicklungsboards wie ([[RN-Control]], STK500 etc.) über einen [[Spannungsregler]].&lt;br /&gt;
[[Bild:78s05.jpg|thumb|Spannungsregler 78S05]] Dieser wandelt eine höhere Eingangsspannung (ca. 7 bis 20 V) immer genau in  5V  um. Sowas erhöht die Betriebssicherheit einer Schaltung nochmals immens. Als [[Spannungsregler]] (IC2) wird oft der 7805 genutzt.&lt;br /&gt;
Die beiden 100nF-Kondensatoren sind wichtig, sie sollen HF-Störungen und Schwingungen vermeiden. Der Elko vor dem Spannungsregler ist vor allem dann wichtig, wenn die Spannung von einem Netzgerät kommt und noch etwas geglättet werden muss. Je höher der Strombedarf der Schaltung, desto größer muss man die Kapazität wählen. Es schadet nicht, wenn man den Elko einige Nummern größer wählt, man ist dann quasi für alle Fälle gerüstet. So sind Werte zwischen 100 uF und 2200 uF durchaus denkbar.&lt;br /&gt;
&lt;br /&gt;
Wir erweitern unsere Schaltung somit wie folgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_spannung.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_spannung.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Daten und Texte zum PC übertragen==&lt;br /&gt;
In vielen Programmen müssen Daten oder Texte vom Controller an den PC oder umgekehrt gesendet werden. Insbesondere bei komplexen Programmen kann man auf diese Weise Variableninhalte ausgeben und somit auch Fehler im Programmcode schneller finden und korrigieren. In der Regel ist das ganz einfach, denn der [[Microcontroller]] [[ATMega32]] verfügt über einen internen [[UART]], also ein Modul, das Daten über die [[RS232]]-Schnittstelle zum PC senden bzw. auch von ihm empfangen kann. Leider arbeitet jedoch die Controllerschnittstelle mit 5V und die PC-Schnittstelle der Norm entsprechend mit +-12V. Daher muss unbedingt ein Schaltkreis dazwischen, welcher die Pegel anpasst. Gewöhnlich nimmt man hier das IC MAX232(CPE), welches inzwischen sehr preiswert erhältlich ist.&lt;br /&gt;
&lt;br /&gt;
Wir müssen also die Schaltung nochmals erweitern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_max232.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das IC Max232 ist im Schaltplan in der üblichen funktionsorientierten Darstellung gezeichnet. '''Zur besseren Übersichtlichkeit wurden die immer benötigten Anschlüsse für VCC (Pin 16) und GND (Pin 15) am MAX232 getrennt oben rechts im Schaltplan dargestellt. Also nicht vergessen !!'''&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_max232.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über eine dreipolige Stiftleiste ([[RN-Definitionen]]) wird nun das Steckboard mit der [[RS232]]-Schnittstelle des PC verbunden. Es ist nun ein Leichtes, mit einem Programm Daten zum PC zu senden. Das nachfolgende Programm gibt Hinweise mit der Anweisung '''PRINT''' aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step5.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 16000000&lt;br /&gt;
$baud = 9600&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output              'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input                'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                          'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                      'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter nicht gedrückt&amp;quot;&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                      'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter gedrückt&amp;quot;&lt;br /&gt;
  End If&lt;br /&gt;
  Wait 1&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Möglichkeiten des Steckbrettes erreicht==&lt;br /&gt;
Inzwischen füllt der Schaltplan fast ein DIN-A4-Blatt und auf dem Steckbrett sieht's auch schon recht wirr aus, dabei haben wir nur die wichtigsten Grundelemente auf dem Steckbrett. Für eine Roboter-Steuerung oder andere Anwendung fehlt doch noch einiges. Zum Beispiel weitere Taster, weitere LEDs, Motortreiber, damit der Controller auch Motoren ansteuern kann und ein [[I2C]]-Bus-Anschluss.&lt;br /&gt;
Dies alles noch auf einem Steckbrett zu realisieren macht wenig Sinn, zumal bereits jetzt schon durch die doch recht langen Leitungen/Verkabelungen erhebliche Störungen auftreten. In der letzten Phase ist es immer öfters zu Übertragungsfehlern beim Programmieren gekommen, oft musste dies 20mal wiederholt werden. Dies zeigt, dass ein Steckbrett bestenfalls für ganz kleine Controller-Experimente herhalten kann. Für größere Dinge sollte man dann doch zu einer Lösung auf einer gedruckten Platine greifen. Spezielle Experimentierboards  bieten mehr Sicherheit und haben neben den Grundelementen, die hier beschrieben wurden, noch eine ganze Menge mehr drauf. Bei [[RN-Control]] zum Beispiel 5 Tasten, 8 Leds, Motortreiber, Lautsprecher, diverse Anschlüsse etc. &lt;br /&gt;
Der Größenunterschied wird im Bild deutlich:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_rncontrol.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auch wenn das Steckbrett also kein Controllerboard ersetzen kann, so hat das kleine Tutorial doch gezeigt, wie eine [[Avr]]-Schaltung aufzubauen ist. Dieses Wissen sollte man auch besitzen, wenn man ein Controllerboard nutzt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Was braucht man, wenn man mit einem Controllerboard den Einstieg startet?==&lt;br /&gt;
[[Bild:avrtutorial_ispkabel.jpg|thumb|ISP-Programmierkabel]]Neben dem eigentlichen Board braucht man, wie schon zuvor angesprochen, ein [[AVR-ISP Programmierkabel]]. Wenn der PC noch einen Parallelport oder RS232 Port on Board hat, kann man ein einfaches Programmierkabel nutzen. Das kann man selbst bauen oder auch fertig mitzubestellen (siehe Bild). &lt;br /&gt;
Wenn man nur USB zur verfügung hat, wird man den Programmer wohl kaufen müssen, denn USB-RS232 oder USB-LPT Adapter funktionieren fast nie mit den einfachen Programmern, die man gut selber bauen kann. Die Kombination aus eine USB-RS232 und einem Intelligenten Seriellen Programmer (z.B. STK500) funktioniert dagegen.&lt;br /&gt;
&lt;br /&gt;
Als zweites braucht man natürlich eine Stromversorgung. Ideal sind Gleichspannungsnetzgeräte, die zwischen 9 und 12V liefern, vorausgesetzt, das Board hat einen Spannungsregler wie in der Regel die RN-Boards. Man kann hier ein normales Steckernetzteil oder ein komfortables Labornetzteil nehmen. Um etwas Reserve zu haben, wäre es gut, wenn das Netzteil mindestens 200 mA (mit Motoren besser 1 A) liefern kann. Der Controller selber baucht nur etwa 1 mA je MHz Taktfrequenz.&lt;br /&gt;
Alternativ kann man auch Akkupacks oder Batterien nutzen, allerdings mindestens 7,2V sollten die schon liefern können, sicherer sind 8,4-, 9,6- oder 12V-Akkus.&lt;br /&gt;
Das wäre eigentlich schon das Wichtigste, um ein Board in Betrieb zu nehmen und Experimente zu machen. &lt;br /&gt;
&lt;br /&gt;
Allerdings, ein RS232-Kabel ist ebenfalls noch sehr empfehlenswert. Dieses erlaubt die Ausgabe von Texten und Variablen auf den PC, wir haben es ja oben im Steckbrettbeispiel schon gesehen. Dazu wird auf dem PC ein [[Terminalprogramm]] gestartet und über die [[RS232]] Schnittstelle mit dem PC verbunden. Bei manchen Boards ist sowieso ein RS232 Kabel unerläßlich, wie z.B. RN-Motor, RN-Speak etc. Nützlich ist es aber überall. Man kann ein solches Kabel selbst bauen oder gleich beim Kauf eines Boardes mitbestellen.&lt;br /&gt;
&lt;br /&gt;
Also nochmal die Zusammenfassung für den Einstieg:&lt;br /&gt;
&lt;br /&gt;
* Controllerboard&lt;br /&gt;
* [[AVR-ISP Programmierkabel]] mit 10-poligem Wannenstecker&lt;br /&gt;
* RS-232-Kabel (mit 3-poligem Adapter, wenn Board [[RN-Definitionen]] erfüllt)&lt;br /&gt;
* Netzgerät oder Akku (ideal 9 bis 12V, notfalls auch 7,2 bis 20V)&lt;br /&gt;
* [[Bascom]]-Compiler-Vollversion ist nur nötig, wenn man gleich größere Sachen anstrebt, ansonsten reicht das Demo, genauso wie ein [[Avr-gcc]]-Compiler. Bei RN-Boards sind diese Programme beim Board- oder Platinenkauf sowieso dabei, ansonsten kann man diese im Internet downloaden.&lt;br /&gt;
* Ein gutes Buch ist immer gut, siehe [[Buchvorstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
*[[Benutzer:Frank|Frank]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quellen===&lt;br /&gt;
* [[Abblockkondensator]] Artikel von Uwegw&lt;br /&gt;
* RN-Board Dokumentationen aus [[:Kategorie:Projekte]]&lt;br /&gt;
* diverse Datenblätter&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[AVR-ISP Programmierkabel]]&lt;br /&gt;
*[[Mit welchem Controllerboard fang ich an]]&lt;br /&gt;
*[[Abblockkondensator]]&lt;br /&gt;
*[[Bascom]]&lt;br /&gt;
*[[Bascom - Erstes Programm in den AVR_Controller übertragen]]&lt;br /&gt;
*[[Avr]]&lt;br /&gt;
*[[Atmel Controller Mega16 und Mega32]]&lt;br /&gt;
*[[Spannungsregler]]&lt;br /&gt;
*[[Hallo_Welt_für_AVR_(LED_blinken)#Quellcode]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.youtube.com/watch?v=cGtC7e44abA&amp;amp;feature=plcp&amp;amp;context=C37e7441UDOEgsToPDskJmsEAf0l4u9UVXLqURe7ID Neu - Video zu AVR Experimentierboard RN-AVR Universal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:Quellcode_Bascom]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:800px-Avrtutorial_grundschaltung_mitled.gif&amp;diff=21023</id>
		<title>Datei:800px-Avrtutorial grundschaltung mitled.gif</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:800px-Avrtutorial_grundschaltung_mitled.gif&amp;diff=21023"/>
				<updated>2012-09-16T10:55:57Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: Grundschaltung mit ISP und LED&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grundschaltung mit ISP und LED&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21022</id>
		<title>AVR-Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21022"/>
				<updated>2012-09-16T10:53:08Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Wie bekommt man das Programm in den Controller? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:avr8.jpg|thumb|300px|Einen Controller zum Leben zu erwecken ist nicht schwer, manchmal reichen ein paar Teile! Beispiel mit Mega8]]&lt;br /&gt;
==Wir starten mit einem ATMega32== &lt;br /&gt;
Immer wieder gibt es in Foren, wie dem Roboternetz, Einsteiger, die das erste Mal mit einem [[Microcontroller]] in Berührung kommen. Trotz zahlreicher Einstiegsbeiträge im Forum wiederholen sich doch bestimmte Anfängerfragen immer wieder. Daher soll dieser Artikel noch einmal aufzeigen, wie die ersten Schritte aussehen, um einen Controller zum Leben zu erwecken. Es werden verschiedene Grundschaltungen aufgezeigt und erläutert, welche Bauteile benötigt werden und welche Funktion sie besitzen.&lt;br /&gt;
Als Controller verwenden wir einen [[AVR]] [[ATMega32]], der derzeit größte [[AVR]]-Controller, welcher noch im bastlerfreundlichen DIP-Gehäuse verfügbar ist. Für kleine bis mittlere Projekte ein sehr empfehlenswerter Controller, zumal er preislich mit ca. 3-4 Euro noch sehr günstig ist und zudem mit seinem 40-Pin-Gehäuse reichlich Anschlussmöglichkeiten besitzt.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Mega1632.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Wie auf dem Bild zu sehen ist, verfügt auch der etwas günstigere ATMega16 über die gleiche Pinbelegung, daher könnten wir in diesem Tutorial auch diesen Typ verwenden. Der ATMega32 hat aber doppelt soviel Speicherplatz für Programmdaten (Flash), daher hat man für eine geringe Preisdifferenz doch mehr Möglichkeiten.&lt;br /&gt;
Wer noch 1-2 Euro sparen will, dem sei der [[ATMega8]] oder [[ATMega168]] empfohlen, diese Typen sind sehr ähnlich, so dass das Tutorial weitgehend auch auf diese Typen bezogen werden kann. Allerdings haben diese Typen deutlich weniger Anschlussmöglichkeiten (28 Pin DIP Gehäuse). &lt;br /&gt;
&lt;br /&gt;
Die Frage, ob man mit einem fertigen Controllerboard, einer Experimentierplatine oder einem Steckbrett beginnen sollte, wurde ja in dem RN-Wissen Wiki Beitrag &amp;quot;[[Mit welchem Controllerboard fang ich an]]&amp;quot; angesprochen. In den meisten Fällen favorisiert der Autor dieses Artikels ein fertiges Controllerboard. Warum das so ist, dazu am Ende noch ein paar Anmerkungen. Dennoch soll diese Einführung schrittweise anhand eines Steckbrettes erläutert werden.&lt;br /&gt;
&lt;br /&gt;
==Start mit handelsüblichem Steckbrett==&lt;br /&gt;
Ein Steckbrett hat den Vorteil, dass man theoretisch ohne Löten alle Bauteile relativ zügig zusammenstecken kann. Bestimmte Steckkontakte innerhalb einer Reihe sind im Steckbrett miteinander verbunden, so dass man nachher pro Bauteilbeinchen noch einige Steckkontakte zum Verdrahten mit Schaltdraht oder speziell konfektionierter Litze verwenden kann.&lt;br /&gt;
&lt;br /&gt;
'''Die Vorteile eines Steckbretts:'''&lt;br /&gt;
&lt;br /&gt;
*Bauteile können ohne Löten eingesetzt und verdrahtet werden&lt;br /&gt;
*recht zügiger Schaltungsaufbau&lt;br /&gt;
*eine Schaltung kann leicht geändert oder korrigiert werden, defekte Teile sind leicht tauschbar&lt;br /&gt;
*ein Steckbrett kann auch für ganz andere Schaltungen verwendet werden&lt;br /&gt;
'''Die Nachteile eines Steckbretts gegenüber gedruckten Schaltungen und Experimentierplatinen sind:'''&lt;br /&gt;
&lt;br /&gt;
*nicht alle Bauteile passen, so dass wir doch noch etwas löten müssen&lt;br /&gt;
*nur geringer Schaltungsumfang möglich, da es schnell unübersichtlich wird&lt;br /&gt;
*sehr störanfällig wegen grosser Kabellängen, dadurch oft Funktionsstörungen&lt;br /&gt;
*Bauteile müssen zum Teil verbogen werden, damit sie passen&lt;br /&gt;
&lt;br /&gt;
Man beginnt, indem man den Controller AVR [[ATMega32]] auf das Board aufsetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrettmega32.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Die Grundschaltung==&lt;br /&gt;
Damit ein Controller erst mal zum Laufen kommt, benötigt man zumindest einen 10-k-Widerstand, einen 100-nF-Kondensator und eine 5V-Spannungsquelle. Das Ganze muss entsprechend dem unteren Schaltplan verschaltet werden, man spricht von einer sogenannten Grundschaltung. In dem Schaltplan wurde der Controller im Übrigen pinkompatibel als Schaltzeichen verwendet, die Pinreihenfolge ist also im Schaltplan identisch mit der echten Bauteilpin-Reihenfolge. Diese Darstellung erleichtert den Nachbau der Schaltung auf einem Steckbrett aber auch einer Experimentierplatine ungemein. Gewöhnlich verwendet man in Schaltplänen eine etwas andere Darstellung, bei der die Pins nach Funktionsgruppen geordnet sind. Bei solchen Schaltplänen muss man sich dann anhand der Pin-Nummern orientieren, man wird dies am Ende des Artikels noch bei dem IC MAX232 sehen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mega32.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn man schon einige Grundschaltungen in anderen Tutorials gesehen hat, dann wird man bemerken, dass unsere doch noch etwas einfacher ist und weniger Bauteile benötigt.  Hier wird beispielsweise kein Quarz verwendet, da der ATMega32 auch intern einen Takt generieren kann. Wer mit dem ADC genau messen will, sollte statt der Beschaltung im Bild, zwischen Vcc und AVcc eine Spule von 10uH und einen Kondensator von 100nF zwischen AVcc und GND schalten. Will man AVcc als Referenzspannung verwenden, muss noch ein 100nF Kondensator von ARef nach GND.&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht die obere Schaltung wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um den Controller in Betrieb zu nehmen, benötigt man bei dieser Schaltung ein Netzteil, das eine stabilisierte Spannung von 4 bis 5V liefert. Wir gehen erst einmal davon aus, dass man über dieses verfügt. &lt;br /&gt;
Erwähnenswert ist noch, dass der Kondensator als [[Abblockkondensator]] zur Unterdrückung von Störungen dient. Er muss so nah wie möglich an die Spannungszuführung am Controller selbst gesetzt werden. Ohne Kondensator enstehen erhebliche Störungen in der Versorgungsspannung, das Bild verdeutlicht es:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Abblockkondensator OhneC amAVR.jpg|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Der Widerstand in der Grundschaltung dient dazu, die Reset-Leitung konstant auf definiertem High-Pegel zu halten. Verbindet man diesen RESET-Pin später kurz mit GND (Masse), dann wird das Programm im Controller neu gestartet.&lt;br /&gt;
&lt;br /&gt;
==Woran merkt man, dass der Controller funktioniert?==&lt;br /&gt;
Gute Frage! Man merkt es garnicht. Genau genommen funktioniert ja auch trotz korrekter Schaltung noch immer nichts, denn es muss zuerst ein Programm in den Controller geladen werden, damit er überhaupt weiß, was zu tun ist. Ohne Programm ist der Controller quasi tot.&lt;br /&gt;
&lt;br /&gt;
==Wie bekommt man das Programm in den Controller?==&lt;br /&gt;
Der Controller verfügt über eine sogenannte [[ISP]]-Schnittstelle. Das bedeutet, über bestimmte Pins ([[SPI]]) kann der Controller mit einer geeigneten PC-Software (zum Beispiel Bascom) programmiert werden. Zum Anschluss an den PC benötigt man jedoch einen sogenannten ISP-Dongle, auch Programmieradapter genannt. Hier gibt es verschiedene Lösungen: Adapter, die über die serielle oder parallele Schnittstelle arbeiten, und zukunftsweisend auch welche, die das Programm über USB-Schnittstelle auf den Mikrocontroller übertragen. Es gibt sowohl Originale von Atmel als auch kompatible Lösungen. Der am meisten verwendete ISP-Dongle wird am Druckerport betrieben. Diese gibt es inzwischen recht preiswert, sodass sich das Selbstbauen eigentlich nicht lohnt. Da man auch gern auf ein paar Fehlerquellen verzichten sollte, würde ich eine Fertiglösung empfehlen. Wer ihn selbst bauen möchte, findet ([[AVR-ISP_Programmierkabel|hier]] eine ISP-Dongle-Bauanleitung und sogar eine fertige Platine dafür  ([[AVR-ISP_Programmierkabel]]).&lt;br /&gt;
&lt;br /&gt;
Sowas sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Avrtutorial_ispkabel.jpeg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Schaltplan eines solchen Programmierkabels:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:ispschaltplan.gif|center|thumb|400px|Schaltplan des ISP-Dongels nach unserem Wiki-Bauplan, mit SUB-D Buchse. Bitte beachten, dass das IC1 hier im Plan als verschiedene Blöcke (IC1A/IC1B) dargestellt wird. Dies dient nur zur Übersicht, es handelt sich nur um ein IC, einfach auf die Pinnummern achten. Zum vergrößern anklicken.]]&lt;br /&gt;
&lt;br /&gt;
Ein noch einfacheres Programmierkabel ist auf der Seite http://thomaspfeifer.net/ beschrieben.&lt;br /&gt;
Dort findet man unter &amp;quot;AVR-Projekte&amp;quot; den Artikel &amp;quot;Ein einfaches Programmierkabel für Atmel-AVR Mikrocontroller&amp;quot;.&lt;br /&gt;
Will man dieses Kabel verwenden, sollte man in BASCOM unter &amp;quot;Options/Programmer&amp;quot; den Programmertyp &amp;quot;Samples Electronic Programmer&amp;quot; wählen, sonst funktioniert das Autodetect, das die eingestzte Version des AVR (Mikrocontroller) erkennt nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Problem ist nun, wie schließe ich einen handelsüblichen ISP-Programmieradapter an den Controller auf dem Steckbrett an? Der normale 10-polige Wannenstecker (nach [[RN-Definitionen]]) passt nicht in ein Steckbrett. Das ist wieder so ein typischer Nachteil bei Steckbrettern! In unserem Beispiel haben wir dazu auf einem kleinen Stück Experimentierplatine einen steckbaren Adapter für das Steckboard gelötet.&lt;br /&gt;
Somit kann man die Schaltung um einen üblichen 10-poligen ISP-Programmieranschluss ergänzen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mitisp.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht das gleiche so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitisp.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt endlich ist es soweit, jetzt kann man den Controller über einen ISP-Programmieradapter mit dem PC verbinden. Aber unbedingt darauf achten, dass auch alles korrekt nach Schaltplan gesteckt wurde und dass die Betriebsspannung 5V nicht übersteigt. Ansonsten könnte man sich Dongle oder sogar die PC-Schnittstelle beschädigen.&lt;br /&gt;
Als Entwicklungsumgebung nutzen wir hier im Tutorial [[Bascom]]. [[Bascom]] ist ein sehr beliebter Basic-[[Compiler]], der zahlreiche [[AVR]] Controllertypen programmieren kann. Da auch ein [[Terminalprogramm]] und ein Programmer integriert ist, enthält diese PC-Software alles, was man braucht, das erleichtert den Einstieg zusätzlich. Die Software gibts kostenlos als Demo bis 4K Code, für unsere Beispiele und den Einstieg reicht das allemal, siehe dazu Artikel Bascom.&lt;br /&gt;
&lt;br /&gt;
Wie man ein Programm schreibt, kompiliert und überträgt, wurde schon in diesem Beitrag [[Bascom - Erstes Programm in den AVR Controller übertragen]] ausführlich behandelt, wir ersparen uns deshalb diese Details. Man sollte aber bei Unklarheiten zum Kompilieren und Übertragen diesen Artikel auf jeden Fall lesen.&lt;br /&gt;
&lt;br /&gt;
Als erstes kompilieren und übertragen wir folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step1.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Programm macht eigentlich nichts, außer dass es eine Endlosschleife ausführt. Aber da wir noch überhaupt nix am Controller angeschlossen haben, können wir eh noch nicht sehen, ob ein Programm nun richtig ausgeführt wird oder nicht.&lt;br /&gt;
Allerdings können wir schonmal üben, das Programm mit Bascom zu übertragen. Wenn wir alles richtig aufgebaut haben und Spannung anliegt, dann sollte automatisch der Controller in Bascom erkannt werden. Die Übertragung sollte dann ohne Fehlermeldung erfolgen können. Wenn wir das geschafft haben, geht’s weiter.&lt;br /&gt;
&lt;br /&gt;
==Läuft die Schaltung und das Programm?==&lt;br /&gt;
Damit wir nun endlich sehen, ob sich bei unserer Schaltung auch was tut, schließen wir eine LED über einen 1K-Vorwiderstand an einen Port an. Da wir die Kathode an den Controllerpin und die Anode an Plus legen, leuchtet die LED immer dann, wenn dieser Pin auf Low geschaltet wird.&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mitled.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's nun so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitled.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit man nun auch wirklich sieht, ob das Programm läuft, schreiben wir ein kleines Basic-Programm, welches eine LED abwechselnd ein– und ausschaltet. Wir kompilieren und übertragen also folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step2.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output       'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  Portc.0 = 1                 'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
  Portc.0 = 0                 'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn die LED nun schnell blinkt, dann funktioniert die aufgebaute Schaltung perfekt. Wir haben gleichzeitig gelernt, wie man einen Ausgangsport, also Controllerpin, ein- und ausschalten kann. Nahezu alle Pins beim ATMega32 können auf diese Weise als Ausgangsport betrieben werden. Somit lassen sich nicht nur viele Leds, sondern unter Zuhilfenahme eines Treibers (z.B. Transistors) auch Relais und andere Aktoren schalten.&lt;br /&gt;
&lt;br /&gt;
Alternativ das gleiche Programm in C (für AVR-GCC):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Testprogramm: Blinken auf Pin PC0&lt;br /&gt;
//&lt;br /&gt;
#ifndef MCU             // Welcher AVR genutzt wird, wird i.A. im Makefile definiert&lt;br /&gt;
#define MCU  atmega32&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef F_CPU           // kann auch im Makefile definiert sein&lt;br /&gt;
#define F_CPU 1000000UL // Takt als LONG definieren, da zu groß für Integer &lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;     // Namen der IO Register&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt; // Funktionen zum warten&lt;br /&gt;
// Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
 DDRC = _BV(0);         // Nur PC0 als output,  _BV(0) = (1&amp;lt;&amp;lt;0) = 1&lt;br /&gt;
 PORTC = 254;           // Pullups auf allen anderen Pins &lt;br /&gt;
    &lt;br /&gt;
 while (1)&lt;br /&gt;
 { &lt;br /&gt;
   PORTC &amp;amp;= 255-_BV(0); //  0 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);      //  100 ms Warten&lt;br /&gt;
   PORTC |= _BV(0);     //  1 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eingangsport fragt Taster ab==&lt;br /&gt;
Nun erweitern wir die Schaltung noch um einen Taster. Nahezu jedes Port kann bei einem ATMega32 auch per Software als Eingangsport konfiguriert werden. Wir schließen z.B. einen Taster an Port-Pin PA7 an. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mittaster.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Port wird in der Software so konfiguriert, dass es als Eingang arbeitet und intern über einen hohen Widerstand  (Pullup-Widerstand) ständig auf High-Pegel gelegt wird. Wird nun eine Taste gedrückt, so wird der Pegel auf Low gezogen.&lt;br /&gt;
Das Beispielprogramm ist nun so gestaltet, dass bei gedrückter Taste die LED leuchtet und beim Loslassen wieder ausgeht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step3.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output        'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input          'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                    'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  End If&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Grundschaltung mit Quarz==&lt;br /&gt;
Obwohl wir ab der letzten Schaltung schon einiges mit dem Controller anfangen können, so fehlt doch noch etwas Wichtiges. Oft ist es nämlich notwendig, dass ein Controller sehr genaue Frequenzen mißt oder ganz genaue Taktraten ausgeben kann. Leider ist der interne Taktgenerator nicht 100% exakt, was bei manchen Anwendungen störend ist. Zum Beispiel können über die RS232-Schnittstelle Daten nicht immer ganz fehlerfrei übertragen werden, wenn die Taktfrequenz nicht genau stimmt. Daher wird in den meisten Anwendungsfällen ein Quarz zur Takterzeugung genutzt, Sie kennen das sicher aus anderen Grundschaltungen. Also erweitern wir unsere Schaltung gleich noch um einen Quarz mit den zugehörigen 22pF-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mitquarz.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf unserem Steckbrett wird's langsam voller, hier sieht's also inzwischen so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitquarz.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Normalerweise sollte der Quarz genauso wie die beiden 22pF-Kondensatoren, die zum Anschwingen des Quarzes dienen, möglichst nahe am Controller platziert werden. Auf dem Steckbrett ist das manchmal gar nicht so einfach, insbesondere wenn man wie in diesem Fall den Quarz erst später hinzufügt. Wichtig ist nämlich, dass die Leitungen vom Quarz zum Controller möglichst kurz sind, bei gedruckten Schaltungen oft nur 1 bis 2 cm! Auch die einzelnen Bauteilbeinchen, z.B. der Kondensatoren, sollten normalerweise so kurz wie möglich sein.&lt;br /&gt;
Ist dies nicht der Fall, wie auch in unserem Bild, dann fungieren diese Leitungen fast wie eine Funkantenne. Dies führt in der Regel zu starken Hochfrequenzsignalen, die nicht nur unsere Schaltung, sondern auch andere Schaltungen in der Nähe stören könnten. Man merkt dies auch oft daran, dass sich ein Board bei höherer Quarzfrequenz immer seltener fehlerfrei ohne Übertragungsfehler programmieren läßt.&lt;br /&gt;
Grundsätzlich sind daher Schaltungen mit Quarz auf einem Steckbrett nicht sonderlich zu empfehlen, die Betriebssicherheit ist nicht immer gegeben. &lt;br /&gt;
&lt;br /&gt;
Auch wenn nun ein Quarz angeschlossen ist, so wird er noch immer nicht genutzt. Noch immer arbeitet der [[ATMega32]] mit seiner intern voreingestellten 1 Mhz Taktfrequenz. Um dies umzustellen, muss man ein sogenanntes [[Fusebits|Fusebit]] im Controller umprogrammieren. Auch dies wurde schon im Beitrag [[Bascom - Erstes Programm in den AVR_Controller übertragen]] näher beschrieben. Hier sei daher nur nochmals gesagt, dass dies auch sehr bequem in [[Bascom]] erfolgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_bascomfusebitquarz.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald wir das umgestellt haben, müssen wir auch in dem Programm die Anweisung &lt;br /&gt;
&lt;br /&gt;
 $crystal = 1000000 &lt;br /&gt;
&lt;br /&gt;
durch &lt;br /&gt;
&lt;br /&gt;
 $crystal = 16000000 &lt;br /&gt;
&lt;br /&gt;
ersetzen, denn unser Quarz taktet nun mit 16 MHz.&lt;br /&gt;
&lt;br /&gt;
==Spannung stabilisieren==&lt;br /&gt;
Auch wenn unsere Basis-Schaltung für Experimente inzwischen schon ganz nett ist, so ist es doch etwas ungünstig, dass wir stets 5V zur Verfügung haben müssen. Nicht immer steht ein geeignetes Netzteil zur Verfügung, zudem soll ein Controller auch oft mit Batterien versorgt werden. Aus diesem Grund verfügen fast alle Entwicklungsboards wie ([[RN-Control]], STK500 etc.) über einen [[Spannungsregler]].&lt;br /&gt;
[[Bild:78s05.jpg|thumb|Spannungsregler 78S05]] Dieser wandelt eine höhere Eingangsspannung (ca. 7 bis 20 V) immer genau in  5V  um. Sowas erhöht die Betriebssicherheit einer Schaltung nochmals immens. Als [[Spannungsregler]] (IC2) wird oft der 7805 genutzt.&lt;br /&gt;
Die beiden 100nF-Kondensatoren sind wichtig, sie sollen HF-Störungen und Schwingungen vermeiden. Der Elko vor dem Spannungsregler ist vor allem dann wichtig, wenn die Spannung von einem Netzgerät kommt und noch etwas geglättet werden muss. Je höher der Strombedarf der Schaltung, desto größer muss man die Kapazität wählen. Es schadet nicht, wenn man den Elko einige Nummern größer wählt, man ist dann quasi für alle Fälle gerüstet. So sind Werte zwischen 100 uF und 2200 uF durchaus denkbar.&lt;br /&gt;
&lt;br /&gt;
Wir erweitern unsere Schaltung somit wie folgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_spannung.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_spannung.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Daten und Texte zum PC übertragen==&lt;br /&gt;
In vielen Programmen müssen Daten oder Texte vom Controller an den PC oder umgekehrt gesendet werden. Insbesondere bei komplexen Programmen kann man auf diese Weise Variableninhalte ausgeben und somit auch Fehler im Programmcode schneller finden und korrigieren. In der Regel ist das ganz einfach, denn der [[Microcontroller]] [[ATMega32]] verfügt über einen internen [[UART]], also ein Modul, das Daten über die [[RS232]]-Schnittstelle zum PC senden bzw. auch von ihm empfangen kann. Leider arbeitet jedoch die Controllerschnittstelle mit 5V und die PC-Schnittstelle der Norm entsprechend mit +-12V. Daher muss unbedingt ein Schaltkreis dazwischen, welcher die Pegel anpasst. Gewöhnlich nimmt man hier das IC MAX232(CPE), welches inzwischen sehr preiswert erhältlich ist.&lt;br /&gt;
&lt;br /&gt;
Wir müssen also die Schaltung nochmals erweitern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_max232.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das IC Max232 ist im Schaltplan in der üblichen funktionsorientierten Darstellung gezeichnet. '''Zur besseren Übersichtlichkeit wurden die immer benötigten Anschlüsse für VCC (Pin 16) und GND (Pin 15) am MAX232 getrennt oben rechts im Schaltplan dargestellt. Also nicht vergessen !!'''&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_max232.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über eine dreipolige Stiftleiste ([[RN-Definitionen]]) wird nun das Steckboard mit der [[RS232]]-Schnittstelle des PC verbunden. Es ist nun ein Leichtes, mit einem Programm Daten zum PC zu senden. Das nachfolgende Programm gibt Hinweise mit der Anweisung '''PRINT''' aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step5.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 16000000&lt;br /&gt;
$baud = 9600&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output              'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input                'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                          'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                      'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter nicht gedrückt&amp;quot;&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                      'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter gedrückt&amp;quot;&lt;br /&gt;
  End If&lt;br /&gt;
  Wait 1&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Möglichkeiten des Steckbrettes erreicht==&lt;br /&gt;
Inzwischen füllt der Schaltplan fast ein DIN-A4-Blatt und auf dem Steckbrett sieht's auch schon recht wirr aus, dabei haben wir nur die wichtigsten Grundelemente auf dem Steckbrett. Für eine Roboter-Steuerung oder andere Anwendung fehlt doch noch einiges. Zum Beispiel weitere Taster, weitere LEDs, Motortreiber, damit der Controller auch Motoren ansteuern kann und ein [[I2C]]-Bus-Anschluss.&lt;br /&gt;
Dies alles noch auf einem Steckbrett zu realisieren macht wenig Sinn, zumal bereits jetzt schon durch die doch recht langen Leitungen/Verkabelungen erhebliche Störungen auftreten. In der letzten Phase ist es immer öfters zu Übertragungsfehlern beim Programmieren gekommen, oft musste dies 20mal wiederholt werden. Dies zeigt, dass ein Steckbrett bestenfalls für ganz kleine Controller-Experimente herhalten kann. Für größere Dinge sollte man dann doch zu einer Lösung auf einer gedruckten Platine greifen. Spezielle Experimentierboards  bieten mehr Sicherheit und haben neben den Grundelementen, die hier beschrieben wurden, noch eine ganze Menge mehr drauf. Bei [[RN-Control]] zum Beispiel 5 Tasten, 8 Leds, Motortreiber, Lautsprecher, diverse Anschlüsse etc. &lt;br /&gt;
Der Größenunterschied wird im Bild deutlich:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_rncontrol.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auch wenn das Steckbrett also kein Controllerboard ersetzen kann, so hat das kleine Tutorial doch gezeigt, wie eine [[Avr]]-Schaltung aufzubauen ist. Dieses Wissen sollte man auch besitzen, wenn man ein Controllerboard nutzt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Was braucht man, wenn man mit einem Controllerboard den Einstieg startet?==&lt;br /&gt;
[[Bild:avrtutorial_ispkabel.jpg|thumb|ISP-Programmierkabel]]Neben dem eigentlichen Board braucht man, wie schon zuvor angesprochen, ein [[AVR-ISP Programmierkabel]]. Wenn der PC noch einen Parallelport oder RS232 Port on Board hat, kann man ein einfaches Programmierkabel nutzen. Das kann man selbst bauen oder auch fertig mitzubestellen (siehe Bild). &lt;br /&gt;
Wenn man nur USB zur verfügung hat, wird man den Programmer wohl kaufen müssen, denn USB-RS232 oder USB-LPT Adapter funktionieren fast nie mit den einfachen Programmern, die man gut selber bauen kann. Die Kombination aus eine USB-RS232 und einem Intelligenten Seriellen Programmer (z.B. STK500) funktioniert dagegen.&lt;br /&gt;
&lt;br /&gt;
Als zweites braucht man natürlich eine Stromversorgung. Ideal sind Gleichspannungsnetzgeräte, die zwischen 9 und 12V liefern, vorausgesetzt, das Board hat einen Spannungsregler wie in der Regel die RN-Boards. Man kann hier ein normales Steckernetzteil oder ein komfortables Labornetzteil nehmen. Um etwas Reserve zu haben, wäre es gut, wenn das Netzteil mindestens 200 mA (mit Motoren besser 1 A) liefern kann. Der Controller selber baucht nur etwa 1 mA je MHz Taktfrequenz.&lt;br /&gt;
Alternativ kann man auch Akkupacks oder Batterien nutzen, allerdings mindestens 7,2V sollten die schon liefern können, sicherer sind 8,4-, 9,6- oder 12V-Akkus.&lt;br /&gt;
Das wäre eigentlich schon das Wichtigste, um ein Board in Betrieb zu nehmen und Experimente zu machen. &lt;br /&gt;
&lt;br /&gt;
Allerdings, ein RS232-Kabel ist ebenfalls noch sehr empfehlenswert. Dieses erlaubt die Ausgabe von Texten und Variablen auf den PC, wir haben es ja oben im Steckbrettbeispiel schon gesehen. Dazu wird auf dem PC ein [[Terminalprogramm]] gestartet und über die [[RS232]] Schnittstelle mit dem PC verbunden. Bei manchen Boards ist sowieso ein RS232 Kabel unerläßlich, wie z.B. RN-Motor, RN-Speak etc. Nützlich ist es aber überall. Man kann ein solches Kabel selbst bauen oder gleich beim Kauf eines Boardes mitbestellen.&lt;br /&gt;
&lt;br /&gt;
Also nochmal die Zusammenfassung für den Einstieg:&lt;br /&gt;
&lt;br /&gt;
* Controllerboard&lt;br /&gt;
* [[AVR-ISP Programmierkabel]] mit 10-poligem Wannenstecker&lt;br /&gt;
* RS-232-Kabel (mit 3-poligem Adapter, wenn Board [[RN-Definitionen]] erfüllt)&lt;br /&gt;
* Netzgerät oder Akku (ideal 9 bis 12V, notfalls auch 7,2 bis 20V)&lt;br /&gt;
* [[Bascom]]-Compiler-Vollversion ist nur nötig, wenn man gleich größere Sachen anstrebt, ansonsten reicht das Demo, genauso wie ein [[Avr-gcc]]-Compiler. Bei RN-Boards sind diese Programme beim Board- oder Platinenkauf sowieso dabei, ansonsten kann man diese im Internet downloaden.&lt;br /&gt;
* Ein gutes Buch ist immer gut, siehe [[Buchvorstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
*[[Benutzer:Frank|Frank]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quellen===&lt;br /&gt;
* [[Abblockkondensator]] Artikel von Uwegw&lt;br /&gt;
* RN-Board Dokumentationen aus [[:Kategorie:Projekte]]&lt;br /&gt;
* diverse Datenblätter&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[AVR-ISP Programmierkabel]]&lt;br /&gt;
*[[Mit welchem Controllerboard fang ich an]]&lt;br /&gt;
*[[Abblockkondensator]]&lt;br /&gt;
*[[Bascom]]&lt;br /&gt;
*[[Bascom - Erstes Programm in den AVR_Controller übertragen]]&lt;br /&gt;
*[[Avr]]&lt;br /&gt;
*[[Atmel Controller Mega16 und Mega32]]&lt;br /&gt;
*[[Spannungsregler]]&lt;br /&gt;
*[[Hallo_Welt_für_AVR_(LED_blinken)#Quellcode]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.youtube.com/watch?v=cGtC7e44abA&amp;amp;feature=plcp&amp;amp;context=C37e7441UDOEgsToPDskJmsEAf0l4u9UVXLqURe7ID Neu - Video zu AVR Experimentierboard RN-AVR Universal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:Quellcode_Bascom]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:800px-Avrtutorial_grundschaltung_mitisp.gif&amp;diff=21020</id>
		<title>Datei:800px-Avrtutorial grundschaltung mitisp.gif</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:800px-Avrtutorial_grundschaltung_mitisp.gif&amp;diff=21020"/>
				<updated>2012-09-16T10:51:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: Grundschaltung mit ISP ohne Quarz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grundschaltung mit ISP ohne Quarz&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21019</id>
		<title>AVR-Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&amp;diff=21019"/>
				<updated>2012-09-16T10:49:37Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Die Grundschaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:avr8.jpg|thumb|300px|Einen Controller zum Leben zu erwecken ist nicht schwer, manchmal reichen ein paar Teile! Beispiel mit Mega8]]&lt;br /&gt;
==Wir starten mit einem ATMega32== &lt;br /&gt;
Immer wieder gibt es in Foren, wie dem Roboternetz, Einsteiger, die das erste Mal mit einem [[Microcontroller]] in Berührung kommen. Trotz zahlreicher Einstiegsbeiträge im Forum wiederholen sich doch bestimmte Anfängerfragen immer wieder. Daher soll dieser Artikel noch einmal aufzeigen, wie die ersten Schritte aussehen, um einen Controller zum Leben zu erwecken. Es werden verschiedene Grundschaltungen aufgezeigt und erläutert, welche Bauteile benötigt werden und welche Funktion sie besitzen.&lt;br /&gt;
Als Controller verwenden wir einen [[AVR]] [[ATMega32]], der derzeit größte [[AVR]]-Controller, welcher noch im bastlerfreundlichen DIP-Gehäuse verfügbar ist. Für kleine bis mittlere Projekte ein sehr empfehlenswerter Controller, zumal er preislich mit ca. 3-4 Euro noch sehr günstig ist und zudem mit seinem 40-Pin-Gehäuse reichlich Anschlussmöglichkeiten besitzt.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Mega1632.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Wie auf dem Bild zu sehen ist, verfügt auch der etwas günstigere ATMega16 über die gleiche Pinbelegung, daher könnten wir in diesem Tutorial auch diesen Typ verwenden. Der ATMega32 hat aber doppelt soviel Speicherplatz für Programmdaten (Flash), daher hat man für eine geringe Preisdifferenz doch mehr Möglichkeiten.&lt;br /&gt;
Wer noch 1-2 Euro sparen will, dem sei der [[ATMega8]] oder [[ATMega168]] empfohlen, diese Typen sind sehr ähnlich, so dass das Tutorial weitgehend auch auf diese Typen bezogen werden kann. Allerdings haben diese Typen deutlich weniger Anschlussmöglichkeiten (28 Pin DIP Gehäuse). &lt;br /&gt;
&lt;br /&gt;
Die Frage, ob man mit einem fertigen Controllerboard, einer Experimentierplatine oder einem Steckbrett beginnen sollte, wurde ja in dem RN-Wissen Wiki Beitrag &amp;quot;[[Mit welchem Controllerboard fang ich an]]&amp;quot; angesprochen. In den meisten Fällen favorisiert der Autor dieses Artikels ein fertiges Controllerboard. Warum das so ist, dazu am Ende noch ein paar Anmerkungen. Dennoch soll diese Einführung schrittweise anhand eines Steckbrettes erläutert werden.&lt;br /&gt;
&lt;br /&gt;
==Start mit handelsüblichem Steckbrett==&lt;br /&gt;
Ein Steckbrett hat den Vorteil, dass man theoretisch ohne Löten alle Bauteile relativ zügig zusammenstecken kann. Bestimmte Steckkontakte innerhalb einer Reihe sind im Steckbrett miteinander verbunden, so dass man nachher pro Bauteilbeinchen noch einige Steckkontakte zum Verdrahten mit Schaltdraht oder speziell konfektionierter Litze verwenden kann.&lt;br /&gt;
&lt;br /&gt;
'''Die Vorteile eines Steckbretts:'''&lt;br /&gt;
&lt;br /&gt;
*Bauteile können ohne Löten eingesetzt und verdrahtet werden&lt;br /&gt;
*recht zügiger Schaltungsaufbau&lt;br /&gt;
*eine Schaltung kann leicht geändert oder korrigiert werden, defekte Teile sind leicht tauschbar&lt;br /&gt;
*ein Steckbrett kann auch für ganz andere Schaltungen verwendet werden&lt;br /&gt;
'''Die Nachteile eines Steckbretts gegenüber gedruckten Schaltungen und Experimentierplatinen sind:'''&lt;br /&gt;
&lt;br /&gt;
*nicht alle Bauteile passen, so dass wir doch noch etwas löten müssen&lt;br /&gt;
*nur geringer Schaltungsumfang möglich, da es schnell unübersichtlich wird&lt;br /&gt;
*sehr störanfällig wegen grosser Kabellängen, dadurch oft Funktionsstörungen&lt;br /&gt;
*Bauteile müssen zum Teil verbogen werden, damit sie passen&lt;br /&gt;
&lt;br /&gt;
Man beginnt, indem man den Controller AVR [[ATMega32]] auf das Board aufsetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrettmega32.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Die Grundschaltung==&lt;br /&gt;
Damit ein Controller erst mal zum Laufen kommt, benötigt man zumindest einen 10-k-Widerstand, einen 100-nF-Kondensator und eine 5V-Spannungsquelle. Das Ganze muss entsprechend dem unteren Schaltplan verschaltet werden, man spricht von einer sogenannten Grundschaltung. In dem Schaltplan wurde der Controller im Übrigen pinkompatibel als Schaltzeichen verwendet, die Pinreihenfolge ist also im Schaltplan identisch mit der echten Bauteilpin-Reihenfolge. Diese Darstellung erleichtert den Nachbau der Schaltung auf einem Steckbrett aber auch einer Experimentierplatine ungemein. Gewöhnlich verwendet man in Schaltplänen eine etwas andere Darstellung, bei der die Pins nach Funktionsgruppen geordnet sind. Bei solchen Schaltplänen muss man sich dann anhand der Pin-Nummern orientieren, man wird dies am Ende des Artikels noch bei dem IC MAX232 sehen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:800px-Avrtutorial_grundschaltung_mega32.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn man schon einige Grundschaltungen in anderen Tutorials gesehen hat, dann wird man bemerken, dass unsere doch noch etwas einfacher ist und weniger Bauteile benötigt.  Hier wird beispielsweise kein Quarz verwendet, da der ATMega32 auch intern einen Takt generieren kann. Wer mit dem ADC genau messen will, sollte statt der Beschaltung im Bild, zwischen Vcc und AVcc eine Spule von 10uH und einen Kondensator von 100nF zwischen AVcc und GND schalten. Will man AVcc als Referenzspannung verwenden, muss noch ein 100nF Kondensator von ARef nach GND.&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht die obere Schaltung wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um den Controller in Betrieb zu nehmen, benötigt man bei dieser Schaltung ein Netzteil, das eine stabilisierte Spannung von 4 bis 5V liefert. Wir gehen erst einmal davon aus, dass man über dieses verfügt. &lt;br /&gt;
Erwähnenswert ist noch, dass der Kondensator als [[Abblockkondensator]] zur Unterdrückung von Störungen dient. Er muss so nah wie möglich an die Spannungszuführung am Controller selbst gesetzt werden. Ohne Kondensator enstehen erhebliche Störungen in der Versorgungsspannung, das Bild verdeutlicht es:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Abblockkondensator OhneC amAVR.jpg|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Der Widerstand in der Grundschaltung dient dazu, die Reset-Leitung konstant auf definiertem High-Pegel zu halten. Verbindet man diesen RESET-Pin später kurz mit GND (Masse), dann wird das Programm im Controller neu gestartet.&lt;br /&gt;
&lt;br /&gt;
==Woran merkt man, dass der Controller funktioniert?==&lt;br /&gt;
Gute Frage! Man merkt es garnicht. Genau genommen funktioniert ja auch trotz korrekter Schaltung noch immer nichts, denn es muss zuerst ein Programm in den Controller geladen werden, damit er überhaupt weiß, was zu tun ist. Ohne Programm ist der Controller quasi tot.&lt;br /&gt;
&lt;br /&gt;
==Wie bekommt man das Programm in den Controller?==&lt;br /&gt;
Der Controller verfügt über eine sogenannte [[ISP]]-Schnittstelle. Das bedeutet, über bestimmte Pins ([[SPI]]) kann der Controller mit einer geeigneten PC-Software (zum Beispiel Bascom) programmiert werden. Zum Anschluss an den PC benötigt man jedoch einen sogenannten ISP-Dongle, auch Programmieradapter genannt. Hier gibt es verschiedene Lösungen: Adapter, die über die serielle oder parallele Schnittstelle arbeiten, und zukunftsweisend auch welche, die das Programm über USB-Schnittstelle auf den Mikrocontroller übertragen. Es gibt sowohl Originale von Atmel als auch kompatible Lösungen. Der am meisten verwendete ISP-Dongle wird am Druckerport betrieben. Diese gibt es inzwischen recht preiswert, sodass sich das Selbstbauen eigentlich nicht lohnt. Da man auch gern auf ein paar Fehlerquellen verzichten sollte, würde ich eine Fertiglösung empfehlen. Wer ihn selbst bauen möchte, findet ([[AVR-ISP_Programmierkabel|hier]] eine ISP-Dongle-Bauanleitung und sogar eine fertige Platine dafür  ([[AVR-ISP_Programmierkabel]]).&lt;br /&gt;
&lt;br /&gt;
Sowas sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Avrtutorial_ispkabel.jpeg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Schaltplan eines solchen Programmierkabels:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:ispschaltplan.gif|center|thumb|400px|Schaltplan des ISP-Dongels nach unserem Wiki-Bauplan, mit SUB-D Buchse. Bitte beachten, dass das IC1 hier im Plan als verschiedene Blöcke (IC1A/IC1B) dargestellt wird. Dies dient nur zur Übersicht, es handelt sich nur um ein IC, einfach auf die Pinnummern achten. Zum vergrößern anklicken.]]&lt;br /&gt;
&lt;br /&gt;
Ein noch einfacheres Programmierkabel ist auf der Seite http://thomaspfeifer.net/ beschrieben.&lt;br /&gt;
Dort findet man unter &amp;quot;AVR-Projekte&amp;quot; den Artikel &amp;quot;Ein einfaches Programmierkabel für Atmel-AVR Mikrocontroller&amp;quot;.&lt;br /&gt;
Will man dieses Kabel verwenden, sollte man in BASCOM unter &amp;quot;Options/Programmer&amp;quot; den Programmertyp &amp;quot;Samples Electronic Programmer&amp;quot; wählen, sonst funktioniert das Autodetect, das die eingestzte Version des AVR (Mikrocontroller) erkennt nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Problem ist nun, wie schließe ich einen handelsüblichen ISP-Programmieradapter an den Controller auf dem Steckbrett an? Der normale 10-polige Wannenstecker (nach [[RN-Definitionen]]) passt nicht in ein Steckbrett. Das ist wieder so ein typischer Nachteil bei Steckbrettern! In unserem Beispiel haben wir dazu auf einem kleinen Stück Experimentierplatine einen steckbaren Adapter für das Steckboard gelötet.&lt;br /&gt;
Somit kann man die Schaltung um einen üblichen 10-poligen ISP-Programmieranschluss ergänzen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mitisp.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht das gleiche so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitisp.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt endlich ist es soweit, jetzt kann man den Controller über einen ISP-Programmieradapter mit dem PC verbinden. Aber unbedingt darauf achten, dass auch alles korrekt nach Schaltplan gesteckt wurde und dass die Betriebsspannung 5V nicht übersteigt. Ansonsten könnte man sich Dongle oder sogar die PC-Schnittstelle beschädigen.&lt;br /&gt;
Als Entwicklungsumgebung nutzen wir hier im Tutorial [[Bascom]]. [[Bascom]] ist ein sehr beliebter Basic-[[Compiler]], der zahlreiche [[AVR]] Controllertypen programmieren kann. Da auch ein [[Terminalprogramm]] und ein Programmer integriert ist, enthält diese PC-Software alles, was man braucht, das erleichtert den Einstieg zusätzlich. Die Software gibts kostenlos als Demo bis 4K Code, für unsere Beispiele und den Einstieg reicht das allemal, siehe dazu Artikel Bascom.&lt;br /&gt;
&lt;br /&gt;
Wie man ein Programm schreibt, kompiliert und überträgt, wurde schon in diesem Beitrag [[Bascom - Erstes Programm in den AVR Controller übertragen]] ausführlich behandelt, wir ersparen uns deshalb diese Details. Man sollte aber bei Unklarheiten zum Kompilieren und Übertragen diesen Artikel auf jeden Fall lesen.&lt;br /&gt;
&lt;br /&gt;
Als erstes kompilieren und übertragen wir folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step1.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Programm macht eigentlich nichts, außer dass es eine Endlosschleife ausführt. Aber da wir noch überhaupt nix am Controller angeschlossen haben, können wir eh noch nicht sehen, ob ein Programm nun richtig ausgeführt wird oder nicht.&lt;br /&gt;
Allerdings können wir schonmal üben, das Programm mit Bascom zu übertragen. Wenn wir alles richtig aufgebaut haben und Spannung anliegt, dann sollte automatisch der Controller in Bascom erkannt werden. Die Übertragung sollte dann ohne Fehlermeldung erfolgen können. Wenn wir das geschafft haben, geht’s weiter.&lt;br /&gt;
&lt;br /&gt;
==Läuft die Schaltung und das Programm?==&lt;br /&gt;
Damit wir nun endlich sehen, ob sich bei unserer Schaltung auch was tut, schließen wir eine LED über einen 1K-Vorwiderstand an einen Port an. Da wir die Kathode an den Controllerpin und die Anode an Plus legen, leuchtet die LED immer dann, wenn dieser Pin auf Low geschaltet wird.&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mitled.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's nun so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitled.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit man nun auch wirklich sieht, ob das Programm läuft, schreiben wir ein kleines Basic-Programm, welches eine LED abwechselnd ein– und ausschaltet. Wir kompilieren und übertragen also folgendes Programm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step2.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output       'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  Portc.0 = 1                 'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
  Portc.0 = 0                 'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  Waitms 100&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn die LED nun schnell blinkt, dann funktioniert die aufgebaute Schaltung perfekt. Wir haben gleichzeitig gelernt, wie man einen Ausgangsport, also Controllerpin, ein- und ausschalten kann. Nahezu alle Pins beim ATMega32 können auf diese Weise als Ausgangsport betrieben werden. Somit lassen sich nicht nur viele Leds, sondern unter Zuhilfenahme eines Treibers (z.B. Transistors) auch Relais und andere Aktoren schalten.&lt;br /&gt;
&lt;br /&gt;
Alternativ das gleiche Programm in C (für AVR-GCC):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Testprogramm: Blinken auf Pin PC0&lt;br /&gt;
//&lt;br /&gt;
#ifndef MCU             // Welcher AVR genutzt wird, wird i.A. im Makefile definiert&lt;br /&gt;
#define MCU  atmega32&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef F_CPU           // kann auch im Makefile definiert sein&lt;br /&gt;
#define F_CPU 1000000UL // Takt als LONG definieren, da zu groß für Integer &lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;     // Namen der IO Register&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt; // Funktionen zum warten&lt;br /&gt;
// Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
 DDRC = _BV(0);         // Nur PC0 als output,  _BV(0) = (1&amp;lt;&amp;lt;0) = 1&lt;br /&gt;
 PORTC = 254;           // Pullups auf allen anderen Pins &lt;br /&gt;
    &lt;br /&gt;
 while (1)&lt;br /&gt;
 { &lt;br /&gt;
   PORTC &amp;amp;= 255-_BV(0); //  0 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);      //  100 ms Warten&lt;br /&gt;
   PORTC |= _BV(0);     //  1 auf Bit 0 Ausgeben, Rest so lassen&lt;br /&gt;
   _delay_ms(100);&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eingangsport fragt Taster ab==&lt;br /&gt;
Nun erweitern wir die Schaltung noch um einen Taster. Nahezu jedes Port kann bei einem ATMega32 auch per Software als Eingangsport konfiguriert werden. Wir schließen z.B. einen Taster an Port-Pin PA7 an. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mittaster.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Port wird in der Software so konfiguriert, dass es als Eingang arbeitet und intern über einen hohen Widerstand  (Pullup-Widerstand) ständig auf High-Pegel gelegt wird. Wird nun eine Taste gedrückt, so wird der Pegel auf Low gezogen.&lt;br /&gt;
Das Beispielprogramm ist nun so gestaltet, dass bei gedrückter Taste die LED leuchtet und beim Loslassen wieder ausgeht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step3.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output        'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input          'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                    'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
  End If&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Grundschaltung mit Quarz==&lt;br /&gt;
Obwohl wir ab der letzten Schaltung schon einiges mit dem Controller anfangen können, so fehlt doch noch etwas Wichtiges. Oft ist es nämlich notwendig, dass ein Controller sehr genaue Frequenzen mißt oder ganz genaue Taktraten ausgeben kann. Leider ist der interne Taktgenerator nicht 100% exakt, was bei manchen Anwendungen störend ist. Zum Beispiel können über die RS232-Schnittstelle Daten nicht immer ganz fehlerfrei übertragen werden, wenn die Taktfrequenz nicht genau stimmt. Daher wird in den meisten Anwendungsfällen ein Quarz zur Takterzeugung genutzt, Sie kennen das sicher aus anderen Grundschaltungen. Also erweitern wir unsere Schaltung gleich noch um einen Quarz mit den zugehörigen 22pF-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_mitquarz.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf unserem Steckbrett wird's langsam voller, hier sieht's also inzwischen so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_mitquarz.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Normalerweise sollte der Quarz genauso wie die beiden 22pF-Kondensatoren, die zum Anschwingen des Quarzes dienen, möglichst nahe am Controller platziert werden. Auf dem Steckbrett ist das manchmal gar nicht so einfach, insbesondere wenn man wie in diesem Fall den Quarz erst später hinzufügt. Wichtig ist nämlich, dass die Leitungen vom Quarz zum Controller möglichst kurz sind, bei gedruckten Schaltungen oft nur 1 bis 2 cm! Auch die einzelnen Bauteilbeinchen, z.B. der Kondensatoren, sollten normalerweise so kurz wie möglich sein.&lt;br /&gt;
Ist dies nicht der Fall, wie auch in unserem Bild, dann fungieren diese Leitungen fast wie eine Funkantenne. Dies führt in der Regel zu starken Hochfrequenzsignalen, die nicht nur unsere Schaltung, sondern auch andere Schaltungen in der Nähe stören könnten. Man merkt dies auch oft daran, dass sich ein Board bei höherer Quarzfrequenz immer seltener fehlerfrei ohne Übertragungsfehler programmieren läßt.&lt;br /&gt;
Grundsätzlich sind daher Schaltungen mit Quarz auf einem Steckbrett nicht sonderlich zu empfehlen, die Betriebssicherheit ist nicht immer gegeben. &lt;br /&gt;
&lt;br /&gt;
Auch wenn nun ein Quarz angeschlossen ist, so wird er noch immer nicht genutzt. Noch immer arbeitet der [[ATMega32]] mit seiner intern voreingestellten 1 Mhz Taktfrequenz. Um dies umzustellen, muss man ein sogenanntes [[Fusebits|Fusebit]] im Controller umprogrammieren. Auch dies wurde schon im Beitrag [[Bascom - Erstes Programm in den AVR_Controller übertragen]] näher beschrieben. Hier sei daher nur nochmals gesagt, dass dies auch sehr bequem in [[Bascom]] erfolgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_bascomfusebitquarz.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sobald wir das umgestellt haben, müssen wir auch in dem Programm die Anweisung &lt;br /&gt;
&lt;br /&gt;
 $crystal = 1000000 &lt;br /&gt;
&lt;br /&gt;
durch &lt;br /&gt;
&lt;br /&gt;
 $crystal = 16000000 &lt;br /&gt;
&lt;br /&gt;
ersetzen, denn unser Quarz taktet nun mit 16 MHz.&lt;br /&gt;
&lt;br /&gt;
==Spannung stabilisieren==&lt;br /&gt;
Auch wenn unsere Basis-Schaltung für Experimente inzwischen schon ganz nett ist, so ist es doch etwas ungünstig, dass wir stets 5V zur Verfügung haben müssen. Nicht immer steht ein geeignetes Netzteil zur Verfügung, zudem soll ein Controller auch oft mit Batterien versorgt werden. Aus diesem Grund verfügen fast alle Entwicklungsboards wie ([[RN-Control]], STK500 etc.) über einen [[Spannungsregler]].&lt;br /&gt;
[[Bild:78s05.jpg|thumb|Spannungsregler 78S05]] Dieser wandelt eine höhere Eingangsspannung (ca. 7 bis 20 V) immer genau in  5V  um. Sowas erhöht die Betriebssicherheit einer Schaltung nochmals immens. Als [[Spannungsregler]] (IC2) wird oft der 7805 genutzt.&lt;br /&gt;
Die beiden 100nF-Kondensatoren sind wichtig, sie sollen HF-Störungen und Schwingungen vermeiden. Der Elko vor dem Spannungsregler ist vor allem dann wichtig, wenn die Spannung von einem Netzgerät kommt und noch etwas geglättet werden muss. Je höher der Strombedarf der Schaltung, desto größer muss man die Kapazität wählen. Es schadet nicht, wenn man den Elko einige Nummern größer wählt, man ist dann quasi für alle Fälle gerüstet. So sind Werte zwischen 100 uF und 2200 uF durchaus denkbar.&lt;br /&gt;
&lt;br /&gt;
Wir erweitern unsere Schaltung somit wie folgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_spannung.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_spannung.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Daten und Texte zum PC übertragen==&lt;br /&gt;
In vielen Programmen müssen Daten oder Texte vom Controller an den PC oder umgekehrt gesendet werden. Insbesondere bei komplexen Programmen kann man auf diese Weise Variableninhalte ausgeben und somit auch Fehler im Programmcode schneller finden und korrigieren. In der Regel ist das ganz einfach, denn der [[Microcontroller]] [[ATMega32]] verfügt über einen internen [[UART]], also ein Modul, das Daten über die [[RS232]]-Schnittstelle zum PC senden bzw. auch von ihm empfangen kann. Leider arbeitet jedoch die Controllerschnittstelle mit 5V und die PC-Schnittstelle der Norm entsprechend mit +-12V. Daher muss unbedingt ein Schaltkreis dazwischen, welcher die Pegel anpasst. Gewöhnlich nimmt man hier das IC MAX232(CPE), welches inzwischen sehr preiswert erhältlich ist.&lt;br /&gt;
&lt;br /&gt;
Wir müssen also die Schaltung nochmals erweitern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_grundschaltung_max232.gif|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das IC Max232 ist im Schaltplan in der üblichen funktionsorientierten Darstellung gezeichnet. '''Zur besseren Übersichtlichkeit wurden die immer benötigten Anschlüsse für VCC (Pin 16) und GND (Pin 15) am MAX232 getrennt oben rechts im Schaltplan dargestellt. Also nicht vergessen !!'''&lt;br /&gt;
&lt;br /&gt;
Auf dem Steckbrett sieht's so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_max232.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über eine dreipolige Stiftleiste ([[RN-Definitionen]]) wird nun das Steckboard mit der [[RS232]]-Schnittstelle des PC verbunden. Es ist nun ein Leichtes, mit einem Programm Daten zum PC zu senden. Das nachfolgende Programm gibt Hinweise mit der Anweisung '''PRINT''' aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'step5.bas.BAS&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz.de AVR Tutorial in RN-Wissen&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank Brall&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter&lt;br /&gt;
'  http://www.Roboternetz.de oder&lt;br /&gt;
'  http://www.Roboternetz.de/wissen&lt;br /&gt;
'#######################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$crystal = 16000000&lt;br /&gt;
$baud = 9600&lt;br /&gt;
&lt;br /&gt;
Config Portc.0 = Output              'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)&lt;br /&gt;
&lt;br /&gt;
Config Pina.7 = Input                'Ein Pin (PA0) wird als Eingang definiert&lt;br /&gt;
Porta.7 = 1                          'Interner Pullup Widerstand ein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  If Pina.7 = 1 Then&lt;br /&gt;
    Portc.0 = 1                      'Pin wird auf High, also 5V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter nicht gedrückt&amp;quot;&lt;br /&gt;
  Else&lt;br /&gt;
    Portc.0 = 0                      'Pin wird auf Low, also 0V geschaltet&lt;br /&gt;
    Print &amp;quot;Schalter gedrückt&amp;quot;&lt;br /&gt;
  End If&lt;br /&gt;
  Wait 1&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Möglichkeiten des Steckbrettes erreicht==&lt;br /&gt;
Inzwischen füllt der Schaltplan fast ein DIN-A4-Blatt und auf dem Steckbrett sieht's auch schon recht wirr aus, dabei haben wir nur die wichtigsten Grundelemente auf dem Steckbrett. Für eine Roboter-Steuerung oder andere Anwendung fehlt doch noch einiges. Zum Beispiel weitere Taster, weitere LEDs, Motortreiber, damit der Controller auch Motoren ansteuern kann und ein [[I2C]]-Bus-Anschluss.&lt;br /&gt;
Dies alles noch auf einem Steckbrett zu realisieren macht wenig Sinn, zumal bereits jetzt schon durch die doch recht langen Leitungen/Verkabelungen erhebliche Störungen auftreten. In der letzten Phase ist es immer öfters zu Übertragungsfehlern beim Programmieren gekommen, oft musste dies 20mal wiederholt werden. Dies zeigt, dass ein Steckbrett bestenfalls für ganz kleine Controller-Experimente herhalten kann. Für größere Dinge sollte man dann doch zu einer Lösung auf einer gedruckten Platine greifen. Spezielle Experimentierboards  bieten mehr Sicherheit und haben neben den Grundelementen, die hier beschrieben wurden, noch eine ganze Menge mehr drauf. Bei [[RN-Control]] zum Beispiel 5 Tasten, 8 Leds, Motortreiber, Lautsprecher, diverse Anschlüsse etc. &lt;br /&gt;
Der Größenunterschied wird im Bild deutlich:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_steckbrett_rncontrol.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auch wenn das Steckbrett also kein Controllerboard ersetzen kann, so hat das kleine Tutorial doch gezeigt, wie eine [[Avr]]-Schaltung aufzubauen ist. Dieses Wissen sollte man auch besitzen, wenn man ein Controllerboard nutzt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Was braucht man, wenn man mit einem Controllerboard den Einstieg startet?==&lt;br /&gt;
[[Bild:avrtutorial_ispkabel.jpg|thumb|ISP-Programmierkabel]]Neben dem eigentlichen Board braucht man, wie schon zuvor angesprochen, ein [[AVR-ISP Programmierkabel]]. Wenn der PC noch einen Parallelport oder RS232 Port on Board hat, kann man ein einfaches Programmierkabel nutzen. Das kann man selbst bauen oder auch fertig mitzubestellen (siehe Bild). &lt;br /&gt;
Wenn man nur USB zur verfügung hat, wird man den Programmer wohl kaufen müssen, denn USB-RS232 oder USB-LPT Adapter funktionieren fast nie mit den einfachen Programmern, die man gut selber bauen kann. Die Kombination aus eine USB-RS232 und einem Intelligenten Seriellen Programmer (z.B. STK500) funktioniert dagegen.&lt;br /&gt;
&lt;br /&gt;
Als zweites braucht man natürlich eine Stromversorgung. Ideal sind Gleichspannungsnetzgeräte, die zwischen 9 und 12V liefern, vorausgesetzt, das Board hat einen Spannungsregler wie in der Regel die RN-Boards. Man kann hier ein normales Steckernetzteil oder ein komfortables Labornetzteil nehmen. Um etwas Reserve zu haben, wäre es gut, wenn das Netzteil mindestens 200 mA (mit Motoren besser 1 A) liefern kann. Der Controller selber baucht nur etwa 1 mA je MHz Taktfrequenz.&lt;br /&gt;
Alternativ kann man auch Akkupacks oder Batterien nutzen, allerdings mindestens 7,2V sollten die schon liefern können, sicherer sind 8,4-, 9,6- oder 12V-Akkus.&lt;br /&gt;
Das wäre eigentlich schon das Wichtigste, um ein Board in Betrieb zu nehmen und Experimente zu machen. &lt;br /&gt;
&lt;br /&gt;
Allerdings, ein RS232-Kabel ist ebenfalls noch sehr empfehlenswert. Dieses erlaubt die Ausgabe von Texten und Variablen auf den PC, wir haben es ja oben im Steckbrettbeispiel schon gesehen. Dazu wird auf dem PC ein [[Terminalprogramm]] gestartet und über die [[RS232]] Schnittstelle mit dem PC verbunden. Bei manchen Boards ist sowieso ein RS232 Kabel unerläßlich, wie z.B. RN-Motor, RN-Speak etc. Nützlich ist es aber überall. Man kann ein solches Kabel selbst bauen oder gleich beim Kauf eines Boardes mitbestellen.&lt;br /&gt;
&lt;br /&gt;
Also nochmal die Zusammenfassung für den Einstieg:&lt;br /&gt;
&lt;br /&gt;
* Controllerboard&lt;br /&gt;
* [[AVR-ISP Programmierkabel]] mit 10-poligem Wannenstecker&lt;br /&gt;
* RS-232-Kabel (mit 3-poligem Adapter, wenn Board [[RN-Definitionen]] erfüllt)&lt;br /&gt;
* Netzgerät oder Akku (ideal 9 bis 12V, notfalls auch 7,2 bis 20V)&lt;br /&gt;
* [[Bascom]]-Compiler-Vollversion ist nur nötig, wenn man gleich größere Sachen anstrebt, ansonsten reicht das Demo, genauso wie ein [[Avr-gcc]]-Compiler. Bei RN-Boards sind diese Programme beim Board- oder Platinenkauf sowieso dabei, ansonsten kann man diese im Internet downloaden.&lt;br /&gt;
* Ein gutes Buch ist immer gut, siehe [[Buchvorstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
*[[Benutzer:Frank|Frank]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quellen===&lt;br /&gt;
* [[Abblockkondensator]] Artikel von Uwegw&lt;br /&gt;
* RN-Board Dokumentationen aus [[:Kategorie:Projekte]]&lt;br /&gt;
* diverse Datenblätter&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[AVR-ISP Programmierkabel]]&lt;br /&gt;
*[[Mit welchem Controllerboard fang ich an]]&lt;br /&gt;
*[[Abblockkondensator]]&lt;br /&gt;
*[[Bascom]]&lt;br /&gt;
*[[Bascom - Erstes Programm in den AVR_Controller übertragen]]&lt;br /&gt;
*[[Avr]]&lt;br /&gt;
*[[Atmel Controller Mega16 und Mega32]]&lt;br /&gt;
*[[Spannungsregler]]&lt;br /&gt;
*[[Hallo_Welt_für_AVR_(LED_blinken)#Quellcode]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.youtube.com/watch?v=cGtC7e44abA&amp;amp;feature=plcp&amp;amp;context=C37e7441UDOEgsToPDskJmsEAf0l4u9UVXLqURe7ID Neu - Video zu AVR Experimentierboard RN-AVR Universal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:Quellcode_Bascom]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:800px-Avrtutorial_grundschaltung_mega32.gif&amp;diff=21018</id>
		<title>Datei:800px-Avrtutorial grundschaltung mega32.gif</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:800px-Avrtutorial_grundschaltung_mega32.gif&amp;diff=21018"/>
				<updated>2012-09-16T10:47:43Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: Neue Version der Grundschaltung vom Mega32 ohne Beschaltung des AREF Eingangs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Neue Version der Grundschaltung vom Mega32 ohne Beschaltung des AREF Eingangs&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_Internetradio&amp;diff=20937</id>
		<title>Raspberry PI: Internetradio</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_Internetradio&amp;diff=20937"/>
				<updated>2012-09-08T18:01:37Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Grundausrüstung Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Projekt Internetradio mit dem Raspberry Pi ==&lt;br /&gt;
&lt;br /&gt;
Anbei mein &amp;quot;kleines&amp;quot; Projekt, den Raspberry Pi als Internet Radio zu betreiben. Die Steuerung erfolgt über einen AVR, welcher im Frontend seines Gehäuses im Wohnzimmer sitzt. &lt;br /&gt;
&lt;br /&gt;
Das Gehäuse ist vom MediaReceiver X300T von der Telekom, welche es nicht zurück haben wollte, obwohl bei mir kein IP-TV möglich war.&lt;br /&gt;
So habe ich ich mich damit befasst, dem Atmega88 auf dem Frontend ein eigenes Programm zu schreiben, um ihn für eigene Zwecke einzusetzen...&lt;br /&gt;
&lt;br /&gt;
Man kann den Atmega88 &amp;quot;direkt&amp;quot; per Pegelwandler mit dem Raspberry verbinden. &lt;br /&gt;
&lt;br /&gt;
[[Bild:PiPegelwandler.png]]&lt;br /&gt;
&lt;br /&gt;
Die Schaltung ist mit bis zu 115200 Baud getestet. Bei mir wird über den 5V PIN noch der Raspberry gespeist. Jedoch ist Flachbandleitung dafür dann nicht mehr geeignet!&lt;br /&gt;
&lt;br /&gt;
== Benötigt ==&lt;br /&gt;
1 Raspberry Pi&amp;lt;br/&amp;gt;&lt;br /&gt;
1 SD-Karte (2GB aufwärts)&amp;lt;br/&amp;gt;&lt;br /&gt;
FTP-Software auf dem PC (Totalcommander)&amp;lt;br/&amp;gt;&lt;br /&gt;
Linuxfähiger Texteditor auf dem PC (Notepadd++)&amp;lt;br/&amp;gt;&lt;br /&gt;
optional eine USB Soundkarte (Speedlink mit C-Media Chip)&amp;lt;br/&amp;gt;&lt;br /&gt;
Irgendwas, was mit dem Raspberry Pi seriell kommunizieren kann. (AVR, PIC, Terminalsoftware,...)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Einige Hinweise zu nano, dem Texteditor des Raspberry ====&lt;br /&gt;
&lt;br /&gt;
Mittels den Pfeiltasten wird navigiert. Bild auf/Bild ab blätter eine ganze Seite. Zahlen nicht über den 10er Block (Ziffernblock) der Tastatur eingeben. STRG-X beendet nano. &amp;lt;br/&amp;gt;&lt;br /&gt;
Falls gewünschte Änderungen gemacht wurden, kann man mit y und anschließend ENTER diese bestätigen oder falls man sich vertan hat, mit n einfach ohne zu speichern raus. Wird Putty genutzt, lässt sich der Inhalt der Zwischenablage mit einem Rechtsklick an der aktuellen Cursorposition einfügen. Man kann auch den Cursor irgendo platzieren, mit gedrückter linken Maustaste etwas markieren und dann mit Rechtsklick an der Cursorposition einfügen. Markierter Text wird automatisch in die Zwischenablage kopiert und ist in anderen Programmen verfügbar.&lt;br /&gt;
&lt;br /&gt;
==== Projektordner ====&lt;br /&gt;
Von Vorteil ist ein Projektordner auf dem PC, worin man arbeitet und Dateien ablegt. Nach jedem reboot muss man sich natürlich wieder einloggen. Mittels Putty und ssh einfach auf das Icon am Fensterrand klicken und restart Session auswählen. Wird dieses nicht angeboten, einfach mal im Fenster ein paar Tasten drücken und ENTER hinterher. Dann sollte Putty irgendwann merken, dass am anderen Ende keiner mehr reagiert. Die ganze Zeit über benötigt der RasPi eine Internetverbindung.&lt;br /&gt;
&lt;br /&gt;
==== Allgemeine Hinweise  ====&lt;br /&gt;
Installation des Wheezy Raspian (Version 2012-15-07) per Imagewriter wie öfter beschrieben.&lt;br /&gt;
&lt;br /&gt;
Die Verbindung zum Raspberry läuft bei mir per FTDI USB - Seriell Wandler. Achtung! darauf achten dass die Pegel auf 3,3V eingestellt sind!&lt;br /&gt;
Über die Software Putty (Comport wählen, 115200 Baud, 8N1) Oder man schließt einen TV/Monitor und eine Tastatur an.&lt;br /&gt;
&lt;br /&gt;
Eine externe Soundkarte hat sich bei meinen Tests bewährt. Über den analogen OnBoard Sound des RasPi gibt es hin und wieder Knackser, sowie kurze Aussetzer. Über HDMI sind&lt;br /&gt;
diese nicht vorhanden. Wer keine HDMI - fähige Audioanlage hat, dem empfehle ich einen USB-Sound Stick. Ich nutze im Produktivsystem einen von Speedlink mit C-Media Chip und am Testsystem einen von Medion, welcher mit externen Lautsprechern und dafür eingebautem Verstärker ideal für die Tests ist. Für die Stereoanlage ist dieser Stick dann nicht mehr geeignet, da der Ausganspegel zu groß ist und beim ersten Initialisieren voll ansteht, auch wenn man die Lautstärke auf 0 setzt. Auch ist der Sound nicht ganz so (oder gerade??) berauschend, was aber auch an den Lautsprechern liegen kann.&lt;br /&gt;
&lt;br /&gt;
== Grundeinrichtung des Linux auf dem RasPi ==&lt;br /&gt;
Nach dem Hochfahren einloggen mittels pi und raspberry&lt;br /&gt;
Als erstes habe ich dem root ein Passwort vergeben, damit ich am System direkt als root (Admin) arbeiten kann, ohne ständig sudo einzugeben.(Das Passwort merken / aufschreiben!): &lt;br /&gt;
 sudo passwd root&lt;br /&gt;
danach mit exit wieder raus und als root neu angemeldet&lt;br /&gt;
&lt;br /&gt;
Danach startet automatisch die Konfigurationsoberfläche. Falls nicht, einfach &lt;br /&gt;
&lt;br /&gt;
 raspi-config&lt;br /&gt;
&lt;br /&gt;
eingeben&lt;br /&gt;
&lt;br /&gt;
Die Bedienung erfolgt per Tastatur. Mit den Pfeiltasten kann man wählen und mittels TAB springt man zu den Optionsfeldern.&lt;br /&gt;
Dort die locale auf de_DE.UTF 8 umgestellt. &lt;br /&gt;
Die Default locale im nächsten Fenster habe ich einfach mit ok auf en_GB gelassen.&lt;br /&gt;
Anschließend auf Set Keyboard layout &lt;br /&gt;
Danach dann Set Timezone auf EUROPE BERLIN&lt;br /&gt;
Bei ssh sichergestellt, dass es aktiviert ist.&lt;br /&gt;
zuletzt expand_rootfs ausgewählt, um die gesamte SD-Karte nutzen zu können.&lt;br /&gt;
&lt;br /&gt;
NEUSTART  durch Unterbrechung der Stromversorung oder Eingabe von &lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
Nach dem Einloggen erscheint womöglich gleich wieder das Config Tool. Das beende ich dann gleich wieder per Auswahl fon FINISH.&lt;br /&gt;
Die Netzwerkeinstellungen stehen in der Datei /etc/network/interfaces. Zum Anpassen&lt;br /&gt;
 &lt;br /&gt;
 nano /etc/network/interfaces &lt;br /&gt;
&lt;br /&gt;
eingegeben, um auf eine statische IP-Adresse zu wechseln, damit ich ihn immer unter der selben Adresse erreiche.&lt;br /&gt;
Alternativ kann man auch im Router einstellen, dass dem Raspi per DHCP immer die selbe Adresse zugewiesen werden soll.&lt;br /&gt;
&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 #iface eth0 inet dhcp&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
 address 192.168.2.37&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.2.1 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Beendet wird nano mittels STRG+X&lt;br /&gt;
Dann die Speichern Frage mit y bestätigen und nochmals Enter, um den Dateinamen beizubehalten. Dann mittels Befehl &lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
neu gestartet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt im Putty auf SSH gewechselt. Ein zweites Putty Fenster beobachtet die Ausgabe des Raspi auf dem Terminal, so kann man sehen, ob Fehler&lt;br /&gt;
gemeldet werden und wann er fertig hochgefahren ist.&lt;br /&gt;
&lt;br /&gt;
Dann &lt;br /&gt;
 apt-get update &lt;br /&gt;
um die Liste zu aktualisieren. &lt;br /&gt;
&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
um das System zu aktualisieren.&lt;br /&gt;
Die nächste Frage mit Enter bejahen (Enter bedeutet, dass der Standard, welcher groß geschrieben ist, übernommen wird (Y/n).&lt;br /&gt;
Zwischendurch evtl. Fragen bestätige ich einfach mit ENTER.&lt;br /&gt;
Nach der Frage, ob aktualisiert werden soll, was etwas dauert, ist erstmal Zeit für eine Kaffeepause...&lt;br /&gt;
Diese kann auch nutzen, indem man sich einen Linux - fähigen Texteditor installiert. (Ich nutze Notepad++)&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
 raspi-config&lt;br /&gt;
&lt;br /&gt;
Jetzt den MemorySplit auf 240 MB Arbeitsspeicher und 16 MB Videospeicher ändern.&lt;br /&gt;
&lt;br /&gt;
Die Frage nach dem Reboot bejahen...&lt;br /&gt;
&lt;br /&gt;
== Grundausrüstung Software ==&lt;br /&gt;
Jetzt brauchen wir noch ein paar Programme auf dem Raspberry Pi. &lt;br /&gt;
GCC, um eigene Programm zu erstellen (könnte schon vorhanden sein), einen FTP-Server zur bequemen Dateiübertragung und natürlich eine Software für das Internetradio. Da habe ich mich für mpd entschieden.&lt;br /&gt;
&lt;br /&gt;
 apt-get install gcc&lt;br /&gt;
&lt;br /&gt;
=== Einrichtung ftp ===&lt;br /&gt;
Herunterladen und installieren, Konfiguration anpassen:&lt;br /&gt;
&lt;br /&gt;
 apt-get install vsftpd&lt;br /&gt;
 nano /etc/ftpusers&lt;br /&gt;
&lt;br /&gt;
Dort die Zeile root auskommentieren. &lt;br /&gt;
&lt;br /&gt;
 #root&lt;br /&gt;
&lt;br /&gt;
Dann STRG-X, y, ENTER&lt;br /&gt;
&lt;br /&gt;
Jetzt &lt;br /&gt;
&lt;br /&gt;
 nano /etc/vsftpd.conf&lt;br /&gt;
&lt;br /&gt;
Dort die # am Anfang der Zeile #local_enable=YES entfernen &lt;br /&gt;
&lt;br /&gt;
 local_enable=YES&lt;br /&gt;
&lt;br /&gt;
und anonymous_enable=YES ändern auf&lt;br /&gt;
&lt;br /&gt;
 anonymous_enable=NO&lt;br /&gt;
&lt;br /&gt;
und #write_enable=YES ändern auf&lt;br /&gt;
&lt;br /&gt;
 write_enable=YES&lt;br /&gt;
&lt;br /&gt;
Dann STRG-X, y, ENTER&lt;br /&gt;
&lt;br /&gt;
Jetzt mit &lt;br /&gt;
&lt;br /&gt;
 service vsftpd restart&lt;br /&gt;
&lt;br /&gt;
den ftp Server neu starten.&lt;br /&gt;
&lt;br /&gt;
Jetzt sollte der Zugriff per ftp möglich sein.&lt;br /&gt;
&lt;br /&gt;
=== Mediaplayer Dämon ===&lt;br /&gt;
Herunterladen und installieren des mpd sowie mpc, welches den mpd dann für uns anspricht.&lt;br /&gt;
&lt;br /&gt;
 apt-get install mpd mpc&lt;br /&gt;
&lt;br /&gt;
Als nächstes benötigen wir eine URL Liste von Internetradios. Viele Sender erwähnen ihre Livestream-URLs nicht direkt. Ich habe die Adressen &lt;br /&gt;
herausgefunden, indem ich einfach in der Fritzbox den Verkehr mitgeloggt (fritz.box/html/capture.html) und per Wireshark durchsucht habe.&lt;br /&gt;
&lt;br /&gt;
Es gibt aber auch Internetseiten, wo einige URLs aufgelistet sind.&lt;br /&gt;
&lt;br /&gt;
Zum Anfang reicht uns eine Liste mit 3 URLs.&lt;br /&gt;
&lt;br /&gt;
 http://www.energyradio.de/rock&lt;br /&gt;
 http://www.energyradio.de/berlin&lt;br /&gt;
 http://www.energyradio.de/hot&lt;br /&gt;
&lt;br /&gt;
Diese wird mit einem Linuxfähigen Editor erstellt, abgespeichert als radiosender.m3u und per ftp nach /var/lib/mpd/playlists/ kopiert.&lt;br /&gt;
&lt;br /&gt;
Anschließend die Rechte der Datei ändern, damit mpd darauf zugreifen kann.&lt;br /&gt;
&lt;br /&gt;
 chmod 644 /var/lib/mpd/playlists/radiosender.m3u&lt;br /&gt;
&lt;br /&gt;
==== Konfiguration des MPD ====&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mpd.conf&lt;br /&gt;
&lt;br /&gt;
Die Zeile &lt;br /&gt;
&lt;br /&gt;
 bind_to_address         &amp;quot;localhost&amp;quot; &lt;br /&gt;
wurde zu &lt;br /&gt;
 bind_to_address         &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da er anscheinend localhost nicht auflösen kann.&lt;br /&gt;
&lt;br /&gt;
Dort kann man auch einen anderen Adressbereich angeben, um z.B. aus dem Netzwerk darauf zugreifen zu können.&lt;br /&gt;
&lt;br /&gt;
Auskommentiert (#) habe ich folgende Zeilen: &lt;br /&gt;
 #log_file &lt;br /&gt;
 #state_file&lt;br /&gt;
so wird das loggen abgeschaltet, mit state_file spielt der mpd sofort nach dem Start dort weiter, wo er aufgehört hat, das wollte ich nicht.&lt;br /&gt;
&lt;br /&gt;
Weiter unten noch unter audio_output habe ich für den USB-Sound-Stick folgendes stehen:&lt;br /&gt;
&lt;br /&gt;
 audio_output {&lt;br /&gt;
        type            &amp;quot;alsa&amp;quot;&lt;br /&gt;
        name            &amp;quot;My ALSA Device&amp;quot;&lt;br /&gt;
        device          &amp;quot;hw:1,0&amp;quot;        # optional für Headphone-Anschluss: &amp;quot;hw:0,0&amp;quot;&lt;br /&gt;
        format          &amp;quot;44100:16:2&amp;quot;    # optional&lt;br /&gt;
        mixer_device    &amp;quot;default&amp;quot;       # optional&lt;br /&gt;
        mixer_control   &amp;quot;PCM&amp;quot;           # optional&lt;br /&gt;
        mixer_index     &amp;quot;0&amp;quot;             # optional&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
noch weiter unten wird die auskommentierte Zeile &lt;br /&gt;
&lt;br /&gt;
 #mixer_type             &amp;quot;software&amp;quot; &lt;br /&gt;
&lt;br /&gt;
durch wegnehmen der # aktiviert. Für den analogen Anschluss des Raspberry wird der Hardware Mixer aktiviert.&lt;br /&gt;
&lt;br /&gt;
Die Zeilen&lt;br /&gt;
&lt;br /&gt;
 #audio_buffer_size              &amp;quot;2048&amp;quot;&lt;br /&gt;
 #buffer_before_play             &amp;quot;10%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
werden auch aktiviert.&lt;br /&gt;
&lt;br /&gt;
Das Encoding für die Tags ändert man weiter unten. Mit folgender Einstellung passen bei mir die meisten Titel:&lt;br /&gt;
&lt;br /&gt;
 id3v1_encoding                  &amp;quot;ISO-8859-1&amp;quot; #UTF-8&lt;br /&gt;
&lt;br /&gt;
STRG-X, y, ENTER&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/mpd restart&lt;br /&gt;
&lt;br /&gt;
startet den mpd mit den neuen Einstellungen neu&lt;br /&gt;
&lt;br /&gt;
==== Test des mpd ====&lt;br /&gt;
&lt;br /&gt;
 mpc&lt;br /&gt;
&lt;br /&gt;
eingeben. Wenn die Verbindung steht, sollte da sowas in der Art rauskommen:&lt;br /&gt;
&lt;br /&gt;
volume:100%   repeat: off   random: off   single: off   consume: off&lt;br /&gt;
&lt;br /&gt;
jetzt laden wir die Playlist:&lt;br /&gt;
&lt;br /&gt;
 mpc load radiosender&lt;br /&gt;
&lt;br /&gt;
Die erste URL öffnen geht mit&lt;br /&gt;
&lt;br /&gt;
 mpc play 1&lt;br /&gt;
&lt;br /&gt;
Die Zweite URL mit &lt;br /&gt;
&lt;br /&gt;
 mpc play 2&lt;br /&gt;
&lt;br /&gt;
und so weiter.&lt;br /&gt;
&lt;br /&gt;
 mpc stop&lt;br /&gt;
&lt;br /&gt;
beendet die Wiedergabe.&lt;br /&gt;
&lt;br /&gt;
 mpc play&lt;br /&gt;
&lt;br /&gt;
spielt dort weiter, wo aufgehört wurde.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen eigener Programme ==&lt;br /&gt;
=== SD-Karte sichern ===&lt;br /&gt;
Wenn das alles klappt, können wir uns der Steuerung über UART widmen. Dazu habe ich ein Programmpaket erstellt, welches die Aufrufe des mpc automatisch nach empfangenen Daten macht.&lt;br /&gt;
&lt;br /&gt;
Da ich die interne UART nutzen möchte, gebe ich diese als erstes frei.&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;{{FarbigerRahmen|&lt;br /&gt;
Hier wäre ein guter Punkt, wo eine Datensicherung der SD-Karte durchgeführt werden sollte. &lt;br /&gt;
Den Raspberry Pi abschalten&lt;br /&gt;
Die SD-Karte in einen Kartenleser stecken.&lt;br /&gt;
Den Win32DiskImager starten&lt;br /&gt;
Bei Device sicherstellen, dass der richtige Buchstabe ausgewählt ist&lt;br /&gt;
Den Dateinamen angeben, unter welchem gesichert werden soll (Blaues Ordnersymbol)&lt;br /&gt;
Den Dateinamen angeben z.B. 2012-08-26RaspiRadio.img&lt;br /&gt;
Dann den Button READ! auswählen&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Audiodatei zur Initialisierung ===&lt;br /&gt;
Es kann vorkommen, dass beim ersten Start nichts vernünftiges aus den Lautsprechern herauskommt. Daher bietet es sich an, beim Start eine kleine Datei abspielen zu lassen.&lt;br /&gt;
Diese kann man sich z.B. recht einfach bei Windows besorgen. Ich habe mich für c:\windows\media\Windows-Hardware hinzufügen.wav entschieden.&lt;br /&gt;
Die gewählte wav Datei am besten in den Raspberry Arbeitsordner kopieren und in z.B. start.wav umbenennen.  Zur Vorbereitung für später werden unter /var zwei Ordner erstellt.&lt;br /&gt;
&lt;br /&gt;
=== Arbeitsordner auf der SD-Karte ===&lt;br /&gt;
 mkdir /var/scripte&lt;br /&gt;
 mkdir /var/sounds/&lt;br /&gt;
&lt;br /&gt;
Danach muss die Datei noch auf die SD-Karte des Raspberry. Der Einfachheit wegen per ftp nach /var/sounds. Jetzt die Datei noch für alle lesbar freigeben.&lt;br /&gt;
&lt;br /&gt;
chmod -r 644 /var/sounds/start.wav&lt;br /&gt;
&lt;br /&gt;
=== Eigener Autostart ===&lt;br /&gt;
Damit das Soundsystem (und später noch andere Programme) initialisert wird, bietet es sich an, eine eigene Startdatei zu erstellen. Sozusagen die autoexec.bat von damals.&lt;br /&gt;
&lt;br /&gt;
 nano /var/scripte/autostart.sh&lt;br /&gt;
&lt;br /&gt;
Der Inhalt sieht erstmal so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Autostart&lt;br /&gt;
#&lt;br /&gt;
# &lt;br /&gt;
&lt;br /&gt;
##sound&lt;br /&gt;
amixer cset numid=3 1 &lt;br /&gt;
amixer -c 0 cset numid=2 on,off&lt;br /&gt;
amixer set PCM 96%&lt;br /&gt;
aplay /var/sounds/start.wav&lt;br /&gt;
nice -1 /var/scripte/empfangen &amp;amp;&lt;br /&gt;
nice -1 /var/scripte/mpcout &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
STRG-X, y, ENTER&lt;br /&gt;
&lt;br /&gt;
Damit diese Datei später auch ausgeführt wird, muss sie auch aufgerufen werden und ausführbar sein. Das lässt sich in der rc.local machen.&lt;br /&gt;
&lt;br /&gt;
 chmod 755 /var/scripte/autostart.sh&lt;br /&gt;
 nano /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
Dort in der freien Zeile über exit 0 kommt der Aufruf rein.&lt;br /&gt;
&lt;br /&gt;
 /var/scripte/autostart.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
STRG-X, y, ENTER&lt;br /&gt;
&lt;br /&gt;
Wenn jetzt die rc.local nochmal gestartet wird, sollten die Mixereinstellungen gezeigt die Audiodatei abgespielt werden.&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
Um zu testen, ob alles läuft:&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
Wer möchte, kann jetzt nochmal das Putty Log analysieren, denn Putty schreibt immer noch fleißig mit. Anschließend das Logging in Putty wieder abschalten, wenn man möchte.&lt;br /&gt;
&lt;br /&gt;
==== Hintergrundanwendungen ====&lt;br /&gt;
Programme, welche im Hintergrund weiter ausgeführt werden sollen, wie unser Empfänger und Überwacher weiter unten, werden mit nice und dem &amp;amp; Parameter gestartet.&lt;br /&gt;
 nice -1 /var/scripte/empfang &amp;amp;&lt;br /&gt;
 nice -1 /var/scripte/mpcout &amp;amp;&lt;br /&gt;
Wird der &amp;amp; Parameter nicht angegeben, wartet die BASH, bis das aufgerufene Programm beendet wurde und dann werden die nachfolgenen Befehle nicht mehr ausgeführt.&lt;br /&gt;
Nice sorgt dafür, dass die Programmpriorität geändert wird. negative Werte erhöhen die Priorität, positive Werte verringern diese. Möglich ist -20 bis 19.&lt;br /&gt;
&lt;br /&gt;
== Feigeben der UART für eigene Projekte ==&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
Um die interne UART auf den GPIOs freizugeben, müssen 2 Dateien bearbeitet werden. Diese sind für den Start von Relevanz und die Bearbeitung muss demnach auch gewissenhaft durchgeführt werden. &lt;br /&gt;
Daher evtl. nochmal die SD Karte sichern, wie oben beschrieben.}}&lt;br /&gt;
&lt;br /&gt;
Um das Syslog abzuschalten, geht es jetzt an die /boot/cmdline.txt&lt;br /&gt;
&lt;br /&gt;
 nano /boot/cmdline.txt&lt;br /&gt;
&lt;br /&gt;
Wie der Name schon sagt, besteht die Datei aus einer Zeile. &lt;br /&gt;
&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Die interne UART heisst ttyAMA0 und dieser Teil stört für das Projekt, deswegen kommt er weg. Die neue Zeile:&lt;br /&gt;
&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
STRG-X, y, ENTER&lt;br /&gt;
&lt;br /&gt;
Testen, ob es noch hochfährt.&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
Warten, bis start.wav ertönt und dann neu einloogen.&lt;br /&gt;
&lt;br /&gt;
Jetzt ist noch eine Konsole über UART offen, diese lässt sich in der inittab abschalten.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/inittab&lt;br /&gt;
&lt;br /&gt;
Dort wird alles, was ttyAMA0 beinhaltet mittels # deaktiviert. Normal in der letzten Zeile eine # voran gesetzt.&lt;br /&gt;
&lt;br /&gt;
 #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
STRG-X, y, ENTER&lt;br /&gt;
&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
Ist alles richtig gemacht, dürfte sich auf dem Putty, welches über die UART verbunden ist, nichts mehr tun.&lt;br /&gt;
&lt;br /&gt;
== Zu Fuss Audio abspielen ==&lt;br /&gt;
Um den mpd und die Befehle, welcher mpc versteht, kennen zu lernen, kann man mittels&lt;br /&gt;
 mpc help&lt;br /&gt;
sich alle Befehle auflisten lassen.&lt;br /&gt;
Die wichtigsten für das Projekt:&lt;br /&gt;
 mpc clear&lt;br /&gt;
 mpc load &lt;br /&gt;
 mpc play&lt;br /&gt;
 mpc volume&lt;br /&gt;
 mpc lsplaylists&lt;br /&gt;
 mpc stop&lt;br /&gt;
 mpc current&lt;br /&gt;
&lt;br /&gt;
&amp;quot;mpc clear&amp;quot; stoppt die Wiedergabe und leert die Playliste (Nicht die Datei radiosender, sondern die interne Playliste)&lt;br /&gt;
&amp;quot;mpc load NAME&amp;quot; lädt die Playliste NAME und hängt diese an die interne dran, wenn schon eine vorhanden ist. Also 3 Mal &lt;br /&gt;
 mpc load radiosender&lt;br /&gt;
erzeugt eine Liste, welche den Inhalt 3 Mal hintereinander enthält. &amp;quot;mpc play&amp;quot; setzt die Wiedergabe an der Stelle fort, &lt;br /&gt;
wo mit &amp;quot;mpc stop&amp;quot; angehalten wurde. &amp;quot;mpc play x&amp;quot; spielt nummer x der Playliste ab, &amp;quot;mpc volume 50&amp;quot; setzt die Lautstärke &lt;br /&gt;
auf 50%. &amp;quot;mpc lsplaylists&amp;quot; gibt die Namen der aktuellen Playliste(n) aus. &amp;quot;mpc current&amp;quot; gibt je nach Verfügbarkeit den aktuellen Titel, Sender, Interpret aus.&lt;br /&gt;
&lt;br /&gt;
== gcc ==&lt;br /&gt;
gcc ist der Compiler, welcher aus C - Quellcode ausführbare Programme erstellt. Interessant ist, dass er auch laufende Programme überschreiben kann.&lt;br /&gt;
&lt;br /&gt;
Den Quellcode erstelle ich mittels Notepad++. Stellt man da die Sprache auf C oder lädt Dateien, welche *.c heißen, dann wird der Code farblich hervorgehoben.&lt;br /&gt;
Anschließend lade ich den Code per ftp in das Verzeichnis /var/scripte, welches mein allgemeines Arbeitsverzeichnis auf dem Raspberry darstellt. Es bietet sich an,&lt;br /&gt;
wenn man größere Änderungen an einem Code vorhat, die bisherige Version zu sichern. Manchmal möchte man dcoch mal was nachschlagen oder einfach nur auf den alten&lt;br /&gt;
Stand zurück, da man sich vielleicht doch gerade in eine Sackgasse verfahren hat.&lt;br /&gt;
&lt;br /&gt;
Ich nutze allgemein nur kleingeschriebene Dateinamen, da Linux Groß- Kleinbuchstaben darin unterscheidet. Dieses gilt auch für den gcc im Quellcode. Eine Variable, welche Text heißt, wird unter text nicht gefunden. Es ist von Vorteil, Variablen beim Definieren auch gleich einen Wert zuzuteilen, sonst behalten diese ihren Wert von dem letzten&lt;br /&gt;
Durchgang der Subroutine bei. &lt;br /&gt;
&lt;br /&gt;
C gehört nicht zu meinen Favoriten, dennoch habe ich mich etwas damit beschäftigt, um diese Programme hier zu erstellen. Möglich, dass hier und da die Codes optimiert werden können, aber hier erfüllen diese ihren Zweck. Mit den Includes habe ich mich noch nicht ausführlich beschäftigt. Werden nicht benötigte angegeben, werden die compilierten Programme trotzdem nicht größer. Nicht benötigtes wird also vom compiler ignoriert. &lt;br /&gt;
&lt;br /&gt;
Die Quellcodes werden nach /var/scripte kopiert. Anschließend noch die Rechte auf 644 setzen. Die vom gcc erzeugten Programme besitzen automatisch Rechte zum Ausführen.&lt;br /&gt;
&lt;br /&gt;
Compiliert wird der Quelltext dann mit &lt;br /&gt;
 gcc /var/scripte/quellcodedatei.c -o /var/scripte/exedatei&lt;br /&gt;
&lt;br /&gt;
gestartet werden die Programme dann mit&lt;br /&gt;
 /var/scripte/exedatei&lt;br /&gt;
&lt;br /&gt;
Wenn man sich den Pfad jedesmal sparen will, kann man vorher auch mit &lt;br /&gt;
 cd /var/scripte&lt;br /&gt;
in das Verzeichnis wechseln und sich die Pfadangabe dann sparen. Ich habe mir angewöhnt, den kompletten Pfad mit anzugeben.&lt;br /&gt;
&lt;br /&gt;
Hängt ein Programm fest, kann man es mit STRG-C beenden. Hat man es im Hintergrund gestartet, z.B.&lt;br /&gt;
 nice -1 /var/scripte/exedatei &amp;amp;&lt;br /&gt;
dann lässt es sich mit&lt;br /&gt;
 pkill exedatei&lt;br /&gt;
beenden.&lt;br /&gt;
 pidof exedatei&lt;br /&gt;
zeigt die PID an. Wird da ein Wert zurückgegeben, dann läuft das entsprechende Programm noch.&lt;br /&gt;
 kill PID&lt;br /&gt;
beendet auch das Programm.&lt;br /&gt;
&lt;br /&gt;
Man kann auch per Putty mehrere Verbindungen gleichzeitig zu dem Raspberry offen halten und z.B. auf dem einen den Quellcode per nano direkt bearbeiten und mit dem anderen die Programme zum Testen starten. Der Vorteil daran ist, dass man mit der Pfeilhoch - Taste auf der Tastatur die letzten Befehle wiederholen kann.&lt;br /&gt;
&lt;br /&gt;
Gerade für Tests mit der seriellen UART empfehle ich, diese per Terminalprogramm offen zu halten und so zu testen. Putty lässt mit New Session zu, dass mehrere Instanzen davon laufen. Man kann auch Daten über den Com-Port zum RasPi senden, diese werden in Putty zwar normal nicht angezeigt, kommen aber trotzdem an. Mit Local Echo in den Settings kann man diese Daten aber auch anzeigen lassen. Bei dem Testsystem nutze ich einen FTDI, welcher 3,3V auf VIO hat. Das Produktivsystem nutzt die oben gezeigte Schaltung. Es gibt auch &amp;quot;richtige&amp;quot; Pegelwandler, nur hatte ich grad keinen zur Hand, wie das so Nachts am Wochenende halt ist.&lt;br /&gt;
&lt;br /&gt;
== Programme für den Zugriff ==&lt;br /&gt;
&lt;br /&gt;
=== Der Initiator ===&lt;br /&gt;
Ein BASH Script initialisiert den mpd. Ich habe mich für diese spezielle Aufgabe für ein BASH Script entschieden, da es sich recht schnell an andere Gegebenheiten anpassen lässt. Ein C-Programm könnte das gleiche, müsste halt jedesmal noch compiliert werden. Dieses Script wird nach dem Start des Empfängers einmal ausgeführt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash &lt;br /&gt;
#&lt;br /&gt;
# Radio starten&lt;br /&gt;
#&lt;br /&gt;
# &lt;br /&gt;
/etc/init.d/mpd restart #Versetzt den mpd in einen definierten Zustand&lt;br /&gt;
mpc -q clear		#Nicht nötig, wenn man kein Status File nutzt, schadet aber auch nicht, wenn man keines nutzt...&lt;br /&gt;
mpc -q load radiosender	#lädt die von uns erstellte Playlist&lt;br /&gt;
mpc -q volume 95	#setzt die Lautstärke auf 95 %&lt;br /&gt;
exit 0	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Empfänger ===&lt;br /&gt;
Der Empfänger läuft im Hintergrund und wartet auf Ereignisse, um diese auszuwerten. Das können Befehle über die UART, per I2C, IR/x10 Fernbedienung oder eine einfache Tastaturmatrix bzw. einzelne Tasten sein. Ich gehe in diesem Projekt auf die UART ein.&lt;br /&gt;
&lt;br /&gt;
Dazu wird die Schnittstelle parametriert (19200 Baud, 1 Stopbit, keine Parität, 8 Datenbits), geöffnet und ständig belauscht. Kommen bekannte Befehle rein, werden diese ausgewertet und entsprechend reagiert. Der zuletzt empfangene Befehl wird zusätzlich in die Datei /tmp/empfang.txt gespeichert. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Kompilieren mit: gcc /var/scripte/empfangen.c -o /var/scripte/empfangen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;termios.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;time.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define BAUDRATE B19200&lt;br /&gt;
char MODEMDEVICE[]= &amp;quot;/dev/ttyAMA0&amp;quot;;	// Schnittstelle&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
Sx  		x=0 aktuellen Sender neu abspielen Nach Stop oder zum neu puffern, x&amp;gt;49 Sender x-48 abspielen&lt;br /&gt;
Bx  		x=0 abspielen stoppen, x=1 mpd neu starten&lt;br /&gt;
Px			x=0 einen Senderplatz zurück x=1 einen Senderplatz hoch&lt;br /&gt;
Tx			Taste x am Gerät gedrückt&lt;br /&gt;
resetreset 	Reboot des Raspi&lt;br /&gt;
*/&lt;br /&gt;
char eingang[255]=&amp;quot;&amp;quot;;&lt;br /&gt;
char d[1]=&amp;quot;&amp;quot;;&lt;br /&gt;
int anzahl=0;&lt;br /&gt;
	&lt;br /&gt;
int laenge=0;&lt;br /&gt;
int logg=0;&lt;br /&gt;
int	fd;				// File descriptor&lt;br /&gt;
int sender;&lt;br /&gt;
int lautst=95;&lt;br /&gt;
long int time_back;&lt;br /&gt;
long int time_ok;&lt;br /&gt;
&lt;br /&gt;
struct	termios newtio={};&lt;br /&gt;
&lt;br /&gt;
unsigned char eingangleer()		//Eingangstring leeren&lt;br /&gt;
{&lt;br /&gt;
	int i;&lt;br /&gt;
	for(i=0; i &amp;lt; laenge; i++){&lt;br /&gt;
		eingang[i] = 0;&lt;br /&gt;
	}&lt;br /&gt;
  laenge=0;	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char platzlautsenden()			//Lautstärke und Senderplatz auf den kleinen Zahlen ausgeben&lt;br /&gt;
{						//Lautstärke 100% und Senderplatz 3 wird zu 100:03&lt;br /&gt;
	char nummer[3];&lt;br /&gt;
	int i=0;&lt;br /&gt;
	char befehl[255]=&amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	sprintf(nummer,&amp;quot;%d&amp;quot;,lautst);&lt;br /&gt;
	strcpy(befehl,&amp;quot;/var/scripte/senden 2&amp;quot;);&lt;br /&gt;
	if (strlen(nummer)&amp;lt;3){&lt;br /&gt;
		strcat(befehl,&amp;quot;0&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	if (strlen(nummer)&amp;lt;2){&lt;br /&gt;
		strcat(befehl,&amp;quot;0&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	strcat(befehl,nummer);&lt;br /&gt;
	strcat(befehl,&amp;quot;:&amp;quot;);&lt;br /&gt;
	i=sender;&lt;br /&gt;
	if(i&amp;gt;99){				//Die Anzeige ist 2-Stellig&lt;br /&gt;
		i=99;&lt;br /&gt;
	}&lt;br /&gt;
	sprintf(nummer,&amp;quot;%d&amp;quot;,i);&lt;br /&gt;
	if (strlen(nummer)&amp;lt;2){&lt;br /&gt;
		strcat(befehl,&amp;quot;0&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	strcat(befehl,nummer);&lt;br /&gt;
	system(befehl);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char radioein()			//gewählten Platz in der Playlist abspielen&lt;br /&gt;
{ &lt;br /&gt;
	char nummer[3];&lt;br /&gt;
	char befehl[255]=&amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	sprintf(nummer,&amp;quot;%d&amp;quot;,sender);&lt;br /&gt;
	strcpy(befehl,&amp;quot;mpc -q play &amp;quot;);&lt;br /&gt;
	strcat(befehl,nummer);&lt;br /&gt;
	system(befehl);&lt;br /&gt;
	platzlautsenden();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char initmpd()				//Schnittstelle parametrieren und öffnen&lt;br /&gt;
{&lt;br /&gt;
	char befehl[30]=&amp;quot;&amp;quot;;&lt;br /&gt;
	char s[2]=&amp;quot;&amp;quot;;&lt;br /&gt;
	lautst=95;&lt;br /&gt;
	system(&amp;quot;/var/scripte/radio2.sh&amp;quot;);	//InitScript für mpd&lt;br /&gt;
	sleep(1);&lt;br /&gt;
	system(&amp;quot;mpc playlist &amp;gt; /tmp/mpdlist&amp;quot;);	//Playlist zwischenspeichern&lt;br /&gt;
	sleep(1);&lt;br /&gt;
	FILE *f;&lt;br /&gt;
	char Text[300]=&amp;quot;&amp;quot;;&lt;br /&gt;
	char Text1[70]=&amp;quot;&amp;quot;;&lt;br /&gt;
	char Text2[7]=&amp;quot;volume&amp;quot;;&lt;br /&gt;
	f = fopen(&amp;quot;/tmp/mpdlist&amp;quot;,&amp;quot;r&amp;quot;);&lt;br /&gt;
	anzahl=0;				//Anzahl Einträge der Senderliste zählen&lt;br /&gt;
	if(f!=NULL){&lt;br /&gt;
		fgets(Text, sizeof(Text), f);&lt;br /&gt;
		if(strlen(Text)&amp;lt;2){&lt;br /&gt;
			fclose(f);&lt;br /&gt;
			return;&lt;br /&gt;
		}else{&lt;br /&gt;
			anzahl=1;&lt;br /&gt;
			while( fgets(Text, sizeof(Text), f) !=0 ){&lt;br /&gt;
				if(strlen(Text)&amp;gt;2){&lt;br /&gt;
					anzahl++;&lt;br /&gt;
				}&lt;br /&gt;
				if(anzahl&amp;gt;199){		//Nicht mehr wie 200&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		fclose(f);&lt;br /&gt;
	}&lt;br /&gt;
	strcpy(befehl,&amp;quot;/var/scripte/senden 6&amp;quot;);		//kleine Symbole im Display anzeigen lassen&lt;br /&gt;
	s[0]=208;					//Antennensymbol + FM anzeigen, als Zeichen für Bereit&lt;br /&gt;
	strcat(befehl,s);&lt;br /&gt;
	system(befehl);&lt;br /&gt;
	strcpy(befehl,&amp;quot;/var/scripte/senden 7&amp;quot;);				&lt;br /&gt;
	s[0]=130;					//Stereo anzeigen&lt;br /&gt;
	strcat(befehl,s);&lt;br /&gt;
	system(befehl);	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char abspielen()				//Wiedergabe fortsetzen. Ist noch nichts abgespielt worden, Platz 1 abspielen&lt;br /&gt;
{&lt;br /&gt;
	if (anzahl&amp;gt;0){&lt;br /&gt;
		if (sender==0){&lt;br /&gt;
			sender=1;&lt;br /&gt;
		}else{ if(sender&amp;gt;anzahl){&lt;br /&gt;
			sender=anzahl;&lt;br /&gt;
			}&lt;br /&gt;
			radioein();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char platzplus()				//Senderplatz um 1 erhöhen&lt;br /&gt;
{							//Bei weniger Sendern in Liste auf Platz 1 zurück&lt;br /&gt;
	if (anzahl&amp;gt;0){&lt;br /&gt;
		sender++;									&lt;br /&gt;
		if (sender&amp;gt;anzahl){							&lt;br /&gt;
			sender=1;&lt;br /&gt;
		}&lt;br /&gt;
		radioein();&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char platzminus()				//Senderplatz um 1 verringern&lt;br /&gt;
{							//Bei 0 auf letzten Platz springen&lt;br /&gt;
	if (anzahl&amp;gt;0){&lt;br /&gt;
		sender--;									&lt;br /&gt;
		if (sender&amp;lt;1){								&lt;br /&gt;
			sender=anzahl;&lt;br /&gt;
		}&lt;br /&gt;
		radioein();&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char lautsetzen()				//Lautstärke einstellen&lt;br /&gt;
{&lt;br /&gt;
	char nummer[3];&lt;br /&gt;
	char befehl[255]=&amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	sprintf(nummer,&amp;quot;%d&amp;quot;,lautst);&lt;br /&gt;
	strcpy(befehl,&amp;quot;mpc -q volume &amp;quot;);&lt;br /&gt;
	strcat(befehl,nummer);&lt;br /&gt;
	system(befehl);&lt;br /&gt;
	platzlautsenden();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char lauter()					//Senderplatz um 5 Prozentpunkte erhöhen&lt;br /&gt;
{&lt;br /&gt;
	if (lautst&amp;lt;96){&lt;br /&gt;
		lautst+=5;									&lt;br /&gt;
		lautsetzen();&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char leiser()					//Senderplatz um 5 Prozentpunkte verringern&lt;br /&gt;
{&lt;br /&gt;
	if (lautst&amp;gt;5){&lt;br /&gt;
		lautst-=5;									&lt;br /&gt;
	}else{&lt;br /&gt;
		lautst=0;&lt;br /&gt;
	}&lt;br /&gt;
	lautsetzen();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char radioaus()				//Wiedergabe anhalten&lt;br /&gt;
{&lt;br /&gt;
	system(&amp;quot;mpc -q stop&amp;quot;);&lt;br /&gt;
	system(&amp;quot;/var/scripte/senden 45&amp;quot;);&lt;br /&gt;
	sleep(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char auswerten()				//Angekommene Daten auswerten&lt;br /&gt;
{ int i;	&lt;br /&gt;
  int fd1;&lt;br /&gt;
  int zeile;&lt;br /&gt;
  char ret;&lt;br /&gt;
  char farbe[6]=&amp;quot;&amp;quot;;&lt;br /&gt;
  &lt;br /&gt;
  /* Zum Schreiben öffnen */&lt;br /&gt;
	if ((strcmp(eingang,&amp;quot;resetreset&amp;quot;) ==0 )){&lt;br /&gt;
		system(&amp;quot;reboot&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	if (eingang[0] == 83){                         // S&lt;br /&gt;
		zeile=eingang[1]-48;		       //Werte von 48-255 = 207 mögliche Sender, wird auf 200 limitiert&lt;br /&gt;
		if (zeile == 0){		       // bei 0 einfach weiter abspielen oder Platz 1 beginnen&lt;br /&gt;
			abspielen();&lt;br /&gt;
		}else if (zeile&amp;lt;=anzahl){&lt;br /&gt;
			sender=zeile;&lt;br /&gt;
			radioein();&lt;br /&gt;
		}&lt;br /&gt;
	  }&lt;br /&gt;
	if (eingang[0] == 84){                          // T&lt;br /&gt;
		if (eingang[1]&amp;gt;49&amp;amp;&amp;amp;eingang[1]&amp;lt;57){	//Wert soweit OK, Taste 1 = Powertaste und wird vom AVR ausgewertet&lt;br /&gt;
			if (eingang[1]==50){		//2 - OK Taste&lt;br /&gt;
				abspielen();&lt;br /&gt;
			}&lt;br /&gt;
			if (eingang[1]==51){		//3 - Wippe rechts&lt;br /&gt;
				lauter();	&lt;br /&gt;
			}&lt;br /&gt;
			if (eingang[1]==52){		//4 - BACK Taste&lt;br /&gt;
				radioaus();&lt;br /&gt;
			}&lt;br /&gt;
			if (eingang[1]==53){		//5 - Menü Taste&lt;br /&gt;
				system(&amp;quot;/var/scripte/senden&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			if (eingang[1]==54){		//6 - Wippe hoch&lt;br /&gt;
				platzplus();&lt;br /&gt;
			}&lt;br /&gt;
			if (eingang[1]==55){		//7 - Wippe links&lt;br /&gt;
				leiser();&lt;br /&gt;
			}&lt;br /&gt;
			if (eingang[1]==56){		//8 - Wippe runter&lt;br /&gt;
				platzminus();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if (eingang[0] == 80){                          // P&lt;br /&gt;
		if (eingang[1]==49){ 			//1&lt;br /&gt;
			platzplus();&lt;br /&gt;
		}else{&lt;br /&gt;
			platzminus();&lt;br /&gt;
		}&lt;br /&gt;
	  }&lt;br /&gt;
	if (eingang[0] == 66){                          // B&lt;br /&gt;
		if (eingang[1]==48){ 			//0 Wiedergabe stoppen&lt;br /&gt;
			radioaus();&lt;br /&gt;
		}&lt;br /&gt;
		if (eingang[1]==49){ 			//1 mpd zurücksetzen&lt;br /&gt;
			initmpd();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	eingangleer();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
unsigned char receive()				        //Zeichen empfangen&lt;br /&gt;
{&lt;br /&gt;
    int res;&lt;br /&gt;
    unsigned char buffer;&lt;br /&gt;
&lt;br /&gt;
    res = read(fd, &amp;amp;buffer, 1);&lt;br /&gt;
    return buffer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int init()						//Schnittstelle parametrieren und öffnen&lt;br /&gt;
{&lt;br /&gt;
    //O_RDONLY, O_WRONLY or O_RDWR -&lt;br /&gt;
    //O_NDELAY (geht weiter, wenn keine Daten da sind und gibt &amp;quot;-1&amp;quot; zurueck)&lt;br /&gt;
    // man 2 open fuer mehr Infos - see &amp;quot;man 2 open&amp;quot; for more info&lt;br /&gt;
    // O_NOCTTY No ControllTeleType &lt;br /&gt;
&lt;br /&gt;
    fd = open(MODEMDEVICE, O_RDONLY | O_NOCTTY);&lt;br /&gt;
    if (fd &amp;lt; 0){&lt;br /&gt;
        printf(&amp;quot;Fehler beim oeffnen von %s\n&amp;quot;, MODEMDEVICE);&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    memset(&amp;amp;newtio, 0, sizeof(newtio));&lt;br /&gt;
    newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD;	//setzt die neuen Porteinstellungen&lt;br /&gt;
    newtio.c_iflag = IGNPAR;&lt;br /&gt;
    newtio.c_oflag = 0;&lt;br /&gt;
    newtio.c_lflag = 0;         /* set input mode (non-canonical, no echo, ...) */&lt;br /&gt;
    newtio.c_cc[VTIME] = 0;     /* inter-character timer unused */&lt;br /&gt;
    newtio.c_cc[VMIN] = 1;	/* blocking read until 1 chars received */&lt;br /&gt;
&lt;br /&gt;
    tcflush(fd, TCIFLUSH);&lt;br /&gt;
    tcsetattr(fd, TCSANOW, &amp;amp;newtio);&lt;br /&gt;
    return fd;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char** argv)		//Programmstart&lt;br /&gt;
{&lt;br /&gt;
	char c;&lt;br /&gt;
 	init();					//Schnittstelle parametrieren und öffnen&lt;br /&gt;
	sleep(5); 				//warten bis mpd gestartet ist&lt;br /&gt;
 	initmpd();				//mpd auf definierten Zustand bringen&lt;br /&gt;
	while (1)&lt;br /&gt;
        {&lt;br /&gt;
	    c=receive();		        //Zeichen holen&lt;br /&gt;
		if((c==13)){			//CR als Abschluß einer Zeile&lt;br /&gt;
			auswerten();		&lt;br /&gt;
		}else if(c&amp;gt;13&amp;amp;&amp;amp;c&amp;lt;128){		//Alles von ASCii 14 bis 127 wird akzetpiert&lt;br /&gt;
			eingang[laenge]=c;		&lt;br /&gt;
			laenge++;				&lt;br /&gt;
			if (laenge &amp;gt;254){	//Bei 254 Zeichen im Puffer wird automatisch ausgewertet&lt;br /&gt;
				auswerten();&lt;br /&gt;
			}&lt;br /&gt;
        }&lt;br /&gt;
    } &lt;br /&gt;
    close (fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sender ===&lt;br /&gt;
Der Sender läuft nicht im Hintergrund. Er wird von anderen Programmen oder per Cron Job gestartet. Er versucht, alle Parameter, welche beim Start übergeben wurden, über die UART zu schicken. Die maximale Länge ist auf 76 Zeichen begrenzt, da der AVR einen Eingangsbuffer von 80 Zeichen hat. Mehrere Parameter werden aneinandergehängt und jeweils durch ein Leerzeichen getrennt. &amp;quot;Es empfiehlt sich trotzdem den Text in Häkchen zu setzen&amp;quot;, da sonst einige Sonderzeichen für Ärger sorgen können. Als letztes wird immer ein CR (ASCii 13) gesendet. Wenn der AVR dieses bekommt, wertet er die ganze Zeile aus.&lt;br /&gt;
&lt;br /&gt;
Wird kein Parameter übergeben, wie ich es beim Aufruf durch einen Cron-Job mache, wird die aktuelle Uhrzeit und das Datum übertragen. Wenn der AVR als ersten Zeichen ein U bekommt, geht er davon aus, dass die Uhrzeit folgt und danach seine Uhr stellt. Ein D voran, veranlasst ihn dazu, das Datum zu setzen. Das Format ist jeweils zweistellig. Ist die Uhrzeit z.B. 16 Uhr, 4 Minuten und 28 Sekunden, wird U16:04:28 geschickt. Das Datum 27. August 2012 kommt als D27.08.12 an.&lt;br /&gt;
&lt;br /&gt;
Wenn z.B. der Cron-Job und der Überwacher gleichzeitig senden wollen, erkennt der Sender, dass er in mindestens einer anderen Instanz schon läuft und wartet eine Sekunde pro zusätzlicher Instanz, bevor er sendet. So wird verhindert, dass mitten in der Uhrzeit plötzlich ein Sendertitel reinplatzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Kompilieren mit: gcc /var/scripte/senden.c -o /var/scripte/senden&lt;br /&gt;
 &lt;br /&gt;
//#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
//using namespace std;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;			//nicht benötigtes scheint keinen Platz zu verschwenden...&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;termios.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;time.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define BAUDRATE B19200&lt;br /&gt;
char MODEMDEVICE[]= &amp;quot;/dev/ttyAMA0&amp;quot;;	// !!!&lt;br /&gt;
&lt;br /&gt;
int	fd;				// File descriptor&lt;br /&gt;
struct	termios newtio={};&lt;br /&gt;
&lt;br /&gt;
unsigned char send(char c)&lt;br /&gt;
{&lt;br /&gt;
    int res=write(fd, &amp;amp;c, 1);&lt;br /&gt;
    if (res&amp;lt;0) printf(&amp;quot;Fehler beim Senden\n&amp;quot;);&lt;br /&gt;
    return res;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int init()					//Schnittstelle parametrieren und öffnen&lt;br /&gt;
{&lt;br /&gt;
    /*** Init ***/&lt;br /&gt;
    &lt;br /&gt;
    //O_RDONLY, O_WRONLY or O_RDWR -&lt;br /&gt;
    //O_NDELAY (geht weiter, wenn keine Daten da sind und gibt &amp;quot;-1&amp;quot; zurueck)&lt;br /&gt;
    // man 2 open fuer mehr Infos - see &amp;quot;man 2 open&amp;quot; for more info&lt;br /&gt;
    // O_NOCTTY No ControllTeleType &lt;br /&gt;
    fd = open(MODEMDEVICE, O_WRONLY | O_NOCTTY);&lt;br /&gt;
    if (fd &amp;lt; 0){&lt;br /&gt;
        printf(&amp;quot;Fehler beim oeffnen von %s\n&amp;quot;, MODEMDEVICE);&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    memset(&amp;amp;newtio, 0, sizeof(newtio));&lt;br /&gt;
    newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD;	//setzt die neuen Porteinstellungen&lt;br /&gt;
    newtio.c_iflag = IGNPAR;&lt;br /&gt;
    newtio.c_oflag = 0;&lt;br /&gt;
    newtio.c_lflag = 0;         /* set input mode (non-canonical, no echo, ...) */&lt;br /&gt;
    newtio.c_cc[VTIME] = 0;     /* inter-character timer unused */&lt;br /&gt;
    newtio.c_cc[VMIN] = 1;	/* blocking read until 1 chars received */&lt;br /&gt;
&lt;br /&gt;
    tcflush(fd, TCIFLUSH);&lt;br /&gt;
    tcsetattr(fd, TCSANOW, &amp;amp;newtio);&lt;br /&gt;
    return fd;&lt;br /&gt;
}&lt;br /&gt;
int einmal()					//Sucht bereits laufende Instanzen und zählt diese&lt;br /&gt;
{&lt;br /&gt;
	int i=0;&lt;br /&gt;
	int anzahl=0;&lt;br /&gt;
	int laenge=0;&lt;br /&gt;
	char *ptr;&lt;br /&gt;
	FILE *in;&lt;br /&gt;
	extern FILE *popen();&lt;br /&gt;
	char buff[30];&lt;br /&gt;
&lt;br /&gt;
	if(!(in = popen(&amp;quot;pidof senden&amp;quot;, &amp;quot;r&amp;quot;))){&lt;br /&gt;
		exit(1);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	fgets(buff, sizeof(buff), in);&lt;br /&gt;
	pclose(in);&lt;br /&gt;
	laenge=strlen(buff);&lt;br /&gt;
	for(i=0;i&amp;lt;laenge;i++)&lt;br /&gt;
	{&lt;br /&gt;
		if(buff[i]==' ') anzahl++;&lt;br /&gt;
	}&lt;br /&gt;
	return anzahl;	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char** argv)			//Programmstart&lt;br /&gt;
{&lt;br /&gt;
	char vBuf[100]=&amp;quot;&amp;quot;,*pBuf;&lt;br /&gt;
	char buffer [100]=&amp;quot;&amp;quot;;&lt;br /&gt;
	char buffer1 [100]=&amp;quot;&amp;quot;;&lt;br /&gt;
	int i=0;&lt;br /&gt;
	int anzahl;&lt;br /&gt;
	anzahl=einmal();&lt;br /&gt;
	if (anzahl&amp;gt;0){&lt;br /&gt;
		anzahl++;&lt;br /&gt;
		sleep(anzahl);&lt;br /&gt;
	}&lt;br /&gt;
 	init();&lt;br /&gt;
    if (argc == 1) {			       //Wenn nichts angegeben, dann Uhrzeit und Datum senden&lt;br /&gt;
		time_t rawtime;&lt;br /&gt;
		&lt;br /&gt;
		struct tm * timeinfo;&lt;br /&gt;
		time ( &amp;amp;rawtime );&lt;br /&gt;
		timeinfo = localtime ( &amp;amp;rawtime );&lt;br /&gt;
		strftime (buffer,80,&amp;quot;U%H:%M:%S&amp;quot;,timeinfo);	//Uhh:mm:ss&lt;br /&gt;
		pBuf=buffer;&lt;br /&gt;
		strcat(pBuf,&amp;quot;\r&amp;quot;);&lt;br /&gt;
		while(pBuf &amp;amp;&amp;amp; *pBuf)				//Zeichen einzeln senden&lt;br /&gt;
			send(*pBuf++);&lt;br /&gt;
&lt;br /&gt;
		strftime (buffer,80,&amp;quot;D%d.%m.%y&amp;quot;,timeinfo);	//Dtt.mm.yy&lt;br /&gt;
		pBuf=buffer;&lt;br /&gt;
		strcat(pBuf,&amp;quot;\r&amp;quot;);&lt;br /&gt;
		sleep(1);&lt;br /&gt;
		while(pBuf &amp;amp;&amp;amp; *pBuf)				//Zeichen einzeln senden&lt;br /&gt;
			send(*pBuf++);&lt;br /&gt;
	}else{							//Sonst Parameter einlesen und senden	&lt;br /&gt;
		if(strlen(argv[1])&amp;gt;75){				//Puffer im AVR ist auf 80 gestellt&lt;br /&gt;
			strncpy(buffer,argv[1],76);				&lt;br /&gt;
			buffer[76]='\0';&lt;br /&gt;
		}else{&lt;br /&gt;
			strcpy(buffer,argv[1]);&lt;br /&gt;
			if (argc &amp;gt;2){&lt;br /&gt;
				for (i=2;i&amp;lt;argc;i++){&lt;br /&gt;
					if(strlen(buffer)+strlen(argv[i])&amp;gt;75){&lt;br /&gt;
						strcat(buffer,&amp;quot; &amp;quot;);								&lt;br /&gt;
						strncat(buffer,argv[i],(76-strlen(buffer)));&lt;br /&gt;
						buffer[76]='\0';&lt;br /&gt;
						break;				//exit for in c...&lt;br /&gt;
					}else{&lt;br /&gt;
						strcat(buffer,&amp;quot; &amp;quot;);&lt;br /&gt;
						strcat(buffer,argv[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		int o=0;					//Umlaute anpassen, ASCii 195 verwerfen&lt;br /&gt;
		for(i=0;i&amp;lt;strlen(buffer);i++){&lt;br /&gt;
			buffer1[o]=buffer[i];&lt;br /&gt;
			if (buffer1[o]==164){			//ä&lt;br /&gt;
				buffer1[o]= 228;&lt;br /&gt;
			}&lt;br /&gt;
			if (buffer1[o]==188){			//ü&lt;br /&gt;
				buffer1[o]= 252;&lt;br /&gt;
			}&lt;br /&gt;
			if (buffer1[o]==182){			//ö&lt;br /&gt;
				buffer1[o]= 246;&lt;br /&gt;
			}&lt;br /&gt;
			if (buffer1[o]==132){			//Ä&lt;br /&gt;
				buffer1[o]= 196;&lt;br /&gt;
			}&lt;br /&gt;
			if (buffer1[o]==156){			//Ü&lt;br /&gt;
				buffer1[o]= 220;&lt;br /&gt;
			}&lt;br /&gt;
			if (buffer1[o]==150){			//Ö&lt;br /&gt;
				buffer1[o]= 214;&lt;br /&gt;
			}&lt;br /&gt;
			if (buffer1[o]==159){			//ß&lt;br /&gt;
				buffer1[o]= 223;&lt;br /&gt;
			}&lt;br /&gt;
			if (buffer1[o]==138){			//&amp;amp;&lt;br /&gt;
				buffer1[o]= 38;&lt;br /&gt;
			}&lt;br /&gt;
			if (buffer1[o] != 195){			//Initialisierung Umlaut&lt;br /&gt;
				o++;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		pBuf=buffer1;&lt;br /&gt;
		strcat(pBuf,&amp;quot;\r&amp;quot;);			        //CR (ASCii13) anfügen, damit der AVR auswertet		&lt;br /&gt;
		while(pBuf &amp;amp;&amp;amp; *pBuf){				//Zeichen einzeln senden&lt;br /&gt;
			send(*pBuf++);&lt;br /&gt;
		}&lt;br /&gt;
	} &lt;br /&gt;
    close (fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Überwacher ===&lt;br /&gt;
Der Überwacher fragt alle paar Sekunden per mpc den Status des mpd ab. Ändert sich dieser, wird der aktuelle Titel zum AVR gesendet. Wurde die Wiedergabe abgebrochen, wird das auch per 0 mitgeteilt, dass der AVR wieder den Wochentag im Textbereich, sowie das Datum auf den kleinen Ziffern anzeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Kompilieren mit: gcc /var/scripte/mpcout.c -o /var/scripte/mpcout&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
char Textalt[75]=&amp;quot;&amp;quot;;&lt;br /&gt;
int anzahl=0;&lt;br /&gt;
&lt;br /&gt;
int wachhund()					//Sucht bereits laufende Instanzen und zählt diese&lt;br /&gt;
{&lt;br /&gt;
	char *ptr;&lt;br /&gt;
	FILE *in;&lt;br /&gt;
	extern FILE *popen();&lt;br /&gt;
	char buff[30];&lt;br /&gt;
&lt;br /&gt;
	if(!(in = popen(&amp;quot;pidof mpd&amp;quot;, &amp;quot;r&amp;quot;))){&lt;br /&gt;
		exit(1);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	fgets(buff, sizeof(buff), in);&lt;br /&gt;
	pclose(in);&lt;br /&gt;
	anzahl=(strlen(buff));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned char aktualisieren()&lt;br /&gt;
{ 	&lt;br /&gt;
	int i=0;	&lt;br /&gt;
	int o=0;&lt;br /&gt;
	char befehl[255]=&amp;quot;&amp;quot;;&lt;br /&gt;
	FILE *f;&lt;br /&gt;
&lt;br /&gt;
	if(!(f = popen(&amp;quot;mpc current&amp;quot;, &amp;quot;r&amp;quot;))){&lt;br /&gt;
		exit(1);&lt;br /&gt;
	}&lt;br /&gt;
	char Text[300]=&amp;quot;&amp;quot;;&lt;br /&gt;
	char Text1[75]=&amp;quot;&amp;quot;;&lt;br /&gt;
	fgets(Text, sizeof(Text), f);&lt;br /&gt;
	fclose(f);&lt;br /&gt;
	if(strlen(Text)&amp;lt;2){&lt;br /&gt;
		strcpy(Text1,&amp;quot;&amp;quot;);&lt;br /&gt;
		if((strcmp(Text1, Textalt)) != 0){&lt;br /&gt;
			strcpy(Textalt, Text1);&lt;br /&gt;
			system(&amp;quot;/var/scripte/senden 0&amp;quot;);&lt;br /&gt;
			system(&amp;quot;/var/scripte/senden 45&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	}else{&lt;br /&gt;
		o=0;&lt;br /&gt;
		for (i=0;i&amp;lt;strlen(Text);i++){&lt;br /&gt;
			if (Text[i]==38){				//&amp;amp;&lt;br /&gt;
				Text1[o]=138;				//+&lt;br /&gt;
			}else{&lt;br /&gt;
				Text1[o]=Text[i];&lt;br /&gt;
			}&lt;br /&gt;
			o++;&lt;br /&gt;
			if (o&amp;gt;74){&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		Text1[o]='\0';&lt;br /&gt;
		if((strcmp(Text1, Textalt)) != 0){&lt;br /&gt;
			strcpy(Textalt, Text1);&lt;br /&gt;
				strcpy(befehl,&amp;quot;/var/scripte/senden '1&amp;quot;);	// \&amp;quot; funktioniert nicht, ' schon&lt;br /&gt;
				strcat(befehl,Text1);&lt;br /&gt;
				strcat(befehl,&amp;quot;'&amp;quot;);&lt;br /&gt;
				system(befehl);&lt;br /&gt;
				system(&amp;quot;/var/scripte/senden 44&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char** argv)&lt;br /&gt;
{	&lt;br /&gt;
	while (1)&lt;br /&gt;
        { 	sleep(2);&lt;br /&gt;
			anzahl=0;&lt;br /&gt;
			wachhund();&lt;br /&gt;
			if (anzahl &amp;lt;2){&lt;br /&gt;
				system(&amp;quot;/var/scripte/radio2.sh&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			aktualisieren();&lt;br /&gt;
	} &lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.roboternetz.de/community/threads/58946-Internetradio Thema im Roboternetz Forum] &lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Embedded_Linux_Einstieg_leicht_gemacht]]&lt;br /&gt;
* [[Raspberry_PI:_GPIO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20376</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20376"/>
				<updated>2012-07-20T06:07:26Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===Debain &amp;quot;Squeeze&amp;quot; oder Raspian?===&lt;br /&gt;
Für das Raspberry Pi hat sich Debian &amp;quot;Squeeze&amp;quot; als die am meisten verwendete Distribution herausgestellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Seit kurzem ist aber zusätzlich noch &amp;quot;Raspian&amp;quot; erhältlich. Dies ist eigentlich ein Debian welches für das Raspberry Pi optimiert wurde. Grundsätzlich spricht nichts dagegen Debian weiter zu verwenden aber Raspbian bietet bis zu 20% mehr Performance und es erleichtert die Grundkonfiguration des Raspberry.&lt;br /&gt;
Alle Schritte die nur bei Debian notwendig sind, werden gekennzeichnet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei Raspian können diese Schritte mittels Config, welche durch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo raspi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
aufgerufen wird, durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==GPIO ansprechen==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
==Einrichten eines Webservers==&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20375</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20375"/>
				<updated>2012-07-20T05:56:19Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
==Debain &amp;quot;Squeeze&amp;quot; oder Raspian?==&lt;br /&gt;
Für das Raspberry Pi hat sich Debian &amp;quot;Squeeze&amp;quot; als die am meisten verwendete Distribution herausgestellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Seit kurzem ist aber zusätzlich noch &amp;quot;Raspian&amp;quot; erhältlich. Dies ist eigentlich ein Debian welches für das Raspberry Pi optimiert wurde. Grundsätzlich spricht nichts dagegen Debian weiter zu verwenden aber Raspbian bietet bis zu 20% mehr Performance und es erleichtert die Grundkonfiguration des Raspberry.&lt;br /&gt;
Alle Schritte die nur bei Debian notwendig sind, werden gekennzeichnet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei Raspian können diese Schritte mittels Config, welche durch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo raspi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
aufgerufen wird, durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==GPIO ansprechen==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
==Einrichten eines Webservers==&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20374</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20374"/>
				<updated>2012-07-20T05:46:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Debain &amp;quot;Squeeze&amp;quot; oder Raspian? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
==Debain &amp;quot;Squeeze&amp;quot; oder Raspian?==&lt;br /&gt;
Für das Raspberry Pi hat sich Debian &amp;quot;Squeeze&amp;quot; als die am meisten verwendete Distribution herausgestellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Seit kurzem ist aber zusätzlich noch &amp;quot;Raspian&amp;quot; erhältlich. Dies ist eigentlich ein Debian welches für das Raspberry Pi optimiert wurde. Grundsätzlich spricht nichts dagegen Debian weiter zu verwenden aber Raspbian bietet bis zu 20% mehr Performance und es erleichtert die Grundkonfiguration des Raspberry.&lt;br /&gt;
Alle Schritte die nur bei Debian notwendig sind, werden gekennzeichnet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei Raspian können diese Schritte mittels Config, welche durch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo raspi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
aufgerufen wird, durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==GPIO ansprechen==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20373</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20373"/>
				<updated>2012-07-20T05:42:05Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Debain &amp;quot;Squeeze&amp;quot; oder Raspian? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
==Debain &amp;quot;Squeeze&amp;quot; oder Raspian?==&lt;br /&gt;
Für das Raspberry Pi hat sich Debian als die am meisten verwendete Distribution herausgestellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Seit kurzem ist aber zusätzlich noch &amp;quot;Raspian&amp;quot; erhältlich. Dies ist eigentlich ein Debian welches für das Raspberry Pi optimiert wurde. Grundsätzlich spricht nichts dagegen Debian weiter zu verwenden aber Raspbian bietet bis zu 20% mehr Performance und es erleichtert die Grundkonfiguration des Raspberry.&lt;br /&gt;
Alle Schritte die nur bei Debian notwendig sind, werden gekennzeichnet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei Raspian können diese Schritte mittels Config, welche durch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo raspi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
aufgerufen wird, durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==GPIO ansprechen==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20372</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20372"/>
				<updated>2012-07-20T05:41:42Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Die ersten Schritte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
==Debain &amp;quot;Squeeze&amp;quot; oder Raspian?==&lt;br /&gt;
Für das Raspberry Pi hat sich Debian als die am meisten verwendete Distribution herausgestellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Seit kurzem ist aber zusätzlich noch &amp;quot;Raspian&amp;quot; erhältlich. Dies ist eigentlich ein Debian welches für das Raspberry Pi optimiert wurde. Grundsätzlich spricht nichts dagegen Debian weiter zu verwenden aber Raspbian bietet bis zu 20% mehr Performance und es erleichtert die Grundkonfiguration des Raspberry.&lt;br /&gt;
Alle Schritte die nur bei Debian notwendig sind, werden gekennzeichnet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei Raspian können diese Schritte mittels Config, welche durch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo raspi-config&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
aufgerufen wird, durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==GPIO ansprechen==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20371</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20371"/>
				<updated>2012-07-20T05:22:57Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Erstellen einer Auslagerungsdatei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==GPIO ansprechen==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20370</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20370"/>
				<updated>2012-07-20T05:22:40Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* SD-Karten Setup (Debian &amp;quot;Squeeze&amp;quot;) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==GPIO ansprechen==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20369</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20369"/>
				<updated>2012-07-20T05:21:29Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==GPIO ansprechen==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20368</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20368"/>
				<updated>2012-07-19T21:28:50Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup (Debian &amp;quot;Squeeze&amp;quot;)==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP (Debian &amp;quot;Squeeze&amp;quot;)===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==GPIO ansprechen==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20367</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20367"/>
				<updated>2012-07-19T21:27:29Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte (Debian &amp;quot;Squeeze&amp;quot;)=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==GPIO ansprechen==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20365</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20365"/>
				<updated>2012-07-19T12:35:10Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Die GPIO Pins */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==GPIO ansprechen==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20364</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20364"/>
				<updated>2012-07-19T12:34:41Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==Die GPIO Pins==&lt;br /&gt;
&lt;br /&gt;
===Via Shell===&lt;br /&gt;
&lt;br /&gt;
===Via Programm (C, Python o.ä.)===&lt;br /&gt;
&lt;br /&gt;
===Via Web===&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20363</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20363"/>
				<updated>2012-07-19T06:43:26Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==Die GPIO Pins==&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20310</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20310"/>
				<updated>2012-07-16T10:26:30Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20306</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20306"/>
				<updated>2012-07-15T17:00:33Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Erstellen einer Auslagerungsdatei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können wir alles nochmal kontrollieren. Dazu tippen wir als erstes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20305</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20305"/>
				<updated>2012-07-15T16:59:40Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Erstellen einer Auslagerungsdatei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick. Damit die Auslagerungsdatei genutzt werden kann, muss diese in die &amp;quot;Filesystemtable&amp;quot; eingetragen werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes rufen wir diese mit folgendem Befehl auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese sollte dann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
#/dev/mmcblk0p3  none    swap   sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie unschwer zu erkennen ist, steht die Partition 3 von &amp;quot;MMC0&amp;quot; noch als Swapfile drin.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da diese Partition aber gelöscht wurde, muss dies korrigiert werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dazu löscht ihr erstmal alles und anschließend könnt ihr mittels Copy &amp;amp; Paste diesen Text einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proc            /proc   proc    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p1  /boot   vfat    defaults                        0 0&lt;br /&gt;
/dev/mmcblk0p2  /       ext4    defaults,noatime,nodiratime     0 0&lt;br /&gt;
/var/swapfile   none    swap    sw                              0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun wird die vorher angelegte Datei namens &amp;quot;swapfile&amp;quot; auch als Auslagerungsdatei verwendet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Mit &amp;quot;Strg + O&amp;quot; wird die Datei &amp;quot;fstab&amp;quot; anschließend gespeichert und mit &amp;quot;Strg + X&amp;quot; schließt ihr den Editor.&lt;br /&gt;
Jetzt muss das System noch rebootet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Nach dem reboot können kontrollieren wir alles nochmal. Als erstes tippen wir &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein und dann sollte das hier angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Swap:   131068k total,        0k used,   131068k free,    82376k cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist die Auslagerungsdatei bereit und kann verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20304</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20304"/>
				<updated>2012-07-15T16:48:19Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Erstellen einer Auslagerungsdatei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als erstes wechseln wir mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in das Verzeichnis /var. Anschließend erstellen wir die Auslagerungsdatei.&lt;br /&gt;
Dies geschieht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dd if=/dev/zero of=swapfile bs=1M count=128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die Datei als Auslagerungsdatei eingerichtet.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür verwenden wir folgenden Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkswap /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird die Auslagerungsdatei aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo swapon /var/swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Schritt dauert nun einen Augenblick.&lt;br /&gt;
&lt;br /&gt;
=Anwendungen=&lt;br /&gt;
&lt;br /&gt;
==Ansteuern der GPIO's==&lt;br /&gt;
Informationen zu den [[Raspberry_PI:_GPIO|GPIO Pins]]&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_GPIO&amp;diff=20302</id>
		<title>Raspberry PI: GPIO</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_GPIO&amp;diff=20302"/>
				<updated>2012-07-15T15:41:07Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Via Shell */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Schnittstellen= &lt;br /&gt;
Zusätzlich zu USB, Ethernet, analogen Audio/Video und HDMI bietet das Raspberry Pi verschiedene GPIO's (General Purpose Input/Output), die über die 2,54mm Stiftleiste 'P1' zugänglich sind.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die GPIO Pins sind als 3,3V Signale ausgeführt und nicht 5V tolerant. Ein direkter Anschluss an TTL Level kann zur Zerstörung führen!&amp;lt;br\&amp;gt;&lt;br /&gt;
Bestimmte Pins können auch für SPI, I²C und UART Schnittstellen genutzt werden.&lt;br /&gt;
&lt;br /&gt;
==P1 Pinout==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Function&lt;br /&gt;
 |Pin&lt;br /&gt;
 |&lt;br /&gt;
 |Pin&lt;br /&gt;
 |Function&lt;br /&gt;
 |-&lt;br /&gt;
 |3,3V&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |2&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 0 (SDA)&lt;br /&gt;
 |3&lt;br /&gt;
 |&lt;br /&gt;
 |4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 1 (SCL)&lt;br /&gt;
 |5&lt;br /&gt;
 |&lt;br /&gt;
 |6&lt;br /&gt;
 |GND&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 4 (GPCLK0)&lt;br /&gt;
 |7&lt;br /&gt;
 |&lt;br /&gt;
 |8&lt;br /&gt;
 |GPIO 14 (TxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |9&lt;br /&gt;
 |&lt;br /&gt;
 |10&lt;br /&gt;
 |GPIO 15 (RxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 17&lt;br /&gt;
 |11&lt;br /&gt;
 |&lt;br /&gt;
 |12&lt;br /&gt;
 |GPIO 18 (PCM_CLK)&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 21 (PCM_DOUT)&lt;br /&gt;
 |13&lt;br /&gt;
 |&lt;br /&gt;
 |14&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 22&lt;br /&gt;
 |15&lt;br /&gt;
 |&lt;br /&gt;
 |16&lt;br /&gt;
 |GPIO 23&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |17&lt;br /&gt;
 |&lt;br /&gt;
 |18&lt;br /&gt;
 |GPIO 24&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 10 (MOSI)&lt;br /&gt;
 |19&lt;br /&gt;
 |&lt;br /&gt;
 |20&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 9 (MISO)&lt;br /&gt;
 |21&lt;br /&gt;
 |&lt;br /&gt;
 |22&lt;br /&gt;
 |GPIO 25&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 11 (SCLK)&lt;br /&gt;
 |23&lt;br /&gt;
 |&lt;br /&gt;
 |24&lt;br /&gt;
 |GPIO 8 (CE0)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |25&lt;br /&gt;
 |&lt;br /&gt;
 |26&lt;br /&gt;
 |GPIO 7 (CE1)&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=Ansteuern der GPIO's=&lt;br /&gt;
==Via Shell==&lt;br /&gt;
Die GPIO können direkt über die Files im Ordner '/sys/class/gpio/' angesteuert werden. Dies muss jedoch mit root-Rechten gemacht werden.&lt;br /&gt;
Zuerst müssen die Files via 'export' zugänglich gemacht werden. Da die GPIO's nach dem Systemstart als Eingänge geschaltet sind, müssen diese jetzt als Ausgänge definiert werden und können danach manipuliert werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel anhand von GPIO 23:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /sys/class/gpio&lt;br /&gt;
$ su&lt;br /&gt;
root Passwort eingeben&lt;br /&gt;
$ echo &amp;quot;23&amp;quot; &amp;gt; export&lt;br /&gt;
$ echo &amp;quot;out&amp;quot; &amp;gt; gpio23/direction&lt;br /&gt;
$ echo &amp;quot;1&amp;quot; &amp;gt; gpio23/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Via WiringPi==&lt;br /&gt;
Alternativ zur direkten Ansteuerung kann das Programm 'WiringPi' installiert werden.&lt;br /&gt;
Der Vorteil daran ist zum einen die einfachere Anwendung und dass dazu keine root Rechte benötigt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen zur installation findet man auf der Projektseite..&amp;lt;br/&amp;gt;&lt;br /&gt;
https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Via PHP==&lt;br /&gt;
tbd&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_GPIO&amp;diff=20301</id>
		<title>Raspberry PI: GPIO</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_GPIO&amp;diff=20301"/>
				<updated>2012-07-15T15:39:09Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Schnittstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Schnittstellen= &lt;br /&gt;
Zusätzlich zu USB, Ethernet, analogen Audio/Video und HDMI bietet das Raspberry Pi verschiedene GPIO's (General Purpose Input/Output), die über die 2,54mm Stiftleiste 'P1' zugänglich sind.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die GPIO Pins sind als 3,3V Signale ausgeführt und nicht 5V tolerant. Ein direkter Anschluss an TTL Level kann zur Zerstörung führen!&amp;lt;br\&amp;gt;&lt;br /&gt;
Bestimmte Pins können auch für SPI, I²C und UART Schnittstellen genutzt werden.&lt;br /&gt;
&lt;br /&gt;
==P1 Pinout==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Function&lt;br /&gt;
 |Pin&lt;br /&gt;
 |&lt;br /&gt;
 |Pin&lt;br /&gt;
 |Function&lt;br /&gt;
 |-&lt;br /&gt;
 |3,3V&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |2&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 0 (SDA)&lt;br /&gt;
 |3&lt;br /&gt;
 |&lt;br /&gt;
 |4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 1 (SCL)&lt;br /&gt;
 |5&lt;br /&gt;
 |&lt;br /&gt;
 |6&lt;br /&gt;
 |GND&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 4 (GPCLK0)&lt;br /&gt;
 |7&lt;br /&gt;
 |&lt;br /&gt;
 |8&lt;br /&gt;
 |GPIO 14 (TxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |9&lt;br /&gt;
 |&lt;br /&gt;
 |10&lt;br /&gt;
 |GPIO 15 (RxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 17&lt;br /&gt;
 |11&lt;br /&gt;
 |&lt;br /&gt;
 |12&lt;br /&gt;
 |GPIO 18 (PCM_CLK)&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 21 (PCM_DOUT)&lt;br /&gt;
 |13&lt;br /&gt;
 |&lt;br /&gt;
 |14&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 22&lt;br /&gt;
 |15&lt;br /&gt;
 |&lt;br /&gt;
 |16&lt;br /&gt;
 |GPIO 23&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |17&lt;br /&gt;
 |&lt;br /&gt;
 |18&lt;br /&gt;
 |GPIO 24&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 10 (MOSI)&lt;br /&gt;
 |19&lt;br /&gt;
 |&lt;br /&gt;
 |20&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 9 (MISO)&lt;br /&gt;
 |21&lt;br /&gt;
 |&lt;br /&gt;
 |22&lt;br /&gt;
 |GPIO 25&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 11 (SCLK)&lt;br /&gt;
 |23&lt;br /&gt;
 |&lt;br /&gt;
 |24&lt;br /&gt;
 |GPIO 8 (CE0)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |25&lt;br /&gt;
 |&lt;br /&gt;
 |26&lt;br /&gt;
 |GPIO 7 (CE1)&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=Ansteuern der GPIO's=&lt;br /&gt;
==Via Shell==&lt;br /&gt;
Die GPIO können direkt über die files im Ordner '/sys/class/gpio/' gesteuert werden, dies muss jedoch via root gemacht werden.&lt;br /&gt;
Zuerst müßen die files via 'export' zugänglich gemacht werden. Da die GPIO's nach dem Systemstart Eingänge sind, müßen diese jetzt als Ausgänge definiert werden und können danach manipuliert werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel anhand von GPIO 23:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /sys/class/gpio&lt;br /&gt;
$ su&lt;br /&gt;
root Passwort eingeben&lt;br /&gt;
$ echo &amp;quot;23&amp;quot; &amp;gt; export&lt;br /&gt;
$ echo &amp;quot;out&amp;quot; &amp;gt; gpio23/direction&lt;br /&gt;
$ echo &amp;quot;1&amp;quot; &amp;gt; gpio23/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Via WiringPi==&lt;br /&gt;
Alternativ zur direkten Ansteuerung kann das Programm 'WiringPi' installiert werden.&lt;br /&gt;
Der Vorteil daran ist zum einen die einfachere Anwendung und dass dazu keine root Rechte benötigt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen zur installation findet man auf der Projektseite..&amp;lt;br/&amp;gt;&lt;br /&gt;
https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Via PHP==&lt;br /&gt;
tbd&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_GPIO&amp;diff=20300</id>
		<title>Raspberry PI: GPIO</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_GPIO&amp;diff=20300"/>
				<updated>2012-07-15T15:38:17Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Schnittstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Schnittstellen= &lt;br /&gt;
Zusätzlich zu USB, Ethernet, Analog Audio/Video und HDMI bietet das Raspberry PI verschiedene GPIO's (General Purpose Input/Output), die über die 2,54mm Stiftleiste 'P1' zugänglich sind.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die GPIO Pins sind als 3,3V Signale ausgeführt und nicht 5V tolerant. Ein direkter Anschluss an TTL Level kann zur Zerstörung führen!&lt;br /&gt;
Bestimmte Pins können auch für SPI, I²C und UART Schnittstellen genutzt werden.&lt;br /&gt;
&lt;br /&gt;
==P1 Pinout==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Function&lt;br /&gt;
 |Pin&lt;br /&gt;
 |&lt;br /&gt;
 |Pin&lt;br /&gt;
 |Function&lt;br /&gt;
 |-&lt;br /&gt;
 |3,3V&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |2&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 0 (SDA)&lt;br /&gt;
 |3&lt;br /&gt;
 |&lt;br /&gt;
 |4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 1 (SCL)&lt;br /&gt;
 |5&lt;br /&gt;
 |&lt;br /&gt;
 |6&lt;br /&gt;
 |GND&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 4 (GPCLK0)&lt;br /&gt;
 |7&lt;br /&gt;
 |&lt;br /&gt;
 |8&lt;br /&gt;
 |GPIO 14 (TxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |9&lt;br /&gt;
 |&lt;br /&gt;
 |10&lt;br /&gt;
 |GPIO 15 (RxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 17&lt;br /&gt;
 |11&lt;br /&gt;
 |&lt;br /&gt;
 |12&lt;br /&gt;
 |GPIO 18 (PCM_CLK)&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 21 (PCM_DOUT)&lt;br /&gt;
 |13&lt;br /&gt;
 |&lt;br /&gt;
 |14&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 22&lt;br /&gt;
 |15&lt;br /&gt;
 |&lt;br /&gt;
 |16&lt;br /&gt;
 |GPIO 23&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |17&lt;br /&gt;
 |&lt;br /&gt;
 |18&lt;br /&gt;
 |GPIO 24&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 10 (MOSI)&lt;br /&gt;
 |19&lt;br /&gt;
 |&lt;br /&gt;
 |20&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 9 (MISO)&lt;br /&gt;
 |21&lt;br /&gt;
 |&lt;br /&gt;
 |22&lt;br /&gt;
 |GPIO 25&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 11 (SCLK)&lt;br /&gt;
 |23&lt;br /&gt;
 |&lt;br /&gt;
 |24&lt;br /&gt;
 |GPIO 8 (CE0)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |25&lt;br /&gt;
 |&lt;br /&gt;
 |26&lt;br /&gt;
 |GPIO 7 (CE1)&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=Ansteuern der GPIO's=&lt;br /&gt;
==Via Shell==&lt;br /&gt;
Die GPIO können direkt über die files im Ordner '/sys/class/gpio/' gesteuert werden, dies muss jedoch via root gemacht werden.&lt;br /&gt;
Zuerst müßen die files via 'export' zugänglich gemacht werden. Da die GPIO's nach dem Systemstart Eingänge sind, müßen diese jetzt als Ausgänge definiert werden und können danach manipuliert werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel anhand von GPIO 23:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /sys/class/gpio&lt;br /&gt;
$ su&lt;br /&gt;
root Passwort eingeben&lt;br /&gt;
$ echo &amp;quot;23&amp;quot; &amp;gt; export&lt;br /&gt;
$ echo &amp;quot;out&amp;quot; &amp;gt; gpio23/direction&lt;br /&gt;
$ echo &amp;quot;1&amp;quot; &amp;gt; gpio23/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Via WiringPi==&lt;br /&gt;
Alternativ zur direkten Ansteuerung kann das Programm 'WiringPi' installiert werden.&lt;br /&gt;
Der Vorteil daran ist zum einen die einfachere Anwendung und dass dazu keine root Rechte benötigt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen zur installation findet man auf der Projektseite..&amp;lt;br/&amp;gt;&lt;br /&gt;
https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Via PHP==&lt;br /&gt;
tbd&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_GPIO&amp;diff=20299</id>
		<title>Raspberry PI: GPIO</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_GPIO&amp;diff=20299"/>
				<updated>2012-07-15T15:37:42Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Schnittstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Schnittstellen= &lt;br /&gt;
Zusätzlich zu USB, Ethernet, Analog Audio/Video und HDMI bietet das Raspberry PI verschiedene GPIO's (General Purpose Input/Output), die über die 2,54mm Stiftleiste 'P1' zugänglich sind.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die GPIO Pins sind als 3,3V Signale ausgeführt und nicht 5V tolerant. Ein direkter Anschluss an TTL level kann zur Zerstörung führen!&lt;br /&gt;
Bestimmte Pins können auch als SPI, I²C und UART Schnittstellen genutzt werden.&lt;br /&gt;
&lt;br /&gt;
==P1 Pinout==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Function&lt;br /&gt;
 |Pin&lt;br /&gt;
 |&lt;br /&gt;
 |Pin&lt;br /&gt;
 |Function&lt;br /&gt;
 |-&lt;br /&gt;
 |3,3V&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |2&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 0 (SDA)&lt;br /&gt;
 |3&lt;br /&gt;
 |&lt;br /&gt;
 |4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 1 (SCL)&lt;br /&gt;
 |5&lt;br /&gt;
 |&lt;br /&gt;
 |6&lt;br /&gt;
 |GND&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 4 (GPCLK0)&lt;br /&gt;
 |7&lt;br /&gt;
 |&lt;br /&gt;
 |8&lt;br /&gt;
 |GPIO 14 (TxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |9&lt;br /&gt;
 |&lt;br /&gt;
 |10&lt;br /&gt;
 |GPIO 15 (RxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 17&lt;br /&gt;
 |11&lt;br /&gt;
 |&lt;br /&gt;
 |12&lt;br /&gt;
 |GPIO 18 (PCM_CLK)&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 21 (PCM_DOUT)&lt;br /&gt;
 |13&lt;br /&gt;
 |&lt;br /&gt;
 |14&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 22&lt;br /&gt;
 |15&lt;br /&gt;
 |&lt;br /&gt;
 |16&lt;br /&gt;
 |GPIO 23&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |17&lt;br /&gt;
 |&lt;br /&gt;
 |18&lt;br /&gt;
 |GPIO 24&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 10 (MOSI)&lt;br /&gt;
 |19&lt;br /&gt;
 |&lt;br /&gt;
 |20&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 9 (MISO)&lt;br /&gt;
 |21&lt;br /&gt;
 |&lt;br /&gt;
 |22&lt;br /&gt;
 |GPIO 25&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 11 (SCLK)&lt;br /&gt;
 |23&lt;br /&gt;
 |&lt;br /&gt;
 |24&lt;br /&gt;
 |GPIO 8 (CE0)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |25&lt;br /&gt;
 |&lt;br /&gt;
 |26&lt;br /&gt;
 |GPIO 7 (CE1)&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=Ansteuern der GPIO's=&lt;br /&gt;
==Via Shell==&lt;br /&gt;
Die GPIO können direkt über die files im Ordner '/sys/class/gpio/' gesteuert werden, dies muss jedoch via root gemacht werden.&lt;br /&gt;
Zuerst müßen die files via 'export' zugänglich gemacht werden. Da die GPIO's nach dem Systemstart Eingänge sind, müßen diese jetzt als Ausgänge definiert werden und können danach manipuliert werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel anhand von GPIO 23:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /sys/class/gpio&lt;br /&gt;
$ su&lt;br /&gt;
root Passwort eingeben&lt;br /&gt;
$ echo &amp;quot;23&amp;quot; &amp;gt; export&lt;br /&gt;
$ echo &amp;quot;out&amp;quot; &amp;gt; gpio23/direction&lt;br /&gt;
$ echo &amp;quot;1&amp;quot; &amp;gt; gpio23/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Via WiringPi==&lt;br /&gt;
Alternativ zur direkten Ansteuerung kann das Programm 'WiringPi' installiert werden.&lt;br /&gt;
Der Vorteil daran ist zum einen die einfachere Anwendung und dass dazu keine root Rechte benötigt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen zur installation findet man auf der Projektseite..&amp;lt;br/&amp;gt;&lt;br /&gt;
https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Via PHP==&lt;br /&gt;
tbd&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20293</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20293"/>
				<updated>2012-07-15T12:47:39Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Ändern von Hostname und IP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Ändern von Hostname und IP===&lt;br /&gt;
&lt;br /&gt;
Debian ist per default auf eine dynamische IP Zuweisung (DHCP) und auf den Hostname 'raspberrypi' konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Der Hostname kann über das Config-File '/etc/hostname' geändert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nano /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soll das Raspberry Pi eine statische IP erhalten, so muss dies im Config-File '/etc/network/interfaces' geändert werden.&lt;br /&gt;
Bei den Werkseinstellungen steht hier die folgende Zeile zur konfiguration auf DHCP.&lt;br /&gt;
&amp;lt;pre&amp;gt;iface eth0 inet dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese muss wie folgt editiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
     address 192.168.0.100&lt;br /&gt;
     network 192.168.0.0&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     broadcast 192.168.0.255&lt;br /&gt;
     gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Parameter sind dem eigenem Netzwerk anzupassen.&lt;br /&gt;
Damit die Änderungen wirksam werden muß das Raspberry Pi neu gestartet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo shutdown now -r&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt können die neuen Einstellungen verifiziert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr&lt;br /&gt;
$ ping google.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20288</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20288"/>
				<updated>2012-07-13T19:36:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine [http://de.wikipedia.org/wiki/Auslagerungsdatei Auslagerungsdatei] erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20287</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20287"/>
				<updated>2012-07-13T19:35:52Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Erstellen einer Auslagerungsdatei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
Da das Raspberry Pi nur einen sehr kleinen Arbeitsspeicher hat, zeige ich euch hier wie ihr eine Auslagerungsdatei erstellt. &amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Datei unterstützt den Arbeitsspeicher etwas, indem dadurch der Arbeitsspeicher quasi &amp;quot;vergrößert&amp;quot; wird.&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm Programmbeispiele ( in C )] &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20285</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20285"/>
				<updated>2012-07-11T18:17:39Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung. Dementsprechend steigt auch die Anzahl preisgünstiger Entwicklungsboards die den Einstieg und den Umgang mit Embedded Linux erleichtern. Eines dieser Boards ist das Raspberry Pi.&amp;lt;br\&amp;gt; &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20284</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20284"/>
				<updated>2012-07-11T18:15:54Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20283</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20283"/>
				<updated>2012-07-11T18:13:28Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um uns das mal genauer anzuschauen geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20282</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20282"/>
				<updated>2012-07-11T18:12:47Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel.&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Schauen wir uns das mal genauer an.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20281</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20281"/>
				<updated>2012-07-11T18:12:05Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel. &amp;lt;br\&amp;gt;&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Schauen wir uns das mal genauer an.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die SD-Karte trägt unter Linux den Namen &amp;quot;mmcblk0&amp;quot;. Weitere SD-Karten würde &amp;quot;mmcblk1&amp;quot; usw. heißen. Die einzelnen Partitionen auf der SD-Karte werden mit &amp;quot;p1&amp;quot;, &amp;quot;p2&amp;quot;, &amp;quot;p3&amp;quot;, usw. abgekürzt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen, wovon es sich bei einer Partition um eine FAT32 Partition (Partition &amp;quot;p1&amp;quot;) handelt. Die anderen beiden sind Linux Partition (Partitionen &amp;quot;p2&amp;quot; und &amp;quot;p3&amp;quot;).&amp;lt;br\&amp;gt;&lt;br /&gt;
Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Anschließend erstellen wir mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; eine neue Primärpartition.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition soll auch eine Nummer bekommen und da Partition 1 schon vorhanden ist (wir erinnern uns, dass Partition 1 die Bootpartition ist) nummerieren wir die Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren.).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Um diesen zu nehmen, reicht ein Druck auf &amp;quot;Enter&amp;quot; aus.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden und die Partition erstellt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Partition noch &amp;quot;formatieren&amp;quot;. Dies geschieht mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Zeit zum Ausführen dieses Befehls hängt von der Größe der SD-Karte ab, sprich bei großen Karten dauert dies um einiges länger!&lt;br /&gt;
Nachdem dieser Befehl ausgeführt wurde, beinhaltet die neue Partition allen Speicher der noch keiner Partition zugeordnet war.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20280</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20280"/>
				<updated>2012-07-11T17:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel. &amp;lt;br\&amp;gt;&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Schauen wir uns das mal genauer an.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen. &amp;lt;br\&amp;gt;&lt;br /&gt;
Es handelt sich um eine FAT32 und zwei Linux Partition. Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Jetzt müssen wir noch mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; mitteilen das wir eine Primärpartition erstellen wollen und dann muss noch die Nummer der Partitionen mitgeteilt werden. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da Partition 1 schon vorhanden ist (wir erinnern uns. Partition 1 ist die Bootpartition) machen wir uns eine Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als letzter Schritt müssen wir noch die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten und den letzten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Einfach den Wert kopieren und &amp;quot;Enter&amp;quot; drücken.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein. Nun wird die Partition erstellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Größe der Partition wiederherstellen. Dies erfolgt mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Zeit die zum Ausführen dieses Befehls benötigt wird hängt von der Größe der SD-Karte ab!&amp;lt;br\&amp;gt;&lt;br /&gt;
Durch diesen Befehl wird quasi eine neue Partition erstellt die den kompletten, nicht benutzen Speicherplatz der SD-Karte umfasst.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20278</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20278"/>
				<updated>2012-07-11T16:36:40Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel. &amp;lt;br\&amp;gt;&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Schauen wir uns das mal genauer an.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen. &amp;lt;br\&amp;gt;&lt;br /&gt;
Es handelt sich um eine FAT32 und zwei Linux Partition. Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Jetzt müssen wir noch mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; mitteilen das wir eine Primärpartition erstellen wollen und dann muss noch die Nummer der Partitionen mitgeteilt werden. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da Partition 1 schon vorhanden ist (wir erinnern uns. Partition 1 ist die Bootpartition) machen wir uns eine Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als letzter Schritt müssen wir noch die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten und den letzten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Einfach den Wert kopieren und &amp;quot;Enter&amp;quot; drücken.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein. Nun wird die Partition erstellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Größe der Partition wiederherstellen. Dies erfolgt mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Zeit die zum Ausführen dieses Befehls benötigt wird hängt von der Größe der SD-Karte ab!&amp;lt;br\&amp;gt;&lt;br /&gt;
Durch diesen Befehl wird quasi eine neue Partition erstellt die den kompletten, nicht benutzen Speicherplatz der SD-Karte umfasst.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20277</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20277"/>
				<updated>2012-07-11T16:36:14Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel. &amp;lt;br\&amp;gt;&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Schauen wir uns das mal genauer an.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen. &amp;lt;br\&amp;gt;&lt;br /&gt;
Es handelt sich um eine FAT32 und zwei Linux Partition. Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Jetzt müssen wir noch mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; mitteilen das wir eine Primärpartition erstellen wollen und dann muss noch die Nummer der Partitionen mitgeteilt werden. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da Partition 1 schon vorhanden ist (wir erinnern uns. Partition 1 ist die Bootpartition) machen wir uns eine Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als letzter Schritt müssen wir noch die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten und den letzten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Einfach den Wert kopieren und &amp;quot;Enter&amp;quot; drücken.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein. Nun wird die Partition erstellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Größe der Partition wiederherstellen. Dies erfolgt mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Zeit die zum Ausführen dieses Befehls benötigt wird hängt von der Größe der SD-Karte ab!&amp;lt;br\&amp;gt;&lt;br /&gt;
Durch diesen Befehl wird quasi eine neue Partition erstellt die den kompletten, nicht benutzen Speicherplatz der SD-Karte umfasst.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20276</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20276"/>
				<updated>2012-07-11T16:35:47Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel. &amp;lt;br\&amp;gt;&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Schauen wir uns das mal genauer an.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen. &amp;lt;br\&amp;gt;&lt;br /&gt;
Es handelt sich um eine FAT32 und zwei Linux Partition. Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Jetzt müssen wir noch mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; mitteilen das wir eine Primärpartition erstellen wollen und dann muss noch die Nummer der Partitionen mitgeteilt werden. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da Partition 1 schon vorhanden ist (wir erinnern uns. Partition 1 ist die Bootpartition) machen wir uns eine Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als letzter Schritt müssen wir noch die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten und den letzten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Einfach den Wert kopieren und &amp;quot;Enter&amp;quot; drücken.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein. Nun wird die Partition erstellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Größe der Partition wiederherstellen. Dies erfolgt mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Zeit die zum Ausführen dieses Befehls benötigt wird hängt von der Größe der SD-Karte ab!&amp;lt;br\&amp;gt;&lt;br /&gt;
Durch diesen Befehl wird quasi eine neue Partition erstellt die den kompletten, nicht benutzen Speicherplatz der SD-Karte umfasst.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20273</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20273"/>
				<updated>2012-07-11T14:59:09Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel. &amp;lt;br\&amp;gt;&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Schauen wir uns das mal genauer an.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen. &amp;lt;br\&amp;gt;&lt;br /&gt;
Es handelt sich um eine FAT32 und zwei Linux Partition. Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Jetzt müssen wir noch mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; mitteilen das wir eine Primärpartition erstellen wollen und dann muss noch die Nummer der Partitionen mitgeteilt werden. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da Partition 1 schon vorhanden ist (wir erinnern uns. Partition 1 ist die Bootpartition) machen wir uns eine Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als letzter Schritt müssen wir noch die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten und den letzten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Einfach den Wert kopieren und &amp;quot;Enter&amp;quot; drücken.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein. Nun wird die Partition erstellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Größe der Partition wiederherstellen. Dies erfolgt mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Zeit die zum Ausführen dieses Befehls benötigt wird hängt von der Größe der SD-Karte ab!&amp;lt;br\&amp;gt;&lt;br /&gt;
Durch diesen Befehl wird quasi eine neue Partition erstellt die den kompletten, nicht benutzen Speicherplatz der SD-Karte umfasst.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Auslagerungsdatei==&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20272</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20272"/>
				<updated>2012-07-11T14:57:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel. &amp;lt;br\&amp;gt;&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Schauen wir uns das mal genauer an.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen. &amp;lt;br\&amp;gt;&lt;br /&gt;
Es handelt sich um eine FAT32 und zwei Linux Partition. Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Jetzt müssen wir noch mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; mitteilen das wir eine Primärpartition erstellen wollen und dann muss noch die Nummer der Partitionen mitgeteilt werden. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da Partition 1 schon vorhanden ist (wir erinnern uns. Partition 1 ist die Bootpartition) machen wir uns eine Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als letzter Schritt müssen wir noch die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten und den letzten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Einfach den Wert kopieren und &amp;quot;Enter&amp;quot; drücken.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein. Nun wird die Partition erstellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Größe der Partition wiederherstellen. Dies erfolgt mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Zeit die zum Ausführen dieses Befehls benötigt wird hängt von der Größe der SD-Karte ab!&amp;lt;br\&amp;gt;&lt;br /&gt;
Durch diesen Befehl wird quasi eine neue Partition erstellt die den kompletten, nicht benutzen Speicherplatz der SD-Karte umfasst.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure neue Speichertabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20271</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20271"/>
				<updated>2012-07-11T14:56:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        1.6G  1.2G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie ihr seht, wird sich diese Liste sehr wahrscheinlich von der eigentlichen Speichergröße eurer SD-Karte unterscheiden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Der Grund dafür ist relativ simpel. &amp;lt;br\&amp;gt;&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Schauen wir uns das mal genauer an.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen. &amp;lt;br\&amp;gt;&lt;br /&gt;
Es handelt sich um eine FAT32 und zwei Linux Partition. Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Jetzt müssen wir noch mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; mitteilen das wir eine Primärpartition erstellen wollen und dann muss noch die Nummer der Partitionen mitgeteilt werden. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da Partition 1 schon vorhanden ist (wir erinnern uns. Partition 1 ist die Bootpartition) machen wir uns eine Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als letzter Schritt müssen wir noch die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten und den letzten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696 (den Wert könnt ihr einfach aus der Liste rauskopieren).&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Einfach den Wert kopieren und &amp;quot;Enter&amp;quot; drücken.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein. Nun wird die Partition erstellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn ihr euch wieder eingeloggt habt, müsst ihr die Größe der Partition wiederherstellen. Dies erfolgt mit folgendem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo resize2fs /dev/mmblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Zeit die zum Ausführen dieses Befehls benötigt wird hängt von der Größe der SD-Karte ab!&amp;lt;br\&amp;gt;&lt;br /&gt;
Durch diesen Befehl wird quasi eine neue Partition erstellt die den kompletten, nicht benutzen Speicherplatz der SD-Karte umfasst.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wenn ihr anschließend wieder&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingebt, sollte eure Tabelle so aussehen (dieses Beispiel gilt für eine 8GB Karte):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun ist die Kartengröße erfolgreich wiederhergestellt und ihr könnt den kompletten Speicherplatz eurer Karte benutzen.&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.roboternetz.de/community/forums/68-Raspberry-Pi Roboternetz Forum zum Raspberry Pi]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20257</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20257"/>
				<updated>2012-07-09T20:37:43Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese (nach dem Bearbeiten!) so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei euch wird nur etwas um die 2GB angezeigt werden.&lt;br /&gt;
Der Grund dafür ist relativ simpel. &amp;lt;br\&amp;gt;&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Schauen wir uns das mal genauer an.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen. &amp;lt;br\&amp;gt;&lt;br /&gt;
Es handelt sich um eine FAT32 und zwei Linux Partition. Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Jetzt müssen wir noch mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; mitteilen das wir eine Primärpartition erstellen wollen und dann muss noch die Nummer der Partitionen mitgeteilt werden. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da Partition 1 schon vorhanden ist (wir erinnern uns. Partition 1 ist die Bootpartition) machen wir uns eine Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als letzter Schritt müssen wir noch die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten und den letzten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Einfach den Wert kopieren und &amp;quot;Enter&amp;quot; drücken.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein. Nun wird die Partition erstellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20256</id>
		<title>Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=20256"/>
				<updated>2012-07-09T20:19:57Z</updated>
		
		<summary type="html">&lt;p&gt;Kampi: /* Speichergröße der SD-Karte widerherstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:300px-Raspberry Pi Photo.jpg|right|thumb|Das Raspberry Pi]]&lt;br /&gt;
Embedded Linux findet in immer mehr Bereichen Verwendung und dementsprechend erscheinen auch immer mehr Entwicklungsboards um den Einstieg und den Umgang mit dem Embedded Linux zu erleichtern. Eines dieser Boards ist das Raspberry Pi. &lt;br /&gt;
Dieser Artikel soll Neulingen den Einstieg in die Welt des Embedded Linux erleichtern und dabei helfen etwas Erfahrung mit dem Raspberry Pi und den Umgang mit Linux zu sammeln.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
&lt;br /&gt;
=Wofür das Ganze?=&lt;br /&gt;
Das ist wohl die erste Frage die man sich stellt wenn man von so etwas wie dem Raspberry Pi oder anderen Embedded Systemen hört.&amp;lt;br\&amp;gt;&lt;br /&gt;
Es dürfte wohl klar sein, dass diese Boards komplett anders sind als ganz normale Mikrocontroller wie der Mega32 oder ein PIC. Aber im Gegenzug dazu bieten diese Systeme, im Vergleich zu Mikrocontrollern, eine immense Rechenpower.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dadurch wird es möglich kleine und zugleich komplexe Systeme zu entwickeln.&lt;br /&gt;
Ein einfaches Beispiel ist das aufnehmen von Videos. Videos können mit einem einfachen Mikrocontroller nur sehr bedingt aufgenommen werden und die Qualität ist alles andere als schön.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ein Embedded System besitzt genug Rechenpower um diese Aufgabe problemlos zu bewältigen. &lt;br /&gt;
Dies ist nur eine Aufgabe von vielen. Ohne Embedded Linux würden heute viele Geräte nicht so arbeiten wie sie es tun (IP-Kameras, Router, Webserver, usw.).&lt;br /&gt;
&lt;br /&gt;
=Die ersten Schritte=&lt;br /&gt;
Herzstück dieses Boards ist ein [http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf BCM2835] SoC von Broadcom, der mit einer Taktfrequenz von 700MHz arbeitet. Ein [http://de.wikipedia.org/wiki/System-on-a-Chip SoC] ist ein &amp;quot;System on a Chip&amp;quot; d.h ein komplettes System in Form eines einzigen ICs. Der BCM2835 beinhaltet 256MB RAM, einen [http://de.wikipedia.org/wiki/ARM-Architektur ARM11] Prozessorkern und eine [http://de.wikipedia.org/wiki/Grafikprozessor GPU]. Das Raspberry Pi beinhaltet u.a. zwei USB-Ports, einen HDMI Anschluss, einen SD-Kartenslot und einen LAN Anschluss.&lt;br /&gt;
&lt;br /&gt;
==SD-Karten Setup==&lt;br /&gt;
Bevor ihr mit dem Raspberry Pi losgelegen könnt, müsst ihr erst eine SD-Karte mit einem Debian Image erstellt werden. &amp;lt;br\&amp;gt;Hierbei ist darauf zu achten, dass ihr für die SD-Karte möglichst keine Class 10 Karte und keine Karte mit einer großen Speicherkapazität verwendet wird, da es bei diesen Karten mit sehr hoher Wahrscheinlichkeit vorkommen kann das diese vom Raspberry Pi nicht richtig erkannt wird.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei diesen zwei [http://www.rn-wissen.de/images/8/8b/DSCF0438-1-.JPG Karten] kann ich jedoch versichern das sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Windows===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Den Win32 DiskImager unter: https://launchpad.net/win32-image-writer downloaden&lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Win32 DiskImager starten&lt;br /&gt;
# Die SD-Karte und das Image im DiskImager auswählen&lt;br /&gt;
# Auf &amp;quot;Write&amp;quot; klicken (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Sobald der Schreibvorgang abgeschlossen wurde auf &amp;quot;OK&amp;quot; klicken&lt;br /&gt;
# DiskImager schließen&lt;br /&gt;
# SD-Karte in das Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter MAC OS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SD-Karte erstellen unter Linux===&lt;br /&gt;
# Das Image unter: http://www.raspberrypi.org/downloads downloaden &lt;br /&gt;
# Das Image entpacken&lt;br /&gt;
# Terminal öffnen und &amp;quot;ls /dev&amp;quot; eingeben&lt;br /&gt;
# SD-Karte in einen Kartenleser einlegen&lt;br /&gt;
# Im Terminal wieder &amp;quot;ls /dev&amp;quot; eingeben. Im Verleich zum vorherigen &amp;quot;ls /dev&amp;quot; sollte jetzt eine Device namens &amp;quot;sd*&amp;quot; (z.B. &amp;quot;sdb&amp;quot;, &amp;quot;sdc&amp;quot; usw.) hinzugekommen sein. Sollten mehrere Devices hinzugekommen sein, die Karte wieder entfernen und ab Schritt 3 wiederholen.&lt;br /&gt;
# Im Terminal eingeben: &amp;quot;sudo dd if=/home/benutzername/Downloads/Pfad/Zum/Image.img of=/dev/sd*&amp;quot;. Der Pfad nach &amp;quot;if=&amp;quot; und das &amp;quot;sd*&amp;quot; nach &amp;quot;of=/dev/&amp;quot; müssen natürlich angepasst werden! (VORSICHT: Alle Daten auf der Karte werden gelöscht)&lt;br /&gt;
# Warten bis der Befehl abgeschlossen ist&lt;br /&gt;
# SD-Karte in den Raspberry Pi einlegen&lt;br /&gt;
&lt;br /&gt;
==Die erste Inbetriebnahme==&lt;br /&gt;
Jetzt da das Image fertig ist müsst ihr nur noch eine USB-Tastatur, eine USB-Maus, einen Bildschirm und das Powerkabel anschließen.&lt;br /&gt;
&amp;lt;br/&amp;gt;Optional kann das Raspberry Pi noch in das LAN eingebunden werden.&lt;br /&gt;
&amp;lt;br/&amp;gt;Nach einiger Zeit sollte der Bootprozess beendet sein und auf dem Bildschirm ein &amp;quot;raspberrypi login&amp;quot; erscheinen.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Der Standard Login bei Debian Squeeze Images lautet..&lt;br /&gt;
&amp;lt;br/&amp;gt;User: '''pi'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Password: '''raspberry'''&lt;br /&gt;
&amp;lt;br/&amp;gt;Wichtig ist, dass die Keymap beim Raspberry Pi im Lieferzustand auf &amp;quot;uk&amp;quot; gesetzt ist.&lt;br /&gt;
Dadurch sind unter anderem die Tastem &amp;quot;Z&amp;quot; und &amp;quot;Y&amp;quot; vertauscht.&lt;br /&gt;
&lt;br /&gt;
===Passwort ändern===&lt;br /&gt;
Nach der Anmeldung solltet ihr das Passwort für den Benutzernamen &amp;quot;pi&amp;quot; ändern.&lt;br /&gt;
Dies wird so gemacht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ passwd&lt;br /&gt;
  Das aktuelle Passwort&lt;br /&gt;
  Das neue Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Admin Account anlegen===&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo su &lt;br /&gt;
  Neues Root-Passwort&lt;br /&gt;
  Wiederholung vom neuen Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Keyboard Layout ändern===&lt;br /&gt;
Um das lästige Suchen der Sonderzeichen auf der UK Keymap zu vermeiden, sollte diese an die Tastatur angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/default/keyboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Ländercoder muß z.B. für ein deutsches Layout auf &amp;quot;de&amp;quot; gesetzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Sollte der Bootvorgang danach deutlich länger dauern, kann dies mit folgendem Befehl behoben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo setupcon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies muß direkt in der Raspberry Pi Konsole erfolgen und funktioniert via SSH o.ä. nicht.&lt;br /&gt;
&lt;br /&gt;
===SSH-Server aktivieren===&lt;br /&gt;
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.&lt;br /&gt;
Das SSH wird wie folgt aktiviert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird das Raspberry Pi neu gebootet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart sollte vor dem &amp;quot;raspberrypi login&amp;quot; ein &amp;quot;starting OpenBSD Secure Shell Server: sshd&amp;quot; erscheinen. Dann ist der SSH-Server aktiviert und kann verwendet werden.&lt;br /&gt;
Die IP-Adresse vom Raspberry Pi findet ihr so heraus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ip addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue state UNKNOWN&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether b8:27:eb:ac:5e:2a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.178.25/24 brd 192.168.178.255 scope global eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IP-Adresse meines Boards lautet also &amp;quot;192.168.178.25&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fernzugriff auf das Raspberry Pi==&lt;br /&gt;
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.&lt;br /&gt;
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. &lt;br /&gt;
Ich verwende für Windows das Programm [http://www.chip.de/downloads/PuTTY_12997392.html PuTTY].&lt;br /&gt;
Das Programm wird gedownloadet und anschließend installiert. &lt;br /&gt;
Unter Linux kann das Programm einfach über das Softwarecenter gedownloadet werden.&lt;br /&gt;
Nach dem Öffnen sieht das Programm so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Puttyq.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun wird bei &amp;quot;Host Name&amp;quot; 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 &amp;quot;Connection type&amp;quot; wird der Haken bei &amp;quot;SSH&amp;quot; gesetzt. &lt;br /&gt;
Als nächstes könnt ihr bei &amp;quot;Saved Sessions&amp;quot; noch einen Namen eingeben unter dem das Profil gespeichert wird und nach einem Klick auf &amp;quot;Save&amp;quot; wird das Profil gespeichert.&lt;br /&gt;
Sobald ihr nun einen Doppelklick auf den Namen macht, öffnet sich ein Fenster und nach kurzer Zeit sollte dies hier erscheinen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Putty2.jpg]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Falls ihr ein Linuxsystem verwenden, könnt ihr alternativ mit dem Befehl &amp;quot;ssh pi@xxx.xxx.xxx.xxx&amp;quot; auf das Raspberry Pi zugreifen. (x = IP-Adresse). Der Zugriff erfolgt dann ohne PuTTY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentransfer mit dem Raspberry Pi==&lt;br /&gt;
Nun wollen wir Dateien zwischen dem Raspberry Pi und unserem PC austauschen. Dies ermöglicht später einen Upload von fertig geschriebenen Programmen o.ä.&lt;br /&gt;
Der Datenaustausch geschieht auch wieder über LAN, allerdings werden für Windows und Linux unterschiedliche Programme verwendet. &lt;br /&gt;
Für Windows können Programme wie [http://www.filezilla.de/ FileZilla] oder [http://winscp.net/eng/docs/lang:de Winscp] verwendet werden.&amp;lt;br\&amp;gt;&lt;br /&gt;
Ich verwende aber lieber ein Linuxsystem da es später besser ist die Programme auf einem Linuxsystem zu kompilieren und anschließend zu übertragen.&lt;br /&gt;
Aber darauf gehe ich später nochmal etwas genauer ein, wenn die ersten Programme geschrieben werden.&lt;br /&gt;
Für die Leute die aber weiterhin Windows benutzen wollen, empfiehlt sich eine [[VM]] (z.B. [http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html Virtual Box]).&lt;br /&gt;
&lt;br /&gt;
Für den ersten Versuch erstellen wir uns ein einfaches Dokument mit dem Namen &amp;quot;Test.txt&amp;quot; auf dem Desktop. In dieses Dokument schreiben wir den Text &amp;quot;Hallo&amp;quot;. Dieses Dokument wollen wir anschließend auf unser Raspberry Pi übertragen.&lt;br /&gt;
&lt;br /&gt;
===Via Konsole===&lt;br /&gt;
Nun öffnen wir die Konsole und geben folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Kommando &amp;quot;SCP&amp;quot; setzt sich aus mehreren Parametern zusammen. Das erste Parameter ist der Pfad der Datei die wir kopieren wollen (in unserem Fall &amp;quot;Test.txt&amp;quot;).&amp;lt;br\&amp;gt; Den Pfad könnt ihr erfahren, indem ihr einen, wie bei Windows, einen Rechtsklick auf die Datei macht und anschließend auf &amp;quot;Eigenschaften&amp;quot; geht.&amp;lt;br\&amp;gt;&lt;br /&gt;
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.&amp;lt;br\&amp;gt; Soll die Datei &amp;quot;Test.txt&amp;quot; an den Benutzer &amp;quot;xy&amp;quot; gesendet werden, lautet der Parameter xy@IP-Adresse.&lt;br /&gt;
Das Passwort ist das Passwort des Accounts den ihr bei dem Befehl &amp;quot;SCP&amp;quot; angegeben habt.&lt;br /&gt;
Nach dem Transfer sollte folgendes in der Konsole stehen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Scpo.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schreibt ihr hingegen folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scp /home/daniel/Arbeitsfläche/Test.txt pi@192.168.178.25:abc/Text.txt&lt;br /&gt;
  Passwort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird die Datei auf dem Raspberry Pi in dem Ordner /home/pi/abc unter dem Namen &amp;quot;Text.txt&amp;quot; gespeichert. Wenn ihr den Parameter &amp;quot;abc/Text.txt&amp;quot; weglasst wird die Datei unter /home/pi gespeichert. &lt;br /&gt;
Wird als Benutzername &amp;quot;xy&amp;quot; angegeben, befindet sich die Datei anschließend im Ordner /home/xy. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nun überprüfen wir ob die Datei übertragen wurde.&lt;br /&gt;
Dazu öffnen wir PuTTY und stellen eine Verbindung zum Raspberry Pi her.&amp;lt;br\&amp;gt;&lt;br /&gt;
Anschließend loggen wir uns ein und tippen folgendes in die Konsole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /home/pi&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl &amp;quot;cd&amp;quot; wechseln wir in ein bestimmtes Verzeichnis (in dem Fall in das Verzeichnis &amp;quot;pi&amp;quot;). &amp;lt;br\&amp;gt; Dann werden alle Dateien mit dem Befehl &amp;quot;ls&amp;quot; aufgelistet die sich in dem Verzeichnis befinden zu dem wir gerade hingewechselt sind.&lt;br /&gt;
Es sollte nun die Datei &amp;quot;Test.txt&amp;quot; angezeigt werden.&lt;br /&gt;
Wenn wir nun folgendes eingeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann wird der Text, den wir vorhin in das Textdokument reingeschrieben haben, im Terminal angezeigt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um die Datei zu löschen schreiben wir einfach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm Test.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via Nautilus===&lt;br /&gt;
Eine weitere Möglichkeit Daten auszutauschen besteht darin, den Dateimanager eines Linuxbetriebssystems (z.B. Nautilus von Ubuntu) zu öffnen, dessen Adressleiste mit Strg+L in den Bearbeiten-Modus schalten und als Adresse &amp;quot;sftp://xxx.xxx.xxx.xxx&amp;quot; (x = IP-Adresse des Raspberry Pi) einzugeben. Dann nur noch die Anmeldedaten (Benutzername = pi, Passwort = raspberry) eingeben und schon kann man Datein beliebig hin- und herkopieren, erstellen, bearbeiten und löschen, wie man es eben von einem Dateimanager gewohnt ist.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nautilus_Pi_SFTP.png]]&lt;br /&gt;
&lt;br /&gt;
==Speichergröße der SD-Karte widerherstellen==&lt;br /&gt;
&lt;br /&gt;
Nun schauen wir uns die Speicherbelegung auf der SD-Karte etwas genauer an.&lt;br /&gt;
Dazu stellen wir entweder eine SSH-Verbindung her oder wir machen es direkt am Raspberry Pi. &amp;lt;br\&amp;gt;&lt;br /&gt;
Um die aktuelle Speicherbelegung anzeigen zu lassen tippen wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir sieht diese (nach dem Bearbeiten!) so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mmcb1k0p2        7.3G  1.5G  5.5G  21% /&lt;br /&gt;
tmpfs                  94M     0   94M   0% /lib/init/rw&lt;br /&gt;
udev                   10M  152K  9.9M   2% /dev&lt;br /&gt;
tmpfs                  94M     0   94M   0% /dev/shm&lt;br /&gt;
/dev/mmcblk0p1         75M   29M   46M  39% /boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei euch wird nur etwas um die 2GB angezeigt werden.&lt;br /&gt;
Der Grund dafür ist relativ simpel. &amp;lt;br\&amp;gt;&lt;br /&gt;
Das Debian-Image, welches ganz am Anfang aufgespielt wurde, ist für SD-Karten mit einer Speichergröße von 2GB ausgelegt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Schauen wir uns das mal genauer an.&amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür geben wir folgendes ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Raspberry Pi gibt nun folgendes zurück:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk0p1              17        1216       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2            1233       26672     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3           26689       29744      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie zu erkennen ist, besteht die SD-Karte aus drei Partitionen. &amp;lt;br\&amp;gt;&lt;br /&gt;
Es handelt sich um eine FAT32 und zwei Linux Partition. Die FAT32 Partition ist die Partition, die für den Bootvorgang notwendig ist. Auf dieser Partition befindet sich u.a das Kernelimage.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese Partition sieht man übrigends auch wenn die Karte an einem Windowsrechner in ein Kartenleser gesteckt wird. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da das Debian-Image nur für 2GB Karten gedacht ist, verwendet es auch nur 2GB der SD-Karte, egal wie groß eure Karte ist.&amp;lt;br\&amp;gt;&lt;br /&gt;
Da wir aber natürlich die gesamte SD-Karte nutzen wollen, müssen wir die Linux Partition &amp;quot;vergrößern&amp;quot;. &amp;lt;br\&amp;gt;&lt;br /&gt;
Dafür löschen wir die gesamte Partition (die ja nur etwas um die 2GB groß ist) und erzeugen eine neue Partition. Diese Partition erstreckt sich anschließend über den gesamten Restspeicherplatz der SD-Karte.&lt;br /&gt;
&lt;br /&gt;
´{{FarbigerRahmen|&lt;br /&gt;
'''VORSICHT!!!!&lt;br /&gt;
&lt;br /&gt;
Wenn ihr hier einen Fehler macht, sind alle Daten futsch. Also lieber ein Back-Up eurer SD-Karte erstellen!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die Formatierung wird nun wie folgt gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo fdisk -uc /dev/mmcblk0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werdet ihr aufgefordert ein Kommando einzugeben. Als erstes lassen wir uns mit &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; die Partitionstabelle anzeigen.&amp;lt;br\&amp;gt;&lt;br /&gt;
Diese sieht anschließend so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/mmcblk0: 7958 MB, 7958691840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 121440 cylinders, total 15544320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000ee283&lt;br /&gt;
&lt;br /&gt;
        Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux&lt;br /&gt;
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Partitionen 2 und 3 löschen. Hierbei löschen wir NUR die Partitionen. Nicht aber die Daten.&amp;lt;br\&amp;gt;&lt;br /&gt;
Um eine Partition zu löschen geben wir den Befehl &amp;quot;&amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&amp;quot; ein und anschließend müsst ihr dann angeben welche Partition gelöscht werden soll. &amp;lt;br\&amp;gt;&lt;br /&gt;
Wir fangen mit Partition 2 an und dafür geben wir die Zahl &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot; ein. Dasselbe machen wir für die Partition 3.&lt;br /&gt;
Jetzt müssen wir eine neue Primärpartition erstellen.&lt;br /&gt;
Dafür teilen wir dem Raspberry Pi mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&amp;quot; mit, dass wir eine neue Partition erstellen wollen.&lt;br /&gt;
Jetzt müssen wir noch mit dem Befehl &amp;quot;&amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&amp;quot; mitteilen das wir eine Primärpartition erstellen wollen und dann muss noch die Nummer der Partitionen mitgeteilt werden. &amp;lt;br\&amp;gt;&lt;br /&gt;
Da Partition 1 schon vorhanden ist (wir erinnern uns. Partition 1 ist die Bootpartition) machen wir uns eine Partition mit der Nummer &amp;quot;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&amp;quot;.&amp;lt;br\&amp;gt;&lt;br /&gt;
Als letzter Schritt müssen wir noch die Größe der neuen Partition festlegen und diese dann erstellen. Dafür teilen wir dem Raspberry Pi als erstes den ersten und den letzten Sektor der neuen Partition mit.&amp;lt;br\&amp;gt;&lt;br /&gt;
Wichtig ist das für den ersten Sektor &amp;lt;b&amp;gt;NICHT&amp;lt;/b&amp;gt; der default-Wert genommen wird. Hier müsst ihr den Wert nehmen der weiter oben bei &amp;quot;/dev/mmcblk0&amp;quot; steht, sprich in diesem Beispiel 157696.&amp;lt;br\&amp;gt;&lt;br /&gt;
Bei dem letzten Sektor könnt ihr hingegen den default-Wert nehmen. Einfach den Wert kopieren und &amp;quot;Enter&amp;quot; drücken.&lt;br /&gt;
Danach werdet ihr wieder aufgefordert einen Befehl einzugeben. Jetzt gebt ihr &amp;quot;&amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&amp;quot; ein. Nun wird die Partition erstellt.&amp;lt;br\&amp;gt;&lt;br /&gt;
Jetzt müsst ihr das Raspberry Pi mit diesem Befehl rebooten, damit die Änderungen übernommen werden-:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
[http://www.raspberrypi.org/ Raspberry Pi.org]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.ubuntuusers.de/Startseite Ubuntuuser Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://wiki.debian.org/de/FrontPage?action=show&amp;amp;redirect=StartSeite Debian Wiki]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://hobbyelektronik.org/w/index.php/Raspberry_Pi_IO Tutorial zu den IOs]&amp;lt;br\&amp;gt;&lt;br /&gt;
[http://sparky0815.de/2012/05/raspberry-pi-partition-an-grosere-sd-karte-anpassen Größe der SD-Karte anpassen]&amp;lt;br\&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Kampi|Kampi]] 18:20, 5. Jul 2012 (CEST)&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>Kampi</name></author>	</entry>

	</feed>