Jump to content

Recommended Posts

Geschrieben

Hallo zusammen,

 

ich habe den Brick Viewer auf verschiedenen Maschinen getestet, davon 3 verschiedene 64-Bit Maschinen (Ubuntu, Mac) sowie auf meinem ThinkPad X60s, 32-Bit. Auf letzterem erhalte ich auf Ubuntu wie auch unter Debian 6 (Squeeze) einen Segmentation Fault, sobald ich mit dem IMU Brick verbinden will. Mit dem Master-Brick sowie dem Servo-Brick habe ich keine Probleme.

 

Ich habe die kompilierte Version von brickv sowie eine selbst kompilierte Version getestet.

 

Meine Vermutung ist, dass das IMU-Brick bei 32-Bit Maschinen Probleme macht. Ist das Problem bekannt?

 

Viele Grüsse,

Frank

 

 

 

  • 2 weeks later...
Geschrieben

Hi borg,

 

strace gibt folgenden Output:

 

[{WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV}], 0, NULL) = 2314

--- SIGCHLD (Child exited) @ 0 (0) ---

write(2, "Segmentation fault\n", 19Segmentation fault

)    = 19

read(10, "", 8192)                      = 0

exit_group(139)                        = ?

 

Hilft das?

 

Gruss!

Geschrieben

Was passiert beim IMU anderes als bei den anderen Bricks?

Rendert ihr das Teil nicht in 3D, wegen der Rotation? Ich würde vermuten, dass irgendeine Lib abschmiert... oder kann man in python (ohne C-Zugabe) ohne weiteres Seg-Faults provozieren?

 

Ich würde versuchen zu überlegen was das IMU im Viewer vom Rest unterscheidet, mir fällt (nur aus Screenshotwissen) als einziges ein, dass dort villt andere Grafikfunktionen genutzt werden könnten.

Geschrieben

Klingt für mich nach einem guten Kandidaten...

 

@frankie: laufen auf dem gerät andere OpenGL-Anwendungen?

 

@borg: kriegst du eine brickv-version ohne OpenGL-Abhängigkeit zusammengehackt?

 

Auf diese Weise könnte man sicherstellen, dass es daran liegt...

  • 7 months later...
Geschrieben

So leute, sorry für die lange Funkstille... Erst mal vielen Dank für die Hinweise. Ich habe endlich mein IMU mit gdb gedebugged und folgenden Output erhalten:

 

 

Program received signal SIGSEGV, Segmentation fault.

0xb269c5e6 in glClearColor () from /usr/lib/libGL.so.1

(gdb) backtrace

#0  0xb269c5e6 in glClearColor () from /usr/lib/libGL.so.1

#1  0xb52ca7df in ffi_call_SYSV () from /usr/lib/python2.6/lib-dynload/_ctypes.so

#2  0xb52ca61e in ffi_call () from /usr/lib/python2.6/lib-dynload/_ctypes.so

#3  0xb52c527d in _CallProc () from /usr/lib/python2.6/lib-dynload/_ctypes.so

#4  0xb52bcd7e in ?? () from /usr/lib/python2.6/lib-dynload/_ctypes.so

#5  0x0806232a in PyObject_Call ()

#6  0x080df7b1 in PyEval_EvalFrameEx ()

#7  0x080e18b0 in PyEval_EvalFrameEx ()

#8  0x080e2507 in PyEval_EvalCodeEx ()

#9  0x0816b80c in ?? ()

#10 0x0806232a in PyObject_Call ()

#11 0x0806a311 in ?? ()

#12 0x0806232a in PyObject_Call ()

#13 0x080b50c4 in ?? ()

#14 0x080acd65 in ?? ()

#15 0x0806232a in PyObject_Call ()

#16 0x080e016b in PyEval_EvalFrameEx ()

#17 0x080e2507 in PyEval_EvalCodeEx ()

#18 0x0816b80c in ?? ()

#19 0x0806232a in PyObject_Call ()

#20 0x0806a311 in ?? ()

#21 0x0806232a in PyObject_Call ()

#22 0x080b50c4 in ?? ()

#23 0x080acd65 in ?? ()

#24 0x0806232a in PyObject_Call ()

#25 0x080e016b in PyEval_EvalFrameEx ()

#26 0x080e18b0 in PyEval_EvalFrameEx ()

#27 0x080e2507 in PyEval_EvalCodeEx ()

#28 0x0816b80c in ?? ()

#29 0x0806232a in PyObject_Call ()

#30 0x0806a311 in ?? ()

#31 0x0806232a in PyObject_Call ()

#32 0x080db582 in PyEval_CallObjectWithKeywords ()

#33 0xb624f337 in sip_api_invoke_slot () from /usr/lib/pymodules/python2.6/sip.so

#34 0xb61a5783 in ?? () from /usr/lib/pymodules/python2.6/PyQt4/QtCore.so

#35 0xb61a587e in ?? () from /usr/lib/pymodules/python2.6/PyQt4/QtCore.so

 

 

Die Vermutung, dass OpenGL dahiner steckt, ist also genau richtig. Ich verwende Debian Squeeze auf einem ThinkPad X60s. Grafikkarte ist Intel Onboard, die leider standardmässig auf Debian nur mit OpenGL 1.4 betrieben wird.

 

Hat jemand eine Idee, was hier zu tun ist?

Geschrieben

Ich habe da eine Vermutung. Kannst du folgendes testen? In

 

/usr/share/brickv/plugin_system/plugins/imu/imu_gl_widget.py

 

die Zeile mit

 

self.initializeGL()

 

auskommentieren oder entfernen. Das ist ca. in Zeile 59. Dieser Aufruf ist nicht notwendig, sollte aber eigentlich kein Problem machen. Es kann aber sein, dass in deinem Fall zu dem Zeitpunkt kein OpenGL Kontext aktiv ist und der glClearColor Aufruf in initializeGL das nicht verträgt.

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...