TXT4.0 Linux Kernel neu compilieren
Verfasst: 11 Jan 2025, 16:37
Hallo,
mein Name ist Horst Scherer und ich bin neu hier im Forum.
Ich bin 64 Jahre alt und war die letzten 24 Jahre immer auswärts tätig. Daher hatte ich die letzten Jahre immer nur Weihnachten Zeit mich mit meinem Fischertechniker Kästen zu beschäftigen und so alle ein bis zwei Jahre gönnte ich mir einen neuen Kasten.
Aktuell bin ich arbeitslos und werde demnächst in Rente gehen. Daher habe ich mittlerweile Zeit und hatte mir zu Weihnachten den Fischertechniker Kasten "Robotic Hightech" mit dem TXT4.0 Controller gekauft.
Privat bin ich immer mit Linux unterwegs. Die anfänglichen Schwierigkeiten mit ROBOProCoding unter Linux und Verbindungsproblemen zu dem TXT4 Controller zu meinem Linux Laptop konnte ich noch recht schnell lösen. Allerdings konnte ich mich mit der graphischen Programmierung nicht anfreunden und bin dann auf Python Programmierung umgestiegen. Ich habe auf den Fischertechnik Web Seiten versucht, Information zu dem Python Interface zu bekommen. Was sehr zu meiner Verwunderung zu keinem Erfolg geführt hat. Bei meiner Suche in dem Fischertechnik Forum bin ich dann auf einen Link zu einer pdf-Datei von David Adams "fischertechnik TXT4.0 Controller" gestoßen. Nachdem ich mich damit einen Tag beschäftigt hatte, habe ich mir erst einmal das Buch gekauft. Das ist dann Anfang Januar angekommen und habe es direkt "verschlungen". Das Buch ist eine wirklich sehr gute und detaillierte Analyse des TXT4.0 Controllers (Hardware + Software).
Ich bin bestenfalls ein Programmier-Hobbyist. Während meiner Promotion habe ich in Fortran und C, später im Berufsleben nur noch Kleinigkeiten in C, sehr viel in IDL und zum Schluß nur noch in Python (auch privat) programmiert. Alle Programmiersprachen habe ich mir immer im Selbststudium beibringen müssen. Python dachte ich mittlerweile weitgehend vernünftig nutzen zu können. Aber meine eigenen Reverse Engineering Bemühungen des TXT4.0 Controller Python Codes waren doch recht kläglich. Daher war ich sehr glücklich über die Kommentare von Herrn Adams in seinem Buch, daß der Code doch "sehr zu wünschen übrig läßt". Ich hätte selbst nie solchen Code erzeugt und zweifelte an meinen Python Kenntnissen.
Aber lange Rede kurzer Sinn. Nach dem Studium von dem Buch von Herrn Adams habe ich eine Reihe von Fragen:
1. wenn man dem Link "https://git.fischertechnik-cloud.com/TXT4.0" folgt, findet man eine Reihe von Repositories mit den TXT4.0 Source Code Teilen.
Herr Adams beschreibt die unklare Situation bzgl. der OpenSource Lizenz(en) von Teilen des in den Repositories befindlichen Source Codes.
Hat hier schon jemand mit dem Service von Fischertechnik gesprochen, die Lizenz Situation eindeutig zu klären?
2. In der Analyse der TXT4.0 Software von Herrn Adams sind eine Reihe von leicht umzusetzenden Verbesserungen angesprochen (z.B.: Verbesserungen der C/C++-Header Dateien, löschen von "totem" Code im Python Interface).
Das sind alles Dinge die zwar mit Sorgfalt gemacht werden müssen, aber letztendlich "nur" Schreibarbeit sind.
Ist da schon jemand an den Fischertechnik Service herangetreten, doch zumindest diese "einfachen" Verbesserungen umzusetzen?
Wenn man dies selber macht, ist beim nächsten System update alles wieder verloren und man fängt von vorne an.
3. hat jemand schon einmal versucht mit den unter dem Link "https://git.fischertechnik-cloud.com/TXT4.0" befindlichen Repositories den TXT4.0 Kernel neu zu compilieren (erster Schritt nur den verwendeten 4er Kernel neu zu erstellen)?
Wenn ich die Repositories richtig verstehe wurde der Kernel mit Hilfe des Yocto Systems erstellt. Ich habe noch nie mit Yocto gearbeitet. Vor drei Tagen habe damit angefangen und kann mittlerweile einen Standard "x86 Kernel" damit erstellen (ist relativ simpel, da es das Default Beispiel ist).
Aber die Daten im Fischertechnik Repository "meta-ktn-stm32mp" sind etwas widersprüchlich. Wenn man das Repository entpackt und "yocto-check-layer" drüber laufen läßt, kommt es zu Fehlermeldungen:
INFO: Detected layers:
ERROR: meta-ktn-stm32mp-master: Can't be DISTRO and BSP type at the same time. Both conf/distro and conf/machine folders were found.
Ich interpretiere dies so, daß die Daten im Verzeichnis "distro" und "machine" nicht gleichzeitig erscheinen dürfen. Löscht man eines der beiden Verzeichnisse kommt es zur Fehlermeldungen
ERROR: Layer meta-ktn-stm32mp-master depends on stm-st-stm32mp and isn't found.
Was fehlt hier? Ich habe bei Kontron Electronics zwar auch meta Daten gefunden, die lösen aber das Problem nicht.
4. Hat schon jemand erfolgreich versucht eine Python Version (V3.11 oder V3.13) auf dem TXT4.0 zu compilieren?
Zu meiner Verwunderung ist der gcc/g++ und Entwicklungs-Tools auf dem TXT4.0 installiert. Ich habe daher einfach mal den Source Code von Python313 auf den TXT4.0 überspielt und dort entpackt. "configure" läuft einwandfrei durch und erste Teile des Sourcecodes werden nach dem Aufruf von "make" auch compiliert.
Dann steigt das System allerdings immer beim compilieren einer bestimmten Datei ohne Fehlermeldung aus. Ich habe parallel mit einer zweiten Konsole versucht zu klären, was beim compilieren passiert. Wenn ich Alles richtig verstehe, ist der Speicher des Systems zu klein, weshalb sich das System sang und klanglos beim Compilier-Versuch verabschiedet.
Da der eMMC Speicher knapp ist, ist der TXT4.0 Kernel ohne Swap Partition und auch ohne lokale Swap Datei aufgesetzt. Ich habe leider aktuell keine SD Karte (ist bestellt) zur Verfügung. Sobald ich die SD Karte habe, stecke ich diese in den TXT4.0, erstelle eine Swap Parttion oder eine lokale Swap Datei auf der Karte und versuche es nochmal. Dann wird alles zwar noch langsamer aber vielleicht läuft der Compiler durch.
Python 313 (oder V3.11/V3.12) bietet die Möglichkeit von Type Kontrolle, was ich mittlerweile sehr zu schätzen weiß.
Alles in Allem würde ich bevorzugen den Punkt 3 gelöst zu bekommen. Dann könnte ich mit einem update des Basis Systems anfangen, was sich hoffentlich als virtuelles System auf dem Laptop nutzen läßt. Das würde das compilieren deutlich einfacher machen und sicherlich beschleunigen. Aus Platzgründen wird das System dann allerdings wahrscheinlich auf der SD Karte installiert werden müssen zumindest, da das Image wahrscheinlich größer als 1,6 GB wird.
Vielen Dank und fröhliches coden auf dem TXT4.0
Horst
mein Name ist Horst Scherer und ich bin neu hier im Forum.
Ich bin 64 Jahre alt und war die letzten 24 Jahre immer auswärts tätig. Daher hatte ich die letzten Jahre immer nur Weihnachten Zeit mich mit meinem Fischertechniker Kästen zu beschäftigen und so alle ein bis zwei Jahre gönnte ich mir einen neuen Kasten.
Aktuell bin ich arbeitslos und werde demnächst in Rente gehen. Daher habe ich mittlerweile Zeit und hatte mir zu Weihnachten den Fischertechniker Kasten "Robotic Hightech" mit dem TXT4.0 Controller gekauft.
Privat bin ich immer mit Linux unterwegs. Die anfänglichen Schwierigkeiten mit ROBOProCoding unter Linux und Verbindungsproblemen zu dem TXT4 Controller zu meinem Linux Laptop konnte ich noch recht schnell lösen. Allerdings konnte ich mich mit der graphischen Programmierung nicht anfreunden und bin dann auf Python Programmierung umgestiegen. Ich habe auf den Fischertechnik Web Seiten versucht, Information zu dem Python Interface zu bekommen. Was sehr zu meiner Verwunderung zu keinem Erfolg geführt hat. Bei meiner Suche in dem Fischertechnik Forum bin ich dann auf einen Link zu einer pdf-Datei von David Adams "fischertechnik TXT4.0 Controller" gestoßen. Nachdem ich mich damit einen Tag beschäftigt hatte, habe ich mir erst einmal das Buch gekauft. Das ist dann Anfang Januar angekommen und habe es direkt "verschlungen". Das Buch ist eine wirklich sehr gute und detaillierte Analyse des TXT4.0 Controllers (Hardware + Software).
Ich bin bestenfalls ein Programmier-Hobbyist. Während meiner Promotion habe ich in Fortran und C, später im Berufsleben nur noch Kleinigkeiten in C, sehr viel in IDL und zum Schluß nur noch in Python (auch privat) programmiert. Alle Programmiersprachen habe ich mir immer im Selbststudium beibringen müssen. Python dachte ich mittlerweile weitgehend vernünftig nutzen zu können. Aber meine eigenen Reverse Engineering Bemühungen des TXT4.0 Controller Python Codes waren doch recht kläglich. Daher war ich sehr glücklich über die Kommentare von Herrn Adams in seinem Buch, daß der Code doch "sehr zu wünschen übrig läßt". Ich hätte selbst nie solchen Code erzeugt und zweifelte an meinen Python Kenntnissen.
Aber lange Rede kurzer Sinn. Nach dem Studium von dem Buch von Herrn Adams habe ich eine Reihe von Fragen:
1. wenn man dem Link "https://git.fischertechnik-cloud.com/TXT4.0" folgt, findet man eine Reihe von Repositories mit den TXT4.0 Source Code Teilen.
Herr Adams beschreibt die unklare Situation bzgl. der OpenSource Lizenz(en) von Teilen des in den Repositories befindlichen Source Codes.
Hat hier schon jemand mit dem Service von Fischertechnik gesprochen, die Lizenz Situation eindeutig zu klären?
2. In der Analyse der TXT4.0 Software von Herrn Adams sind eine Reihe von leicht umzusetzenden Verbesserungen angesprochen (z.B.: Verbesserungen der C/C++-Header Dateien, löschen von "totem" Code im Python Interface).
Das sind alles Dinge die zwar mit Sorgfalt gemacht werden müssen, aber letztendlich "nur" Schreibarbeit sind.
Ist da schon jemand an den Fischertechnik Service herangetreten, doch zumindest diese "einfachen" Verbesserungen umzusetzen?
Wenn man dies selber macht, ist beim nächsten System update alles wieder verloren und man fängt von vorne an.
3. hat jemand schon einmal versucht mit den unter dem Link "https://git.fischertechnik-cloud.com/TXT4.0" befindlichen Repositories den TXT4.0 Kernel neu zu compilieren (erster Schritt nur den verwendeten 4er Kernel neu zu erstellen)?
Wenn ich die Repositories richtig verstehe wurde der Kernel mit Hilfe des Yocto Systems erstellt. Ich habe noch nie mit Yocto gearbeitet. Vor drei Tagen habe damit angefangen und kann mittlerweile einen Standard "x86 Kernel" damit erstellen (ist relativ simpel, da es das Default Beispiel ist).
Aber die Daten im Fischertechnik Repository "meta-ktn-stm32mp" sind etwas widersprüchlich. Wenn man das Repository entpackt und "yocto-check-layer" drüber laufen läßt, kommt es zu Fehlermeldungen:
INFO: Detected layers:
ERROR: meta-ktn-stm32mp-master: Can't be DISTRO and BSP type at the same time. Both conf/distro and conf/machine folders were found.
Ich interpretiere dies so, daß die Daten im Verzeichnis "distro" und "machine" nicht gleichzeitig erscheinen dürfen. Löscht man eines der beiden Verzeichnisse kommt es zur Fehlermeldungen
ERROR: Layer meta-ktn-stm32mp-master depends on stm-st-stm32mp and isn't found.
Was fehlt hier? Ich habe bei Kontron Electronics zwar auch meta Daten gefunden, die lösen aber das Problem nicht.
4. Hat schon jemand erfolgreich versucht eine Python Version (V3.11 oder V3.13) auf dem TXT4.0 zu compilieren?
Zu meiner Verwunderung ist der gcc/g++ und Entwicklungs-Tools auf dem TXT4.0 installiert. Ich habe daher einfach mal den Source Code von Python313 auf den TXT4.0 überspielt und dort entpackt. "configure" läuft einwandfrei durch und erste Teile des Sourcecodes werden nach dem Aufruf von "make" auch compiliert.
Dann steigt das System allerdings immer beim compilieren einer bestimmten Datei ohne Fehlermeldung aus. Ich habe parallel mit einer zweiten Konsole versucht zu klären, was beim compilieren passiert. Wenn ich Alles richtig verstehe, ist der Speicher des Systems zu klein, weshalb sich das System sang und klanglos beim Compilier-Versuch verabschiedet.
Da der eMMC Speicher knapp ist, ist der TXT4.0 Kernel ohne Swap Partition und auch ohne lokale Swap Datei aufgesetzt. Ich habe leider aktuell keine SD Karte (ist bestellt) zur Verfügung. Sobald ich die SD Karte habe, stecke ich diese in den TXT4.0, erstelle eine Swap Parttion oder eine lokale Swap Datei auf der Karte und versuche es nochmal. Dann wird alles zwar noch langsamer aber vielleicht läuft der Compiler durch.
Python 313 (oder V3.11/V3.12) bietet die Möglichkeit von Type Kontrolle, was ich mittlerweile sehr zu schätzen weiß.
Alles in Allem würde ich bevorzugen den Punkt 3 gelöst zu bekommen. Dann könnte ich mit einem update des Basis Systems anfangen, was sich hoffentlich als virtuelles System auf dem Laptop nutzen läßt. Das würde das compilieren deutlich einfacher machen und sicherlich beschleunigen. Aus Platzgründen wird das System dann allerdings wahrscheinlich auf der SD Karte installiert werden müssen zumindest, da das Image wahrscheinlich größer als 1,6 GB wird.
Vielen Dank und fröhliches coden auf dem TXT4.0
Horst