以下是场景:我使用python框架Kivy编写了一个gui,我希望在this touchscreen的覆盆子pi上运行它。我已经完成了安装,TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen FRAMEBUFFER=/dev/fb1 nohup startx &
让xwindow桌面gui正常运行。但是,我无法让我的kivy gui工作。我能够通过测试tkinter应用程序正常工作
设置DISPLAY
环境变量。
我尝试将以下内容放在我的kivy应用程序的顶部,但无济于事:
os.environ['SDL_VIDEODRIVER'] = 'fbcon'
os.environ['SDL_FBDEV'] = '/dev/fb1'
os.environ['SDL_MOUSEDRV'] = 'TSLIB'
os.environ['SDL_MOUSEDEV'] = '/dev/input/touchscreen'
当我运行我的应用程序时,这是调试输出:
[INFO ] [Logger ] Record log in /home/pi/.kivy/logs/kivy_14-04-21_10.txt
[INFO ] Kivy v1.8.1-dev
[INFO ] [Python ] v2.7.3 (default, Mar 18 2014, 05:13:23)
[GCC 4.6.3]
[INFO ] [Factory ] 157 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_pygame, img_gif (img_pil ignored)
[INFO ] [Text ] Provider: pygame
[INFO ] [Loader ] using a thread pool of 2 workers
[INFO ] [Window ] Provider: egl_rpi
[INFO ] [GL ] OpenGL version <OpenGL ES 2.0>
[INFO ] [GL ] OpenGL vendor <Broadcom>
[INFO ] [GL ] OpenGL renderer <VideoCore IV HW>
[INFO ] [GL ] OpenGL parsed version: 2, 0
[INFO ] [GL ] Shading version <OpenGL ES GLSL ES 1.00>
[INFO ] [GL ] Texture max size <2048>
[INFO ] [GL ] Texture max units <8>
[INFO ] [Shader ] fragment shader: <Compiled>
[INFO ] [Shader ] vertex shader: <Compiled>
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
[INFO ] [GL ] NPOT texture support is available
[INFO ] [OSC ] using <multiprocessing> for socket
[INFO ] [ProbeSysfs ] device match: /dev/input/event0
[INFO ] [HIDInput ] Read event from </dev/input/event0>
[INFO ] [Base ] Start application main loop
[INFO ] [HIDMotionEvent] using <stmpe-ts>
我对框架缓冲器等知之甚少(知之甚少);我希望有人能指出我正确的方向。看来我提到的上述环境变量对于让pygame应用程序显示是有用的,而kivy是基于pygame构建的。
一些链接:
我很难在去年四月之后直接找到这些东西。
非常感谢任何帮助。提前谢谢!
答案 0 :(得分:3)
这不起作用。 SPI屏幕适用于由CPU控制的SPI:http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus
Kivy使用Raspberry Pi的GPU,而不是SPI或X11。据我了解,在SPI上显示加速的GLES应用程序是行不通的。
即,您可以通过X11以外的命令行执行任何GLES软件来确认此行为
答案 1 :(得分:0)
我发现这可以通过取消注释/boot/config.txt
中的以下行来实现disable_overscan=1
然后启动fbcp
fbcp &
并运行例如展示演示(我为python3.4编译为kivy):
python3.4 kivy/examples/demo/showcase/main.py
触摸有效,但我的y轴反转。