Community-Firmware für den TXT

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 04 Apr 2016, 16:27

Als nächstes gehe ich es an, dass der Launcher und die Apps mit eingeschränkten Rechten laufen.

Da wäre die Frage, was dafür die eleganteste Lösung ist. Aus dem Init-Script würde ich per "su ftc ...." auf den FTC-User wechseln. Gibt's einen schöneren Weg?

Die meisten Apps brauchen Zugriff auf /dev/input/event1, um sich per Button beenden zu lassen. Das würde ich per udev-Rule regeln, dass alle Input-Devices dem ftc-user gehören. Dann hätte er am Ende auch direkten Zugriff auf Joysticks etc. Extra Gruppen dafür anzulegen macht m.E. wenig Sinn. Es wird ja keine zusätzlichen User auf dem TXT geben.

Die Wifi-App greift auf auf wpa-cli und udhcpc zu, die beide Root-Rechte brauchen. Das würde ich per sudo regeln. Sticky-Bit geht im Fall von udhcpc m.E. eh nicht, weil es ein Link auf die Busybox ist. Oder kann man an Links das Sticky-Bit setzen?

Apps, die das WeDo nutzen, brauchen Zugriff auf das entsprechende USB-Gerät. Auch das geht per udev-Rule.

Das "Starte-mir-die-Original-GUI"-Script braucht wohl auch Root-Rechte nehme ich an. Das dann wieder per sudo.

Fehlt was in der Auflistung? Auf welche Hardware will/soll der User mit Apps direkt zugreifen können?
Arduino für fischertechnik: ftDuino http://ftduino.de

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

Re: Community-Firmware für den TXT

Beitrag von richard.kunze » 04 Apr 2016, 17:18

MasterOfGizmo hat geschrieben:Als nächstes gehe ich es an, dass der Launcher und die Apps mit eingeschränkten Rechten laufen.

Da wäre die Frage, was dafür die eleganteste Lösung ist. Aus dem Init-Script würde ich per "su ftc ...." auf den FTC-User wechseln. Gibt's einen schöneren Weg?
Mit dem Busybox-Init fällt mir auch keiner ein. Man könnte "sudo" statt "su" nehmen, aber als Root macht das keinen echten Unterschied.

Und nur wegen der Ästhetik beim Benutzerwechsel auf ein anderes Initsystem zu wechseln wäre denke ich doch etwas extrem :-)
MasterOfGizmo hat geschrieben: Die meisten Apps brauchen Zugriff auf /dev/input/event1, um sich per Button beenden zu lassen. Das würde ich per udev-Rule regeln, dass alle Input-Devices dem ftc-user gehören. Dann hätte er am Ende auch direkten Zugriff auf Joysticks etc.
Für die bisher benutzen Inputs sollte eigentlich schon alles funktionieren - auf die haben die Gruppen "video" und "input" (je nach Gerät) Zugriff, und "ftc" ist in beiden Gruppen.
MasterOfGizmo hat geschrieben:Extra Gruppen dafür anzulegen macht m.E. wenig Sinn. Es wird ja keine zusätzlichen User auf dem TXT geben.
Jein. Ja, es wird wohl keine "echten" Benutzer geben. Aber wir haben schon jetzt diverse "Funktionsbenutzer" für verschiedene Subsysteme (sshd, www-data, ROBOPro, ...), und mindestens bei "ROBOPro" muss das Setup kompatibel mit dem aus der originalen Firmware sein (das ist letztendlich dann auch der Grund für die etwas seltsame Gruppenaufteilung bei den Input-Geräten).

Mach das daher am besten doch mit Gruppen.
MasterOfGizmo hat geschrieben: Die Wifi-App greift auf auf wpa-cli und udhcpc zu, die beide Root-Rechte brauchen. Das würde ich per sudo regeln. Sticky-Bit geht im Fall von udhcpc m.E. eh nicht, weil es ein Link auf die Busybox ist. Oder kann man an Links das Sticky-Bit setzen?
Man kann es setzen, es nützt nur nichts ;-)

Ich würde das generell per Sudo machen, da kann man bis auf einzelne Parameter genau einstellen welche Kommandos genau mit welchen Rechten ausgeführt werden dürfen. Am besten auch nicht direkt in /etc/sudoers, sondern mit passenden Konfig-Schnipseln in /etc/sudoers.d - das macht es einfacher, die einzelnen Funktionen getrennt zu halten.
MasterOfGizmo hat geschrieben: Apps, die das WeDo nutzen, brauchen Zugriff auf das entsprechende USB-Gerät. Auch das geht per udev-Rule.
Auch hier am besten wieder per Gruppe, denke ich (z.B. Grupp "gpio" oder so) - die können wir dann später auch für den Zugriff auf die TXT-IOs verwenden wenn wir das direkt (ohne den Umweg über TxtControlMain) machen.
MasterOfGizmo hat geschrieben: Das "Starte-mir-die-Original-GUI"-Script braucht wohl auch Root-Rechte nehme ich an. Das dann wieder per sudo.
Ja, das Script braucht Root. Allerdings nur für chroot, und es gibt im Chroot-Jail die Rootrechte auch sofort wieder ab und läuft als dann "ROBOPro" (genau wie in der Originalfirmware). Sudo passt dafür.

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

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 04 Apr 2016, 21:18

Ist genau so nun umgesetzt. Die Input-Gruppe hat in der Tat existiert und auch schon funktioniert und auch Video als ftc-User ging ohne weitere Anpassungen. WeDo nutzt nun eine gpio-Gruppe wie von Dir vorgeschlagen. Die sudo-Config ist in sudoers.d getrennt nach WiFi und FT-Gui.

Alle apps sowie der Launcher laufen nun unter dem ftc-User.

Der ROBO-Pro-User kann Root-Rechte erlangen, indem er das GUI-Start-Script ersetzt und das dann vom FTC-User per sudo als root ausführen lässt. Aber der kann sich ja eh nicht einloggen, von daher ist das ok.

Der www-data-User setzt executables auf 755, damit kann der ftc-User die ausführen. Man könnte überlegen, ob man dem ftc-User das Recht gibt, vom www-data angelegte Daten zu löschen. Dann könnte man das später in der GUI leicht nachrüsten. Auch könnte man die vorinstallierten Apps unter Root-Ownership legen, dann kann der ftc-User die nicht (versehentlich) löschen.
Arduino für fischertechnik: ftDuino http://ftduino.de

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

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 04 Apr 2016, 21:59

Ich überlege, den www-data-User aufzulösen und den http-Server auch unter dem ftc-User laufen zu lassen. Ich denke, dass am Ende viele Apps auch eigene Webseiten mitbringen werden, so dass eine Unterscheidung m.E. wenig Sinn macht sondern eher hinderlich wird, wenn es darum geht Daten zwischen Web-Gui und App hin und her zu schieben und mit unterschiedlichen Ownership zurecht zu kommen. Geht ja schon damit los, das per www installierte Apps nicht dem ftc-User gehören.

Was denkt ihr?
Arduino für fischertechnik: ftDuino http://ftduino.de

LarsKusch
Beiträge: 54
Registriert: 21 Apr 2015, 19:03
Wohnort: Oberfranken
Kontaktdaten:

Re: Fehler beim Kompilieren

Beitrag von LarsKusch » 05 Apr 2016, 18:38

Liebe Entwickler,
Ich wollte mir gestern eure Firmware installieren stieß dabei aber beim kompilieren auf einen fatalen Fehler:

Code: Alles auswählen

root@Microknoppix:/media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master# make
>>> host-openssl 1.0.2g Building
/usr/bin/make -j3 -C /media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master/output/build/host-openssl-1.0.2g
make[1]: Entering directory '/media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master/output/build/host-openssl-1.0.2g'
making all in crypto...
make[2]: Entering directory '/media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master/output/build/host-openssl-1.0.2g/crypto'
/usr/bin/gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O2 -I/media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master/output/host/usr/include -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM   -c -o cryptlib.o cryptlib.c
/usr/bin/gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O2 -I/media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master/output/host/usr/include -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM   -c -o mem.o mem.c
/usr/bin/gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O2 -I/media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master/output/host/usr/include -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM   -c -o mem_dbg.o mem_dbg.c
In file included from /usr/include/stdlib.h:24:0,
                 from cryptlib.h:62,
                 from cryptlib.c:117:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
compilation terminated.
<builtin>: recipe for target 'cryptlib.o' failed
make[2]: *** [cryptlib.o] Error 1
make[2]: *** Warte auf noch nicht beendete Prozesse...
In file included from /usr/include/stdio.h:27:0,
                 from mem_dbg.c:112:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
compilation terminated.
<builtin>: recipe for target 'mem_dbg.o' failed
make[2]: *** [mem_dbg.o] Error 1
In file included from /usr/include/stdio.h:27:0,
                 from mem.c:59:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
compilation terminated.
<builtin>: recipe for target 'mem.o' failed
make[2]: *** [mem.o] Error 1
make[2]: Leaving directory '/media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master/output/build/host-openssl-1.0.2g/crypto'
Makefile:284: recipe for target 'build_crypto' failed
make[1]: *** [build_crypto] Error 1
make[1]: Leaving directory '/media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master/output/build/host-openssl-1.0.2g'
package/pkg-generic.mk:195: recipe for target '/media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master/output/build/host-openssl-1.0.2g/.stamp_built' failed
make: *** [/media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master/output/build/host-openssl-1.0.2g/.stamp_built] Error 2
Davor habe ich zuerst diese Befehle ausgeführt das "make" hat zuerst 8h gebraucht und dann hat es vorfolgende Meldung gezeigt:

Code: Alles auswählen

sudo apt-get update
sudo apt-get install git
sudo apt-get install mercurial
cd  /media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master
make fischertechnik_TXT_defconfig
make
Ich habe aber keine Ahnung von diesem ganzem Programmierungsegment und würde mich daher freuen wen jemand mir helfen könnte.Denn ich würde schon gerne eure Software verwenden und testen! Ich habe es auch schon mit dem Herunterladen der Datei versucht https://github.com/ftCommunity/ftcommun ... e-firmware

Code: Alles auswählen

 cd  /media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master/dl
wget http://sources.buildroot.net/i2c-tools-3.1.2.tar.bz2
Das hat aber auch nicht funktioniert.
Mein System ist Linux Knoppix Version: 7.6 auf einem USB-Stick als Boot-Variante (Der Download eurer Firmware war am 04.04.2016 17:34:23)
Hoffnungsvolle Grüße Lars

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

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 05 Apr 2016, 20:35

Ich habe mal den Wunsch nach einer Screenshot-Funktion via Web-Browser umgesetzt:

Bild

Das geht wie man sieht auch mit der Original-Oberfläche.
Arduino für fischertechnik: ftDuino http://ftduino.de

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

Re: Fehler beim Kompilieren

Beitrag von richard.kunze » 05 Apr 2016, 21:55

Hallo Lars,
LarsKusch hat geschrieben: Ich wollte mir gestern eure Firmware installieren stieß dabei aber beim kompilieren auf einen fatalen Fehler:

Code: Alles auswählen

>>> host-openssl 1.0.2g Building
...
In file included from /usr/include/stdlib.h:24:0,
                 from cryptlib.h:62,
                 from cryptlib.c:117:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
Da fehlt anscheinend auf Deinem System eine Datei (genauer: sys/cdefs.h), die für die Übersetzung eines Hilfsprogramms für den eigentlichen Bau der Firmware gebraucht wird. Diese Datei ist auf einem Debian-System (und "Verwandten") Teil des Pakets "libc6-dev", und dieses Paket wird wiederum von "build-essential" automatisch angezogen ("build-essential" bringt die notwendigsten Dinge mit, die man zum Übersetzen von Programmen braucht).
LarsKusch hat geschrieben:Mein System ist Linux Knoppix Version: 7.6 auf einem USB-Stick als Boot-Variante
Knoppix ist ebenfalls ein System aus der Debian-Familie, also sollte das Nachinstallieren so funktionieren:

Code: Alles auswählen

apt-get install build-essential
Danach kannst Du die Übersetzung mit

Code: Alles auswählen

cd  /media/sdb5/Privat/Privat/Fischertechnik/ftcommunity-TXT-master
make
wieder aufnehmen ("make clean" sollte in so einem Fall nicht nötig sein).

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

Re: Community-Firmware für den TXT

Beitrag von richard.kunze » 05 Apr 2016, 21:58

MasterOfGizmo hat geschrieben:Ich überlege, den www-data-User aufzulösen und den http-Server auch unter dem ftc-User laufen zu lassen. Ich denke, dass am Ende viele Apps auch eigene Webseiten mitbringen werden, so dass eine Unterscheidung m.E. wenig Sinn macht sondern eher hinderlich wird, wenn es darum geht Daten zwischen Web-Gui und App hin und her zu schieben und mit unterschiedlichen Ownership zurecht zu kommen.
Ist vermutlich eine gute Idee - vor allem wenn wir auf mittlere Sicht der ftc-Gui eh eine eigene Webschnittstelle verpassen wollen (geht in Python ja schön einfach).

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

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 06 Apr 2016, 21:36

Kleines neues Feature: Der TXT kann nun Barcodes und QR-Codes lesen:

Bild
Bild

Gut für Roboter, die Fahranweisungen auf Zetteln befolgen oder Barcodes auf Kisten in Hochregallagern lesen ...
Arduino für fischertechnik: ftDuino http://ftduino.de

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

Re: Community-Firmware für den TXT

Beitrag von TiniTech » 06 Apr 2016, 22:51

Unglaublich - du setzt die Ideen ja schneller um als mir neue einfallen. Das ist nicht fair ;)
Cool & danke!

Erfordert die Anpassung für die Bildverarbeitung wieder ein make clean?

Bei mir sind nämlich grade (zum ersten mal seit langem) compile-Fehler aufgelaufen - beispielhaft:

Code: Alles auswählen

/home/xxx/ftcommunity-TXT/output/host/usr/bin/arm-linux-gnueabihf-gcc -Wno-unused-result -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fPIC -DHAVE_LIBJPEG -DHAVE_LIBZ -DHAVE_LIBTIFF -I/home/xxx/ftcommunity-TXT/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/freetype2 -I/home/xxx/ftcommunity-TXT/output/build/python-pillow-c01f51dfff07416aba5f9bd78717be1887f67868/libImaging -I/home/xxx/ftcommunity-TXT/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include -I/usr/local/include -I/usr/include -I/home/xxx/ftcommunity-TXT/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/python3.4m -I/usr/include/x86_64-linux-gnu -c libImaging/Resample.c -o build/temp.linux-x86_64-3.4/libImaging/Resample.o
arm-linux-gnueabihf-gcc: WARNING: unsafe header/library path used in cross-compilation: '/usr/local/include'
arm-linux-gnueabihf-gcc: WARNING: unsafe header/library path used in cross-compilation: '/usr/include'
arm-linux-gnueabihf-gcc: WARNING: unsafe header/library path used in cross-compilation: '/usr/include/x86_64-linux-gnu'
arm-linux-gnueabihf-gcc: WARNING: unsafe header/library path used in cross-compilation: '/usr/local/include'
arm-linux-gnueabihf-gcc: WARNING: unsafe header/library path used in cross-compilation: '/usr/include'
arm-linux-gnueabihf-gcc: WARNING: unsafe header/library path used in cross-compilation: '/usr/include/x86_64-linux-gnu'
In file included from /usr/include/features.h:388:0,
                 from /usr/include/limits.h:25,
                 from /home/xxx/ftcommunity-TXT/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/python3.4m/Python.h:11,
                 from libImaging/ImPlatform.h:10,
                 from libImaging/Imaging.h:14,
                 from libImaging/Resample.c:16:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory
compilation terminated.
und später

Code: Alles auswählen

arm-linux-gnueabihf-gcc: WARNING: unsafe header/library path used in cross-compilation: '/usr/lib'
arm-linux-gnueabihf-gcc: WARNING: unsafe header/library path used in cross-compilation: '/usr/lib/x86_64-linux-gnu'
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/_imaging.o: No such file or directory
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/decode.o: No such file or directory
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/encode.o: No such file or directory
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/map.o: No such file or directory
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/display.o: No such file or directory
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/outline.o: No such file or directory
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/path.o: No such file or directory
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/libImaging/Access.o: No such file or directory
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/libImaging/AlphaComposite.o: No such file or directory
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/libImaging/Resample.o: No such file or directory
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/libImaging/Bands.o: No such file or directory
arm-linux-gnueabihf-gcc: error: build/temp.linux-x86_64-3.4/libImaging/BitDecode.o: No such file or directory

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

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 07 Apr 2016, 08:13

Da ist was mit dem neu ins buildroot integrierten python-pillow kaputt. Da nimmt Buildroot-Umgebung die Header-Dateien des Hosts und nicht der Arm-Umgebung. Da muss ich mal schauen, wie man das in den Griff bekommt.

Edit: So, hab mal geschaut. Das ist etwas knifflig, diese Python-Libs sind nicht dafür gebaut, cross-übersetzt zu werden. Ich habe einen Patch dazu getan, der aus dem setup.py die ganzen Host-Pfade entfernt. Bei mir löst es das Problem.

Versuch bitte erstmal die python-pillow zu bauen:

Code: Alles auswählen

rm -rf output/build/python-pillow-c01f51dfff07416aba5f9bd78717be1887f67868
make python-pillow
Wenn das geht sollte der Komplettbuild auch gehen.
Arduino für fischertechnik: ftDuino http://ftduino.de

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

Re: Community-Firmware für den TXT

Beitrag von TiniTech » 07 Apr 2016, 22:15

Das hat geholfen - läuft durch, ZBar-App funktioniert und konnte von meinem Monitor auch direkt den FritzBox-Barcode lesen.
Wenn ich nur mehr Zeit hätte, würde ich mich ja mal an die vorgeschlagene WiFi-Config-App machen. So bleibts von meiner Seite aber erst mal auf der Wunschliste.

Weiteres schreibe ich später in Tickets / auf die Wikiseite.

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

Re: Community-Firmware für den TXT

Beitrag von TiniTech » 07 Apr 2016, 22:42

In den Kommentaren zu den letzten Updates im Repository habe ich gesehen, dass das initramfs-Bootsystem jetzt integriert ist.

Lässt sich damit jetzt direkt von einer FAT-microSD booten? Da braucht's (für mich) jedenfalls noch etwas Anleitung.

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

Re: Community-Firmware für den TXT

Beitrag von richard.kunze » 07 Apr 2016, 23:39

TiniTech hat geschrieben:In den Kommentaren zu den letzten Updates im Repository habe ich gesehen, dass das initramfs-Bootsystem jetzt integriert ist.

Lässt sich damit jetzt direkt von einer FAT-microSD booten?
Jetzt ja :-)

Das initramfs war nur Teil 1, das sorgt dafür dass der TXT von einem Image-File booten kann wenn er eins findet. Teil 2 habe ich eben auf Github gestellt (https://github.com/ftCommunity/ftcommun ... 787a84c687), jetzt wird auch ein passendes Image-File generiert.
TiniTech hat geschrieben:Da braucht's (für mich) jedenfalls noch etwas Anleitung.
  1. Firmware wie üblich bauen
  2. Die folgenden Dateien auf eine FAT-formatierte SD-Karte kopieren
    • output/images/uImage
    • output/images/am335x-kno_txt.dtb
    • output/images/rootfs.img
  3. SD-Karte einlegen und booten
Für den Moment enthält das Image-File einfach ein ext4-Dateisystem wie es bisher auf der zusätzlichen Partition war, und das Dateisystem im Image wird beschreibbar gemounted (und hat auch noch ein paar MB freien Platz). Für später ist der Plan, alles was im laufenden Betrieb geschrieben wird direkt auf die FAT-Partition zu schreiben und das Image read-only zu mounten. Dann könnte man auch von ext4 auf cramfs (ein komprimiertes, nur lesbares Dateisystem) umstellen, das würde das Root-Image noch um ca. die Hälfte kleiner machen.

LarsKusch
Beiträge: 54
Registriert: 21 Apr 2015, 19:03
Wohnort: Oberfranken
Kontaktdaten:

Schon wieder ein Fehler beim Kompilieren

Beitrag von LarsKusch » 08 Apr 2016, 17:56

Liebe Entwickler,
Vor drei Tagen bin ich auf Linux Ubuntu 15.10 umgestiegen da es auf Linux Knoppix Ver.7.6. überhaupt nicht funktionierte!
Heute habe ich es erneut getestet.Es fing an hatt auch schon zwei "Image" Datein erstellt hat dann aber folgenden Fehler gezeigt:
https://onedrive.live.com/redir?resid=C ... file%2ctxt(Ich kann es leider nicht hier einstellen da es zu viele Zeichen hat!)
Ich habe auch schon Python Numpy erneuert sowie Python Pillow

Code: Alles auswählen

rm -rf output/build/python-pillow-c01f51dfff07416aba5f9bd78717be1887f67868
make python-pillow
Ich denke es liegt an der Python Numpy Installation weiß es aber nicht!
Was habe ich falsch gemacht???
Hilfesuchende Grüße,
Lars

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

Re: Community-Firmware für den TXT

Beitrag von TiniTech » 08 Apr 2016, 21:52

Hallo Lars,
mir fällt bei deinen Pfaden auf, dass da immer "ftcommunity-TXT-master" auftaucht.
Wie holst du dir denn den Repository-Inhalt? [Edit: sehe gerade: die ZIP-Datei heißt so, wenn man sie von Hand von der GitHub-Seite runterlädt. Mir scheint, du folgst nicht ganz dem Tutorial...]

Ein

Code: Alles auswählen

git clone https://github.com/ftCommunity/ftcommunity-TXT.git
erzeugt bei mir jedenfalls in dem Verzeichnis, in dem git clone ausgeführt wurde, das Unterverzeichnis ./ftcommunity-TXT (ohne -master am Ende).
Und in diesem Verzeichnis läuft der Build-Prozess dann auch durch.

Versuche mal von oben nach unten die einzelnen Schritte wie sie im Wiki beschrieben sind abzuarbeiten - du musst ja auch dem Controller noch beibringen, dass er von der SD-Karte starten soll.
Das Wiki findest du hier: https://github.com/ftCommunity/ftcommun ... om-scratch

Wenn es dir (erst mal) nur um den erfolgreichen Build geht, hier gerne auch noch mal die Schritte in kurz und auf Deutsch, wie sie bei mir unter Ubuntu 15.10 funktioniert haben:

Zuerst mit Rechtsklick auf den Desktop ein Terminal öffnen. Da sollte dann sowas wie

Code: Alles auswählen

larskusch@COMPUTERNAME:~$ 
vorne stehen, du befindest dich also in deinem Home-Verzeichnis, auf deinem System also /home/larskusch/.

Von hier aus geht's jetzt weiter; jede Zeile ein eigener Befehl:

Code: Alles auswählen

sudo apt-get install git
sudo apt-get install mercurial
git clone https://github.com/ftCommunity/ftcommunity-TXT.git
cd ftcommunity-TXT
make fischertechnik_TXT_defconfig
make
Am Ende sollte das ganze Paket mit fertigem Output unter /home/larskusch/ftcommunity-TXT/ liegen - das was du für die Karte brauchst also unter /home/larskusch/ftcommunity-TXT/output/images.

Viele Grüße
Martin

LarsKusch
Beiträge: 54
Registriert: 21 Apr 2015, 19:03
Wohnort: Oberfranken
Kontaktdaten:

Re: Community-Firmware für den TXT

Beitrag von LarsKusch » 09 Apr 2016, 19:10

Liebe Entwickler,
heute hat das kompilieren funktioniert, es ging auch recht reibungslos es hat nur ewig gedauert (6 1/2h Ich habe keinen schwachen PC)
Habe dann die Datein auf die SD-Karten-Partitionen kopiert bzw. entpackt, dann den TXT gerootet und passend konfiguriert.
aber jetzt bootet mein TXT nicht mehr https://onedrive.live.com/redir?resid=C ... hoto%2cpng
(Bild von der SD-Karte sowie vom TXT-Bootscreen)
Ist mein TXT-Controller jetzt Schrot?Und wen "Nein" (Ich hoffe es) was muss ich dann tun?
Hoffende Grüße,
Lars

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

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 09 Apr 2016, 20:42

Bootet er gar nicht mehr? Auch nicht wenn keine SD-Karte eingelegt ist?

Dann hast Du das U-Boot-Environment fehlerhaft verändert. Hast Du einen USB-Seriell-Adapter am TXT? Falls ja kannst Du es damit fixen. Falls nein brauchst Du Hilfe von jemandem, der so einen Adapter hat. Keine Sorge, das bekommen wir schon wieder hin ...
Arduino für fischertechnik: ftDuino http://ftduino.de

LarsKusch
Beiträge: 54
Registriert: 21 Apr 2015, 19:03
Wohnort: Oberfranken
Kontaktdaten:

Re: Community-Firmware für den TXT

Beitrag von LarsKusch » 09 Apr 2016, 21:47

Nein er bootet selbst ohne SD-Karte gar nicht mehr siehe Foto dass bleibt auch Stunden Tage Wochen lang so
Bezüglich Adapter ich habe keinen kenne auch keinen der einen hätte kann ich so was irgendwo kaufen?
Und vielen Dank für die schnelle Hilfe du hast mich sehr erleichtert!
Erleichterte Grüße,
Lars
(P.S. was muss man den da tun und was kostet so ein Adapter?)
Zuletzt geändert von LarsKusch am 09 Apr 2016, 22:51, insgesamt 1-mal geändert.

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

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 09 Apr 2016, 22:03

Du kannst sowas nicht fertig kaufen, Du musst es selbst bauen. Und dabei musst du wirklich vorsichtig sein, wenn du deinen TXT nicht beschädigen willst. Ich habe eben erst Deine Altersangabe gelesen. Ich halte es für keine gute Idee, dass du das selbst versuchst.

Stimmt deine Altersangabe hier im Forum? Dann fragst du am besten deine Eltern, ob sie bereit sind, den txt für dich zu einem fremden Menschen schicken, der dann schaut, ob er ihn wieder zum Laufen bekommt.
Arduino für fischertechnik: ftDuino http://ftduino.de

Antworten