Jump to content

Offizielles "Flash Brick Commandline Tool" - Infos, aber auch Fragen dazu.


Recommended Posts

Wie ich mit Freude heute gelesen habe ist das Commandlineflashingtool nun offziell.  :D  Danke an Alle!

 

Folgende Probleme/Fragen habe ich:

 

Nach erfolgreicher installation auf einem Debian 6 (Squeeze) X-System geht es so weiter:

Der Aufruf ist "python flash-brick-cli.py". OK.

 

Dann kommt:

 python flash-brick-cli.py
Traceback (most recent call last):
  File "flash-brick-cli.py", line 1, in <module>
    import argparse
ImportError: No module named argparse

 

Ein "apt-get install python-argparse" loest das Problem. Koenntet ihr bitte das Paket mit in die Abhaengigkeiten aufnehmen?

 

So sollte es nun aussehen:

# python flash-brick-cli.py
usage: flash-brick-cli.py [-h] -p PORT -f FILE
flash-brick-cli.py: error: argument -p/--port is required

 

Wie man den richtigen Port findet kann man hier nachlesen: Re: Flashen per Commandline

 

Problematischer wird es bei Systemen die kein X haben. Da kommt dann bei der Installation folgendes raus:

# dpkg -i brickv-2.0.5_all.deb 
Vormals abgewähltes Paket brickv wird gewählt.
(Lese Datenbank ... 27565 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacken von brickv (aus brickv-2.0.5_all.deb) ...
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von brickv:
brickv hängt ab von python-qt4; aber:
  Paket python-qt4 ist nicht installiert.
brickv hängt ab von python-qt4-gl; aber:
  Paket python-qt4-gl ist nicht installiert.
brickv hängt ab von python-qwt5-qt4; aber:
  Paket python-qwt5-qt4 ist nicht installiert.
brickv hängt ab von python-opengl; aber:
  Paket python-opengl ist nicht installiert.
dpkg: Fehler beim Bearbeiten von brickv (--install):
Abhängigkeitsprobleme - verbleibt unkonfiguriert
Fehler traten auf beim Bearbeiten von:
brickv

 

Neben dem nicht mitinstalliertem "python-argparse", s.o., soll jede Menge qt und Grafikkrams mitinstalliert werden. Ich vermute wenn man die Pakete installiert, wird dann noch die komplette X Umgegebung nachgezogen. Das kann man doch sicher umgehen. Denn wenn ich dort X haette, braeuchte ich keine Commandlineversion.  ;)

 

Waere es eine Loesung die Commandlineversion in ein eigenes Paket zu packen, da sie zum einen das Paket python-argparse braucht, zum anderen viele andere Pakete anscheinend nicht.

 

Der Loetkolben

 

 

 

Link to comment
Share on other sites

  • 3 weeks later...

Das brickv.deb ist natürlich nicht für Systeme ohne GUI gedacht, wie auch :)

 

flash-brick-cli.py ist eigentlich so gedacht dass du dass zusammen mit samba.py dir irgendwohin kopiert un dann von da ausführst.

 

Dass das im brickv.deb drin ist ist ehr unserer einfachen Art das .deb zu bauen geschuldet, und weniger einer Absicht.

 

Ich gebe dir aber Recht, dass es natürlich hübscher wäre ein eigenes .deb für flash-brick-cli.py zu haben. Ich setze das mal auf die TODO Liste.

 

Sorry, für die gestiftete Verwirrung und die späte Antwort.

Link to comment
Share on other sites

Hallo phtron,

 

alles kein Problem.  :)

 

Reicht es wirklich "flash-brick-cli.py" und "samba.py" rueber zu kopieren oder muessen da noch weitere Files kopiert werden?

 

Was aber mein Anliegen im allgemeinen ist, dass ihr bitte die Abhaengigkeiten nochmals prueft und mit einbindet. Wie anderen und mir passiert, werden nicht alle benoetigten Pakete mitinstalliert.

 

Auf jeden Fall vielen Dank fuer die Unterstuetzung.

 

Der Loetkolben

Link to comment
Share on other sites

Reicht es wirklich "flash-brick-cli.py" und "samba.py" rueber zu kopieren oder muessen da noch weitere Files kopiert werden?

 

Es reichen diese beiden Dateien plus die Pakete python-argparse und python-serial.

 

Was aber mein Anliegen im allgemeinen ist, dass ihr bitte die Abhaengigkeiten nochmals prueft und mit einbindet. Wie anderen und mir passiert, werden nicht alle benoetigten Pakete mitinstalliert.

 

Welche Abhängigkeiten meinst du?

 

RouvenE fehlte python-serial, weil das in unserer Installationsanleitung nicht aufgelistet war, das ist behoben.

 

Im brickv.deb selbst sind aber alle Abhängigkeiten richtig angegeben. Man könnte argumentieren, dass da python-argparse fehlt, wenn man flash-brick-cli.py als Teil des Pakets ansieht. Was nicht direkt so beabsichtigt war. Es wird dann ja auch noch ein eigenes .deb dafür geben, das dann python-argparse und python-serial als Abhängigkeiten haben wird.

Link to comment
Share on other sites

Es wird dann ja auch noch ein eigenes .deb dafür geben, das dann python-argparse und python-serial als Abhängigkeiten haben wird.

 

Ich glaube genau das war es was Loeti meinte. So war das CLI-Tool zwar enthalten aber das deb hat nicht alles installiert was nötig war.

Link to comment
Share on other sites

Im brickv.deb selbst sind aber alle Abhängigkeiten richtig angegeben. Man könnte argumentieren, dass da python-argparse fehlt, wenn man flash-brick-cli.py als Teil des Pakets ansieht.

 

Ja, das war meine erste Bitte diese Abhaengigkeit mit aufzunehmen, so dass man auf einem GUI system auch mal die Commandline Version testen kann ohne zu raetzeln was noch fehlt.  ;)

 

 

Es wird dann ja auch noch ein eigenes .deb dafür geben, das dann python-argparse und python-serial als Abhängigkeiten haben wird.

 

Das waere mein Wunsch. - Er ist ja bereits erhoert worden. :-)  Es kann ruhig ein wenig daunern, denn diese wichtige Info ist gegeben worden:

"Es reichen diese beiden Dateien ("flash-brick-cli.py" und "samba.py") plus die Pakete python-argparse und python-serial."

Damit kann man sich auf jeden Fall behelfen.

 

Aus meiner Sicht ist alles gut.  :)  Danke.

 

 

Der Loetkolben

Link to comment
Share on other sites

Hallo zusammen,

 

mir schiesst gerade eine "doofe" Frage durch den Kopf:

 

Warum ist der Commandline Flasher nicht Teil des Brickd Paketes?

Das ist doch genau die Stelle an der ich ihn brauche!

 

Ok, historisch betrachtet wurde das Flashen immer von Viewer gemacht und deshalb kann ich die "Ist-Situtation" nachvollziehen.  ;)

 

 

Der Loetkolben

Link to comment
Share on other sites

Historisch ist die korrekte Antwort:

 

Am Anfang war der brickv mitsamt samba.py. Als ich also das Flash-Tool geschrieben habe, habe ich es zum brickv geschoben, um diese Datei nicht kopieren zu müssen (Code-Duplikation vermeiden).

 

Wenn man es ganz genau nimmt müsste mit den einzelnen Komponenten folgendes passieren (aus einer modularen Sicht):

- samba.py wandert in eine flash-library, also eine eigenständige Bibliothek um flashen zu können. Möglicherweise  auch eine TFLib, für alles mögliche das mit TF zu tun hat

- brickv bleibt alleine und hängt von der FlashLib/TFLib ab

- flash-cli wandert in eigenes Paket und hängt ebenfalls von der FlashLib/TFLib ab (man könnte auch argumentieren, dass die flash-cli zum brickd wandert und dieser von der Lib abhängt, allerdings würde dann der neue C-brickd von Python abhängen)

Link to comment
Share on other sites

Hallo AuronX,

 

ich stimme Dir 100% zu.

 

Meine Idee war nur: Soll Tinkerforge 3 Pakete machen (Brickv, brickd und brick-flash-cli) oder einfacht nur 2 Pakete (Brickv und brickd (inkl. flash-cli))

 

Im 2. Fall haengt der C-brickd tatsaechlich von python ab, was man ja gerade losgeworden ist.  ;D 

 

Ich wollte mit meiner Idee die Anzahl der Pakete und die damit verbundene Wartung/Fehlerquellen verringern. Ich _persoenlich_ kennen keinen Einsatz wo man den brickd ohne flash-cli braucht, denn irgendwann muss man immer mal den angeschlossenen Brick flashen.

 

Mal sehen was Tinkerforge macht. 3 Pakete oder den Move des flash-cli in das brickd Paket.

 

Der Loetkolben

Link to comment
Share on other sites

Nach all den Test hier wollte ich einfach mal meine Freude ausdruecken, dass es auch an anderer Stelle funktioniert hat. - Da wo es wichtig war.  ;D

 

2 Knoepfe druecken, Script starten, 1 Minute warten und zittern. 100%, 100%, alles OK.

 

Danke nochmals an alle!

 

Um noch was sinvolles beizutragen. Es geht so unter Debian 6 Squeeze:

 

#Brickv mit dem Commandlinescript runterladen
wget http://download.tinkerforge.com/tools/brickv/linux/brickv-2.0.5_all.deb
#Auspacken, NICHT installieren.
dpkg -x brickv-2.0.5_all.deb brickv-ordner
#Die beiden Files "flash-brick-cli.py" und "samba.py" suchen und umkopieren.
#Den Rest vom Ordner "brickv-ordner" loeschen
#Debian Pakete installieren falls notwendig
apt-get install python python-argparse python-serial
#Programm aufrufen
python flash-brick-cli.py --help
#Rest siehe Programmausgabe. Port ist unter Debian gerne /dev/ttyACM0

Bitte aktuelle Programmversionen nutzen. ;-)

 

BTW: Es fehlt nur noch der Knopf, so dass man den (Master)Brick von der Ferne in den Flashmodus bekommt.  ;D

 

Der Loetkolben.

Link to comment
Share on other sites

  • 9 months later...

Hallo zusammen,

 

da sind wir wieder.  ;D

 

Das Command-Line Flashing Tool kommt jetzt wieder zum Einsatz und da merkt man, dass man den brickv runterladen und dann von Hand "dpkg -ax" extrahieren muss um an die Command-Line Scripte zu kommen.

 

Koennt ihr bitte nochmals darueber nachdenken die Scripte mit in den brickd zu packen oder ein eigenes Paket zu machen. Oder sie zumindest als *.tar separat anzubieten?

 

Danke.

 

Der Loetkolben

Link to comment
Share on other sites

Och ist das fein.  :D  Danke!

 

Da das Paket im Forum ist, muss dieser Downloadbefehl benutzt werden:

 wget http://www.tinkerunity.org/forum/index.php?action=dlattach\;topic=1644.0\;attach=1746 -O brick-flash-cmd-1.0.0_all.deb

Edit: In der Vorschau sieht die obige Zeile gut aus, innerhalb des Foreneintrages ist da viel Leerraum.

 

Installation verlief problemlos. Es wurden keine Abhaengigkeiten (z.b. Python) erzeugt, wobei das wohl bei mir daran liegt, dass Python bereits installiert ist. Bei einem "frischen" System muss man das mal pruefen.

 

Ist das jetzt nur noch eine Datei? Bisher waren doch immer 2 notwendig:

-rw-rw-r--  1 root root       1524 Mar 19  2013 flash-brick-cli.py
-rw-rw-r--  1 root root      16796 Sep 26  2013 samba.py

 

Der Loetkolben

 

 

Link to comment
Share on other sites

brick-flash-cmd ist flash-brick-cli.py und samba.py in einem. Das Package Build Script baut brick-flash-cmd passend zusammen. Dann kann brick-flash-cmd einfach unter /usr/bin liegen ohne dass samba.py irgendwo passen liegen müsste damit Python es finden kann.

Link to comment
Share on other sites

  • 3 weeks later...

Hallo photron.

 

Ich bin immer noch sehr begeistert. Danke nochmals an alle die diese Moeglichkeit auf den Weg gebracht haben!

 

 

Eine kleine Idee haette ich noch. Wenn man die Info aus der Doku mit in das Script aufnehmen wuerde, muesste ich nicht immer ueberlegen wie die Schnittstellen heissen.  ;)

 

# brick-flash-cmd

usage: brick-flash-cmd [-h] -p PORT -f FILE

brick-flash-cmd: error: argument -p/--port is required

Typically port is /dev/ttyACM0 or /dev/ttyUSB0

 

Danke.

 

Der Loetkolben

Link to comment
Share on other sites

  • 2 years later...

Hach ist das schoen.  ;D

 

Ich habe gerade mal wieder die Bricks an einem Linuxkaestchen (Cubietruck) per "brick-flash-cmd" geflasht. Hat einwandfrei funktioniert.

 

Leider muss man aber noch umstecken wenn man 2 Masterbricks hat, aber man muss den Stack nicht abbauen und zum PC bringen. Und vielleicht gibt es auch noch mal ein Remote-Update-Masterbrick 3.0  ;D

 

 

Der Loetkolben

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...