免费注册 查看新帖 |

Chinaunix

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

为powerpc交叉编译dbus(续) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-04 16:46 |只看该作者 |倒序浏览
这篇主要是写dbus应用程序的测试过程遇到的各种问题及解决方法
####15th,Apr
自己写好makefile,编译通过,生成test_dbus
然后把test_dbus拷到板上/bin,启动,运行
显示找不到libdbus-1.so.3
从/opt/eldk/ppc_4xxFP/usr/lib/libdbus-1.so.3拷贝到板上的rootfs
(这样不行,因为那是一个链接文件,应该把三个动态链接库都拷过去)
再次运行test_dbus,出错:
process 795: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/opt/crosslib/dbus4ppc/var/lib/dbus/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
  D-Bus not built with -rdynamic so unable to print a backtrace
Aborted
#####16th,Apr
改成静态编译还是出现相同的错误
####定义一个machine id
使用dbus-uuidgen >/opt/crosslib/dbus4ppc/var/lib/dbus/machine-id
重新运行,
#####
在CF卡的根目录下创建/opt/crosslib/dbus4ppc/var/lib/dbus/machine-id
然后把/opt/crosslib/dbus4ppc/var/lib/dbus/machine-id文件中的内容拷贝到CF卡中的文件里
运行出错:
00:05:10:719 fatal error when connect to dbus: Failed to execute dbus-launch to autolaunch D-Bus session
00:05:10:719 Get connection fail!
####21st ,Apr
把/opt/crosslib/dbus4ppc/bin下的所有文件拷贝到CF下/usr/bin,并增加启动脚本rcS
启动出错:
Start dbus-launch
Failed to execute message bus daemon /opt/crosslib/dbus4ppc/bin/dbus-daemon: No such file or directory.  Will try again without full path.
dbus-daemon: error while loading shared libraries: libexpat.so.0: cannot open shared object file: No such file or directory
EOF in dbus-launch reading address from bus daemon
done
Start dbus-daemon
/usr/bin/dbus-daemon: error while loading shared libraries: libexpat.so.0: cannot open shared object file: No such file or directory
done
####22nd,Apr
把整个opt/crosslib/dbus4ppc都拷贝到CF卡中,并修改启动脚本rcS
启动,出错:
No configuration file specified.
dbus-daemon [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork] [--nofork] [--introspect]
done
Start dbus-launch
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-lkpf89f0kA,guid=75a6683e37615fa421b6053c00000005
DBUS_SESSION_BUS_PID=794
###修改脚本,
66 ###Start dbus-daemon and dbus-launch
67 echo -n "Start dbus-daemon"
68 echo
69 rm /opt/crosslib/dbus4ppc/var/run/messagebus.pid
¥¥(上一句是后面加上去的,因为不加的话第二次启动时会提示说/opt/crosslib/dbus4ppc/var/run/messagebus.pid已存在,请删除)
70 dbus-daemon --system --print-pid --print-address
71 echo "done"
72 echo -n "Start dbus-launch"
73 echo
74 dbus-launch --sh-syntax --exit-with-session
75 echo "done"
再次启动,错误如下:
Start dbus-daemon
unix:path=/opt/crosslib/dbus4ppc/var/run/dbus/system_bus_socket,guid=007eaaf9e6a74e2779b1317c00000005
Failed to start message bus: Could not get UID and GID for username "messagebus"
done
Start dbus-launch
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-NDx3uECQG3,guid=5c83f7d22586b6b40114893200000005
DBUS_SESSION_BUS_PID=794
###进入系统,用命令:
adduser messagebus
提示输入密码两次(我输入的是dbus)
再次重启,脚本运行成功:
Start dbus-daemon
unix:path=/opt/crosslib/dbus4ppc/var/run/dbus/system_bus_socket,guid=c362ed8ab8e37270c3b05efb00000007
790
done
Start dbus-launch
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-9yIlN4BpEr,guid=2ea305f774256380ae14078800000007
DBUS_SESSION_BUS_PID=794
done
但是,
运行test_dbus时提示:
00:04:07:610 fatal error when connect to dbus: dbus-launch failed to autolaunch D-Bus session: Autolaunch requested, but X11 support not compiled in.
Cannot continue.
###
再次启动,出错:
Start dbus-launch
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-e5gPWdoxVs,guid=400fcbe529f6f14674806fd800000005
DBUS_SESSION_BUS_PID=794
done
Starting shell
/bin/sh: can't access tty; job control turned off
# ps |grep dbus
  794 root      2960 S    /opt/crosslib/dbus4ppc/bin/dbus-daemon --fork --print
# cd home/
home/messagebus/  home/qiu/
# cd home/qiu/
# ls
hello             test_dbus         test_static_dbus  test_xml_io1
# ./test_dbus
00:01:29:225 fatal error when connect to dbus: dbus-launch failed to autolaunch D-Bus session: Autolaunch requested, but X11 support not compiled in.
Cannot continue.
00:01:29:226 Get connection fail!
# dbus-monitor --system
/bin/sh: dbus-monitor: not found
# /opt/crosslib/dbus4ppc/bin/dbus-monitor --system
Failed to open connection to system message bus: Failed to connect to socket /opt/crosslib/dbus4ppc/var/run/dbus/system_bus_socket: Connection refused
####
修改/etc/init.d/rcS
用命令ps|grep dbus
  791 messageb  2960 S    dbus-daemon --system --print-pid --print-address
  795 root      1800 S    dbus-launch --sh-syntax --exit-with-session
  796 root      2960 S    /opt/crosslib/dbus4ppc/bin/dbus-daemon --fork --print
#####今天(22nd,Apr)
google到如下方法:
------- Comment  #1 From Steev Klimaszewski  2008-08-07 18:27:46 0000  [reply] -------
Autolaunch requires X11, if you want it without X, then you will need to launch
a session bus by yourself - dbus-launch application-that-uses-session-bus or
dbus-monitor --system to monitor the system rather than session.
最后的尝试
进入系统,用以下命令运行程序:
dbus-launch  /home/qiu/test_dbus  --system
00:00:54:679 sec: 5
00:00:54:704 recv msg: 12121212121454545454554444444444444444444444444444444444878787878
00:00:56:708 recv msg: 12121212121454545454554444444444444444444444444444444444878787878
00:00:58:712 recv msg: 12121212121454545454554444444444444444444444444444444444878787878
00:01:00:716 recv msg: 12121212121454545454554444444444444444444444444444444444878787878
00:01:02:721 recv msg: 12121212121454545454554444444444444444444444444444444444878787878
00:01:04:724 recv msg: 12121212121454545454554444444444444444444444444444444444878787878
暂时可以运行了!
###24,Apr,请教师兄
他把dbus-代码中conn = dbus_bus_get(DBUS_BUS_SESSION, &err)改为:
conn = dbus_bus_get(DBUS_BUS_SYSTEM, &err)
把重新编译后的test_dbus拷到卡上,运行
home/qiu/test_dbus
00:00:39:219 sec: 5
00:00:39:219 sec: 5
00:00:39:258 recv msg: 12121212121454545454554444444444444444444444444444444444878787878
00:00:41:272 recv msg: 12121212121454545454554444444444444444444444444444444444878787878
00:00:43:288 recv msg: 12121212121454545454554444444444444444444444444444444444878787878
00:00:45:293 recv msg: 12121212121454545454554444444444444444444444444444444444878787878
00:00:47:296 recv msg: 12121212121454545454554444444444444444444444444444444444878787878
成功了!!!!


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93670/showart_1917976.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP