dbus的Embedded移植

一、所需下载安装安装包:

  1dbus-1.8.0.tar.gz

http://www.freedesktop.org/wiki/Software/dbus

  2expat-2.1.0.tar.gz

    http://sourceforge.net/projects/expat/

二、安装步骤

1expat安装

tar -zxvf expat-2.1.0.tar.gz

cd expat-2.1.0/

先进行配置:

./configure --host=arm-none-linux-gnueabi(编译器) --prefix=/home/yjs/expat(安装目录)  

编译源文件:make.

安装:make install.

  2dbus安装

tar -zxvf dbus-1.8.0.tar.gz

cd dbus-1.8.0.tar.gz

配置:

./configure      --prefix=/home/yjs/dbus(安装目录) --host=arm-none-linux-gnueabi  “LIBS=-L/home/yjs/expat/lib”(刚才引用安装的expat的库文件“CPPFLAGS=-I/home/yjs/expat/include”(引用expat的头文件

编译源文件:make

   安装:make install

三、移植到板子上

将编译好的dbus目录复制出来,我们可以看到dbus目录下有binlibvaretcincludesharelibexec目录,我们所需要移植到板子上的只要binetcvar目录,其余的目录都可以删除。

dbus-daemon是一个后台进程,负责消息的转发。它就像个路由器。最常见的基于dbus的程序也是符合C/S结构的。dbus-daemon进程分为两种,一个是属于system的,一个是属于session的。

在板子上通过启动dbus-daemon 。

1session-bus

./dbus-daemon --config-file=../etc/dbus-1/session.conf –print-address

设置环境变量DBUS_SESSION_BUS_ADDRESS,将打印的内容设置成DBUS_SESSION_BUS_ADDRESS的值就可以了,这样session-bus就可以使用了。

如果要通过./dbus-daemon --session或者./dbus-launch来启动dbus-daemonsession-bus则需要第二步安装dbus的目录和移植到板子上的目录要一样,不然可能报找不到某某文件的错误。

实践中发现用session-bus比较麻烦,要连接到session-bus的程序必须知道DBUS_SESSION_BUS_ADDRESS的值,因为DBUS_SESSION_BUS_ADDRESS的值不是唯一的,每次都不一样,每次都要设置DBUS_SESSION_BUS_ADDRESS的环境变量,虽然可以通过./dbus-launch来启动dbus-daemon,并且dbus-launch自带设置DBUS_SESSION_BUS_ADDRESS的环境变量的功能,但由于dbus-launch设置的环境变量只在本进程,而且是本次执行中有效。所以一般要通过eval `dbus-launch --auto-syntax`命令来启动dbus-launch,该命令采用eval来执行两次,第一次执行dbus-lauch --auto-syntax,除了启动dbus daemon之外,还输出了下面的内容:

DBUS_SESSION_BUS_ADDRESS='unix:path=/tmp/dbus-6Z62FMmwf3,guid=5dbd92e4865a3f56880d2120000000d6';
export DBUS_SESSION_BUS_ADDRESS; DBUS_SESSION_BUS_PID=998;

第二次执行时就将环境变量DBUS_SESSION_BUS_ADDRESS暴露出去了。之后你就可以启动要连接到session-bus的程序。

2、system-bus

./dbus-daemon --config-file=../etc/dbus-1/system.conf  --print-address

打印的大致内容是:unix:path=/home/yjs/Desktop/dbus/var/run/dbus/

system_bus_socket,guid=73e31e28f60060659d6ee6005422cb1d

设置环境变量DBUS_SYSTEM_BUS_ADDRESS,只需将打印前半部的内容设置成环境变量DBUS_SYSTEM_BUS_ADDRESS=unix:path=/home/yjs/Desktop/dbus

/var/run/dbus/system_bus_socket,重启设备或source配置文件一下。

 

其中记录一下启动system-bus可能出现的问题的解决方案

 

A、错误:Failed to start message bus: Could not get UID and GID for username  "messagebus"

解决:将dbus目录下/etc/dbus-1/system.conf文件中的 <user>messagebus

</user>改成root或其他系统存在的用户名,也可以添加一个messagebus的用户。

B、错误:Failed to start message bus: The pid file "/home/yjs/Desktop/dbus/var/run/messagebus.pid" exists, if the message bus is not running, remove this file

解决:删除messagebus.pid文件。

 

C、错误:"Connection ":1.69" is not allowed to own the service "com.xxx.test" due to security policies in the configuration file"

解决:修改dbus目录下/etc/dbus-1/system.conf文件的配置下的 <deny own="*"/>改为<allow own=”*”/>

 

参考:

http://blog.csdn.net/easebone/article/details/7336125

 http://blog.csdn.net/jack0106/article/details/5588057

 

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
交叉编译libx加GTK+2.1时候用到库各个库文件的集合,不用花费时间网上一个一个下载,已经经过本人亲测试实测,还可以编译GTK+directFB 1.1 libs_for_gtk Dir: atk-1.25.2.tar.gz atk-1.26.0.tar.gz bigreqsproto-1.1.2.tar.bz2 cairo-1.8.6.tar.gz CPAN-1.94.tar.gz DirectFB-1.1.1.tar.gz expat-2.0.1.tar.gz expat-2.1.0.tar.gz ExtUtils-MakeMaker-6.20.tar.gz fontconfig-2.4.2.tar.gz fontconfig-2.6.0.tar.gz fontconfig-2.7.3.tar.gz freetype-2.3.5.tar.bz2 freetype-doc-2.3.6.tar.bz2 glib-2.12.1.tar.bz2 glib-2.14.4.tar.gz glib-2.18.2.tar.bz2 glibc-2.2.5.tar.bz2 gtk+-2.10.14.tar.bz2 gtk+-2.10.7.tar.bz2 gtk+-2.12.12.tar.bz2 inputproto-2.2.tar.bz2 jpegsrc.v6b.rar jpegsrc.v6b.tar.gz kbproto-1.0.6.tar.bz2 libpng-1.2.10.tar.bz2 libpng-1.2.32.tar.lzma libpthread-stubs_0.1.orig.tar.gz libtool-1.5.22.tar.gz libtool-2.4.2.tar.xz libX11-1.0.3.tar.bz2 libX11-1.2.2.tar.bz2 libX11-1.3.2.tar.gz libX11-1.5.0.tar.bz2 libXau-1.0.7.tar.bz2 libXau-1.0.8.tar.bz2 libxcb-1.3.tar.bz2 libxcb-1.4.tar.bz2 libxcb-1.8.1.tar.bz2 libXdmcp-1.0.3.tar.gz libXdmcp-1.1.2.tar.bz2 libXext-1.0.1.tar.bz2 libXfont-1.4.4.tar.bz2 libXft-2.1.12.tar.bz2 libXft-2.1.13.tar.bz2 libxml2-2.6.30.tar.gz libxml2-2.6.32.tar.gz libxslt-1.1.29.tar.gz libXt-1.0.6.tar.bz2 pango-1.16.4.tar.bz2 pango-1.18.2.tar.gz pango-1.22.1.tar.bz2 pango-1.24.4.tar.bz2 pixman-0.24.0.tar.bz2 poky-pinky-3.1.1.tgz stubs-soft.h tiff-3.8.2.tar.gz tiff-4.0.7.tar.gz tslib-1.4.tar.gz xcb-proto-1.7.1.tar.bz2 xcmiscproto-1.1.2.tar.bz2 xcmiscproto-1.2.2.tar.bz2 xextproto-7.2.1.tar.bz2 xorg-server-1.3.0.0.tar.bz2 xorg-server-1.4.2.tar.bz2 xproto-7.0.23.tar.bz2 xtrans-1.2.7.tar.bz2 zlib-1.2.3.rar zlib-1.2.3.tar.gz zlib-1.2.5.tar.gz
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值