#format rst #language de =================== Embedded Linux 2021 =================== Zoom ID: 914 3059 2895 Moodle Kurs: https://moodle.hs-augsburg.de/course/view.php?id=4640 `Frühere Veranstaltungen `_. Zum Austausch untereinander gibt es jetzt in Moodle ein `Forum `_. Videoaufnahmen: http://hhoegl.informatik.hs-augsburg.de/video/elinux21/ `Fragen `_ (waechst noch!). .. contents:: Inhalt .. sectnum:: ---- 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 , 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 ``_ 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, ``_ 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 - 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** - MELPv3: Kap. 10 https://learning.oreilly.com/library/view/mastering-embedded-linux/9781789530384 **Testsysteme** - Tbot - http://www.denx.de/en/view/Software/WebHome#tbot_Automatic_Test_Framework - Labgrid - https://labgrid.readthedocs.io/en/latest/ - https://www.pengutronix.de/de/blog/2020-03-30-flattenthecurve-introducing-our-remote-setup.html **Beispielhafte Embedded Linux Projekte** - S\. Kiessling, C. Pahl, C. Piechula, Eulenfunk (Internet Radio) https://github.com/studentkittens/eulenfunk - 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/poky-deploy.tar.gz 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 * https://www.pengutronix.de/de/blog/2020-02-25-open-source101.html Themen vom CLT-2021 * https://www.pengutronix.de/de/blog/2021-03-01-mach-es-einfach-anders.html Mainline Linux * Robert Schwebel, Komplexe Systeme mit Mainline Linux beherrschen, ESE Kongress 12/2020 https://www.youtube.com/watch?v=Shi0-McBQ18 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