我有一个小的python3和PySDL 2应用程序,需要在没有GUI的debian Linux上运行。这是一个在Librea计算机板AML-S905 X-CC上运行的嵌入式项目。我将HDMI输出连接到显示器,我可以看到控制台,因此视频驱动程序可以工作。桌面环境的性能成本太高,对我的用例来说完全没有必要。
我已经找到了其他人谁已经能够实现这一点,而回来的过程似乎很熟悉:https://discourse.libsdl.org/t/possible-to-run-sdl2-headless/25665
代码很简单:
import sys
import os
import sdl2.ext
os.putenv("SDL_VIDEODRIVER","dummy")
RESOURCES = sdl2.ext.Resources(__file__, "resources")
print("start")
sdl2.ext.init()
window = sdl2.ext.Window("Hello World!",size=(720,480), flags=sdl2.SDL_WINDOW_HIDDEN)
window.show()
while True:
continue
字符串
应用程序确实会运行,但它只是停留在控制台屏幕上。
据我所知,如果没有驱动程序,Linux只是直接写入帧缓冲区。所以如果我能设置PySDL 2来做这件事,并全屏显示gui,这就是我所寻找的。
最后一点要注意的是,我知道这是可能的,因为这是我曾经设法实现过的,大约一年前。然而,由于驱动器崩溃,该示例已经丢失。
1条答案
按热度按时间6bc51xsx1#
我让它工作了。好的,这就是我所做的。
1.完整的操作系统擦除-全新的Debian安装(因为上帝知道我在实验中可能搞砸了什么)
1.按照安装PySDL 2时抱怨的那样设置python env
1.通过pip安装pysdl 2和sudo安装sdl 2-dev
最重要的部分是运行UpdateWindow(w)和RenderPresent(r),这在PySDL文档中没有提到,但可能是因为它是一个利基用例场景。
简单地说,这可能不是完美的代码,因为我不是Maven。但由于所有的Maven都懒得帮助解决这类问题,这是你得到的最好的:
字符串