dbus

dbus资料收集

爱⌒轻易说出口 提交于 2019-12-06 08:38:03
想学习一下dbus,但找到的资料不是很多,也没太看懂。 http://www.cnblogs.com/muxue/archive/2012/12/02/2798876.html https://blog.csdn.net/ty3219/article/details/47358329 https://blog.csdn.net/shanzhizi/article/details/8845514 http://www.matthew.ath.cx/articles/dbus https://www.jianshu.com/p/c073daaf427f https://blog.csdn.net/mika85489/article/details/46418701 https://blog.csdn.net/mznewfacer/article/details/7475265 https://blog.csdn.net/yishuige/article/details/52852531 D-Bus学习(一):总体介绍 D-Bus学习(二):基本概念 D-Bus学习(三):消息 D-Bus学习(四):基础小例子(同步和异步) D-Bus学习(五):Signal的收发小例子 D-Bus学习(六):Method的收发小例子 D-Bus学习(七):利用XML定义D-Bus之Client的例子

ubuntu 安装使用dbus

二次信任 提交于 2019-12-06 08:36:03
ubuntu12.04 安装dbus 1.下载dubs 下载 https://dbus.freedesktop.org/releases/dbus/ dbus-1.8.0.tar.gz 2.配置编译 ./configure –prefix=/home/xx/dbus/install/ (安装目录) make make install 3.使用 dbus-daemon是一个后台进程,负责消息的转发 ./dbus-daemon –config-file=../etc/dbus-1/session.conf –print-address 会打印一个类似unix:abstract=/tmp/dbus-eW4m3qv5Pv,guid=48fba668e981b73068475c035acda368的值 每次启动的值都不一样 dbus-launch 是启动配置dbus-daemon的程序 4.编译应用程序dbus.c gcc dbus.c -o dbus -I /home/xx/dbus/install/include/dbus-1.0/ -I /home/xx/dbus/install/lib/dbus-1.0/include/ -L /home/xx/dbus/install/lib/ -l dbus-1 /home/xx/dbus/install/include/dbus-1.0/

CentOS7 经常卡住

别等时光非礼了梦想. 提交于 2019-12-06 08:35:28
服务器上安装了CentOS7操作系统,经常莫名其妙的卡住,ssh连接不上,使用显示器连接服务器的时候发现显示器没有反应。贴一段系统的异常日志: --------------------------------------------------------------------------------------------------------------------------------------------------------------- 下面这段是内存溢出了: Sep 9 11:00:41 datanode04 kernel: Out of memory: Kill process 30914 (python) score 371 or sacrifice child Sep 9 11:00:41 datanode04 kernel: Killed process 30914 (python) total-vm:44705660kB, anon-rss:4810244kB, file-rss:904kB ----------------------------------------------------------------------------------------------------------------------------------

D-Bus daemon的启动

落爺英雄遲暮 提交于 2019-12-06 08:35:13
D-Bus daemon是D-Bus的非常重要的一个服务,类似于IP网络中的路由器。 跟这个后台服务有关的应用程序包括: dbus-daemon: D-Bus的后台进程,作为D-Bus的消息中转枢纽,可分成system和session两种。 dbus-launch: 启动一个dbus-daemon,后面有不同的参数。一般而言,dbus-daemon启动后需要将其地址告诉给所有需要使用该bus的applications。 当系统启动时,需要使用dbus-launch来启动dbus-daemon,一般而言, 一般采用下面的命令启动dbus daemon以及dbus application (1) eval `dbus-launch --auto-syntax` (2) ./yourapp 第一行代码,采用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

如何高效的利用dbus做client-server架构

旧巷老猫 提交于 2019-12-06 08:26:54
在嵌入式系统中利用dbus重要有两个方面的用处: 1:历程间通信 2:告终client/server形式; 2也是1的翔实出现形式; 包括dbus自带的例子,都是批准dbus对数据的封装,告终client/server形式的, 缺点有二: 1 一个API要定义一个xml接口描写 2 数据封装极其混杂,极其不利于尔后接口的伸展; 为了客服上面的缺点,长进可伸展性和效率,能够这么做: 万一一个利用分为client,server两端的话,要高效率的告终client/server之间 的通信,能够批准如下措施: 第一步:定义一个通用的API xml 接口描写,暂号召为dbus_general.xml <?xml version="1.0" encoding="UTF-8" ?> <node name="/org/freedesktop/DBus/General_api"> <inte***ce name="org.freedesktop.DBus.general_api"> <method name="client_request"> <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="__client_request_cb"/> <arg type="i" name="action_id" direction="in"

cross-compile dbus

ぐ巨炮叔叔 提交于 2019-12-06 08:19:52
首先要交叉编译expat-2.2.0, 因为 dbus依赖 expat库。 然后,配置好 CFLAGS, LDFLAGS export CFLAGS=-I/home/charles/code/build_systemd/_install/include export LDFLAGS=-L/home/charles/code/build_systemd/_install/lib 之后,执行 configure: ./configure --host=arm-linux-gnueabi --prefix=/home/charles/code/build_systemd/_install --disable-systemd --enable-tests=no 要先 disable-systemd, 因为 systemd还没编译好,systemd也依赖于 dbus; enable-tests要去掉,因为它 需要 glib的库 来源: CSDN 作者: caspiansea 链接: https://blog.csdn.net/CaspianSea/article/details/71513894

How to use java dbus to create an Java Interface for dbus interface

≡放荡痞女 提交于 2019-12-06 08:19:36
How to use java dbus to create an Java Interface for dbus interface First you need a compiled Java Dbus Library Go into the directory of Java DBus Found the CreateInterface.sh, then edit as follows: #!/bin/sh -- JAVA=$JAVA_HOME/bin/java DEBUG=disable VERSION=0.1 JARPATH="$PWD/ipkg-install/share/java/" JAVAUNIXJARPATH="$PWD/ipkg-install/share/java/" JAVAUNIXLIBPATH="$PWD/ipkg-install/lib/jni/" JAVAUNIXJARPATH=%JAVAUNIXJARPATH% exec $JAVA -DPid=$$ -DVersion=$VERSION -Djava.library.path=$JAVAUNIXLIBPATH -cp $JAVAUNIXJARPATH/unix.jar:$JAVAUNIXJARPATH/debug-$DEBUG.jar:$JAVAUNIXJARPATH/hexdump.jar:

dbus实例讲解(四下):使用dbus-glib

怎甘沉沦 提交于 2019-12-06 08:19:05
4、复杂的数据类型 在dbus中怎样处理复杂的数据类型?第一个建议是尽量不要使用复杂的数据类型。但如果确实需要呢?有的网友 建议 用GArray作为容器,不管什么参数,在客户端都手工放入GArray,在服务器端再自己取出来。这确实是个思路,比较适合服务器和客户端都是自己开发的情况。还有一篇" How to pass a variant with dbus-glib " 介绍了怎样用GValue传递复杂的数据类型,读者可以参考。 下面看看在我们的例子中是怎样处理a{sv}参数的: $ cat sms_features.h #ifndef SMS_FEATURES_H #define SMS_FEATURES_H #include <glib-object.h> GHashTable *sms_create_features(const char * alphabet, int csm_num, int csm_seq); GType sms_get_features_type(void); void sms_release_features(GHashTable *features); void sms_show_features(GHashTable *features); #endif sms_features.h声明了几个函数。这个例子的服务器、客户端都会调用

DBUS基础知识

*爱你&永不变心* 提交于 2019-12-06 08:18:48
1. 进程间使用D-Bus通信 D-Bus是一种高级的进程间通信机制,它由freedesktop.org项目提供,使用GPL许可证发行。D-Bus最主要的用途是在Linux桌面环境为进程提供通信,同时能将Linux桌面环境和Linux内核事件作为消息传递到进程。D-Bus的主要概率为总线,注册后的进程可通过总线接收或传递消息,进程也可注册后等待内核事件响应,例如等待网络状态的转变或者计算机发出关机指令。目前,D-Bus已被大多数Linux发行版所采用,开发者可使用D-Bus实现各种复杂的进程间通信任务。 2. D-Bus的基本概念 D-Bus是一个消息总线系统,其功能已涵盖进程间通信的所有需求,并具备一些特殊的用途。D-Bus是三层架构的进程间通信系统,其中包括: 接口层:接口层由函数库libdbus提供,进程可通过该库使用D-Bus的能力。 总线层:总线层实际上是由D-Bus总线守护进程提供的。它在Linux系统启动时运行,负责进程间的消息路由和传递,其中包括Linux内核和Linux桌面环境的消息传递。 包装层:包装层一系列基于特定应用程序框架的Wrapper库。 D-Bus具备自身的协议,协议基于二进制数据设计,与数据结构和编码方式无关。该协议无需对数据进行序列化,保证了信息传递的高效性。无论是libdbus,还是D-Bus总线守护进程,均不需要太大的系统开销。 总线是D