免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8047 | 回复: 7
打印 上一主题 下一主题

DirectFB 例子运行出错! [复制链接]

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-14 21:06 |只看该作者 |倒序浏览
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就会出现上面上面的错误,哪位大侠给解释下为什么?

论坛徽章:
5
技术图书徽章
日期:2013-11-07 13:21:58技术图书徽章
日期:2013-12-07 10:34:46技术图书徽章
日期:2014-04-23 08:50:31双鱼座
日期:2014-09-16 09:12:34亥猪
日期:2015-01-23 13:37:49
2 [报告]
发表于 2010-07-14 23:49 |只看该作者
加--enable-multi表示启用多进程支持。多个进程同时使用directfb需要另外的一个软件模块fusion。它是一个内核模块,用于directfb的进程间通信。官网上有fusion。
看上面的样子是你没有编译fusion。编译fusion,把模块插入内核后,在 /proc/fusion会有directfb的信息。另外确认/dev下创建来设备节点。这在fusion的readme中都有。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
3 [报告]
发表于 2010-07-15 22:20 |只看该作者
回复 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的错误。

论坛徽章:
5
技术图书徽章
日期:2013-11-07 13:21:58技术图书徽章
日期:2013-12-07 10:34:46技术图书徽章
日期:2014-04-23 08:50:31双鱼座
日期:2014-09-16 09:12:34亥猪
日期:2015-01-23 13:37:49
4 [报告]
发表于 2010-07-15 23:48 |只看该作者
我是在2.6.31的kernel上用的linux-fusion 8.0.3,directfb1.4.2。单进程多进程都没问题。其他的fusion版本好像有和lz类似的问题:符号未定义。还有几个版本的fusion引用的头文件内核中好像没有,要自己修改一下源代码才能用。
但进程模式下lz可以用gdb跟踪一下,或把出错的详细信息发上来,或许有人能解决。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
5 [报告]
发表于 2010-07-18 13:44 |只看该作者
回复 4# nketc


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

论坛徽章:
5
技术图书徽章
日期:2013-11-07 13:21:58技术图书徽章
日期:2013-12-07 10:34:46技术图书徽章
日期:2014-04-23 08:50:31双鱼座
日期:2014-09-16 09:12:34亥猪
日期:2015-01-23 13:37:49
6 [报告]
发表于 2010-07-18 16:06 |只看该作者
本帖最后由 nketc 于 2010-07-18 16:15 编辑

回复 5# liujunwei1234


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

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
7 [报告]
发表于 2010-07-19 22:30 |只看该作者
回复 6# nketc


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

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
8 [报告]
发表于 2010-08-01 09:03 |只看该作者
问题已经全部解决,可以调试了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP