
- 408 Seiten
- German
- ePUB (handyfreundlich)
- Über iOS und Android verfügbar
eBook - ePub
Embedded Linux mit Raspberry Pi und Co.
Über dieses Buch
Embedded-Linux-Kernel erzeugen
Treiber und Kernelmodule entwickeln
Praxisbeispiele mit LED-Matrix und LC-Displays
Raspberry Pi, BeagleBone Black, CubieBoard und Co. haben dazu beigetragen, das Interesse an Embedded Linux sowie dessen Programmierung und Nutzung für alltägliche Dinge zu wecken. Es wird verstärkt immer mehr auch im industriellen Umfeld eingesetzt. Dieses Buch vermittelt die Grundlagen, die für den produktiven Einsatz von Embedded Linux notwendig sind.
Ralf Jesse führt am Beispiel des beliebten Minicomputers Raspberry Pi in die Handhabung und Weiterentwicklung von Embedded Linux ein. Er behandelt alle Schritte, die für die Entwicklung von Embedded-Linux-Systemen wichtig sind:
Aufsetzen und Nutzen einer sogenannten Cross-Development-Plattform auf der Basis eines in einer virtuellen Maschine ausgeführten Desktop Linux
Übertragen der entwickelten Software auf das Zielsystem
Grundlagen von Shellscripts für komfortablere Softwareentwicklung
Vermittlung der für den Bau eines Kernels und des root-Dateisystems benötigten Kenntnisse
Einfaches Starten und Testen des Kernels unter Einsatz des Bootmanagers "Das U-Boot"
instieg in die Entwicklung von Gerätetreibern und Kernelmodulen
Das Buch richtet sich an alle, die "mehr" aus ihrem Embedded System herausholen wollen. Die dafür erforderlichen Linux-Kenntnisse sind keine Voraussetzung, sondern werden im Buch erarbeitet.
Alternative Ansätze auf der Basis anderer Minicomputer werden ebenfalls aufgezeigt. Somit ist das Buch für alle relevant, die Embedded Linux als Betriebssystem einsetzen wollen, unabhängig von der verwendeten Hardware.
Aus dem Inhalt:
Linux-Grundlagen
Shell-Programmierung
Netzwerkanbindung
Aufbau einer Cross-Entwicklungsumgebung
Erstellen eines Embedded-Linux-Kernels
Erzeugen eines root-Dateisystems
Der Bootprozess für verschiedene Embedded PCs: Raspberry Pi, BeagleBone Black und Cubieboard
Einstieg in die Entwicklung von Treibern und Kernelmodulen
Template für eigene Treiber
Ansteuerung von Hardware
Praxisbeispiele: Schieberegister, Ansteuerung von 8x8-LED-Matrizen, Steuerung von textbasierten LC-Displays
375,005 Studierende vertrauen auf uns
Zugang zu über 1,5 Millionen Titeln zu einem fairen monatlichen Preis.
Mit unseren Lerntools kannst du noch effizienter lernen.
Information
Thema
InformatikThema
HardwareKapitel 1: Embedded Linux
In diesem Kapitel geht es um einige grundlegende Fragen, die sich mit Linux im Allgemeinen und mit Embedded Linux im Speziellen befassen. Zunächst soll aber geklärt werden, was man üblicherweise unter einem Desktop-Betriebssystem versteht.
1.1 Desktop-Betriebssysteme
Wenn in der Literatur von Linux gesprochen wird, so ist hiermit üblicherweise eines der sogenannten Desktop-Betriebssysteme gemeint. Dabei spielt Linux bei Desktop-Betriebssystemen nur eine untergeordnete Rolle. Zu den Desktop-Betriebssystemen zählen Windows in seinen verschiedenen Ausprägungen (Windows 3.x, Windows 95/98/ME/2000/Vista/7/8.x sowie Windows 10 und auch Windows CE), Mac OS X und natürlich viele verschiedene Varianten von Linux (z.B. Ubuntu, RedHat, openSuse, Fedora, Mint, Debian usw.). Besonders bei den Linux-Versionen sticht eine gewisse Ungenauigkeit – um nicht zu sagen: Schlampigkeit – hervor, denn in den meisten Fällen wird der Begriff »Linux« genannt, obwohl die Bezeichnung »Linux-Distribution« korrekt wäre.
Deshalb soll zunächst der Unterschied zwischen GNU/Linux und einer Linux-Distribution definiert werden:
- GNU/Linux besteht prinzipiell aus zwei Teilen: dem Kernel und dem root-Dateisystem rootfs.
- Eine Linux-Distribution ist im Allgemeinen viel umfangreicher: Neben dem Kernel und dem rootfs enthält eine Distribution eine Vielzahl zusätzlicher Anwendungen. Hierzu zählen Office-Programme (z.B. OpenOffice oder LibreOffice), Audio- und Videoanwendungen, Internet-Browser, Mail-Clients und vieles mehr. Die bekannten Linux-Distributionen gehen sogar noch einen Schritt weiter: Bei der Installation einer solchen Distribution richten sie eine sehr umfassende Menge nützlicher und wichtiger Software automatisch ein.
1.2 Bare-Metal vs. Betriebssystem
Wenn Sie einen Standard-PC oder Macintosh-Computer kaufen, so erhalten Sie Computer, die im Regelfall bereits betriebsbereit eingerichtet sind. Dies liegt aber nur daran, dass die Hersteller Ihnen die Arbeit der Installation von Betriebssystemen und Anwendungen zu einem großen Teil abnehmen. Wenn Sie sich aber einen PC selber »zusammenschrauben«, ist dies nicht der Fall: Nach erfolgtem Zusammenbau fängt die Arbeit nämlich erst richtig an! Prinzipiell könnte man solche PCs als sogenannte Bare-Metal-Systeme bezeichnen, da sie noch nicht betriebsbereit sind. Der Begriff »Bare-Metal-System« wird aber üblicherweise in einem anderen Zusammenhang verwendet: Er bezeichnet Computer, die ohne Betriebssystem genutzt werden!
Standard-PCs haben aufgrund leistungsstarker Mikroprozessoren genügend »Power« und verfügen über sehr große Ressourcen, wie Arbeitsspeicher, Grafikkarten, Festplatten usw. Aufgrund ihrer Leistungsstärke eignen sie sich, komplexe Betriebssysteme und die zugehörigen Programme auszuführen. Hierbei sticht ebenfalls hervor, dass sie prinzipiell universell für die verschiedensten Aufgaben einsetzbar sind und dies bei modernen Computern sogar nahezu gleichzeitig. Dies sind alles Eigenschaften, die sie für den Begriff »Bare-Metal-System« disqualifizieren.
»Bare-Metal-Systeme« verfügen nämlich in der Regel nicht über diese großen Ressourcen: Sie sind teilweise noch nicht einmal in der Lage, ein vollständiges Betriebssystem auszuführen, weil z.B. der integrierte Arbeitsspeicher oder der Flashspeicher bei weitem nicht ausreichend dimensioniert ist. Als »Bare-Metal-Systeme« werden vor allem Microcontroller-Steuerungen bezeichnet, die in den allermeisten Fällen für eine ganz spezielle Aufgabe konstruiert wurden. Hierzu zählen insbesondere viele Einplatinen-Computer. Ihre Einsatzgebiete liegen auch in ganz anderen Bereichen, wo Ressourcen, wie Tastaturen, DVD- oder Blue-Ray-Laufwerke, Computermäuse oder Großbildschirme, gar nicht erforderlich sind. Typische Einsatzgebiete sind Geräte der Unterhaltungselektronik (Smart-TV, Blue-Ray-Player), Geräte für die Telekommunikation (Smartphones), Haushaltsgeräte (Kaffeevollautomaten, Wasch- und Geschirrspülmaschinen oder Wäschetrockner) und nicht zuletzt Steuerungen innerhalb moderner Kraftfahrzeuge (ABS, ESB, Navigationssysteme etc.) und natürlich auch Maschinensteuerungen in der Industrie.
1.2.1 Mikroprozessoren vs. Mikrocontroller
Im letzten Abschnitt wurden mit Mikroprozessoren und Mikrocontrollern zwei Begriffe eingeführt, die bisher noch nicht gegeneinander abgegrenzt wurden.
- Unter einem Mikroprozessor versteht man üblicherweise einen hochintegrierten Halbleiterbaustein mit teilweise mehreren Milliarden Transistoren, die in einem Gehäuse zusammengefasst sind. Bei Mikroprozessoren unterscheidet man – je nach Architektur – RISC-Prozessoren (RISC = Reduced Instruction Set Computer) und CISC-Prozessoren (CISC = Complex Instruction Set Computer). Sie sind imstande, sehr schnelle sogenannte binäre Operationen durchzuführen. Mikroprozessoren benötigen für einen sinnvollen Einsatz zusätzliche Komponenten, die in der Literatur allgemein als Northbridge und als Southbridge bezeichnet werden. Nur soviel sei gesagt: Die Northbridge bedient sehr schnelle externe Hardware, wie den Arbeitsspeicher oder Grafikkarten. Zu diesem Zweck ist sie unmittelbar an den Mikroprozessor angeschlossen. Die Southbridge lässt es hingegen »etwas gemütlicher« angehen: Sie ist zuständig für den Datentransfer zwischen »langsamer« Peripherie, wie (in früheren Versionen) dem PCI-Bus oder externen Schnittstellen, z.B. USB. Gemeinsam werden North- und Southbridge im Allgemeinen als Chipsatz (Chipset) benannt und hat bei Intel z.B. die Bezeichnung ICH (I/O Controller Hub).
- Mikrocontroller haben eine gewisse Ähnlichkeit mit Mikroprozessoren. Der wesentliche Unterschied besteht darin, dass Mikrocontroller weder eine North- noch eine Southbridge benötigen, da die Schnittstellen zur Peripherie bereits im Mikrocontroller integriert sind. Moderne Mikrocontroller verfügen beispielsweise über verschiedene unabhängige integrierte serielle Schnittstellen, Timer, Arbeitsspeicher (wenn auch nur relativ wenig), Flashspeicher zur Speicherung der Firmware usw. Seit einiger Zeit hat sich für Mikrocontroller auch die Bezeichnungs SoC (Silicon on a Chip, Silizium auf einem Chip) eingebürgert. Viele sehr große Halbleiterunternehmen (z.B. NXP – das ist die ehemalige Halbleitersparte von Philips –, Texas Instruments, Atmel, Infineon, NEC, Hitachi, Motorola etc.) stellen für die verschiedensten Anwendungen optimierte Varianten von Mikrocontrollern her. Besonders bekannt sind (natürlich) auch die Firmen Intel und AMD, die neben Desktop-CPUs auch Mikrocontroller herausbringen. Dabei entwickeln die genannten Betriebe nicht nur völlig eigene Mikroprozessoren und Mikrocontroller, sondern lizenzieren zusätzliche Technologien, wie sie z.B. die Firma ARM entwickelt hat. Besonderer Beliebtheit erfreuen sich die Mikrocontroller, die auf der ARM-Cortex-Serie basieren, da sie stromsparend arbeiten und sich daher sehr gut für akkubetriebene Geräte eignen, z.B. Smartphones.
1.3 Embedded Betriebssysteme
Neben den hochspezialisierten Mikrocontrollern für Haushaltsgeräte, Unterhaltungs- und Telekommunikations-Elektronik usw. gibt es aber auch solche, die im Vergleich zu einfachen Mikrocontrollern geradezu üppig mit Arbeitsspeicher ausgestattet sind. In Verbindung mit einer relativ leistungsstarken CPU (Central Processing Unit), die aber im direkten Vergleich zu modernen Mikroprozessoren dennoch als »schneckenlahm« bezeichnet werden muss, einem bis zu mehrere Gigabyte großen Flashspeicher und allen in Abschnitt 1.2.1 genannten integrierten Peripherieschnittstellen, bieten diese genügend Ressourcen, »abgespeckte« und speziell angepasste vollständige Betriebssysteme verwenden und bedienen zu können. Diese Betriebssysteme werden allgemein als Embedded Betriebssysteme (»eingebettete« Systeme) bezeichnet.
Raspberry Pi, BeagleBone Black, Cubietruck, Banana Pi und viele mehr sind solche Mini-Computer, die in der Lage sind, Embedded Betriebssysteme zu verwenden. Wenn bei diesen Mini-Computern bevorzugt Embedded Linux eingesetzt wird, ist dies vor allem damit begründet, dass Embedded Linux – genau, wie sein großer Bruder GNU/Linux – kostenlos und im Quelltext verfügbar ist. Darüber hinaus ist Embedded Linux sehr sparsam, was den Gebrauch der Ressourcen erheblich effizienter macht, als dies mit anwenderorientierten Betriebssystemen möglich ist, wie Windows oder Mac OS X.
Embedded Linux ist aber nicht das einzige Embedded Betriebssystem: Viele weitere völlig unterschiedliche Betriebssysteme zählen ebenfalls zu den Embedded Systemen: Windows CE, eine Vielzahl sogenannter Echtzeitbetriebssysteme, die unter dem Sammelbegriff RTOS (RTOS = Real Time Operating System) geführt werden, Embedix, eCos, VxWorks, QNX oder Epoc.
Für die meisten der genannten Embedded Betriebssysteme gilt, dass sie im Regelfall nicht für sicherheitskritische Anwendungen, z.B. in Kraftfahrzeugen oder Flugzeugen bzw. in Kraftwerken, eingesetzt werden können, weil sie nicht in der Lage sind, auf kritische Situationen in Echtzeit zu reagieren.
Bei den RTOS-Betriebssystemen verhält sich dies anders: Sie gehören zur Gruppe der Echtzeitbetriebssysteme. Der Begriff »Echtzeit« ist hier aber nicht zwingend wörtlich zu nehmen: Selbstv...
Inhaltsverzeichnis
- Impressum
- Einleitung
- Teil I: Einführung und Einrichtung einer Entwicklungsumgebung
- Kapitel 1: Embedded Linux
- Kapitel 2: Netzwerkanbindung
- Kapitel 3: Shell-Programmierung
- Kapitel 4: Cross-Toolchains
- Teil II: Techniken zur Programmierung von Kernel und rootfs
- Kapitel 5: Raspbian – der Kernel
- Kapitel 6: Das root-Dateisystem – rootfs
- Kapitel 7: Der Bootprozess
- Teil III: Grundlagen der Treiberentwicklung
- Kapitel 8: Treiber und Module I
- Kapitel 9: Treiber und Module II
- Kapitel 10: Treiber und Module III
- Teil IV: Treiberentwicklung in der Praxis
- Kapitel 11: Praxis I
- Kapitel 12: Praxis II
- Kapitel 13: Praxis III
- Anhang A: Literaturverzeichnis
- Anhang B: Belegung der GPIO-Ports
- Anhang C: Safety und Security
- Anhang D: Kopieren mit scp
- Anhang E: Code::Blocks
Häufig gestellte Fragen
Ja, du kannst dein Abo jederzeit über den Tab Abo in deinen Kontoeinstellungen auf der Perlego-Website kündigen. Dein Abo bleibt bis zum Ende deines aktuellen Abrechnungszeitraums aktiv. Erfahre, wie du dein Abo kündigen kannst
Nein, Bücher können nicht als externe Dateien, z. B. PDFs, zur Verwendung außerhalb von Perlego heruntergeladen werden. Du kannst jedoch Bücher in der Perlego-App herunterladen, um sie offline auf deinem Smartphone oder Tablet zu lesen. Erfahre, wie du Bücher herunterladen kannst, um sie offline zu lesen
Perlego bietet zwei Pläne an: Essential und Complete
- Essential ist ideal für Lernende und Fachkräfte, die es genießen, eine Vielzahl von Themen zu erkunden. Greife auf die Essential Library mit über 800.000 vertrauenswürdigen Titeln und Bestsellern in den Bereichen Wirtschaft, persönliche Weiterentwicklung und Geisteswissenschaften zu. Enthält unbegrenzte Lesezeit und Standard-Vorlesestimme.
- Complete: Perfekt für fortgeschrittene Lernende und Forschende, die vollen, uneingeschränkten Zugriff benötigen. Entsperre über 1,5 Millionen Bücher zu Hunderten von Themen, einschließlich akademischen und spezialisierten Titeln. Der Complete-Plan enthält außerdem fortschrittliche Funktionen wie Premium Vorlesen und Forschungsassistent.
Wir sind ein Online-Lehrbuch-Abonnement-Service, bei dem du für weniger als den Preis eines einzelnen Buchs pro Monat Zugriff auf eine gesamte Online-Bibliothek erhältst. Bei über 1,5 Millionen Büchern zu mehr als 990 Themen bist du bestens versorgt! Erfahre mehr über unsere Mission
Achte auf das Symbol zum Vorlesen bei deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Erfahre mehr über die Funktion „Vorlesen“
Ja! Du kannst die Perlego-App sowohl auf iOS- als auch auf Android-Geräten nutzen, damit du jederzeit und überall lesen kannst – sogar offline. Perfekt für den Weg zur Arbeit oder wenn du unterwegs bist.
Bitte beachte, dass wir Geräte, auf denen die Betriebssysteme iOS 13 und Android 7 oder noch ältere Versionen ausgeführt werden, nicht unterstützen können. Mehr über die Verwendung der App erfahren
Bitte beachte, dass wir Geräte, auf denen die Betriebssysteme iOS 13 und Android 7 oder noch ältere Versionen ausgeführt werden, nicht unterstützen können. Mehr über die Verwendung der App erfahren
Ja, du kannst auf Embedded Linux mit Raspberry Pi und Co. von Ralf Jesse im PDF- und/oder ePUB-Format sowie auf andere beliebte Bücher in Informatik & Hardware zugreifen. In unserem Katalog stehen über 1,5 Millionen Bücher zur Verfügung.