Embedded Linux mit dem Raspberry Pi
Im Sommer 2012 konnte das scheckkartengrosse ARM-basierende Mikrocontrollerboard bestellt und auch geliefert werden und lädt seither zum Experimentieren ein.
Neben dem Raspberry Pi gibt es weitere Boards, die auch im Wesentlichen auf ARM-Technologie basieren, nicht ganz so kostengünstig, dafür allerdings meist etwas leistungsfähiger sind.
Der Untertitel "für Ein- und Umsteiger“ soll gleichzeitig verdeutlichen, an wen bei dieser Thematik hier primär gedacht ist.
Hier geht es nicht um Linux als alternatives Betriebssystem für den PC, sondern den Einsatz von Linux in einem Embedded System und um das Embedded System selbst. Der Schwerpunkt der Betrachtungen liegt dabei ganz klar auf dem Raspberry Pi.
Die Komplexität heutiger Anforderungen an Elektronikkomponenten ist an vielen Stellen mit den klassischen Konzepten um Mikrocontroller, wie den mittlerweile etwas betagten aber in seinen unterschiedlichen Derivaten immer noch verbreiteten 8051, die breite Palette der Atmel- und PIC-Controller bzw. die Controller von deren Mitbewerbern, wie Texas Instruments, Renesas und vielen anderen, kaum umsetzbar. Hinzu kommt der Preiszerfall in diesem Sektor, der für den Einsatz leistungsfähiger 32-Bit-Mikrocontroller, wie ARM- oder Cortex-Derivate, spricht.
Während die leistungsschwächeren (8-Bit-) Mikrocontroller meist ohne Betriebssystem betrieben wurden, kommt man bei den 32-Bit-Mikrocontrollern kaum noch um den Einsatz eines Betriebssystems herum.
Das Betriebssystem bietet Schnittstellentreiber, Dateisystem, Multi-Threading u.a. und übernimmt damit wiederkehrenden Aufgaben, für die stabile Softwarekomponenten zur Verfügung stehen.
Leistungsfähige und schlanke Linux-Derivate können heute auch auf einfacheren Prozessoren eingesetzt werden und sind frei verfügbar. Dem gegenüber stehen auch kommerzielle Linux-Systeme, bei denen der Anwender dann auch die entsprechende Betreuung durch den Lieferanten erfährt.
Welchen Weg man irgendwann mal einschlägt, ob kommerzielles oder freies Linux, wird durch eine Vielzahl von Bedingungen beeinflusst, die hier erst mal nicht im Vordergrund stehen.
Wir wollen uns hier vorrangig mit Embedded Linux auf dem Raspberry Pi befassen. Die verwendete Linux-Distribution stellt einen grafischen Desktop zur Verfügung, der hier aber nicht von primärem Interesse ist.
Unser primäres Userinterface hier ist klassisch die Kommandozeile, wie sie vielen Mikrocontroller-Programmierern aus deren Projekten als Terminal-Schnittstelle bekannt ist. Ein grafisches Userinterface ist für viele geschlossene Embedded Systems (deeply embedded) ohnehin nicht erforderlich, oder kann durch ein Web-Interface ersetzt werden. Der heimische Router ist dafür ein sehr gutes Beispiel.
Mit dem Einsatz von Linux in einem Embedded System kommt eine Reihe von neuen Ansätzen auf den Umsteiger aus der konventionellen Mikrocontrollerwelt zu, mit denen wir uns hier erst einmal auseinandersetzen werden.
Alle gelisteten Quelltexte und einige Erläuterungen sind unter SourceForge abgelegt (http://sourceforge.net/projects/raspberrypisnip/). Zum Buch existiert außerdem eine Webseite.
Neben der hier vorliegenden Print-Version gibt es zu diesem Buch auch eine eBook-Version (ISBN 978-3-907857-xx-x), bei der die im Text vorhandenen Hyperlinks direkt zu den verlinkten Stellen führen.
Alle im Buch vorhandenen Links wurden im Sommer 2013 auf ihre Richtigkeit hin überprüft. Da sich das Internet kontinuierlich wandelt, kann nicht sichergestellt werden, dass diese Links zu einem späteren Zeitpunkt noch zum Ziel führen oder noch dieselben Inhalte besitzen, wie zum Zeitpunkt der Aufnahme.
Altendorf, im Sommer 2013 Claus Kühnel
Inhalt
1. Raspberry Pi 11
2. Linux als Betriebssystem 12
3. Lizenzen 14
4. Linux-Features 17
4.1 User-Interface 17
4.2 Linux Architektur 19
4.3 Kernelspace vs. Userspace 20
4.4 Ein-/Ausgabe 21
4.5 Board Support Package (BSP) 22
4.6 Zugriffsrechte 22
4.7 Filesysteme 28
4.8 Filesystem Hierarchy Standard (FHS) 29
4.9 Shell 30
4.9.1 Shell Typen 30
4.9.2 Shell Scripts 31
4.10 Daemons 32
5. Linux-PC 33
6. Raspberry Pi Betriebssystem 41
6.1 Vorbereitung der SD-Card 42
6.2 Raspberry Pi Bootprozess 43
6.3 Konfigurationstool raspi-config 44
6.4 Update Upgrade 53
6.5 Raspberry Pi Applikationen 53
6.5.1 Installierte Applikationen 53
6.5.2 Installation & Deinstallation von Software-Paketen 53
6.6 Programmentwicklung auf dem Raspberry Pi 55
6.6.1 Editoren 55
6.6.2 Compilation und Debugging 61
6.6.3 Adafruit WebIDE 63
7. Entwicklungsumgebung für Embedded Linux 64
7.1 Raspberry Pi im Netzwerk 65
7.2 Zugriff von einem Netzwerk-PC 67
7.2.1 Zugriff über LAN 68
7.2.2 Zugriff über WLAN 70
7.3 Zugriff von einem Android Device 72
7.4 Zugriff über VNC 79
7.5 Web Interface 83
8. CPU Boards 87
8.1 Raspberry Pi 87
8.2 Alternative Linux Boards 92
9. Hinweise zur Inbetriebnahme 94
10. Anwendungen 98
10.1 [Shell] - BoardInfo 99
10.2 System Informationen 104
10.2.1 [Shell] - SysInfo 104
10.2.2 [Shell] – aktuelle CPU-Temperatur 105
10.2.3 [Lua] – aktuelle CPU-Temperatur 106
10.2.4 [Shell] – aktuelle CPU-Frequenz 106
10.3 [Shell] - Datum & Uhrzeit 108
10.4 [Shell] - Cron Jobs 109
10.5 Digitale Ein-/Ausgabe 111
10.5.1 [Shell] – Digitale Ein-/Ausgabe 112
10.5.2 [C] - Digitale Ein-/Ausgabe 114
10.5.3 [Python] - Digitale Ein-/Ausgabe 116
10.5.4 [Lua] - Digitale Ein-/Ausgabe 117
10.6 [Shell] – Ansteuerung RGB LED 119
10.7 SPI und I2C 124
10.7.1 [C] – SPI Test 127
10.7.2 [C] - AD-Umsetzer MCP3208 am SPI 134
10.7.3 [Shell] – I2C Test 141
10.7.4 [C] - AD/DA-Subsystem am I2C-Bus 142
10.7.5 [C] - ADC Pi 147
10.7.6 Comm Pi 153
10.7.7 [C] - RasPiComm 155
10.8 PiFace Digital 156
10.8.1 [C] – PiFace 158
10.8.2 [Python] – PiFace 160
10.9 Gertboard 161
10.9.1 [C] – GPIO 163
10.9.2 [Python] – GPIO 166
10.10 Arduino Bridge 167
10.10.1 [C] - Library arduPi 169
10.10.2 [C] – GPIO 171
10.10.3 [C] – SPI 174
10.10.4 [C] – I2C-Bus 178
10.10.5 [C] – AD-Converter 179
10.10.6 [C] – UART 184
10.11 GNUBLIN-Module 186
10.12 AlaMode 188
10.13 [Shell] - USB 189
10.14 [Shell] - GNU Plot 192
10.15 [Shell] - Integritätstest von Dateien 197
10.16 Webcam 199
10.16.1 USB Webcam 199
10.16.2 PiEye – Webcam Streaming 204
10.16.3 Raspberry Pi Camera 205
10.17 Android Apps 211
10.17.1 RasPi Check 211
10.17.2 Raspberry Control 212
10.18 Smart IO Expansion Card for Raspberry PI 214
11. Benchmarks 216
11.1 UNIX Bench 216
11.2 Cyclictest 219
11.3 CoreMark 222
11.4 Scimark2 223
12. Shell Kommandos 224
13. Referenzen & Links 226
14. Index 232
15. Abbildungsverzeichnis 238
16. Anhang 244
16.1 Weiterführende Informationen 244
16.2 TFT-LCD-Monitor an Composite RCA 246
16.3 Raspberry Pi vs. ROW 248
16.4 Raspbian – Installierte Pakete 251
Notizen 270
Erscheint lt. Verlag | 30.8.2013 |
---|---|
Sprache | deutsch |
Maße | 148 x 210 mm |
Einbandart | Paperback |
Themenwelt | Mathematik / Informatik ► Informatik ► Betriebssysteme / Server |
Schlagworte | Embedded Linux • Embedded Systems • Mikrocontroller • Raspberry Pi |
ISBN-10 | 3-907857-17-8 / 3907857178 |
ISBN-13 | 978-3-907857-17-5 / 9783907857175 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich