8082
Kommentar:
|
8185
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 230: | Zeile 230: |
* `OSADL Genossenschaft <https://www.osadl.org>`_ https://hhoegl.informatik.hs-augsburg.de/elinux/osadl/ |
Embedded Linux 2022
Moodle Kurs: https://moodle.hs-augsburg.de/course/view.php?id=5702
Wünschenswerte Vorkenntnisse: https://hhoegl.informatik.hs-augsburg.de/hhwiki/ElinuxVorkenntnisse
ElinuxRemote Server: http://hhoegl.informatik.hs-augsburg.de/hhwiki/ElinuxRemote
Einige praktische Demonstrationen: http://hhoegl.informatik.hs-augsburg.de/hhwiki/ElinuxBBBPraxis
Di, 22.3.2022 #1
Hausaufgaben bis 29.3.
Links im Foliensatz ansehen (u.a. Pengutronix Blog und Video) Foliensatz http://hhoegl.informatik.hs-augsburg.de/elinux/kurs/intro.pdf
Labor-Tagebuch vorbereiten (Markdown, Pandoc Tool). Machen Sie auf Gitlab ein internes Repository für die Veranstaltung (kein privates) und schicken mir den Link. Dort ist u.a. das Labor-Tagebuch im Markdown Format.
https://r-n-d.informatik.hs-augsburg.de:8080/hubert.hoegl/Markdown-Anleitung
Kapitel 1 (Einführung) und 2 (Toolchain) im Buch von Vasquez/Simmonds lesen
https://learning.oreilly.com/library/view/mastering-embedded-linux/9781789530384
Hostrechner mit Linux ausstatten, gerne auch über VirtualBox.
Eine Toolchain auf dem Hostrechner installieren (wie im Buch, Kap. 2 erläutert)
Das "microcom" Programm von github holen, kompilieren und auf dem Hostrechner installieren (https://github.com/pengutronix/microcom).
Recherchieren Sie die Lizenzbedingungen für die Hardware Baupläne des Beagle Bone Black.
29.3.2022 Nachtrag Cross-Kompilierung
Di, 29.3.2022 #2, U-Boot
MELPv3, Kap. 3
http://hhoegl.informatik.hs-augsburg.de/elinux/bbb/The-Boot-Process.pdf
https://hhoegl.informatik.hs-augsburg.de/elinux/bbb/lj-10-2013-uboot-trick.pdf
Kleines Python Programm, das zeigt, wie man die serielle Schnittstelle aus einem Programm ansteuern und automatisieren kann (Achtung: Code ist alt, noch in Python 2. Müsste erst auf Python3 und BBB angepasst werden).
https://hhoegl.informatik.hs-augsburg.de/elinux/u-boot/u-boot.py
Hausaufgaben bis in +1w:
Welche Subsysteme kann U-Boot verwalten?
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, ...
MELPv3, Kap. 3 nachvollziehen
Eine andere Anleitung vom Kompilieren des U-Boot ist unter
https://hhoegl.informatik.hs-augsburg.de/hhwiki/ElinuxBBBPraxis#u-boot-kompilieren
Was machen /boot/uEnv.txt und /boot/SOC.sh?
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/.
Nachtrag:
RPi-Nutzer sollten herausfinden, wie der Bootvorgang auf dem RPi Board funktioniert.
Wird im Normalfall U-Boot verwendet?
Wie kann man auf U-Boot umsteigen?
Folien zu U-Boot http://hhoegl.informatik.hs-augsburg.de/elinux/kurs/u-boot.pdf
Es gibt noch eine Übung zum Cross-Kompilieren, siehe
https://hhoegl.informatik.hs-augsburg.de/elinux/kurs/uebungen/#cross-kompilierung
Di, 5.4.2022, #3
Hausaufgaben bis in +1w:
- Hausaufgaben [berarbeiten gemäss Rückmeldungen in der Vorlesung
- MELPv3, Kap. 4 (Kernel konfigurieren und bauen)
Di, 12.4.2022, #4
- Allgemeine Lagebesprechung
- Di, 19.4.2022 ist frei (Osterferien)
- Vielleicht ganz nützlich für Raspberry-Pi Nutzer: Pi-LFS Projekt von Brandl und Saufler 2015: https://hhoegl.informatik.hs-augsburg.de/elinux/RPi/pi-lfs/html/ (LFS ≙ Linux From Scratch, https://www.linuxfromscratch.org)
Hausaufgaben bis in +1w
- MELPv3, Kap. 5 (Building a Root Filesystem - RYO)
- Über Ostern alle Schritte auf dem RPi oder BBB testen (U-Boot, Kernel, Root-FS)
Di, 26.4.2022, #5
Hausaufgaben bis in +1w
- Alle machen die Aufgaben in Kap. 5 fertig.
- MELPv3, S. 162 - 179 (Buildroot - das ist die Hälfte von Kap. 6, Selecting a build system, bis vor Introducing the Yocto Project).
Di, 3.5.2022, #6
- Zweite Hälfte von Kap. 6. (Yocto Project Intro)
Di, 10.5.2022, #7
MELPv3, Kap. 7 (Yocto Project, eigene Layer)
Elinux Anwendung "TSGRain" (Beregnungssteuerung)
- Kurze Beschreibung https://hhoegl.informatik.hs-augsburg.de/elinux/kurs/memo-01.pdf
- Kurzer Übersichtsartikel https://hhoegl.informatik.hs-augsburg.de/hhwiki/tsgrain
- V1 (Binary OS): https://github.com/huberthoegl/tsgrain, basierend auf BA Graber, 2020
- V2 (Yocto): https://hhoegl.informatik.hs-augsburg.de/elinux/tsgrain2, Doku (BA T. Hampp 2021), Der Sourcecode ist auch auf dem Gitea Server von Hr. Hampp, siehe https://code.thetadev.de/TSGRain.
- Bilder, schaltplan, Teileliste https://hhoegl.de/tsgrain
Tam Hanna, Übersicht: Was Linux-Distributionsbaukästen können, iX 2/2015
https://hhoegl.informatik.hs-augsburg.de/elinux/rootfs/ix.0215.036-042.pdf
Tam Hanna, Yocto Tutorial, iX 2/3/4-2015
Bootlin.com Yocto Training (BeagleBone Black, STM32MP1)
Die Yocto Distribution "OpenSTLinux" für den STM32MP1
"Golden Image" bzw. "Binary OS" vs. Build from Source
- Bastian Krause, Wie man (k)ein Betriebssystem für Produkte baut, Pengutronix 2021 (mit Video, 45 Min.) https://www.pengutronix.de/de/blog/2021-04-19-wie-man-kein-betriebssystem-fuer-produkte-baut.html
- Mirza Krak, Linux IoT Development: Adjusting from a Binary OS to the Yocto Project Workflow, http://hhoegl.informatik.hs-augsburg.de/elinux/yocto/yocto-lj-300-2019.pdf
Open-Source Lizenzen
- Felicitas Jung, Fürchte nicht den offenen Quellcode - 1x1 des Lizenzmanagements, Pengutronix 2020. https://www.pengutronix.de/de/blog/2020-02-25-open-source101.html
Di, 24.5.2022, #8
- Update-Verfahren, MELP v3, Kap. 10
- Linux Magazin, Kern-Technik #121 (RAUC), https://hhoegl.informatik.hs-augsburg.de/elinux/kt/kt-121/kt-121.pdf
- SWupdate https://sbabic.github.io/swupdate/swupdate.html
- RAUC https://rauc.io
- fwup https://github.com/fwup-home/fwup
- Mender https://docs.mender.io/3.2
- Balena https://www.balena.io
- hawkBit https://www.eclipse.org/hawkbit
Debuggen (MELPv3, Kap. 19),
Echtzeit (MELPv3, Kap. 21)
- Servo am BBB1, Foto (man sieht die Spitze des roten Zeigers in der Kamera).
- Sourcecode dazu: https://r-n-d.informatik.hs-augsburg.de:8080/michael.schaeferling/elinux_demos
Neben Tsgrain ein weiteres interessantes Embedded Linux Projekt
"Eulenfunk" Internet Radio https://github.com/studentkittens/eulenfunk
Das war ein Projekt im Sommer 2016 von ein paar Master-Studierenden.
Di, 31.5.2022, #9
- MELPv3, Kap. 21, Real-Time Programming
- Artikelsammlung zu Echtzeit unter Linux https://hhoegl.informatik.hs-augsburg.de/elinux/rt/
- OSADL Genossenschaft https://hhoegl.informatik.hs-augsburg.de/elinux/osadl/