Jump to content

[Solved] RED 1.11


Recommended Posts

Hallo zusammen

ich habe seit längerer Zeit wieder mal meinen RED hervorgeholt und das neue Image 1.11 installiert.

 

Gestartet wird RED ganz normal, jedoch können über Brickv keine Daten angezeigt werden. In der Übersicht krieg ich den Fehler: Error: Script error 100X: Script "overview" in wrong state: 2 und nach ca 30s sehe ich auf dem Refresh-Button nur "Collecting data...".

Wenn ich den Brickd über System->Restart Brick Daemon neu starte, sehe ich für kurze Zeit wieder, wie er automatisch versucht zu refreshen, jedoch ohne Erfolg.

 

Auf dem Settings-Tab selbst kommt nur die Meldung: Error getting current services status.

 

Die anderen Tabs im Brickv scheinen zu funktionieren.

 

Mit RED v1.10 habe ich die gleichen Effekte.

 

Die lokale Software ist aktuell:

- brickd 2.3.1

- brickv 2.3.14

 

Es scheint so, dass das Problem bei mir liegt. Die Probleme treten auf, wenn ich Brickd/Brickv unter Linux (Manjaro) laufen lassen. Unter Windows scheint es zu funktionieren.

 

Ideen?

 

Gruss und Danke!

Link zu diesem Kommentar
Share on other sites

Script error 100X: Script "overview" in wrong state: 2

 

Die 2 da sagt mit dass das "overview" Script überhaupt nicht gestartet werden konnte. Ich habe gerade mal eingebaut, dass in der Fehlermeldung auch der Exit Code mit angezeigt wird. Das hilft vielleicht weiter.

 

Test bitte mal die aktuelle Version auf GitHub und poste die Fehlermeldung nochmal hier.

Link zu diesem Kommentar
Share on other sites

Exit Code 127 heißt "Datei nicht gefunden".

 

Vielleicht sind irgendwie in das overview Script \r\n Zeilenenden geraten, dann kann Linux den Interpreter im Shebang nicht finden, was dann Fehler 127 erzeugen kann.

 

Teste bitte mal die aktuelle Version auf GitHub, die erzwingt jetzt \n Zeilenenden in den Scripts. Du musst aber definitiv das build_all_ui.py Script  nach dem git pull aufrufen, damit dieses die RED Brick Scripts neu zusammensammelt und die \n Zeilenenden erzwingen kann.

 

Wen das nicht hilft, dann ist es ein anderes Problem. Dann musst du mal auf dem RED Brick nachschauen ob /usr/local/scripts/overview.py existiert und was die Rechte sind. Am besten führst du auf dem RED Brick mal folgendes aus und postet die Ausgabe hier:

 

stat /usr/local/scripts/overview.py

 

Wenn es /usr/local/scripts/overview.py nicht gibt, ist dann das /usr/local/scripts/ Verzeichnis komplett leer, oder welche Dateien liegen darin?

Link zu diesem Kommentar
Share on other sites

Der Fehler besteht im aktuellen GIT-Status immer noch. Im /usr/local/scripts-Verzeichnis befinden sich 3 Python-Scripts: overview.py, restart_brickd.sh und settings_services.py. Alle gehören root:staff und haben 755-Rechte.

 

Der stat-Befehl gibt folgendes aus:

tf@red-brick:/usr/local/scripts$ stat overview.py                          
  File: overview.py                                                        
  Size: 2744            Blocks: 8          IO Block: 4096   regular file   
Device: b301h/45825d    Inode: 330091      Links: 1                        
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (   50/   staff)   
Access: 2018-03-08 02:44:49.340000041 +0100                                
Modify: 2018-03-08 02:44:49.310000041 +0100                                
Change: 2018-03-08 02:44:49.310000041 +0100                                
Birth: -                                                                  

 

Wenn ich über Brickv den RED neu booten oder herunterfahren möchte, kommt folgende Meldung:

Script "restart_reboot_shutdown_systemd" in wrong state: 2 (exit-code 127)
Link zu diesem Kommentar
Share on other sites

Ich denke die Shebang Zeile ist nicht richtig in den Scripts. Was anderes als Ursache fällt mir nicht mehr ein.

 

Lass dir mal die ersten paar Zeilen ausgeben:

 

cat /usr/local/scripts/overview.py | head -n 5

   

 

Das sollte so aussehen:

                                                                                 

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
import psutil
import sys
import json

 

Und um es exakt ansehen zu können einmal per od:

 

od -c /usr/local/scripts/overview.py | head -n 5

   

 

Das sollte so aussehen:

                                                                                   

0000000   #   !   /   u   s   r   /   b   i   n   /   e   n   v       p
0000020   y   t   h   o   n   2  \n   #       -   *   -       c   o   d
0000040   i   n   g   :       u   t   f   -   8       -   *   -  \n   i
0000060   m   p   o   r   t       p   s   u   t   i   l  \n   i   m   p
0000100   o   r   t       s   y   s  \n   i   m   p   o   r   t       j

 

Wenn in der ersten Zeile nicht das Shebang exakt "#!/usr/bin/env python2\n" steht dann ist das dein Problem. Dann ist noch zu klären warum das bei dir passiert.

Link zu diesem Kommentar
Share on other sites

Vielen Dank für den Tip. Ich habe das Problem gefunden! Es war effektiv die Shebang!

 

Bei bauen vom BrickV funktioniert das unter Manjaro (Arch) nicht, da 'python' auf Python3 gelinkt ist. Die Scripts jedoch brauchen Python2. Daher wird mittels sed bei allen py*-Scripts '/usr/bin/env python' mit '/usr/bin/env python2' ersetzt. Nun leider auch solche, welche bereits '/usr/bin/env python2' haben; wie die RED-Scripts. Es scheint so, als würden diese Scripts vom BrickV auf den RED kopiert.

 

Ich habe mal einen Kommentar beim Package hinterlegt, damit der Sed-Befehl angepasst wird: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=brickv

 

Vielen Dank für deine Hilfe!

Link zu diesem Kommentar
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.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...