1. Cross Compile dbus-glib-0.78
echo ac_cv_func_posix_getpwnam_r=yes>arm-linux.cache
echo ac_cv_have_abstract_sockets=yes>>arm-linux.cache
./configure --host=arm-xscale-linux-gnu --cache-file=arm-linux.cache --prefix=/usr/arm-xscale-linux-gnu
make
出错
/bin/sh ../../libtool --mode=execute ../../dbus/dbus-binding-tool --prefix=some_object --mode=glib-server --output=example-service-glue.h ./example-service.xml
/newroot/nfsroot/liyong/BlueTooth/dbus-glib-0.78/dbus/examples/../../dbus/dbus-binding-tool: line 119: /newroot/nfsroot/liyong/BlueTooth/dbus-glib-0.78/dbus/.libs/lt-dbus-binding-tool: cannot execute binary file
修改./dbus/Makefile.
SUBDIRS = . examples => SUBDIRS = . #example
make
还出错
../../dbus/dbus-binding-tool --prefix=my_object --mode=glib-server --output=test-service-glib-glue.h ./test-service-glib.xml
../../dbus/dbus-binding-tool: line 119: /newroot/nfsroot/liyong/BlueTooth/dbus-glib-0.78/dbus/.libs/lt-dbus-binding-tool: cannot execute binary file
修改./Makefile.
SUBDIRS = dbus test doc tools => SUBDIRS = dbus #test doc tools
make
make install
2. Cross Compile obex-data-server-0.4.2
export PKG_CONFIG_LIBDIR = /nfsroot/arm-xscale-linux-gnu/steven_root/lib/pkgconfig
./configure --host=arm-xscale-linux-gnu --prefix=/nfsroot/arm-xscale-linux-gnu/steven_root/lib/pkgconfig
make & make install
3.Run dbus
dbus 启动部分的内容参考自 http://blog.csdn.net/Analib/archive/2008/11/04/3218050.aspx
#dbus-daemon –system –print-pid –print-address
提示Failed to start message bus: Could not get UID and GID for username “messagebus”
dbus需要messagebus用户,/bin/busybox useradd messagebus.
#obex-data-server -n
提示D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open “/usr/var/lib/dbus/machine-id”: No such file or directory
没有machine-id文件,需要给它定义一个id.
#dbus-uuidgen >/usr/var/lib/dbus/machine-id
再次执行
#obex-data-server -n
Couldn’t connect to session bus: Failed to execute dbus-launch to autolaunch D-Bus session,
(Analib :推荐http://dbus.freedesktop.org/doc/dbus-launch.1.html AUTOMATIC LAUNCHING一节,需要设置DBUS_SESSION_BUS_ADDRESS环境变量的值,先执行dbus-launch,获得了DBUS_SESSION_BUS_ADDRESS值,再export一下)
#dbus-launch
#export DBUS_SESSION_BUS_ADDRESS=unix:absact=/tmp/.....
#export DBUS_SESSION_BUS_PID=332
最后运行
#obex-data-server -n
Done!