12

我正在尝试为嵌入式平台开发一个 GUI 应用程序,没有任何窗口,我正在使用 DirectFB 来做这件事,它非常适合我的需求。

由于我开发的嵌入式没有那么强大,我真的很想尝试在自己的 Ubuntu 桌面上进行开发。问题是 Framebuffer 与 X.org 冲突导致我离开整个桌面,并关闭 X.org 只是为了查看我的更改结果。

有适合我需要的好的帧缓冲模拟器吗?Qt 有一个,叫做 QVFb,但它只适用于开发 Qt 应用程序,并且 DirectFB 的 VNC 后端总是崩溃。

那么,有什么想法吗?

4

6 回答 6

17

DirectFB 有一个 X11 后端。

$ sudo apt-get install libdirectfb-extra # 对于 Debian 和 Ubuntu,无论如何
$ 猫 ~/.directfbrc
系统=x11
强制窗口

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

我用它测试过

$ SDL_VIDEODRIVER=directfb ffplay some_movie.avi

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

于 2009-02-07T02:29:53.050 回答
1

前面三个答案都是很好的建议。我建议尝试 ehemient 的答案,因为它是最简单的。有关设置 .directfbrc 文件的更多详细信息,请查看“man directfbrc”。

另一种可能性是从 X 切换到另一个虚拟终端(使用 CTRL+ALT+F1),运行您的 directfb 程序,然后切换回 X(使用 CTRL+ALT+F7)。

于 2009-12-31T23:01:00.263 回答
1

我开始使用 ehemient 的解决方案在 chroot 环境(目标文件系统由buildroot提供)中运行 DirectFB 应用程序,此外还有 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 文件系统中。

于 2010-04-26T03:25:55.177 回答
0

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

于 2009-02-06T21:30:01.407 回答
0

您可以在 Ubuntu 桌面上开发(即编辑和编译)您的应用程序,并在打算运行的嵌入式平台上测试您的应用程序。

如果嵌入式平台支持网络,您可以通过直接从 NFS 共享运行应用程序来减少编辑-编译-测试循环的长度。

于 2009-02-07T04:07:32.917 回答
0

这是 qemu 和 directFB 的一个很好的例子:

于 2010-06-17T14:56:42.907 回答