Schweitzer Fachinformationen
Wenn es um professionelles Wissen geht, ist Schweitzer Fachinformationen wegweisend. Kunden aus Recht und Beratung sowie Unternehmen, öffentliche Verwaltungen und Bibliotheken erhalten komplette Lösungen zum Beschaffen, Verwalten und Nutzen von digitalen und gedruckten Medien.
"Der Autor beginnt kurz mit den Grundlagen der Installation und des Datentausches zwischen Host und Embedded System und kommt dann gestützt auf Praxisbeispiele zum Bau eines Kernels und zu Grundlagen der Treiberentwicklung. Gute Informationsquelle; jedes Kapitel mit einer Übersicht weiterführender Literatur." ekz Bibliotheksservice, 06/2016
Embedded Linux? hat nicht zuletzt durch die Artikel in Spiegel Online (2012) und Focus Online (2013) einen sehr hohen Bekanntheitsgrad erlangt. Dass Embedded Linux Programmierern, »Makern« und professionellen Hard- und Softwareentwicklern bereits bekannt war, kann man getrost voraussetzen. Anders ist dies bei »normalen« Anwendern: Dass die Hersteller aktueller Blueray-Disk-Player oder des neuen Smart-TV sowie von Wasch- und Geschirrspülmaschinen oder Wäschetrocknern Embedded Linux sehr häufig für die Steuerung der Elektronik und die Benutzerführung einsetzen, war der Allgemeinheit vor Erscheinen dieser Artikel vermutlich nicht geläufig. Dass Android, das Betriebssystem für Smartphones, ebenfalls einen (Embedded-)Linux-Kern hat, war vielen Anwendern wahrscheinlich ebenfalls unbekannt.
Die sehr beliebten Mini-Computer Raspberry Pi?, BeagleBone Black? und »Kollegen« haben dazu beigetragen, das Interesse an den Grundlagen von Embedded Linux sowie dessen Programmierung und Nutzung für alltägliche Dinge zu wecken, wie die Steuerung von Markisen und der Wohnraum-Beleuchtung oder die Regelung von Heizungsanlagen während der Abwesenheit: Viele Anwender, die früher nicht daran gedacht haben, sich mit diesem - zugegebenermaßen - komplexen Thema zu befassen, haben in dieser Beschäftigung ein interessantes Hobby und möglicherweise den Einstieg in eine neue berufliche Herausforderung gefunden.
Dieses Buch soll Ihnen unter Einsatz des Raspberry Pi den Einstieg in die Welt von Embedded Linux ebnen. Da die vermittelten Grundlagen allgemeingültig sind, können Sie die Erkenntnisse ebenfalls auf andere Embedded PCs übertragen. Sie werden erfahren, wie Sie eine Cross-Entwicklungsumgebung aufsetzen, wie Sie Daten zwischen dem Entwicklungs-PC und dem Zielgerät (dem Embedded PC) austauschen, wie Sie den Entwicklungsaufwand durch den Einsatz von »Das U-Boot« weiter reduzieren und optimieren können, und Sie lernen den Einstieg in die Treiberprogrammierung kennen. Ein vereinfachter Einstieg in die Shellprogrammierung zeigt Ihnen die Nutzung der wichtigsten Systemkommandos, sodass Sie in die Lage versetzt werden, eigene Shellscripts zu entwickeln bzw. bereits vorhandenes Wissen aufzufrischen. Das Ende jedes Kapitels umfasst eine Übersicht über ausgewählte weiterführende Literatur zum behandelten Stoff, sodass Sie die erworbenen Kenntnisse problemlos entsprechend Ihren eigenen Wünschen und Vorstellungen vertiefen können.
Als zwingend werden mittlere bis gute Kenntnisse der Programmiersprache C und der englischen Sprache vorausgesetzt. Die Gründe hierfür sind, dass der Kernel von Embedded Linux zu einem bedeutenden Teil in dieser Programmiersprache geschrieben wurde und wesentliche weiterführende Literatur - auch in Form von Datenblättern - nur in englischer Sprache verfügbar ist. Ebenfalls vorausgesetzt wird, dass Sie wissen, wie Ihr Mini-Computer in Betrieb genommen wird: Informationen zur Beschaffung und Installation des Betriebssystems vermittelt dieses Buch nicht!
Besondere Kenntnisse der Elektronik werden nicht vorausgesetzt, obwohl gewisse Grundlagen hier sehr hilfreich sind! Sie werden später beispielsweise Leuchtdioden sowohl direkt (Kapitel 4) als auch unter Einsatz von Schieberegistern ansteuern (Teil IV, Praxisteil I): Dass ohmsche Widerstände den elektrischen Strom begrenzen und somit eine Überlastung der GPIO-Leitungen oder hieran angeschlossener elektronischer Komponenten vermeiden, sollte als Basiswissen vorhanden sein.
Dieses Buch richtet sich an alle, die »mehr« aus ihrem Embedded System herausholen wollen. Diese Gruppe umfasst mit Ausnahme »echter« Linux-Profis alle Anwender vom Hobbyisten und interessierten Laien über Studenten aller technischen Fachrichtungen bis hin zu denjenigen, die ihr Geld mit der Programmierung von Computern oder der Entwicklung elektronischer Schaltungen verdienen, sich aber bisher noch nicht vertiefend mit Linux oder Embedded Linux beschäftigt haben.
An der Definition der Zielgruppe für dieses Buch erkennen Sie, dass Linux-Kenntnisse nicht erforderlich sind: Die erforderlichen Grundlagen für einen erfolgreichen Einsatz sowie für die Einarbeitung in vertiefende Aspekte werden in diesem Buch erarbeitet.
Das Buch ist in vier Teile gegliedert, von denen der erste Teil einen »sanften« Einstieg in die Embedded-Linux-Welt darstellt.
In Kapitel 1 werden Sie den Unterschied zwischen sogenannten Bare-Metal-Mikrocontroller-Systemen und Mikrocontroller-Systemen mit Betriebssystem sowie den Unterschied zwischen dem Kernel »Linux« und Linux-Distributionen kennenlernen. Sie erfahren hier auch den Unterschied zwischen Mikroprozessoren und Mikrocontrollern. Im Anschluss erhalten Sie - ebenfalls noch in Kapitel 1 - einen Überblick über die grundlegende Architektur von Linux und Embedded Linux. Den Abschluss von Kapitel 1 bildet eine Beschreibung der Parallelinstallation von Linux Mint zu einem bereits vorhandenen Windows-Betriebssystem bzw. der Installation von Linux Mint in einer virtuellen Maschine. Die Durchführung einer dieser Varianten ist sehr empfehlenswert, da die »Rechenpower« des Raspberry Pi im Vergleich zu Standard-PCs - gelinde gesagt - unterdurchschnittlich ist: Wenn es später im Buch darum geht, einen eigenen Kernel zu entwickeln, werden Sie die Vorteile des sogenannten Cross-Developments zu schätzen wissen.
Kapitel 2 befasst sich im ersten Schritt mit der Installation und der Basiskonfiguration von Samba. Hierdurch lässt sich der Mini-Computer in ein bereits vorhandenes (Heim-)Netzwerk integrieren. Dies ist nicht immer erwünscht oder erforderlich. Es muss dann aber eine andere Möglichkeit vorhanden sein, um die Software vom Host auf das Target zu übertragen und dort zu testen. Für diese Anforderung liefert Kapitel 2 ebenfalls eine Antwort. Der überwiegende Teil von Kapitel 2 beschreibt die Verzeichnisstruktur eines typischen Unix- oder Linux-Betriebssystems, also auch die eines Embedded Linux.
In Kapitel 3 steht die Programmierung der Shell im Vordergrund. Die Shell ist ein wesentlicher Aspekt für die Beherrschung von Linux/Embedded Linux. Steht auf einem Desktop-Linux in der Regel eine grafische Benutzeroberfläche auch für die Systemverwaltung zur Verfügung, so existiert diese Möglichkeit auf Embedded-Systemen in der Regel aufgrund der stark eingeschränkten Ressourcen (CPU-Taktung, Mangel an Arbeitsspeicher, Festplattenspeicher etc.) nicht. Dieses Kapitel liefert eine grundlegende Einführung in die wichtigsten Aspekte der Shell-Programmierung.
Bevor der Einstieg in die Shell-Programmierung erfolgt, werden aber zunächst die Programme man und info vorgestellt, da sie sehr ausführliche Informationen zu den einzelnen Kommandos zur Verfügung stellen. Darüber hinaus geht es vorher um die Ein- und Ausgabeumlenkung. Im Anschluss werden dann aber endlich die wichtigsten Features zum Einsatz der bash beschrieben. Hierzu zählen Shell-Variablen, die Programmierung von Alternativen (if-then-elif-else-fi sowie case-esac) bzw. Abfragen sowie die Programmierung von Schleifen.
man
info
bash
if
then
elif
else
fi
case-esac
Kapitel 4 beschreibt den Aufbau einer Cross-Entwicklungsumgebung für Software, die später auf dem Embedded PC ausgeführt werden soll. Ich habe mich hier für Code::Blocks entschieden, einer integrierten Entwicklungsumgebung, die für Windows-, Linux- und Mac-OS-X-Systeme verfügbar ist. Der besondere Charme dieser Entwicklungsumgebung liegt darin, dass sie vollständig in der Programmiersprache C++ geschrieben wurde, sodass die Abhängigkeit von weiterer Software entfällt, wie einer Java-Laufzeitumgebung: Durch die Installation von systemspezifischer Software, die grundsätzlich immer für die Softwareentwicklung benötigt wird, sind alle Abhängigkeiten automatisch erfüllt. Der Brite Gordon Henderson hat für den Raspberry Pi die Bibliothek wiringPi entwickelt und als Open-Source-Software der Community zur Verfügung gestellt. Kapitel 4 beschreibt die Beschaffung dieser Bibliothek und bietet darüber hinaus einen ersten Einstieg in ihre Nutzung.
wiringPi
Kapitel 5 beschreibt, wie Sie einen eigenen Embedded-Linux-Kernel bauen und in Betrieb nehmen. Hierbei handelt es sich um einen Standardkernel ohne weitere Modifikationen. Wenn Sie zu einem späteren Zeitpunkt einen eigenen Kernel entwickeln wollen, so zeigt Ihnen dieses Kapitel, worauf Sie zu achten haben. Diese Beschreibung liegt in einer Schritt-für-Schritt-Form vor, sodass Sie sie auch als eine Art Checkliste betrachten können. Dass auch Alternativen für die meisten der erforderlichen Schritte erläutert werden, erweitert den Horizont und zeigt, dass im Regelfall immer mehrere Varianten zum gewünschten Ergebnis führen.
In Kapitel 6 wird gezeigt, wie Sie ein root-Dateisystem von Hand erzeugen können. Mit dem Wissen aus Kapitel 3, dem Verstehen des Shellscripts mkrpi aus Kapitel 5 sowie der in diesem Kapitel beschriebenen Vorgehensweise sollten Sie in der Lage sein, die hier durchgeführten Schritte selbst mit einem Shellscript zu automatisieren. Der Fokus liegt hierbei auf dem...
mkrpi
Dateiformat: ePUBKopierschutz: ohne DRM (Digital Rights Management)
Systemvoraussetzungen:
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet – also für „glatten” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Ein Kopierschutz bzw. Digital Rights Management wird bei diesem E-Book nicht eingesetzt.
Weitere Informationen finden Sie in unserer E-Book Hilfe.
Dateiformat: PDFKopierschutz: ohne DRM (Digital Rights Management)
Das Dateiformat PDF zeigt auf jeder Hardware eine Buchseite stets identisch an. Daher ist eine PDF auch für ein komplexes Layout geeignet, wie es bei Lehr- und Fachbüchern verwendet wird (Bilder, Tabellen, Spalten, Fußnoten). Bei kleinen Displays von E-Readern oder Smartphones sind PDF leider eher nervig, weil zu viel Scrollen notwendig ist. Ein Kopierschutz bzw. Digital Rights Management wird bei diesem E-Book nicht eingesetzt.