1 Embedded Linux 2021¶
Zoom ID: 914 3059 2895
Seminararbeit für Master-Studierende abgeben bis Freitag 9.7.2021, 12 Uhr.
Moodle Kurs: https://moodle.hs-augsburg.de/course/view.php?id=4640
Moodle Kurs zur Online-Prüfung: https://moodle.hs-augsburg.de/course/view.php?id=4894
Zum Austausch untereinander gibt es jetzt in Moodle ein Forum.
Videoaufnahmen: http://hhoegl.informatik.hs-augsburg.de/video/elinux21/
Fragen (waechst noch!).
Alte Klausuren: http://hhoegl.informatik.hs-augsburg.de/elinux/Klausuren/
1.1 Termine¶
23.3.2021
Vorbesprechung (http://hhoegl.informatik.hs-augsburg.de/video/elinux21/v1.mp4)
Vorkenntnisse (http://hhoegl.informatik.hs-augsburg.de/hhwiki/ElinuxVorkenntnisse)
Wer moechte ein Board bekommen? https://moodle.hs-augsburg.de/mod/questionnaire/view.php?id=186514
Literatur: Molloy und Simmonds http://hhoegl.informatik.hs-augsburg.de/nonfree/elinux/ Login und Passwort siehe v1.mp4
30.3.2021
Poster (von Hr. Molloy’s wunderbarer BeagleBone Website, http://exploringbeaglebone.com)
Wer es genauer wissen will: BeagleBone Black System Reference Manual (99 Seiten) http://hhoegl.informatik.hs-augsburg.de/elinux/bbb/BBB_SRM.pdf
„Skilltest“ (habe ich neulich gefunden, ganz nette Idee, gerne mal durchmachen) https://www.linux4embedded.de/de/embedded-linux-skilltest
Linux Kommandos – von Olimex, entwickeln u.a. Embedded Linux Boards, https://www.olimex.com/Products/OLinuXino/open-source-hardware. Auf der Homepage ist der News Blog der auch interessante Embedded Linux Anwendungen enthaelt. Finden und lesen Sie z.B. den Eintrag „IEEE 1588 Precision Time Protocol (PTP) is implemented for the industrial grade Open Source Hardware Linux computer STMP1-OLinuXino-LIME2“.
Bitte ausfüllen: http://hhoegl.informatik.hs-augsburg.de/elinux/kurs/linux_admin_cmds.pdf
6.4.2021
ausgefallen (Ostern)
13.4.2021
Hausaufgaben vom 30.3. erledigen.
20.4.2021
ElinuxRemote Server http://hhoegl.informatik.hs-augsburg.de/hhwiki/ElinuxRemote
Democode fuer Pin Ein/Ausgabe: http://hhoegl.informatik.hs-augsburg.de/elinux/kurs/democode
Sie sollten als Hausaufgabe das Python Script „led_loop“ in einer anderen Sprache ihrer Wahl schreiben.
Molloy, Kap. 6 (Interfacing to the Beagle Board Input/Outputs, S. 247-306, Sie wissen, wo Sie das PDF finden koennen …)
https://learning.oreilly.com/library/view/exploring-beaglebone-2nd/9781119533160/
Siehe auch die Website zum Buch: http://derekmolloy.ie/beaglebone
Poster http://hhoegl.informatik.hs-augsburg.de/elinux/bbb/BeagleBonePoster.pdf
Die Pflichtaufgaben vom 30.3. sind eine fortlaufende Angelegenheit, waren also nicht komplett bis heute zu erledigen.
27.4.2021
Bootvorgang beschreiben (ROM, SPL/MLO, U-Boot, Kernel)
http://hhoegl.informatik.hs-augsburg.de/elinux/bbb/AM335x-U-Boot-User’s-Guide.pdf
http://hhoegl.informatik.hs-augsburg.de/elinux/bbb/The-Boot-Process.pdf
Den U-Boot Bootmechanismus unterbrechen mit [SPACE] Taste und Funktionsweise von U-Boot untersuchen.
help, printenv, run <cmd>, mmcinfo, mmc dev 0, mmc dev 1, mmc list, ls mmc 0:1 /, ext4load mmc 0:2 ${loadaddr} /boot/uImage, ext4load mmc 0:2 ${fdtaddr} /boot/am335x-boneblack.dtb, bootm ${loadaddr} - ${fdtaddr}, run mmcboot, …
Siehe die U-Boot Doku unter https://u-boot.readthedocs.io/en/latest
Welche Subsysteme kann U-Boot verwalten?
U-Boot Home: https://www.denx.de/wiki/U-Boot
U-Boot kann auch mit Device Trees umgehen (.dtb, .dtbo Dateien). Auch der Kernel braucht diese Device Trees. Wozu wird diese ganze Device Tree Sache ueberhaupt gebraucht? Siehe das Verzeichnis
/boot/dtbs/4.19.94-ti-r42
.Was machen /boot/uEnv.txt, /boot/SOC.sh?
Booten ueber
eMMC
NFS (Kernel und RootFS liegen auf dem Hostrechner!)
tftp (aehnlich NFS)
Alternative: Barebox statt U-Boot
https://www.pengutronix.de/de/software/barebox.html
Wie unterscheiden sich U-Boot und Barebox?
Lesen:
Simmonds, Kap. 3 (All About Bootloaders)
Molloy (Kap. 3, 6 und 7)
4.5.2021
U-Boot und Kernel kompilieren
„Yocto Project“ kompilieren
Booten ueber das Netz mit tftp und nfs
Siehe die Anleitung unter ElinuxBBBPraxis
Lit.:
Simmonds, Kap. 4 (Configuring and building the kernel)
Simmonds, Kap. 5 (Building a root filesystem)
Simmonds, Kap. 6 (Selecting a build system)
Simmonds, Kap. 10 (Starting up - the init program)
11.5.2021
Cross-Kompilierung, Toolchain, ElinuxBBBPraxis#cross-kompilierung
Lit.:
Simmonds, Kap. 2
18.5.2021
Neue Auflage des Buches von Chris Simmonds:
Frank Vasquez, Chris Simmonds, Mastering Embedded Linux Programming, 3rd edition, Packt Publishing, May 2021 („MELPv3“)
https://learning.oreilly.com/library/view/mastering-embedded-linux/9781789530384/
Kap. 6: „Introducing the Yocto Project“ lesen und praktische Übungen durchführen.
25.5.2021
Freier Tag
1.6.2021
Noch genau 4 Wochen bis zur Klausur (29.6., 17 Uhr)
Restliche Themen:
Kernel, Kernelmodule, Treiber
MELPv3, Kap. 4 (Kernel konfigurieren und kompilieren)
MELPv3, Kap. 11 (Treiber)
https://learning.oreilly.com/library/view/mastering-embedded-linux/9781789530384
Quade, Kunst, Kern-Technik im Linux Magazin 11.2020 (Geraetetreiber als Kernelmodul implementieren).
http://hhoegl.informatik.hs-augsburg.de/elinux/kt/kt-112/kt-112.pdf
Valerie Henson, /dev/hello_world: A Simple Introduction to Device Drivers under Linux.
http://hhoegl.informatik.hs-augsburg.de/elinux/kerneltreiber/valerie-henson-device-drivers-hello.pdf
Echtzeit
Emde, Gleixner, Standard Linux wird echtzeitfähig, Elektronik, Februar 2007 6 Seiten, http://hhoegl.informatik.hs-augsburg.de/elinux/rt/elektronik-2007-03.pdf
http://hhoegl.informatik.hs-augsburg.de/elinux/rt/Zeitnah-LM-3-2017.pdf
MELPv3: Kap. 21
https://learning.oreilly.com/library/view/mastering-embedded-linux/9781789530384
Wie kommen wir zu einem Echtzeit-Kernel? Mit Yocto habe ich Schwierigkeiten. Kernel „zu Fuss“ kompilieren mit „RT PREEMPT“ Patch waere eine Loesung.
Beispielprogramme
Software-Update
Testsysteme
Beispielhafte Embedded Linux Projekte
S. Kiessling, C. Pahl, C. Piechula, Eulenfunk (Internet Radio)
Beregnungssteuerung fuer Tennisanlage (Bachelorarbeit)
https://www.hs-augsburg.de/Informatik/Moderne-Beregnungssteuerung-fuer-Tennisanlagen.html
Vergangene Projekte im Wahlfach Embedded Linux
http://hhoegl.informatik.hs-augsburg.de/hhwiki/ElinuxProjekte
I/O Box http://hhoegl.informatik.hs-augsburg.de/elinux/iobox
8.6.2021
Mit Yocto erzeugtes Root-Filesystem. Zum Booten per TFTP/NFS auf eigenem Rechner.
http://hhoegl.informatik.hs-augsburg.de/elinux/kurs/poky-deploy.tar.gz
1.2 News¶
Interessantes aus dem Pengutronix Blog
„Golden Image“ vs. Build from Source
https://www.pengutronix.de/de/blog/2021-04-19-wie-man-kein-betriebssystem-fuer-produkte-baut.html
http://hhoegl.informatik.hs-augsburg.de/elinux/yocto/yocto-lj-300-2019.pdf
Open-Source Basics
Themen vom CLT-2021
Mainline Linux
Robert Schwebel, Komplexe Systeme mit Mainline Linux beherrschen, ESE Kongress 12/2020
Showcase: Preempt RT und Time Sensitive Networking („schwebende Papierschleife“)
https://www.pengutronix.de/de/blog/2021-02-23-showcase-time-sensitive-network.html
Yocto Project Virtual Summit 2021
https://pretalx.com/yocto-project-summit-2021/schedule/
Creating a Custom Embedded Linux Distribution for Any Embedded Device using the Yocto Project (130 slides)
https://docs.google.com/presentation/d/1Deiv7qxe85H07udskfJUnzt2vwMvSQXgjmWqp1ci7_w