Community-Firmware für den TXT

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 04 Mär 2017, 12:27

Aktuell läuft bei mir ein Build mit allem aus ftcommnity:master und ski777:bleutooth2 also alles mit bluetooth.
Sobald das fertig ist, werde ich das hier hochladen.

Raphael

nq30
Beiträge: 144
Registriert: 25 Feb 2017, 07:44

Re: Community-Firmware für den TXT

Beitrag von nq30 » 04 Mär 2017, 12:34

Tool :D
Wie weit bist du?
Mit freundlichen Grüssen
nq30

ft:cool :)

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 04 Mär 2017, 12:40

Schon relativ weit.
Ich denke, dass das Build in höchstens 1h fertig ist. Sobald ich dann Zeit habe, schicke ich es.

Raphael

nq30
Beiträge: 144
Registriert: 25 Feb 2017, 07:44

Re: Community-Firmware für den TXT

Beitrag von nq30 » 04 Mär 2017, 13:16

Ist due ToDo-Liste schon fertig?
Mit freundlichen Grüssen
nq30

ft:cool :)

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 04 Mär 2017, 13:21

Das ist die ToDo-Liste: https://github.com/ftCommunity/ftcommun ... ilestone/3
Da kann aber immer noch was dazu kommen.

Raphael

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 04 Mär 2017, 13:33

Hier sind die Dateien: https://www.dropbox.com/sh/3k8rc723gj0s ... XgJYa?dl=0

Einfach auf die FAT32-Partition der micro-SD-Karte kopieren und los gehts. Der erste Boot dauert recht lange, danach geht es erheblich schneller.

Raphael

P.S. Bis der Upload fertig ist, kann es noch ein paar Minuten dauern.

nq30
Beiträge: 144
Registriert: 25 Feb 2017, 07:44

Re: Community-Firmware für den TXT

Beitrag von nq30 » 04 Mär 2017, 15:36

Cool! :D
Jetzt kann ich endlich Launcher V2 ausprobieren...

P.S. screibe wenn gedownloadet :D
Mit freundlichen Grüssen
nq30

ft:cool :)

nq30
Beiträge: 144
Registriert: 25 Feb 2017, 07:44

Re: Community-Firmware für den TXT

Beitrag von nq30 » 04 Mär 2017, 18:20

Habe es drauf :D
Geht alles außer CPU-Load :)
Mit freundlichen Grüssen
nq30

ft:cool :)

TiniTech
Beiträge: 77
Registriert: 07 Jan 2016, 10:30
Wohnort: Hamburg

ftc-TXT: Advanced Layout

Beitrag von TiniTech » 11 Mär 2017, 13:51

Habe gerade mal meine - im Advanced Layout eingerichtete - SD-Karte mit einem aktuellen Build aus dem ftcommunity-TXT-GitHub-Repository befüllt wie ich es auch in der Vergangenheit getan habe. Jetzt startet die Community-FW nicht mehr. Nicht geholfen hat auch, die SD-Karte neu einzurichten.

Funktioniert das Advanced Layout nicht mehr, oder mache ich was anderes falsch? Eigentlich meine ich, dass ich's hinkriegen müsste, hab' das Wiki dazu ja selbst geschrieben... - wenn das Advanced Layout aber nicht mehr unterstützt wird (oder jetzt anders eingerichtet werden muss), sollte das im Wiki angepasst werden. Würde ich glatt übernehmen, wenn ich bescheid weiß...

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: Community-Firmware für den TXT

Beitrag von richard.kunze » 11 Mär 2017, 14:19

TiniTech hat geschrieben:Habe gerade mal meine - im Advanced Layout eingerichtete - SD-Karte mit einem aktuellen Build aus dem ftcommunity-TXT-GitHub-Repository befüllt wie ich es auch in der Vergangenheit getan habe. Jetzt startet die Community-FW nicht mehr.
Da ist leider ein Nebeneffekt des neuen "Unified"-Layout - das kommt nicht damit klar, wenn es auf der SD-Karte schon zwei Partitionen gibt, und die zweite nicht die passende Directory-Struktur hat.
TiniTech hat geschrieben:Nicht geholfen hat auch, die SD-Karte neu einzurichten.
Was genau meinst Du mit "neu eingerichtet"? Komplett neu partitioniert und formatiert (so dass nur noch eine große FAT32-Partition übrigbleibt)?
Das sollte nämlich eigentlich gehen...
TiniTech hat geschrieben:Funktioniert das Advanced Layout nicht mehr, oder mache ich was anderes falsch?
Version 0.9.3 benutzt ein neues Layout, das eine Art Kombination aus dem alten "Simple Layout" und dem "Advanced Layout" ist:
  • Eine (relative kleine) FAT32-Partition, auf der Kernel, DTB und root.img liegen.
  • Eine (große) EXT4-Partition, auf der Benutzerdaten, Einstellungen und nachinstallierte Apps liegen.
Beim ersten Start von einer SD-Karte im "Simple Layout" (oder einer neuen, abgesehen von dem Image-Dateien leeren SD-Karte) formatiert die CFW die SD-Karte dann automatisch passend um.

Per Default verhält sich das neue Layout so wie das alte "Simple Layout", d.h. nur /etc, /home und /media/sdcard/* ist beschreibbar. Wenn Du das Verhalten aus dem alten "Advanced Layout" haben willst: Leg eine Datei /media/sdcard/boot/rootfs.conf mit dem Inhalt "rw" an und starte den TXT neu - dann ist das gesamte Filesystem beschreibbar (zumindest für root).

Genaueres dazu findest Du auch hier: viewtopic.php?f=33&t=3903

TiniTech
Beiträge: 77
Registriert: 07 Jan 2016, 10:30
Wohnort: Hamburg

Re: Community-Firmware für den TXT

Beitrag von TiniTech » 11 Mär 2017, 21:01

Vielen Dank für die ausführlichen Erläuterungen! Den Thread hatte ich sogar gelesen - und dann wieder vergessen. Sorry - selber suchen hilft, ich seh's ein...

Ich habe ins Wiki auf der Installationsseite und auf der Update-Your-Firmware-Seite im Abschnitt "Advanced Layout" einen entsprechenden Hinweis aufgenommen. Damit sollte das Wiki dann für das aktuelle Release 0.9.2 weiterhin richtig sein und wer selber baut wird auf die Änderungen und den Thread hingewiesen.

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 14 Mär 2017, 20:41

Ich habe mal mein App Repository für travis flott gemacht. So braucht man ab sofort keine zips mehr zu bauen oder die 00 packages zu generieren: https://github.com/ski7777/ftcommunity-apps
Um das ganze auch im offiziellen Repo zum laufen zu bringen, muss man auf travis das Repo einrichten und drei env Variablen setzen:
  • GITHUB_API_KEY - Ein Github Token: https://github.com/settings/tokens
  • GITHUB_MAIL - Die Mailadresse des Accounts, von dem auch der Token stammt
  • GITHUB_USER - Der Nick, von dem der Token stammt
Anschließend reicht ein push, um das ganze vollautomatisch zu starten. Das Script macht:
  • Alle zips löschen
  • Die 00packages schreiben
  • Neue zips generieren
Ich werde das ganze noch ein paar Tage lang testen und würde das dann pushen, wenn dem nix im Wege steht.

Raphael

P.S. Dafür bräuchte ich noch die travis-Rechte für die github Organisation.

Bello
Beiträge: 62
Registriert: 03 Feb 2015, 20:17

Re: Community-Firmware für den TXT

Beitrag von Bello » 15 Mär 2017, 09:59

@ski7777: Danke für die Bereitstellung von 0.9.3!

Ich habe mich bei der Aktualisierung ungeschickt angestellt und erfolglos alle beschriebenen Vorgehensweisen probiert. Am Ende war die Ursache trivial: Ich hatte die drei Dateien direkt von dropbox auf die SD-Karte kopiert (Firefox auf Win7). Obwohl die Dateigrößen korrekt waren hat der TXT stur die Originalfirmware gebootet. Nach Download der zip-Datei und anschließendem Kopieren des Inhalts hat der erste Bootversuch geklappt.

Ist es möglich, den dropbox-Link auf die Zip-Datei zeigen zu lassen damit andere nicht in die gleiche Falle tappen?

Robert

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 15 Mär 2017, 13:26

Das sieht schwierig aus, da Dropbox diesen Link dynamisch generiert. Sobald die 0.9.3 released ist, werde ich die Links sowieso entfernen.

Raphael

nq30
Beiträge: 144
Registriert: 25 Feb 2017, 07:44

Re: Community-Firmware für den TXT

Beitrag von nq30 » 15 Mär 2017, 18:58

Hä?
Bei mir hat das Zip nur Fehler gezeigt.
Dann habe ich die Dateien manuell kopiert und es hat geklappt.
Mit freundlichen Grüssen
nq30

ft:cool :)

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 16 Mär 2017, 17:31

ski7777 hat geschrieben:Ich habe mal mein App Repository für travis flott gemacht. So braucht man ab sofort keine zips mehr zu bauen oder die 00 packages zu generieren: https://github.com/ski7777/ftcommunity-apps
Um das ganze auch im offiziellen Repo zum laufen zu bringen, muss man auf travis das Repo einrichten und drei env Variablen setzen:
  • GITHUB_API_KEY - Ein Github Token: https://github.com/settings/tokens
  • GITHUB_MAIL - Die Mailadresse des Accounts, von dem auch der Token stammt
  • GITHUB_USER - Der Nick, von dem der Token stammt
Anschließend reicht ein push, um das ganze vollautomatisch zu starten. Das Script macht:
  • Alle zips löschen
  • Die 00packages schreiben
  • Neue zips generieren
Ich werde das ganze noch ein paar Tage lang testen und würde das dann pushen, wenn dem nix im Wege steht.

Raphael

P.S. Dafür bräuchte ich noch die travis-Rechte für die github Organisation.
Schade, dass sich hier drauf keiner gemeldet hat. Ich habe das ganze jetzt in einem wirklich nutzbaren Stadium. Sobald ich Travis-Zugriff habe für die Organization, werde ich das pushen.

Raphael

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: Community-Firmware für den TXT

Beitrag von richard.kunze » 16 Mär 2017, 21:39

ski7777 hat geschrieben:Ich habe mal mein App Repository für travis flott gemacht. So braucht man ab sofort keine zips mehr zu bauen oder die 00 packages zu generieren: https://github.com/ski7777/ftcommunity-apps
Eigentlich wollte ich mit dem Antworten ja noch warten, bis ich dazu gekommen bin das mir mal etwas genauer anzuschauen. Aber na gut...

Zunächst mal: Die Idee finde ich super (weniger Handarbeit und damit mehr Bequemlichkeit und weniger Möglichkeiten, Fehler zu machen). Und technisch sieht das auch ganz OK aus (wobei: Die Abfrage, mit der Du Endlosschleifen im Build verhinderst ist nicht so arg robust - das hätte ich vermutlich eher etwas anders gelöst. Und den Schreibfehler in der Autocommit-Message solltest Du vielleicht auch noch korrigieren ;)).

Aber: Wenn wir das "offiziell" einsetzen wollen, dann müssen wir erst mal ein paar Fragen klären.

Das fängt damit an, wer "wir" (also "die ftCommunity auf Github") eigentlich sind: Die "Owner" der entsprechenden Github-Organisation? Der ftc Modellbau e.V.? Irgendwer anders?

Weiter geht es mit der Frage, ob und wie ein lose und ohne irgendeinen rechtlichen Rahmen als "Github-Organisation" zusammengeschlossener Haufen Leute überhaupt einen Vertrag mit der "Travis CI GmbH" eingehen kann (und ja, wenn wir Travis benutzen, dann ist das auch dann ein Vertrag wenn wir nichts dafür zahlen müssen). Und wenn nicht: Welche (gegebenenfalls juristische) Person soll das machen?

Und schließlich kommen wir dann zu den interessanten Fragen: Wollen wir das überhaupt? Schließlich begeben wir uns damit in eine (zusätzliche) Abhängigkeit von einem kommerziellen Unternehmen, und ein kommerzielles Unternehmen hat schon per Definition nichts zu verschenken. Wenn da also trotzdem etwas kostenlos angeboten wird, dann sollte man ganz genau prüfen warum das Unternehmen das macht (oder wie es der zynische alte Sack in mir formuliert: Wenn ein Unternehmen Dir etwas kostenlos anbietet, dann bist Du oft die Ware, aber ganz bestimmt nicht der Kunde). Und auf jeden Fall sollte man in so einem Fall immer (auch dann, wenn man tatsächlich Kunde ist) schon vorher eine Strategie bereit haben, wie man im Bedarfsfall aus dieser Abhängigkeit wieder herauskommt.

Und wenn jetzt als Einwand kommt "Aber Github ist auch kommerziell, und trotzdem sind wir da": Ja. Darüber habe ich aber auch gründlich nachgedacht - sowohl darüber, warum Github diese Diensteistung "verschenkt" (meine Meinung: Um sich einen Kundenstamm für den zugehörigen kommerziellen Service aufzubauen - also im Wesentlichen als clevere Werbung), als auch darüber, wie wir im Zweifelsfall da wieder wegkommen (Irgendwo einen Server anmieten und eine Gitlab-Instanz da draufpacken, oder - als Notnagel - zu https://gitlab.com/ umziehen). Und in Bezug auf Github bin ich - nach reiflicher Überlegung - zu der Überzeugung gekommen, dass wir da aktuell ganz gut aufgehoben sind.

Das kann bei Travis genauso aussehen. Aber: Das weiß ich nicht, bevor ich mir den Laden gründlich angesehen habe. Und selbst danach bin ich ganz bestimmt nicht der Einzige, der bei der Entscheidung mitredet (und das sollte ich auch ganz bestimmt nicht sein).
ski7777 hat geschrieben:Schade, dass sich hier drauf keiner gemeldet hat. Ich habe das ganze jetzt in einem wirklich nutzbaren Stadium. Sobald ich Travis-Zugriff habe für die Organization, werde ich das pushen.
In dem Fall ist es wohl ganz gut, dass noch niemand Dir die nötigen Zugriffsrechte gegeben hat...

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Alles neu macht der Mai

Beitrag von richard.kunze » 01 Mai 2017, 01:18

... und in diesem speziellen Fall den Unterbau der CFW. Den habe ich eben auf den aktuellen Stand von Buildroot (Version 2017.02.1 vom 05.04.2017) gebracht.

In einem ersten kurzen Tests scheint (fast, siehe unten) alles zu funktionieren, ich möchte Euch aber trotzdem alle bitten das Update gründlich zu testen. Und für diejenigen, die die Firmware selber bauen: Macht nach dem nächsten Pull besser ein "make clean", weil sich in Buildroot doch einiges getan hat seit dem letzten großen Update.

Ein Problem habe ich in meinem Kurztest leider auch gefunden: Nach dem Update wirft die Store-App einen Segfault beim Installieren von Apps (genauer: Beim Versuch, Daten aus dem heruntergeladenen Zipfile zu lesen). Allerdings nur, wenn der App-Store als "Launcher-Plugin" läuft - in einem separaten Python-Prozess klappt alles bestens. Und ich habe bisher nicht herausgefunden, was genau da schiefläuft - wenn jemand von Euch eine Idee hat, bitte melden. Als Workaround habe ich erstmal den Store von "launcher-plugin" wieder auf "standalone" umkonfiguriert, aber das ist natürlich keine echte Lösung...

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 01 Mai 2017, 08:45

Sehr schön :D
Ich werde das später mal bauen. Kannst du mal den Store wieder zu einem Plugin machen und dann den ganzen Launcher mit strace starten? Die letzten Zeilen dürften da recht interessant werden.

Raphael

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: Community-Firmware für den TXT

Beitrag von richard.kunze » 01 Mai 2017, 11:01

ski7777 hat geschrieben:Kannst du mal den Store wieder zu einem Plugin machen und dann den ganzen Launcher mit strace starten?
Kannst Du auch selber - einfach nur im Manifest "managed" wieder auf "launcher-plugin" setzen (geht auch direkt auf dem TXT, wenn Du vorher das Root-Filesytem "beschreibbar" machst indem Du "rw" nach /media/sdcard/boot/rootfs.conf schreibst).

Strace startest Du dann am Besten kurz vor dem Klick auf "Install" mit "strace -p ${pid-des-launchers}", sonst braucht der Launcher ewig zum Starten und Du ersäufst in Trace-Messages...
ski7777 hat geschrieben:Die letzten Zeilen dürften da recht interessant werden.
Leider nicht (ich hab das natürlich schon probiert ;) ). Etwas stinknormale I/O auf dem Stream vom Zipfile, und dann ohne irgendwelche weiteren Meldungen direkt der Crash:

Code: Alles auswählen

write(1, "Received 3398230 bytes\n", 23) = 23
stat64("/usr/lib/python3.5/encodings", {st_mode=S_IFDIR|0755, st_size=2468, ...}) = 0
stat64("/usr/lib/python3.5/encodings/cp437.pyc", {st_mode=S_IFREG|0644, st_size=7436, ...}) = 0
open("/usr/lib/python3.5/encodings/cp437.pyc", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 19
fstat64(19, {st_mode=S_IFREG|0644, st_size=7436, ...}) = 0
_llseek(19, 0, [0], SEEK_CUR)           = 0
fstat64(19, {st_mode=S_IFREG|0644, st_size=7436, ...}) = 0
read(19, "\26\r\r\n\360\303\5Y\4\207\0\0\343\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0@\0\0"..., 7437) = 7436
read(19, "", 1)                         = 0
close(19)                               = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xef66d423} ---
rt_sigaction(SIGSEGV, {sa_handler=SIG_DFL, sa_mask=[SEGV], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6ca9101}, {sa_handler=0xb596e299, sa_mask=[SEGV], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6ca9101}, 8) = 0
Da muss man vermutlich eher mit einem Debugger (z.B. gdb) ran und sich den Stacktrace anschauen. Aber dazu braucht es erstmal auf dem TXT ein Python (plus relevanten zusätzlichen Libs, welche auch immer das sein mögen) mit Debug-Symbolen, damit man da überhaupt was vernünftiges aus einem Crashdump rausholen kann...

Edit: Relevanten strace-Ausschnitt eingefügt.

Edit: Abhängig von der installierten App kann man auch einen Python-Stacktrace bekommen:

Code: Alles auswählen

$ /opt/ftc/launcher.py -qws
QVNCServer created on port 5900
Received 5424 bytes
Traceback (most recent call last):
  File "/opt/ftc/apps/system/store/store.py", line 267, in onNetworkResult
    unzip_result = self.install_zip(f)
  File "/opt/ftc/apps/system/store/store.py", line 280, in install_zip
    manifest_str = io.StringIO(z.read("manifest").decode('utf-8'))
  File "/home/richard/Projekte/Fischertechnik/ftcommunity-TXT/output/target/usr/lib/python3.5/zipfile.py", line 1233, in read
  File "/home/richard/Projekte/Fischertechnik/ftcommunity-TXT/output/target/usr/lib/python3.5/zipfile.py", line 830, in read
  File "/home/richard/Projekte/Fischertechnik/ftcommunity-TXT/output/target/usr/lib/python3.5/zipfile.py", line 920, in _read1
zlib.error: Error -2 while decompressing data: inconsistent stream state
Das Ganze riecht irgendwie nach kaputter Speicherfreigabe bei Multithreading (Launcher-Plugins laufen als Threads)...
Zuletzt geändert von richard.kunze am 01 Mai 2017, 11:43, insgesamt 2-mal geändert.

Antworten