Nach dem wir bereits eine simple Linux Distribution mit Buildroot für das Evalboard STM32MP157F-DK2 erstellt haben, wollen wir nun eine weitere mit OpenSTLinux erstellen.
Bevor wir jedoch starten, setzen wir uns mal mit dem Wiki von ST auseinander:
Überblick über die STM32MPU Embedded Software-Architektur
Bevor wir in die praktischen Schritte einsteigen, ist es wichtig, die Software-Architektur der STM32MPU zu verstehen. Die Architektur besteht aus mehreren Schichten, darunter der Bootloader, das Betriebssystem und die Anwendungssoftware. Ein detaillierter Überblick findest du hier.
Überblick über die OpenSTLinux-Entwicklungspakete
Das auf Yocto basierende OpenSTLinux bietet drei verschiedene Entwicklungspakete, die Entwicklern unterschiedliche Unterstützungsmöglichkeiten bieten.
OpenSTLinux Starter Package
Das Starter-Package ist ideal für einen schnellen Einstieg und eignet sich besonders für Evaluationsboards. Es enthält:
- Software-Image (Binärdatei): Vorgefertigte Beispiele (Firmware), die auf dem Arm® Cortex®-M-Coprozessor ausgeführt werden können.
- Einfache Integration: Perfekt für das schnelle Evaluieren und erste Schritte mit dem Board.
OpenSTLinux Developer Package
Das Developer-Package ermöglicht die Entwicklung eigener Projekte basierend auf der Yocto-basierten OpenSTLinux-Software. Es beinhaltet:
- Board Support Package (BSP): Komponenten wie der Linux®-Kernel und das Software Development Kit (SDK) in Quellcode.
- Cross-Entwicklung: Das Yocto SDK erleichtert die plattformübergreifende Entwicklung auf einem Host-PC.
- STM32Cube MPU Package HAL: Quellcode-Komponenten für Softwarepakete, die auf dem Arm® Cortex®-M-Coprozessor laufen.
- STM32CubeIDE: Eine integrierte Entwicklungsumgebung (IDE) für Ihre Projekte.
OpenSTLinux Distribution Package
Das Distribution-Package ist für fortgeschrittene Nutzer gedacht, die eine vollständige Kontrolle über die Linux-Distribution und die Entwicklungspakete wünschen. Es bietet:
- Quellcode aller Komponenten: Der gesamte Quellcode der Yocto-basierten OpenSTLinux-Software ist enthalten.
- Erstellung eigener Distributionen: Mit diesem Paket können Sie Ihre eigene Yocto-basierte Linux-Software, Starter- und Developer-Pakete erstellen.
- Yocto-Projekt-Integration: Das Yocto-Projekt dient als zugrunde liegende Plattform für den Aufbau und die Generierung der Distribution.
Warum gibts diese Pakete?
Die verschiedenen Entwicklungspakete von OpenSTLinux sind ideal, um sich an die spezifischen Anforderungen von Einsteigern und fortgeschrittenen Entwicklern anzupassen. Egal ob Sie schnell starten, Ihre eigenen Entwicklungen hinzufügen oder eine komplett maßgeschneiderte Linux-Distribution erstellen möchten – OpenSTLinux bietet die notwendige Flexibilität.
Erstes Fazit
Ich persönlich finde es ziemlich cool, dass ST für jeden Anwender etwas zur Verfügung stellt.
Ich habe mir das Starter Package heruntergeladen und auf mein STM32MP157F-DK2 Evalboard installiert. Die Anleitung ist perfekt für «Einsteiger» geschrieben und ich denke dass das viele hinbekommen.
Das Developer Package habe ich so noch nicht ausprobiert. Habs aber überflogen. Ich sehe den Vorteil, dass ein Softwareentwickler seine Applikationen für ein embedded Linux entwickeln kann und sich nur minimal um die Linuxdistribution kümmern muss.
Und das Distribution Package ist genau das, was wir wollen und zwar das Erstellen einer Linux-Distribution. Los geht’s
Distribution Package
Voraussetzung
Das STM32MPU Distribution Package zielt darauf ab, eine Linux-Distribution für das jeweilige Produkt zu erstellen. Solide Linux-Kenntnisse werden empfohlen, um das volle Potenzial dieses Pakets auszuschöpfen.
Die OpenSTLinux-Distribution ist eine Linux-Distribution, die auf dem OpenEmbedded (=Yocto Project) Build-Framework für Embedded-Linux basiert. Eine kurze Einführung in OpenEmbedded ist unter folgendem Link zu finden.
Ein Blick auf die Übersicht der STM32MPU Embedded Software-Architektur wird ebenfalls dringend empfohlen. Diese findest du unter diesem Link.
PC Voraussetzungen
https://wiki.st.com/stm32mpu/wiki/PC_prerequisites
Ordnerstruktur
https://wiki.st.com/stm32mpu/wiki/Example_of_directory_structure_for_Packages
Distribution erstellen
Diese Anleitung, geschrieben von ST, ist so gut, dass ich auf diese Verweisen muss. Sobald ihr bei folgendem Punkt bist:
bitbake st-image-weston
Wird die Linux-Distribution erstellt und wird ungefähr so aussehen:

Du wirst sehen, das braucht Zeit und viel Speicher.
Linux-Distribution flashen
Nach erfolgreichem Build müssen wir das erstellte Image auf Ihr STM32MP157F-DK2 flashen.
Vorgehen gemäss ST:
- STM32CubeProgrammer installieren: Lade das Tool von der STMicroelectronics-Website herunter und installiere es.
- Board in den Flash-Modus versetzen: Setze die Boot-Modus-Schalter des Boards entsprechend, um den USB-DFU-Modus zu aktivieren.Beim DIP-Switch auf der Rückseite beide Schalterpositionen auf ‚off‘.
- Image flashen: Verwende den STM32CubeProgrammer, um das erstellte Image auf das Board zu übertragen.
./STM32_Programmer_CLI -c port=usb1 -w path/to/your/image - Board neu starten: Setze die Boot-Modus-Schalter zurück und starte das Board neu.
Es funktioniert, aber ehrlich gesagt, mag ich das nicht, dass die SD Karte über das Eval Board geflasht wird. Lieber nutze ich den dd Comand und flashe das Image von meinem Hostrechner direkt auf die SD-Karte
Zweites Fazit
Es ist immer wieder schön zu sehen, wenn eine selbst kompilierte Linux-Distribution booted und betriebsbereit ist. Wir dürfen uns jetzt aber auch nicht zu fest loben.
Wir haben lediglich eine Referenz Linux-Distribution, welche von ST zu Verfügung gestellt wird kompiliert und zum Laufen gebracht. Es steckt unglaublich viel Aufwand hinter einer Referenz Linux-Distribution. Ich bin froh, dass das heutzutage von den Chip-Herstellern mitkommt.
Der nächste Schritt ist nämlich diese Referenz Linux-Distribution zu erweitern. Sobald diese erstellt ist, kann man dann auch von der eigenen Linux-Distribution sprechen

Schreiben Sie einen Kommentar