DirectFB 例子运行出错!

发布于 2022-08-31 03:37:20 字数 1319 浏览 13 评论 7

DirectFB 例子运行出错!

~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.4.3 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2009  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------

(*) DirectFB/Core: Multi Application Core. (2010-07-14 12:51) [ DEBUG ][ TRACE ]
(*) Fusion/SHM: Using MADV_REMOVE (2.6.32.15 >= 2.6.19.2)
(!) Fusion/Init: Could not enter world '0'!
    --> 无效的参数
(-) [24963: -STACK- ]
  #0  0x003d4820 in fusion_enter () from /opt/lib/libfusion-1.4.so.0 [0x3cb000]
  #1  0x00a832a0 in dfb_core_create () from /opt/lib/libdirectfb-1.4.so.0 [0xa06000]
  #2  0x00a15b30 in DirectFBCreate () from /opt/lib/libdirectfb-1.4.so.0 [0xa06000]

(#) DirectFBError [gdk_display_open: DirectFBCreate]: Initialization error!

(lt-gtk-demo:24963): Gtk-WARNING **: cannot open display: :0.0

运行DirectFB例子出现上面的错误, 在编译DirectFB的时候,不加--enable-multi选项没有上面的错误,但是会caught signal 5 退出,加上--enable-multi就会出现上面上面的错误,哪位大侠给解释下为什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

山有枢 2022-09-10 07:26:56

问题已经全部解决,可以调试了!

秋意浓 2022-09-10 06:49:28

回复 6# nketc

    我以前好像记得在配置文件中加no-vt就好用的,是不是有个类似的方法。 真是非常感谢您每次的回答啊!

云巢 2022-09-10 06:27:23

本帖最后由 nketc 于 2010-07-18 16:15 编辑

回复 5# liujunwei1234

    在HOME下添加一个文件:.directfbrc 在里面写上mode=withxheight 试试吧。但是我觉得这样可能也不行,因为directfb起来后终端就被占用了。如果你不调试fb的话,可以把directfb配置为使用x11后端。这样用gdb调试就很方便了。
我调试fb的时候是在虚拟机里搭建来directfb+gtk的环境,然后远程gdb调试的。

灼痛 2022-09-10 04:56:41

回复 4# nketc

    你好,再问你一个问题阿。我现在环境搭好了,想对gtk-demo进行调试,但是调试时候,DirectFB跑起来后,是一个全屏的窗口,无法再切换回gdb的命令行。怎么设置以下,才能不让DirectFB是全屏的。

最偏执的依靠 2022-09-10 00:44:49

我是在2.6.31的kernel上用的linux-fusion 8.0.3,directfb1.4.2。单进程多进程都没问题。其他的fusion版本好像有和lz类似的问题:符号未定义。还有几个版本的fusion引用的头文件内核中好像没有,要自己修改一下源代码才能用。
但进程模式下lz可以用gdb跟踪一下,或把出错的详细信息发上来,或许有人能解决。

累赘 2022-09-07 12:47:45

回复 2# nketc

    谢谢您的回答,我也知道是fusion的问题。因为在Linux-2.6.32上linux-fusion可以编译过,但是在安装的时候会提示tasklist_lock没有定义,同样的在modprobe fusion的时候,也是因为tasklist_lock这个符号没有定义而无法加载这个模块。tasklist_lock在现在的内核中确实不作为导出符号了,确实是没有定义的,从而导致fusion模块根本无法加载。 请问楼主有没有好的建议。
   我就是想既然fusion模块不能加载,就不用fusion模块了,所以--enable-multi=no,但这样又会出现caught signal 5的错误。

打小就很酷 2022-09-05 11:56:18

加--enable-multi表示启用多进程支持。多个进程同时使用directfb需要另外的一个软件模块fusion。它是一个内核模块,用于directfb的进程间通信。官网上有fusion。
看上面的样子是你没有编译fusion。编译fusion,把模块插入内核后,在 /proc/fusion会有directfb的信息。另外确认/dev下创建来设备节点。这在fusion的readme中都有。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文