您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168939

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

Linux进程间通信:整理关于D-Bus的一些学习笔记

1、移植dbus到开发板的步骤

参考文章:Linux:交叉编译dbus/glib/dbus-glib - iamlinrm.CSDN

先移植dbus-daemon后台进程所依赖的xml解析器:

tar xjf expat-2.3.0.tar.bz2
cd expat-2.3.0
./configure --prefix=$PWD/tmp --host=arm-linux-gnueabihf
make
make install
cp -rfd tmp/* ~/net/nfs_root/fs/usr/
rm -rf ~/net/nfs_root/fs/usr/include/

编译dbus:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$PWD/expat-2.3.0/tmp/lib/pkgconfig
tar xzf dbus-1.12.20.tar.gz
cd dbus-1.12.20/
./configure --prefix=/usr --host=arm-linux-gnueabihf --disable-tests
make
make install DESTDIR=$PWD/tmp
cp -rfd tmp/usr/* ~/net/nfs_root/fs/usr/
rm -rf ~/net/nfs_root/fs/usr/include/

注意,这里的“–prefix=/usr”并非写错,它与“make install DESTDIR=$PWD/tmp”相呼应,因为如果类似于expat的配置方式,会导致编译出来的dbus程序和配置包含了编译主机的路径,所以这里故意将“–prefix”参数“冒充”为安装到系统目录下,这个问题不知道是我没有配置正确还是dbus官方源码中本身存在的一个小bug,所以暂且先使用以上这种方法吧,如果有其他的方法不妨大家分享一下。

2、dbus概念介绍以及测试例子

  • D-Bus Tutorial

  • dbus 简单编程(二) - June_Hou.CSDN

  • D-Bus学习(一):总体介绍 - 恺风.CSDN

  • Linux进程间通信:D-Bus的使用 - iamlinrm.CSDN (整合csdn作者“恺风”的文章,包含signal和method的收发示例)

3、守护进程dbus-daemon的使用

  • D-Bus daemon的启动 - szonebit.CSDN (通过dbus-launch来启动dbus-daemon)
  • DBus daemon 启动(三) - June_Hou.CSDN(dbus-daemon的多种启动方法)

注意,如果系统中没有/dev/null设备节点(比如buildroot构建的就没有),可以使用mknod /dev/null c 1 3命令来手动创建一个


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进