Community-Firmware für den TXT

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
TiniTech
Beiträge: 77
Registriert: 07 Jan 2016, 10:30
Wohnort: Hamburg

Re: Community-Firmware für den TXT

Beitrag von TiniTech » 31 Mär 2016, 22:49

Ich stell' mal zu Vergleichszwecken meinen Build-Output von heute Abend zur Verfügung nebst Log des Bootprozesses.

So wie die Dateien hier liegen, haben sie bei mir funktioniert:
https://www.dropbox.com/sh/fm1b4qj6qg5l ... kgl9a?dl=0

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 31 Mär 2016, 23:08

richard.kunze hat geschrieben: Ich bin nicht sicher ob das wirklich das Rootfilesystem ist. Wenn das nicht gemounted werden kann, gibts normalerweise einen sehr deutlichen Hinweis auf der Konsole (Kernel Panic mit der Meldung "cannot mount root file system" 8-) )
Hätte ich eigentlich auch gedacht. Da aber unser Kernel anscheinend extrem schweigsam ist (er gibt ja irgendwie selbst überhaupt nichts auf der Konsole aus) bin ich mir ehrlich gesagt nicht so ganz sicher, ob er sich bei einer Panic dort melden würde ...
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

chehr
Beiträge: 193
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Community-Firmware für den TXT

Beitrag von chehr » 01 Apr 2016, 09:35

Hallo TimiTech,
danke für dein Image.
Damit habe ich das gleiche Problem, somit müsste der Fehler nicht am Image liegen (vorausgesetzt ich habe keinen copy fehler gemacht).

Frage: Kann man die U-Boot modifikation wiederholen - überschreibt er die alten Settings oder fügt er immer welche hinzu?

Sonst liegt es warscheinlich an der Beschreibung der SD-Karte. Zur info habe ubuntu 15.10
Werde heute abend danach schauen.

Gruß
Christian

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 01 Apr 2016, 10:59

chehr hat geschrieben: Sonst liegt es warscheinlich an der Beschreibung der SD-Karte. Zur info habe ubuntu 15.10
Werde heute abend danach schauen.
Das halte ich für unwahrscheinlich. Ich mache das unter Ubuntu 15.10 und 14.10.

Ggf. magst Du mal Raphaels Script ausprobieren: https://github.com/ski7777/ftcommunity- ... ate_all.py
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

App-Tutorial

Beitrag von MasterOfGizmo » 01 Apr 2016, 11:52

Ich habe den zweiten Teil meines kleinen App-Tutorials online gestellt:
https://github.com/ftCommunity/ftcommun ... evelopment

Das erklärt u.a. wie man die TXT apps auch direkt auf dem PC laufen lässt. Für Linux habe ich es beschrieben. Aber das sollte auch unter Windows einfach möglich sein. Ggf. mag das ja mal einer von Euch ausprobieren und im Wiki nachtragen.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

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

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 01 Apr 2016, 12:52

Also mein Script muss einfach im root-Ordner der Repo gestartet werden und frägt nach allem was nötig ist.

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

Re: Community-Firmware für den TXT

Beitrag von TiniTech » 01 Apr 2016, 21:47

@Christian:
Hm. Hast du die beiden Partitionen auf der SD-Karte mal neu formatiert?
Auch wenn's mir etwas peinlich ist: An der Stelle hatte ich zunächst ein Problem, weil ich die beiden Befehle

Code: Alles auswählen

mkfs.vfat -n BOOT /dev/mmcblk0p1
mkfs.ext4 -L ROOT /dev/mmcblk0p2
mit cut&paste dupliziert habe und dabei nicht alles angepasst hatte: ein Mal vfat -n, ein Mal ext4 -L; und noch viel näher beieinander: BOOT vs ROOT

Ich glaube zwar nicht, dass es bei Dir daran lag, aber erwähnt haben wollte ich's trotzdem.

chehr
Beiträge: 193
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Community-Firmware für den TXT

Beitrag von chehr » 01 Apr 2016, 21:49

Hallo Zusammen,
nun startet der TXT mit dem Community-Firmware. Also Problem behoben.
Habe nochmal alles neu gemacht:
[*] U-Boot neu aufgesetzt (war aber wohl nicht die root cause)
[*] Built Umgebung
[*] SD Karte neu formatiert und daten kopiert (die Daten der zweiten Partition waren nicht alle da, warum kann ich mir nicht erklären - ich denke das war das Problem)

Hatte mich nun als root am Linux angemeldet.
@TiniTech, diesen Fehler kann ich ausschließen, da ich jede Befehlszeile individuell zuerst in Word kopiert hatte, dann nur mein Laufwerksbuchstabe angepasst, den Rest hatte ich richtig übernommen...

Gruß
Christian
Zuletzt geändert von chehr am 01 Apr 2016, 21:57, insgesamt 1-mal geändert.

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 01 Apr 2016, 21:55

Exzellent. Das klingt doch langsam gut hier. Bin gespannt, wann die ersten Anwendungen kommen. Ich werde jedenfalls noch ein paar Tutorials schreiben ....
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

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

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 01 Apr 2016, 22:04

Vielleicht könnten wir eine Funktion Bildschitmtime-out hinzufügen. In root-fs /sys/class/fb_ili9341_txt/ (das fb... könnte bei anderen Controllern anders sein) die Datei bl_power hat normal den Inhalt "0". Wenn man diesen auf 1 setzt geht das Backligt des Displays aus und umgekehrt auch wieder an. Man könnte auf dem Launcher-Screen nach 5 min das Display aus machen und bei berühren des Touchs oder des Buttons das Display wieder an machen.
Des weiteren wäre eine Steuerung der RGB_LED sehr cool.

Raphael

chehr
Beiträge: 193
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Community-Firmware für den TXT

Beitrag von chehr » 01 Apr 2016, 22:05

@TiniTech,
obwohl das wohl nicht die "root cause" war, trotzdem vielleicht sollte man im WIKI unter "Preparing the TXT controller" jeden der 4 U-Boot Befehle in nur eine Zeile ohne Zeilenumbruch schreiben:

Code: Alles auswählen

Zeile 1: fw_setenv loadsduimg "fatload mmc 0 0x80200000 uImage"
Zeile 2: fw_setenv loadsddtb "fatload mmc 0 0x80F00000 am335x-kno_txt.dtb"
Zeile 3: fw_setenv setsdargs "setenv bootargs fbtft_device.name=txt_ili9341 fbtft_device.fps=10 console=ttyO0,115200 root=/dev/mmcblk0p2 rw rootwait quiet"
Zeile 4: fw_setenv bootboth "run reset_wl18xx; mtdparts default; nand read 0x80200000 NAND.uImage; nand read 0x80F00000 NAND.dtb; setenv bootargs fbtft_device.name=txt_ili9341 fbtft_device.fps=10 console=ttyO0,115200 ubi.mtd=10 root=ubi0:rootfs rootfstype=ubifs rootwait quiet; run loadsduimg loadsddtb setsdargs; fdt addr 0x80F00000; run opp; bootm 0x80200000 - 0x80F00000"
 
z.B. wie unter https://github.com/ftCommunity/ftcommunity-TXT angegeben.

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

Re: Community-Firmware für den TXT

Beitrag von TiniTech » 01 Apr 2016, 23:11

@Christian: Guter Hinweis; fiel mir auch auf, hab' die Formatierung aber (zunächst) nicht besser hinbekommen. (Was so ein Absatz an der richtigen Stelle in Markdown alles bewirkt. Muss man nur wissen...)
Ist jetzt für die Befehlseingabeseite korrigiert; für den Output zum Abgleich hab' ich's bewusst so gelassen, damit man alles auf einen Blick sieht und nicht die Scrollbalken hin- und herschieben muss.

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 03 Apr 2016, 09:53

Mit Hinblick auf eine V0.9 mache ich gerade die Migration auf Python 3 (ist doch etwas mehr Arbeit als erwartet). Danach werde ich umstellen, dass der Launcher und die Apps nicht mehr unter dem Root-User sondern unter dem ftc-User laufen.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

jona2004
Beiträge: 149
Registriert: 10 Jun 2011, 22:30

Re: Community-Firmware für den TXT

Beitrag von jona2004 » 03 Apr 2016, 12:30

Hallo,
Erstmal vielen Dank fuer die super Arbeit!
Gestern habe ich die Communityfirmware recht problemslos zum Laufen gebracht. Falls es von interesse ist:
Umgebung: Windows 10 Home & Ubuntu 14LTS in der Virtualbox, Verbindung ueber USB - Cardreader taucht als /dev/sdb" auf
Wo war es für mich knifflig?
1 - Das Wiki, README.md, Raphael's skript sind etwas inkonsistent was extf4 und extf2 Formatierung angeht zwischen Beschreibung und Skript
2 - Ich hatte auch das Problem, dass sich der TXT unter der Communityfirmware als 'COM' device anmeldet. Lies sich aber wie in 'Getting started' lösen.
Was funktioniert noch nicht:
1 - Die Kamera apps. Bisher habe ich rausgekriegt, dass beim import cv2 wiederum die libQtTest.so nicht gefunden wird. DIe ist auch nicht in der lib directory. Interessanterweise taucht sie im 'build' pfad auf Ubuntu abder nicht im 'output' pfad auf. Da mein git clone schon 3 Wochen alt ist und ich gestern nur ein git pull mit make gemacht hatte, werfe ich jetzt noch ein make clean an. Mal sehen.
Was ist noch nicht getestet:
WLAN und Bluetooth

Grüße Joachim

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

Re: Community-Firmware für den TXT

Beitrag von TiniTech » 03 Apr 2016, 13:01

Hallo Joachim,

super, dass das bei dir auch recht reibungslos geklappt hat - ich bin sicher, dass nach dem make clean auch die Kamera funktioniert.

Zu den Dateisystem-Inkonsistenzen: Raphaels Skript habe ich jetzt nicht nochmal angeschaut, aber zwischen Wiki und Readme.md dürfte es keine Unterschiede geben - das Wiki ist an dieser Stelle aus der Readme entstanden.
Richtig ist, dass bei dem Parted-Befehl "ext2" steht und bei mkfs "ext4". Das liegt nach meinem Verständnis an Parted - habe da grade die man-Page angesehen und der Schalter zur Vorbereitung einer Partition auf ein "ext"-Dateisystem heißt ext2, es gibt schlicht keinen anderen passenden. Stammt wohl aus der Zeit, als parted gleich noch die Formatierung übernehmen konnte; das ist aber überholt mittlerweile.

Ich habe ins Wiki mal einen Hinweis aufgenommen.

jona2004
Beiträge: 149
Registriert: 10 Jun 2011, 22:30

Re: Community-Firmware für den TXT

Beitrag von jona2004 » 03 Apr 2016, 14:25

Hallo TiniTech,
Nur zur Klarstellung - Die "commandlines" sind sauber und daran habe ich mich auch gehalten. Allerdings jeden Befehl einzeln ausgeführt und verifiziert, nicht per root skript.
Bei solchen Dingen kann ein kleiner Fehler langes Problemsuchen auslösen, und da sollte man m.E. Schritt für Schritt rangehen.

Evtl. ware noch ein Tipp hilfreich wie man ein update macht ohne die SD Karte aus dem TXT rauszunehmen, das ist ja eigentlich eine Arbeit unter dem rollenden Rad.
Das 'update.sh' Skript im orginal ist ja nicht ganz trivial und traegt das Betriebsystem mit sich.

Normale Apps sollte man mit einem einfachen scp hinkriegen.
Grüße Joachim

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

Re: Community-Firmware für den TXT

Beitrag von TiniTech » 03 Apr 2016, 15:18

Hallo Joachim,

ich bin voll bei dir, was das scripten solcher Aufgaben -noch zumal als root- angeht. Ich mache das auch lieber Schritt für Schritt und prüfe dann gleich die Rückmeldung der Befehle.
Daher steht das Skript auch nur bei Raphael=ski7777 im Repository.

Zu den Updates bei laufendem System habe ich noch nichts ins Wiki geschrieben, weil ich das selbst erst noch rausfinden wollte, wie es sicher funktioniert.
Was (wohl) zuverlässig klappt, ist, den Inhalt der ROOT-Partition im laufenden Betrieb zu überschreiben:
Dazu schrieb rkunze weiter oben mal, dass das >> quick-and-dirty mit "tar xf /tmp/rootfs.tar -C /" << gehen würde - also rootfs.tar nach / kopieren und dann dort entpacken. Das habe ich nicht probiert.

Was ich mal erfolgreich getestet habe ist folgendes: TAR bleibt in VM und wird mit netcat auf den TXT geschoben und dort dann direkt entpackt:
Dazu zuerst auf dem TXT den Empfangsbefehl ausführen (als root im Wurzelverzeichnis / des TXT):

Code: Alles auswählen

netcat -l -p 9999 | tar -xvf -
(habe hier ggü dem Vorschlag von rkunze für tar oben noch den Schalter v ergänzt, weil ich mehr von der Ausgabe sehen wollte)

Und auf dem Build-Linux aus dem von GitHub gezogenen Pepository, also im Verzeichnis ftcommunity-TXT, mit angepasster IP des TXT:

Code: Alles auswählen

cat output/images/rootfs.tar | netcat 192.168.178.26 9999
Das war bei mir erfolgreich, allerdings etwas langsamer als direkt über einen USB-Kartenleser auf die SD-Karte zu extrahieren.
Vielleicht geht es ja auch schneller / einfacher, erst die rootfs.tar auf den TXT zu kopieren und dann mit rkunzes TAR-Befehl oben zu entpacken.

Updates der Apps gehen auf jeden Fall per scp.

Was ich noch nicht hinbekommen habe, ist, den Inhalt der Partition 1 (BOOT) mit Kernel und DTB zu aktualisieren, ohne die Karte zu entnehmen. Wenn ich das richtig sehe, ist das (meist) auch nicht nötig, weil sich die Änderungen im Moment auf Skripte / Einstellungen im ROOT-FS beziehen.

Magst du zu einem Update-Weg was schreiben? Ich nehme das dann gerne ins Wiki auf. Mein Wissen dazu war mir noch zu experimentell - nur weil's bei mir so ein Mal funktioniert hat, wollte ich es noch nicht qua Wiki als allgemeingültig darstellen.

Und das update.sh für die ft-Factory-Firmware ist in der Tat interessant konstruiert mit dem gepackten TAR als Payload im Anhang... Mir ist's ehrlicherweise etwas suspekt - aber funktioniert ja wohl.

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 » 03 Apr 2016, 16:11

Hallo TiniTch,
TiniTech hat geschrieben: Zu den Updates bei laufendem System habe ich noch nichts ins Wiki geschrieben, weil ich das selbst erst noch rausfinden wollte, wie es sicher funktioniert.
Steck da am besten noch nicht zuviel Arbeit rein - ich bin gerade dabei, das Layout der SD-Karte nochmal umzukrempeln. Danach braucht man dann nur noch eine einzige FAT-Partition (also genau das, wie die meisten SD-Karten ab Fabrik haben) und das Root-Filesystem ist dann nur noch eine weitere (große) Datei auf dieser Partition.

Für Updates überschreibt man dann einfach diese Datei.
TiniTech hat geschrieben:Was (wohl) zuverlässig klappt, ist, den Inhalt der ROOT-Partition im laufenden Betrieb zu überschreiben:
Dazu schrieb rkunze weiter oben mal, dass das >> quick-and-dirty mit "tar xf /tmp/rootfs.tar -C /" << gehen würde - also rootfs.tar nach / kopieren und dann dort entpacken. Das habe ich nicht probiert.

Was ich mal erfolgreich getestet habe ist folgendes: TAR bleibt in VM und wird mit netcat auf den TXT geschoben und dort dann direkt entpackt:
Dazu zuerst auf dem TXT den Empfangsbefehl ausführen (als root im Wurzelverzeichnis / des TXT):

Code: Alles auswählen

netcat -l -p 9999 | tar -xvf -
(habe hier ggü dem Vorschlag von rkunze für tar oben noch den Schalter v ergänzt, weil ich mehr von der Ausgabe sehen wollte)

Und auf dem Build-Linux aus dem von GitHub gezogenen Pepository, also im Verzeichnis ftcommunity-TXT, mit angepasster IP des TXT:

Code: Alles auswählen

cat output/images/rootfs.tar | netcat 192.168.178.26 9999
Das war bei mir erfolgreich, allerdings etwas langsamer als direkt über einen USB-Kartenleser auf die SD-Karte zu extrahieren.
Vielleicht geht es ja auch schneller / einfacher, erst die rootfs.tar auf den TXT zu kopieren und dann mit rkunzes TAR-Befehl oben zu entpacken.
Das nimmt sich beides nicht viel - die Bremse ist jeweils das Kopieren über USB. Und "/tmp/" ist auf dem TXT nur eine Ramdisk, d.h. wenn Du rootfs.tar nach /tmp/ kopierst wird es auch nicht zweimal auf die SD-Karte geschrieben.

Wenn Du in einem Zug kopieren und installieren willst geht das übrigens auch ohne netcat, indem du auf dem Build-Linux inftcommunity-TXT das machst:

Code: Alles auswählen

cat output/images/rootfs.tar | ssh root@192.168.178.26 tar xvf - -C /
"Quick-and-Dirty" ist in allen Fällen, dass einmal das komplette System im laufenden Betrieb neu geschrieben wird - das klappt auf dem TXT, weil da so alle dazu nötigen Befehle im passenden Moment schon sicher im Speicher sind (letztendlich stecken die nahezu alle in /bin/busybox) und beim Rest nicht viel kaputtgehen kann (aber in einem "großen" Linux ist sowas ein ziemlich sicheres Rezept für ein Desaster). Und zum anderen kann man mit dieser Methode nur Dateien überschreiben oder neu anlegen, aber nicht löschen. Da bleiben also unter Umständen Reste der alten Installation zurück, die - wenn es dumm läuft - dann in der neuen Installation stören können.
TiniTech hat geschrieben: Was ich noch nicht hinbekommen habe, ist, den Inhalt der Partition 1 (BOOT) mit Kernel und DTB zu aktualisieren, ohne die Karte zu entnehmen.
Auf dem TXT als root:

Code: Alles auswählen

mkdir /boot
mount -t vfat /dev/mmcblk0p1 /boot
Dann hast Du in /boot die erste Partition auf der SD-Karte mit Kernel und DTB. Den ersten Befehl musst Du nur einmal ausführen, der legt auf der SD-Karte das Verzeichnis /boot an wo dann die Partition eingehängt wird.

jona2004
Beiträge: 149
Registriert: 10 Jun 2011, 22:30

Re: Community-Firmware für den TXT

Beitrag von jona2004 » 03 Apr 2016, 20:55

Hallo,
Nur noch eine kurze Info - Nach einem make clean und dann alles von vorne klappt es auch mit den Kamera apps.
Grüße Joachim

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 03 Apr 2016, 21:24

Ich habe eben den Wechsel von Python2 auf Python3 eingecheckt. Bisher scheint alles was ich getestet habe noch/wieder zu funktonieren. Aber da kann sich noch das ein oder andere Problem verbergen.

Außerdem ist mal wieder ein kompletter Rebuild nötig.

So ganz sicher bin ich mir ja nicht, ob so ein Komplettschwenk eine gute Idee ist, Auf dem Desktop-PC läuft z.B. die Kamera nicht mehr, weil selbst ein aktuelles Ubuntu kein opencv für Python3 anbietet. Das hat für normale TXT-Nutzer keine Bedeutung, sondern nur für App-Entwickler, die die Apps auch auf einem PC statt auf dem TXT laufen lassen wollen. Aber es zeigt m.E., dass auch in der PC-Welt Python3 noch nicht ganz angekommen ist. Von daher dürfte es auch hier und da noch generell Probleme mit 3rd-Party-Code unter Python3 geben.

Ausschlaggebend für das Ugrade war für mich die Tatsache, dass Websockets wohl erst mit Python3 unterstützt werden. Und zum Steuern von Robotern per Browser klingt das m.E. nach einer feinen Sache.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Antworten