Kivy: Défaut de segmentation dans Raspberry 3B+

Créé le 22 oct. 2018  ·  44Commentaires  ·  Source: kivy/kivy

Versions

  • Python : 3.5.3
  • Système d'exploitation : Raspbian GNU/Linux 9.4 (stretch)
  • Kivy : v1.11.0.dev0, git-916b77b, 20181022
  • Méthode d'installation de Kivy : sudo pip3 install git+ https://github.com/kivy/kivy.git@master

La description

J'essaie d'exécuter la démo app_with_kv.py mais elle affiche toujours une erreur segmentation fault . J'utilise l'écran TFT d' ici .

Code et journaux

[INFO   ] [Logger      ] Record log in /home/pi/.kivy/logs/kivy_18-10-22_12.txt
[INFO   ] [Kivy        ] v1.11.0.dev0, git-916b77b, 20181022
[INFO   ] [Python      ] v3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516]
[INFO   ] [Factory     ] 184 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Window      ] Provider: egl_rpi
[INFO   ] [GL          ] Using the "OpenGL ES 2" graphics system
[INFO   ] [GL          ] Backend used <sdl2>
Segmentation fault
RPi High SDL2 Confirmed

Commentaire le plus utile

J'ai eu un problème similaire avec ça. Pour une raison quelconque, sdl2 est appelé au lieu de gl pour Backend. Je ne sais pas s'il existe un correctif permanent pour cela, mais après un certain temps à essayer de trouver un correctif, la seule solution que j'ai pu trouver est d'ajouter 2 lignes au-dessus de votre application, avant d'importer Kivy. Devrait ressembler à ceci :

import os
os.environ['KIVY_GL_BACKEND'] = 'gl'
import kivy

J'espère que cela aidera. Bonne chance!

Ps Si vous souhaitez exécuter votre application sous Windows, vous pouvez commenter os.environ['KIVY_GL_BACKEND'] = 'gl' sinon elle ne fonctionnera pas.

Tous les 44 commentaires

J'ai eu un problème similaire avec ça. Pour une raison quelconque, sdl2 est appelé au lieu de gl pour Backend. Je ne sais pas s'il existe un correctif permanent pour cela, mais après un certain temps à essayer de trouver un correctif, la seule solution que j'ai pu trouver est d'ajouter 2 lignes au-dessus de votre application, avant d'importer Kivy. Devrait ressembler à ceci :

import os
os.environ['KIVY_GL_BACKEND'] = 'gl'
import kivy

J'espère que cela aidera. Bonne chance!

Ps Si vous souhaitez exécuter votre application sous Windows, vous pouvez commenter os.environ['KIVY_GL_BACKEND'] = 'gl' sinon elle ne fonctionnera pas.

J'obtiens la même erreur sur le Zero W. La suggestion de

Je confirme également que la solution de @goadik fonctionne ! Et je précise également que comme il s'agit d'un problème de variable d'environnement, vous pouvez simplement exporter la variable comme suit :

export KIVY_GL_BACKEND=gl

Et puis exécutez le script.

SDL2 est utilisé pour rechercher dynamiquement le symbole.
Ce serait bien d'avoir une trace afin de comprendre et de résoudre le problème.
Le passage au backend GL pour rpi pourrait être implémenté en fonction de la plate-forme, mais je préférerais résoudre le problème sous-jacent.

Veuillez utiliser gdb --args python main.py , tapez r , puis quand il plante, faites bt all . Publiez le tout.

D'accord. Voici la sortie pour gdb --args python main.py :

GNU gdb (Raspbian 7.12-6) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from python3...(no debugging symbols found)...done.
(gdb) r
Starting program: /usr/bin/python3 main.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[INFO   ] [Logger      ] Record log in /home/pi/.kivy/logs/kivy_18-10-27_0.txt
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO   ] [Kivy        ] v1.11.0.dev0, git-916b77b, 20181022
[INFO   ] [Python      ] v3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516]
[INFO   ] [Factory     ] 184 symbols loaded
[DEBUG  ] [App         ] Loading kv <./main.kv>
[DEBUG  ] [App         ] kv <./main.kv> not found
[INFO   ] [Window      ] Provider: egl_rpi
[New Thread 0x74758470 (LWP 973)]
[New Thread 0x73dff470 (LWP 974)]
[New Thread 0x735ff470 (LWP 975)]
[New Thread 0x72dff470 (LWP 976)]
[DEBUG  ] [Window      ] Actual display size: 800x480
[INFO   ] [GL          ] Using the "OpenGL ES 2" graphics system
[DEBUG  ] [GL          ] glActiveTexture is not available
[DEBUG  ] [GL          ] glAttachShader is not available
[DEBUG  ] [GL          ] glBindAttribLocation is not available
[DEBUG  ] [GL          ] glBindBuffer is not available
[DEBUG  ] [GL          ] glBindFramebuffer is not available
[DEBUG  ] [GL          ] glBindRenderbuffer is not available
[DEBUG  ] [GL          ] glBindTexture is not available
[DEBUG  ] [GL          ] glBlendColor is not available
[DEBUG  ] [GL          ] glBlendEquation is not available
[DEBUG  ] [GL          ] glBlendEquationSeparate is not available
[DEBUG  ] [GL          ] glBlendFunc is not available
[DEBUG  ] [GL          ] glBlendFuncSeparate is not available
[DEBUG  ] [GL          ] glBufferData is not available
[DEBUG  ] [GL          ] glBufferSubData is not available
[DEBUG  ] [GL          ] glCheckFramebufferStatus is not available
[DEBUG  ] [GL          ] glClear is not available
[DEBUG  ] [GL          ] glClearColor is not available
[DEBUG  ] [GL          ] glClearStencil is not available
[DEBUG  ] [GL          ] glColorMask is not available
[DEBUG  ] [GL          ] glCompileShader is not available
[DEBUG  ] [GL          ] glCompressedTexImage2D is not available
[DEBUG  ] [GL          ] glCompressedTexSubImage2D is not available
[DEBUG  ] [GL          ] glCopyTexImage2D is not available
[DEBUG  ] [GL          ] glCopyTexSubImage2D is not available
[DEBUG  ] [GL          ] glCreateProgram is not available
[DEBUG  ] [GL          ] glCreateShader is not available
[DEBUG  ] [GL          ] glCullFace is not available
[DEBUG  ] [GL          ] glDeleteBuffers is not available
[DEBUG  ] [GL          ] glDeleteFramebuffers is not available
[DEBUG  ] [GL          ] glDeleteProgram is not available
[DEBUG  ] [GL          ] glDeleteRenderbuffers is not available
[DEBUG  ] [GL          ] glDeleteShader is not available
[DEBUG  ] [GL          ] glDeleteTextures is not available
[DEBUG  ] [GL          ] glDepthFunc is not available
[DEBUG  ] [GL          ] glDepthMask is not available
[DEBUG  ] [GL          ] glDetachShader is not available
[DEBUG  ] [GL          ] glDisable is not available
[DEBUG  ] [GL          ] glDisableVertexAttribArray is not available
[DEBUG  ] [GL          ] glDrawArrays is not available
[DEBUG  ] [GL          ] glDrawElements is not available
[DEBUG  ] [GL          ] glEnable is not available
[DEBUG  ] [GL          ] glEnableVertexAttribArray is not available
[DEBUG  ] [GL          ] glFinish is not available
[DEBUG  ] [GL          ] glFlush is not available
[DEBUG  ] [GL          ] glFramebufferRenderbuffer is not available
[DEBUG  ] [GL          ] glFramebufferTexture2D is not available
[DEBUG  ] [GL          ] glFrontFace is not available
[DEBUG  ] [GL          ] glGenBuffers is not available
[DEBUG  ] [GL          ] glGenerateMipmap is not available
[DEBUG  ] [GL          ] glGenFramebuffers is not available
[DEBUG  ] [GL          ] glGenRenderbuffers is not available
[DEBUG  ] [GL          ] glGenTextures is not available
[DEBUG  ] [GL          ] glGetActiveAttrib is not available
[DEBUG  ] [GL          ] glGetActiveUniform is not available
[DEBUG  ] [GL          ] glGetAttachedShaders is not available
[DEBUG  ] [GL          ] glGetAttribLocation is not available
[DEBUG  ] [GL          ] glGetBooleanv is not available
[DEBUG  ] [GL          ] glGetBufferParameteriv is not available
[DEBUG  ] [GL          ] glGetError is not available
[DEBUG  ] [GL          ] glGetFloatv is not available
[DEBUG  ] [GL          ] glGetFramebufferAttachmentParameteriv is not available
[DEBUG  ] [GL          ] glGetIntegerv is not available
[DEBUG  ] [GL          ] glGetProgramInfoLog is not available
[DEBUG  ] [GL          ] glGetProgramiv is not available
[DEBUG  ] [GL          ] glGetRenderbufferParameteriv is not available
[DEBUG  ] [GL          ] glGetShaderInfoLog is not available
[DEBUG  ] [GL          ] glGetShaderiv is not available
[DEBUG  ] [GL          ] glGetShaderSource is not available
[DEBUG  ] [GL          ] glGetString is not available
[DEBUG  ] [GL          ] glGetTexParameterfv is not available
[DEBUG  ] [GL          ] glGetTexParameteriv is not available
[DEBUG  ] [GL          ] glGetUniformfv is not available
[DEBUG  ] [GL          ] glGetUniformiv is not available
[DEBUG  ] [GL          ] glGetUniformLocation is not available
[DEBUG  ] [GL          ] glGetVertexAttribfv is not available
[DEBUG  ] [GL          ] glGetVertexAttribiv is not available
[DEBUG  ] [GL          ] glHint is not available
[DEBUG  ] [GL          ] glIsBuffer is not available
[DEBUG  ] [GL          ] glIsEnabled is not available
[DEBUG  ] [GL          ] glIsFramebuffer is not available
[DEBUG  ] [GL          ] glIsProgram is not available
[DEBUG  ] [GL          ] glIsRenderbuffer is not available
[DEBUG  ] [GL          ] glIsShader is not available
[DEBUG  ] [GL          ] glIsTexture is not available
[DEBUG  ] [GL          ] glLineWidth is not available
[DEBUG  ] [GL          ] glLinkProgram is not available
[DEBUG  ] [GL          ] glPixelStorei is not available
[DEBUG  ] [GL          ] glPolygonOffset is not available
[DEBUG  ] [GL          ] glReadPixels is not available
[DEBUG  ] [GL          ] glRenderbufferStorage is not available
[DEBUG  ] [GL          ] glSampleCoverage is not available
[DEBUG  ] [GL          ] glScissor is not available
[DEBUG  ] [GL          ] glShaderBinary is not available
[DEBUG  ] [GL          ] glShaderSource is not available
[DEBUG  ] [GL          ] glStencilFunc is not available
[DEBUG  ] [GL          ] glStencilFuncSeparate is not available
[DEBUG  ] [GL          ] glStencilMask is not available
[DEBUG  ] [GL          ] glStencilMaskSeparate is not available
[DEBUG  ] [GL          ] glStencilOp is not available
[DEBUG  ] [GL          ] glStencilOpSeparate is not available
[DEBUG  ] [GL          ] glTexImage2D is not available
[DEBUG  ] [GL          ] glTexParameterf is not available
[DEBUG  ] [GL          ] glTexParameteri is not available
[DEBUG  ] [GL          ] glTexSubImage2D is not available
[DEBUG  ] [GL          ] glUniform1f is not available
[DEBUG  ] [GL          ] glUniform1fv is not available
[DEBUG  ] [GL          ] glUniform1i is not available
[DEBUG  ] [GL          ] glUniform1iv is not available
[DEBUG  ] [GL          ] glUniform2f is not available
[DEBUG  ] [GL          ] glUniform2fv is not available
[DEBUG  ] [GL          ] glUniform2i is not available
[DEBUG  ] [GL          ] glUniform2iv is not available
[DEBUG  ] [GL          ] glUniform3f is not available
[DEBUG  ] [GL          ] glUniform3fv is not available
[DEBUG  ] [GL          ] glUniform3i is not available
[DEBUG  ] [GL          ] glUniform3iv is not available
[DEBUG  ] [GL          ] glUniform4f is not available
[DEBUG  ] [GL          ] glUniform4fv is not available
[DEBUG  ] [GL          ] glUniform4i is not available
[DEBUG  ] [GL          ] glUniform4iv is not available
[DEBUG  ] [GL          ] glUniformMatrix4fv is not available
[DEBUG  ] [GL          ] glUseProgram is not available
[DEBUG  ] [GL          ] glValidateProgram is not available
[DEBUG  ] [GL          ] glVertexAttrib1f is not available
[DEBUG  ] [GL          ] glVertexAttrib2f is not available
[DEBUG  ] [GL          ] glVertexAttrib3f is not available
[DEBUG  ] [GL          ] glVertexAttrib4f is not available
[DEBUG  ] [GL          ] glVertexAttribPointer is not available
[DEBUG  ] [GL          ] glViewport is not available
[INFO   ] [GL          ] Backend used <sdl2>

Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()

De plus, comme bt all a généré un "Aucun symbole "tout" dans le contexte actuel." message, j'ai le résultat de thread apply all bt , qui est le suivant :

Thread 5 (Thread 0x72dff470 (LWP 976)):
#0  0x76f88014 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, 
    expected=1, futex_word=0x748885ec <cecservice_notify_available_event+24>)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x748885ec <cecservice_notify_available_event+24>, 
    abstime=0x0) at sem_waitcommon.c:115
#2  0x76f88158 in __new_sem_wait_slow (
    sem=0x748885ec <cecservice_notify_available_event+24>, abstime=0x0)
    at sem_waitcommon.c:282
#3  0x7486ec44 in cecservice_notify_func () from /opt/vc/lib/libbcm_host.so
#4  0x747d7cc4 in vcos_thread_entry (arg=0x74888600 <cecservice_notify_task>)
    at /home/dc4/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76f7efc4 in start_thread (arg=0x72dff470) at pthread_create.c:335
#6  0x76e0cbc8 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:76
   from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 4 (Thread 0x735ff470 (LWP 975)):
#0  0x76f88014 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, 
    expected=1, futex_word=0x74887864 <tvservice_notify_available_event+24>)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x74887864 <tvservice_notify_available_event+24>, 
    abstime=0x0) at sem_waitcommon.c:115
#2  0x76f88158 in __new_sem_wait_slow (
    sem=0x74887864 <tvservice_notify_available_event+24>, abstime=0x0)
---Type <return> to continue, or q <return> to quit---
    at sem_waitcommon.c:282
#3  0x7486e084 in tvservice_notify_func () from /opt/vc/lib/libbcm_host.so
#4  0x747d7cc4 in vcos_thread_entry (arg=0x74887878 <tvservice_notify_task>)
    at /home/dc4/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76f7efc4 in start_thread (arg=0x735ff470) at pthread_create.c:335
#6  0x76e0cbc8 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:76
   from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (Thread 0x73dff470 (LWP 974)):
#0  0x76f88014 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, 
    expected=1, futex_word=0x748886e8 <dispmanx_notify_available_event+24>)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x748886e8 <dispmanx_notify_available_event+24>, 
    abstime=0x0) at sem_waitcommon.c:115
#2  0x76f88158 in __new_sem_wait_slow (
    sem=0x748886e8 <dispmanx_notify_available_event+24>, abstime=0x0)
    at sem_waitcommon.c:282
#3  0x74872150 in dispmanx_notify_func () from /opt/vc/lib/libbcm_host.so
#4  0x747d7cc4 in vcos_thread_entry (arg=0x74889428 <dispmanx_notify_task>)
    at /home/dc4/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76f7efc4 in start_thread (arg=0x73dff470) at pthread_create.c:335
#6  0x76e0cbc8 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:76
   from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
---Type <return> to continue, or q <return> to quit---

Thread 2 (Thread 0x74758470 (LWP 973)):
#0  0x76e0580c in ioctl () at ../sysdeps/unix/syscall-template.S:84
#1  0x747f1010 in completion_thread () from /opt/vc/lib/libvchiq_arm.so
#2  0x747d7cc4 in vcos_thread_entry (arg=0x74804318 <vchiq_instance+16>)
    at /home/dc4/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#3  0x76f7efc4 in start_thread (arg=0x74758470) at pthread_create.c:335
#4  0x76e0cbc8 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:76
   from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0x76ff7010 (LWP 967)):
#0  0x00000000 in ?? ()

#1  0x74bb28d0 in __pyx_pf_4kivy_8graphics_6opengl_138glGetString (
    __pyx_self=<optimized out>, __pyx_v_name=<optimized out>)
    at /tmp/pip-bp1kpwjd-build/kivy/graphics/opengl.c:12436
#2  __pyx_pw_4kivy_8graphics_6opengl_139glGetString (__pyx_self=<optimized out>, 
    __pyx_arg_name=<optimized out>)
    at /tmp/pip-bp1kpwjd-build/kivy/graphics/opengl.c:12415
#3  0x000b1df8 in PyEval_EvalFrameEx ()
#4  0x000b1a7c in PyEval_EvalFrameEx ()
#5  0x000b1a7c in PyEval_EvalFrameEx ()
#6  0x001985c8 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

OK, il semble que SDL_GL_GetProcAddress ne trouve rien :( Je comprends maintenant.
Notre méthode pour détecter et charger opengl est liée au fournisseur de Windows utilisé.
Mais dans ce cas, egl_rpi est utilisé, pas SDL2, donc la fonction SDL2 ne fonctionnera pas.

Il nécessite un correctif, merci pour le signalement !

Je ne sais pas s'il est pertinent d'ajouter ici, mais je pense que cela a quelque chose à voir avec la nouvelle version de Raspbian. J'ai essayé l'ancien (j'ai une image) et cela a fonctionné à merveille.

Le problème d'erreur de segmentation au démarrage de l'application peut être résolu avec une variable d'environnement, mais aussi, il se bloque avec la même erreur de segmentation chaque fois que je charge le graphique avec beaucoup de données à afficher.

Le problème avec GDB est que si j'essaie de l'utiliser comme ça gdb --args python main.py et de reproduire le crash, le RPI se bloque et la seule chose à faire à ce stade est de le redémarrer. Lorsque je vérifie les journaux, ils sont vides.

Je voulais l'ajouter ici.

J'ai eu le même problème et comme @goadik l'a dit, il pourrait s'agir d'un bogue de la nouvelle version de raspbian car sur mon ancienne image (Raspberry3, kivy v1.11.0.dev0, python v3.4.2) l'application kivy fonctionne correctement. Mon problème est décrit ici : https://stackoverflow.com/questions/53122908/kivy-opengl-segmentation-fault-on-raspberry

@krrrambambuli

sur mon ancienne image (Raspberry3, kivy v1.11.0.dev0, python v3.4.2) l'application kivy fonctionne bien

Alors pourquoi n'utilisez-vous pas l'ancienne image ?

Les développeurs de RPi sont connus pour publier de nouvelles « mises à jour » qui cassent toutes sortes de choses. J'ai eu tellement d'expérience désagréable avec ceux-ci que j'ai complètement désactivé toutes les mises à jour liées au système d'exploitation provenant de RPi org.

@E3V3A

Alors pourquoi n'utilisez-vous pas l'ancienne image ?

Parce que j'avais un RPI qui était déjà configuré avec la dernière mise à jour de raspbian. Et je me demandais juste pourquoi Kivy ne courait pas alors que je faisais exactement les mêmes choses qu'avant. Maintenant, j'ai changé pour l'ancienne image et tout fonctionne bien !

A partir de maintenant je m'occuperai des mises à jour hâtives ;)

Peut-être totalement sans rapport, mais à moins que je ne me trompe : Kivy dépend de SDL2 et SDL2 dépend de cffi et/ou de Cairo, et cffi est difficile à construire indépendamment de l'architecture. Mais j'ai rencontré le paquet pip suivant, essayez peut-être cela?

# pip3 search cairocffi 
cairotft (0.1.2)   - UI library for small tft screens using cairocffi

@E3V3A
Je suis déjà passé à l'ancienne image. C'est peut-être bon à savoir pour l'avenir

Puis-je vous demander quelle image utilisez-vous et où je peux la trouver ? J'utilise Rpi 3 B+ et kivy 1.11.0.dev0, quelle image dois-je utiliser ?

@E3V3A
Je suis déjà passé à l'ancienne image. C'est peut-être bon à savoir pour l'avenir

J'utilise raspbian jessie, mis à jour pour la dernière fois le 11-6-18 sans mises à niveau. Rpi3, Kivy v1.10.1 et Python 3.4.2
Mon journal :

[INFO ] Logger : Enregistrez le journal dans /home/pi/.kivy/logs/kivy_18-11-14_11.txt
[INFO ] Kivy : v1.10.1
[INFO ] Python : v3.4.2 (par défaut, 19 octobre 2014, 13:31:11)
[CCG 4.9.1]
[INFO ] KivyMD : version KivyMD : 0.1.2
[INFO ] Usine : 194 symboles chargés
[INFO ] Image : Fournisseurs : img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignoré)
[INFO ] Fenêtre : Fournisseur : egl_rpi
[INFO ] GL : Utilisation du système graphique "OpenGL ES 2"
[INFO ] GL : Backend utilisé
[INFO ] GL : version OpenGL [INFO ] GL : fournisseur OpenGL [INFO ] GL : moteur de rendu OpenGL
[INFO ] GL : version analysée OpenGL : 2, 0
[INFO ] GL : version Ombrage
[INFO ] GL : Taille max de la texture <2048>
[INFO ] GL : Unités max de texture <8>
[INFO ] Fenêtre : clavier virtuel autorisé, mode multi-utilisateurs, non ancré
[INFO ] Texte : Fournisseur : sdl2
[INFO ] GL : la prise en charge des textures NPOT est disponible
[INFO ] Presse-papiers : Fournisseur : xclip
[INFO ] CutBuffer : prise en charge du tampon de coupure activée
[INFO] ProbeSysfs : correspondance de périphérique : /dev/input/event0
...

Merci, j'ai eu le même problème.
exporter KIVY_GL_BACKEND=gl
l'a réparé.

avez exactement le même problème dans raspberry pi 3b+ ..est-il possible d'installer kivy sur le noyau Ubuntu ou tout autre système d'exploitation pris en charge par raspberry pi 3b+ ?

aussi quelle image Raspbian dois-je utiliser dans raspberry pi 3b+ pour faire fonctionner kivy

ce problème n'est pas résolu
en utilisant le système d'exploitation d'importation
os.environ['KIVY_GL_BACKEND'] = 'gl'
importer du kivy
n'est qu'une solution temporaire

Cela n'a pas encore été mentionné dans ce fil, mais il peut être pertinent de savoir si quelqu'un possède la version Lite ou PIXEL de Raspbian.

screen shot 2018-12-17 at 8 34 11 am

sdl2 inclut une dépendance X windows et Raspbian Lite ne l'inclut évidemment pas.

Je peux confirmer que se faufiler...

import os
os.environ['KIVY_GL_BACKEND'] = 'gl'

... en haut de mon script Python fait fonctionner l'application "Bonjour, bouton" . Je suis sur la version Stretch Lite.

Quelle version de raspbian dois-je utiliser pour ne pas avoir ce problème ?
J'ai essayé de déclasser mon système d'exploitation vers Raspbian Jessie 8.0 mais j'ai le même défaut de segmentation ...

Quelle version de raspbian dois-je utiliser pour ne pas avoir ce problème ?
J'ai essayé de déclasser mon système d'exploitation vers Raspbian Jessie 8.0 mais j'ai le même défaut de segmentation ...

Même problème ici avec un raspberry pi 3b+ :

Programme de démarrage : /usr/bin/python3 /home/pi/sorbito/main.py
[Débogage des threads à l'aide de libthread_db activé]
Utilisation de la bibliothèque hôte libthread_db "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[INFO ] [Logger ] Enregistrez le journal dans /home/pi/.kivy/logs/kivy_19-02-13_3.txt
[INFO ] [Kivy ] v1.11.0.dev0, git-233cdd1, 20190212
[INFO ] [Python ] v3.5.3 (par défaut, 27 septembre 2018, 17:25:39)
[CCG 6.3.0 20170516]
[INFO ] [Usine ] 184 symboles chargés
[INFO ] [Image ] Fournisseurs : img_tex, img_dds, img_pil, img_gif (img_sdl2, img_ffpyplayer ignoré)
[INFO ] [Texte ] Fournisseur : sdl2
Fournisseur [INFO ] [Fenêtre ] : egl_rpi
[Nouveau fil 0x747ff470 (LWP 2420)]
[Nouveau fil 0x73dff470 (LWP 2421)]
[Nouveau fil 0x735ff470 (LWP 2422)]
[Nouveau fil 0x72dff470 (LWP 2423)]
[INFO ] [GL ] Utilisation du système graphique "OpenGL ES 2"
[INFO ] [GL ] Backend utilisé

Le thread 1 "python3" a reçu le signal SIGSEGV, erreur de segmentation.
0x00000000 dans ?? ()

Enregistrer:
[INFO ] Logger : Enregistrez le journal dans /home/pi/.kivy/logs/kivy_19-02-13_3.txt
[INFO] Kivy : v1.11.0.dev0, git-233cdd1, 20190212
[INFO] Python : v3.5.3 (par défaut, le 27 septembre 2018, 17:25:39)
[CCG 6.3.0 20170516]
[INFO ] Usine : 184 symboles chargés
[INFO ] Image : Fournisseurs : img_tex, img_dds, img_pil, img_gif (img_sdl2, img_ffpyplayer ignoré)
[INFO ] Texte : Fournisseur : sdl2
[INFO ] Fenêtre : Fournisseur : egl_rpi
[INFO ] GL : Utilisation du système graphique "OpenGL ES 2"
[INFO ] GL : Backend utilisé

Toujours pas de solution à ça ?

os.environ['KIVY_GL_BACKEND'] = 'gl' n'aide pas du tout avec v1.11.0.dev0, git-9ebad2d, 20190516

Obtention : [CRITICAL] [App ] Impossible d'obtenir une fenêtre, abandonnez

Et avec une ancienne version comme 1.10.1, je n'obtiens pas de support PNG transparent... tous les PNG transparents sont dessinés avec un fond noir... le même code fonctionne bien sur Debian 9 cependant...

Alors, RPi Stretch-Lite ne sera-t-il plus jamais pris en charge ?

Relisez mon dernier commentaire sur ce fil. Cela fonctionne pour moi sur Raspbian Stretch Lite (novembre 2018) et mon 1.10.1 prend en charge la centaine de graphiques PNG que j'utilise avec des arrière-plans transparents.

Confirmer une construction utilisant la dernière version stable (1.11.0) dans une installation stretch-lite entièrement à jour sur n'importe quel RPI provoque cette erreur de segmentation. Doit compiler stable-1.10.1 pour s'exécuter sur un RPI. Je ne sais pas pourquoi vous publieriez une version stable qui rencontre ce problème sur une plate-forme majeure depuis plus de 6 mois.

Je rencontre également ce problème sur raspberry 3 B+, ​​sur raspbian lite

Une bonne solution de contournement pour le moment consiste à s'assurer que Pillow est installé, puis à exécuter kivy avec KIVY_WINDOW=sdl2 . Pas besoin de définir le backend gl dans ce cas car sdl2 sera utilisé. Si vous souhaitez utiliser le fournisseur de fenêtres egl_rpi , le backend gl doit être défini.

Cela est certainement considéré comme un bug de régression. Installation sur RPI 3B+ comme

pip install git+https://github.com/kivy/[email protected]

rend en défaut de segmentation alors que

pip install git+https://github.com/kivy/[email protected]

fonctionne comme un charme.

Je prévois de le corriger dans la publication de la publication.

Le mer. 12 juin 2019, 13:11 RafalSkolasinski [email protected]
a écrit:

Cela est certainement qualifié de bug de régression. Installation sur RPI 3B+ comme

pip installer git+ https://github.com/kivy/[email protected]

rend en défaut de segmentation alors que

pip installer git+ https://github.com/kivy/[email protected]

fonctionne comme un charme.

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/kivy/kivy/issues/6007?email_source=notifications&email_token=AAMRN7T3A2SZJ5OE4QQ63NDP2EU2XA5CNFSM4F6QJQM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBJcomKDXLN5WWWWP96T
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AAMRN7XWDPCYLGW5QREDN3DP2EU2XANCNFSM4F6QJQMQ
.

Pouvez-vous tester https://github.com/kivy/kivy/pull/6384 ? Cela devrait résoudre le problème et vous permettre également d'utiliser l'un des trois backends lorsqu'il est sélectionné manuellement (egl_rpi, sdl2 et x11 s'il est compilé).

Je peux le tester plus tard aujourd'hui ou demain.

Le jeu. 13 juin 2019, 22:52 matham, [email protected] a écrit :

Pouvez-vous tester #6384 https://github.com/kivy/kivy/pull/6384 ? Ceci devrait
le corriger et vous permettre également d'utiliser l'un des trois backends lorsqu'il est sélectionné
manuellement (egl_rpi, sdl2 et x11 si compilé).

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/kivy/kivy/issues/6007?email_source=notifications&email_token=ACTL75LVT74IBQJQ4W5QARTP2K6RXA5CNFSM4F6QJQM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVX189ZHJDXLODNGOP50P ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/ACTL75OGYIBPXEVW33B57KLP2K6RXANCNFSM4F6QJQMQ
.

6384 Le corrige pour moi en utilisant egl_rpi sur raspbian-lite, aucune exportation n'est nécessaire.

[INFO ] Logger : Enregistrez le journal dans /home/pi/.kivy/logs/kivy_19-06-14_1.txt
[INFO ] Image : Fournisseurs : img_tex, img_dds, img_pil, img_gif (img_sdl2, img_ffpyplayer ignoré)
[INFO] Kivy : v2.0.0.dev0, git-dccba95, 20190614
[INFO ] Kivy : Installé dans "/home/pi/Stuff/kivy-fix/kivy/__init__.py"
[INFO] Python : v3.5.3 (par défaut, le 27 septembre 2018, 17:25:39)
[CCG 6.3.0 20170516]
[INFO ] Python : Interprète dans "/usr/bin/python3"
[INFO ] Usine : 184 symboles chargés
[INFO ] Texte : Fournisseur : sdl2
[INFO ] Fenêtre : Fournisseur : egl_rpi
[INFO ] GL : Utilisation du système graphique "OpenGL ES 2"
[INFO ] GL : Backend utilisé
[INFO ] GL : version OpenGL [INFO ] GL : fournisseur OpenGL [INFO ] GL : moteur de rendu OpenGL
[INFO ] GL : version analysée OpenGL : 2, 0
[INFO ] GL : Ombrage v

Oui cela fonctionne.
Au départ, j'ai eu un problème et j'ai eu quelques erreurs

[CRITICAL] [Window      ] Unable to find any valuable Window provider.

mais après avoir ajouté pillow cela a commencé à fonctionner.
Je suppose que pillow est de nouvelles dépendances ajoutées dans 1.11 ?

Éditer:
Ce correctif va-t-il sortir dans 1.11.1 ? je vois

[INFO ] Kivy: v2.0.0.dev0, git-dccba95, 20190614

dans les journaux.

Cela sera trié sur le volet dans une publication de 1.11.0.post0 (https://github.com/kivy/kivy/pull/6357). De cette façon, les personnes qui ciblent la 1.11.0 lors de l'installation obtiendront automatiquement la version corrigée (en supposant que pip fasse ce qu'il faut ici et installe 1.11.0.post0 lorsque 1.11.0 est demandé).

Normalement, j'irais à la 1.11.1, mais cela ne fonctionne pas très bien avec notre flux de travail, étant donné notre passage à la 2.0.0 et à la prochaine version de rupture comme la prise en charge de python 2. Cette sortie devrait arriver très bientôt.

Concernant l'oreiller, je ne sais pas ce qui se passe. sdl2_image aurait dû fonctionner (je pense que cela a fonctionné dans le passé ?), mais pour une raison quelconque, il est incapable de charger l'image. Je suppose qu'il aurait besoin d'être résolu plus en détail (les RP sont les bienvenus). Dans tous les cas, j'ai mis à jour la documentation pour répertorier l'oreiller comme dépendance.

J'opterais pour 1.11.1 car il est alors clair qu'un correctif de bogue est inclus. Faisons
espérons que pip nous ferons la bonne chose.

Le vendredi 14 juin 2019, à 17h11, matham, [email protected] a écrit :

Cela sera trié sur le volet dans une publication de la version 1.11.0.post0 (#6357
https://github.com/kivy/kivy/pull/6357 ). De cette façon, les personnes qui ciblent
1.11.0 lors de l'installation obtiendra automatiquement la version corrigée (en supposant
pip fait ce qu'il faut ici et installe 1.11.0.post0 lorsque 1.11.0 est
demandé).

Normalement, j'irais à 1.11.1, mais cela ne fonctionne pas très bien avec notre
flux de travail, étant donné notre passage à la 2.0.0 et la prochaine version qui casse des trucs tels que
comme support de python 2. Cette sortie devrait arriver très bientôt.

Concernant l'oreiller, je ne sais pas ce qui se passe. sdl2_image aurait dû fonctionner
(Je pense que cela a fonctionné dans le passé ?), mais pour une raison quelconque, il est incapable de charger
l'image. Je suppose qu'il aurait besoin d'être résolu plus en détail (les RP sont les bienvenus). Dans
dans tous les cas, j'ai mis à jour la documentation pour répertorier l'oreiller comme dépendance.

-
Vous recevez ceci parce que vous êtes abonné à ce fil.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/kivy/kivy/issues/6007?email_source=notifications&email_token=ACTL75LMHH3Q2FDKYW4HTUTP2O7LDA5CNFSM4F6QJQM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMV4WWZHJLOKTDN18GOPXH2HJLOXXGO ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/ACTL75NBY6O6KBPR4QT3LPDP2O7LDANCNFSM4F6QJQMQ
.

Si vous demandez 1.11.0 , pip n'installera probablement pas 1.11.1 , mais 1.11.0 exactement. Je ne sais pas ce que ça ferait si on demandait 1.11 ,

Oh, je voulais dire qu'il installera le correctif ".post0" lorsque nous demanderons "1.11.0" :)

Le vendredi 14 juin 2019, à 19h29, matham, [email protected] a écrit :

Si vous demandez 1.11.0, pip n'installera probablement pas 1.11.1, mais 1.11.0
exactement. Je ne sais pas ce que ça ferait si on demandait 1.11,

-
Vous recevez ceci parce que vous êtes abonné à ce fil.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/kivy/kivy/issues/6007?email_source=notifications&email_token=ACTL75JZDOPPHORTC3LEVZTP2PPPNA5CNFSM4F6QJQM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJZKTDN5WWN5WW2245
ou couper le fil
https://github.com/notifications/unsubscribe-auth/ACTL75KC3BTJGUQTTBMAHLDP2PPPNANCNFSM4F6QJQMQ
.

comme discuté ci-dessus, j'ai ajouté export KIVY_GL_BACKEND=gl au chemin et maintenant je reçois un autre problème qui dit...
create_window() takes 1 positional argument but 2 were given

merci de m'aider à sortir de cette erreur.
quand je lance mon code dans raspberry pi

sudo python3 main.py
[AVERTISSEMENT] [Config ] Ancienne version de configuration détectée (0 au lieu de 14)
[AVERTISSEMENT] [Config ] Mise à niveau de la configuration en cours.
[INFO ] [Logger ] Enregistrez le journal dans /root/.kivy/logs/kivy_19-06-17_0.txt
[INFO ] [Kivy ] v1.9.1
[INFO ] [Python ] v3.5.3 (par défaut, 27 septembre 2018, 17:25:39)
[CCG 6.3.0 20170516]
[INFO ] [Usine ] 179 symboles chargés
[INFO ] [Image ] Fournisseurs : img_tex, img_dds, img_gif, img_sdl2, img_pil (img_ffpyplayer ignoré)
[INFO ] [Texte ] Fournisseur : sdl2
[INFO ] [OSC ] en utilisantpour prise
Fournisseur [INFO ] [Window ] : sdl2(['window_egl_rpi'] ignoré)
erreur : XDG_RUNTIME_DIR non défini dans l'environnement.
[CRITIQUE] [Window ] Impossible de trouver un fournisseur Windows de valeur !
egl_rpi - ImportError : impossible d'importer le nom 'bcm'
Fichier "/usr/lib/python3/dist-packages/kivy/core/__init__.py", ligne 59, dans core_select_lib
fromlist=[nommodule], niveau=0)
Fichier "/usr/lib/python3/dist-packages/kivy/core/window/window_egl_rpi.py", ligne 12, dans
de kivy.lib.vidcore_lite importer bcm, egl

sdl2 - RuntimeError : b'Aucun périphérique vidéo disponible'
Fichier "/usr/lib/python3/dist-packages/kivy/core/__init__.py", ligne 67, dans core_select_lib
cls = cls()
Fichier "/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py", ligne 138, dans __init__
super(WindowSDL, self).__init__()
Fichier "/usr/lib/python3/dist-packages/kivy/core/window/__init__.py", ligne 722, dans __init__
self.create_window()
Fichier "/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py", ligne 237, dans create_window
self.fullscreen, redimensionnable, état)
Fichier "kivy/core/window/_window_sdl2.pyx", ligne 80, dans kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window (kivy/core/window/_window_sdl2.c:1893)
Fichier "kivy/core/window/_window_sdl2.pyx", ligne 55, dans kivy.core.window._window_sdl2._WindowSDL2Storage.die (kivy/core/window/_window_sdl2.c:1479)

x11 - ImportError : aucun module nommé 'kivy.core.window.window_x11'
Fichier "/usr/lib/python3/dist-packages/kivy/core/__init__.py", ligne 59, dans core_select_lib
fromlist=[nommodule], niveau=0)

[CRITICAL] [App ] Impossible d'obtenir une fenêtre, abandonnez.
Exception ignorée dans : 'kivy.properties.dpi2px'
Traceback (appel le plus récent en dernier) :
Fichier "/usr/lib/python3/dist-packages/kivy/utils.py", ligne 513, dans __get__
retval = self.func(inst)
Fichier "/usr/lib/python3/dist-packages/kivy/metrics.py", ligne 175, en dpi
EventLoop.ensure_window()
Fichier "/usr/lib/python3/dist-packages/kivy/base.py", ligne 126, dans assurer_window
sys.exit(1)
SystèmeSortie : 1
[CRITICAL] [App ] Impossible d'obtenir une fenêtre, abandonnez.

N'importe qui, s'il vous plaît laissez-moi savoir ce que je dois faire.

@jayeshsingh9767 avez-vous essayé avec master ou la dernière version ? Cela a été corrigé dans le master mais nous n'avons pas encore fait de nouvelle version qui inclut le correctif.

@harshp1301 cette erreur n'est pas liée à ce problème. Cela semble également être un problème avec votre système et non avec Kivy. Pour obtenir de l'aide, veuillez demander sur Discord.

@matham Merci, mais le problème est résolu lorsque j'ai supprimé Window.size() de mon code.
Je pense que nous ne pouvons pas gérer l'application kivy Window dans Raspberry pi.... Mais quelqu'un pourrait-il m'expliquer pourquoi?
Remarque : Wimdow.size() fonctionnait parfaitement sur Ubuntu...

Ceci n'est pas lié à ce problème, alors peut-être ouvrir un nouveau problème pour cela (s'il n'en existe pas) ? Mais ce n'est peut-être pas possible avec le backend de la fenêtre egl_rpi. J'essaierais avec le backend sdl2 ou le backend de fenêtre x11 (je pense que les deux sont redimensionnables même sur le pi).

J'ai eu des problèmes similaires avec le système d'exploitation raspbian lite (2020-05-27) --> après le premier chargement, j'ai eu un défaut de segmentation. Ensuite, j'ai essayé de passer à « gl ». Après cela, j'ai obtenu un écran et un curseur noir sans aucun contenu de mon interface graphique.
Si je suis revenu à un ancien Raspbian Lite, cela fonctionne avec Kivy 1.11.1. En fait, je ne sais pas quelle est exactement la différence. Il semble qu'il y ait des mises à jour qui causent ce problème (libs, firmware...?). Heureusement, j'ai sauvegardé l'ancienne carte SD et je l'ai restaurée pour mon interface graphique réellement utilisée.
J'ai décidé d'utiliser Kivy car je n'ai pas besoin d'installer X11. Mon interface graphique est en cours d'exécution dans la console...

@AndreasPantle Je rencontre la même expérience avec 1.11.1 et Raspberry PI OS (renommé Raspbian). Je vais faire un tourbillon de 1.10.1 et voir ce qui se passe. kivy est une dépendance du contrôleur multimédia Mission Pinball, il se peut donc que vous n'ayez pas la possibilité de retourner la version.

Cette page vous a été utile?
0 / 5 - 0 notes
bleepcoder.com utilise des informations sous licence publique GitHub pour fournir aux développeurs du monde entier des solutions à leurs problèmes. Nous ne sommes pas affiliés à GitHub, Inc. ni à aucun développeur qui utilise GitHub pour ses projets. Nous n'hébergeons aucune des vidéos ou images sur nos serveurs. Tous les droits appartiennent à leurs propriétaires respectifs.
Source pour cette page: Source

Langages de programmation populaires
Projets GitHub populaires
Plus de projets GitHub

© 2024 bleepcoder.com - Contact
Made with in the Dominican Republic.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.