linux 如何在不离开X.11环境的情况下开发DirectFB应用

e0uiprwp  于 2023-01-16  发布在  Linux
关注(0)|答案(6)|浏览(130)

我正在尝试为嵌入式平台开发一个GUI应用程序,没有任何窗口,我用DirectFB来做这件事,它非常适合我的需要。
由于我开发的嵌入式系统并不是很强大,我真的很想尝试在我自己的Ubuntu桌面上开发。问题是Framebuffer与www.example.com冲突X.org导致我离开整个桌面,并关闭X.org,只是为了查看我的更改结果。
有没有适合我的帧缓冲区模拟器?Qt有一个,叫做QVFb,但是它只适用于开发Qt应用程序,并且DirectFB的VNC后端总是崩溃。
所以,有什么想法吗?

yzuktlbb

yzuktlbb1#

DirectFB有一个X11后端。

$ sudo apt-get install libdirectfb-extra  # for Debian and Ubuntu, anyhow
$ cat ~/.directfbrc
system=x11
force-windowed

此外,DirectFB有一个SDL后端,SDL有一个X11后端。此外,SDL有一个GGI后端,GGI有一个X后端。这有点迂回,但应该可以工作:)
我用

$ SDL_VIDEODRIVER=directfb ffplay some_movie.avi

得到了一个不错的640x480窗口,带有媒体播放和DirectFB处理分层和输入,所以我相信这是可行的。

qq24tv8q

qq24tv8q2#

前面的三个答案都是很好的建议。我建议尝试一下ephemient的答案,因为它是最简单的。关于设置.directfbrc文件的更多细节,请查看“man directfbrc”。
另一种可能性是从X切换到另一个虚拟终端(使用CTRL+ALT+F1),运行directfb程序,然后切换回X(使用CTRL+ALT+F7)。

cczfrluj

cczfrluj3#

我开始使用ephement的解决方案在chroot环境(目标文件系统是buildroot提供的)中运行DirectFB应用程序,除了Xnest之外,Xnest是一个单独的X环境,运行在当前X的窗口中。

$ Xnest -ac :1 &
$ cd $TARGET_DIR # into the target file system root
$ DISPLAY=:1 sudo chroot . usr/bin/df_neo

这样,您不仅可以确保directfb安装是正确的,还可以确保所有必需的依赖项都安装在chroot文件系统中。

jtw3ybtb

jtw3ybtb4#

您可以使用Moblin Image Creator创建Moblin的磁盘映像,然后在QEMU之类的虚拟机中运行该映像,然后在虚拟机中测试DirectFB应用程序。

92dk7w1h

92dk7w1h5#

您可以在Ubuntu桌面上开发(即编辑和编译)应用程序,并在其预期运行的嵌入式平台上测试应用程序。
如果嵌入式平台支持网络,您可以通过直接从NFS共享运行应用程序来缩短编辑-编译-测试循环的长度。

相关问题