Embedded Linux mit Raspberry Pi und Co.
eBook - ePub

Embedded Linux mit Raspberry Pi und Co.

  1. 408 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Ü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

Jahr
2016
ISBN drucken
9783958450615
eBook-ISBN:
9783958450639

Kapitel 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

  1. Impressum
  2. Einleitung
  3. Teil I: Einführung und Einrichtung einer Entwicklungsumgebung
  4. Kapitel 1: Embedded Linux
  5. Kapitel 2: Netzwerkanbindung
  6. Kapitel 3: Shell-Programmierung
  7. Kapitel 4: Cross-Toolchains
  8. Teil II: Techniken zur Programmierung von Kernel und rootfs
  9. Kapitel 5: Raspbian – der Kernel
  10. Kapitel 6: Das root-Dateisystem – rootfs
  11. Kapitel 7: Der Bootprozess
  12. Teil III: Grundlagen der Treiberentwicklung
  13. Kapitel 8: Treiber und Module I
  14. Kapitel 9: Treiber und Module II
  15. Kapitel 10: Treiber und Module III
  16. Teil IV: Treiberentwicklung in der Praxis
  17. Kapitel 11: Praxis I
  18. Kapitel 12: Praxis II
  19. Kapitel 13: Praxis III
  20. Anhang A: Literaturverzeichnis
  21. Anhang B: Belegung der GPIO-Ports
  22. Anhang C: Safety und Security
  23. Anhang D: Kopieren mit scp
  24. 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.
Beide Pläne sind mit monatlicher, halbjährlicher oder jährlicher Abrechnungskadenz verfügbar.
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
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.