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
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/
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)