dbus

status: Unable to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket

十年热恋 提交于 2019-12-06 07:52:38
status: Unable to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory sudo apt-get install dbus 来源: CSDN 作者: 追梦草 链接: https://blog.csdn.net/lxm1247983646/article/details/9354409

Getting Notified on “Ethernet cable plugged in” events in linux

社会主义新天地 提交于 2019-12-06 07:52:10
I am writing a Python Application running on linux. I want to be able to register and be notified by the system if a network cable is plugged in/ out . I am already using pyUdev (python bindings for libUdev) in order to get notified for USB plug in events. However, because the network eth0 module (for example) always remains loaded (regardless of the cable being plugged in) , I dont get the information I require. It only works for if up/down events. I have read a lot of posts on Windows WMI providing this functionality but none on linux. Am I looking in the right direction? A python way of

一篇dbus移植的点点滴滴

你说的曾经没有我的故事 提交于 2019-12-06 07:51:56
3个月了,终于把这个问题搞定了,前后学习加动手可能花了1个半月在这个系统搭建上面。我怀着复杂的心情写这篇文章,对很多懂这方面的专家我无话可说,对自己我更不知道该爱还是该恨。 6月中的时候我来到新的公司,接到的第一个任务就是交叉编译dbus,并在目标机上跑起来。我工作快3年了,一直搞的嵌入式开发,说实话在FSK很失败,以前开发环境都是搭好了,我们只是做一些应用程序的开发而已,我自认为最有成就的就是写了LCD和LED驱动。新公司真的有很多牛人,软硬件都懂,自己开始有点自卑。对第一个任务我甚至不知道怎么搭建嵌入式交叉编译环境,指定一个交叉编译工具链都花了我半天的时间,更不要说交叉编译dbus这么复杂的东西了,依赖的库太多,遇到的编译错误也让我摸不着头脑。幸好,这些东西做过就会了,在师傅的带领下我花了10天的时间把dbus交叉编译搞定。编译过程如下: http://blog.chinaunix.net/u3/99283/showart.php?id=1971652 其中有一个隐患在里面。 好了,该运行测试程序,运行的时候发现一些错误一个个解决掉,发现通信有问题。(其实就是交叉编译里面的一个隐患造成的) http://blog.chinaunix.net/u3/99283/showart.php?id=1976658 接下来的1个月被师傅叫去接别的任务,说这个问题可以先缓一下以后解决

D-BUS简单例子

本秂侑毒 提交于 2019-12-06 07:51:29
/* * Example low-level D-Bus code. * Written by Matthew Johnson <dbus@matthew.ath.cx> * * This code has been released into the Public Domain. * You may do whatever you like with it. */ #include <dbus/dbus.h> #include <stdbool.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> /** * Connect to the DBUS bus and send a broadcast signal */ void sendsignal(char* sigvalue) { DBusMessage* msg; DBusMessageIter args; DBusConnection* conn; DBusError err; int ret; dbus_uint32_t serial = 0; printf("Sending signal with value %s\n", sigvalue); // initialise the error value dbus_error_init(&err);

浅谈dbus udev udisks

本秂侑毒 提交于 2019-12-06 07:50:49
udev the workflow of udev: 启动初始化时, /dev目录使用tmpfs挂载. 然后, Udev 拷贝 /lib/udev/devices 的静态设备节点到 /dev 目录. Udev守护进程开始运行,为所有连接到系统的设备收集来自内核的uevents. Udev守护进程解析uevent数据,并且对/etc/udev/rules.d中指定的规则进行匹配. 根据指定的规则为设备创建设备节点和符号链接. Udev守护进程读取/etc/udev/rules.d/*.rules 中的规则并且保存到内存里面. Udev接收接收inotify事件,如果某个规则发生了改变,读取这些改变并更新内存副本. udev通过NetLink注册内核的设备事件,当有设备插入/拔除时,udev就会收到通知,它会从事件中所带参数和sysfs中的信息,加载适当的驱动程序,创建dev下的设备节点,使设备处于可用的状态。具体流程如下: udev通过kernel收到一个uevent,若是移除设备的uevent,则删除/dev中相应的设备文件;若是一个添加设备的uevent,则在配置文件/etc/udev/udev.conf或/lib/udev/udev.conf中查找规则文件所在目录(默认规则目录是:/lib/udev/rules.d/,客户规则目录/etc/udev/rules/(优先级最高),

DBus入门实践(1): 基本概念

☆樱花仙子☆ 提交于 2019-12-06 07:50:17
基本概念 可以参考下面链接.或者是官方的教程. 1. linux,dbus示例 Knowing some basic things by example, 推荐: http://laokaddk.blog.51cto.com/368606/943133 http://laokaddk.blog.51cto.com/368606/943148/ 2. Documents Reference D-Bus Specification would give some basic overview of the concepts https://dbus.freedesktop.org/doc/dbus-specification.html DBUS可以完成1对1的IPC, 多对多的IPC, 多对多 需要daemon,和android中的service_manger类似,如同router. DBus的组成 DBus = 对象+消息+link+DbusDaemon 对象 特征 其中对象是 一个 处理消息的实体, 因此其实是 服务端server 对象中有一个或者多个接口 每个interface有一个或者多个method 每个method都是对具体消息的处理 所以最终落实到消息, 消息共有四种,包括了signal,见下面的说明. 对象的寻址用路径表示 路径 在多对多的IPC中

DBus 实现IPC的 配置 及流程 及 代码实现

强颜欢笑 提交于 2019-12-06 07:50:01
com.test.hello.service,安装到dbus系统目录下 [D-BUS Service] Name=com.test.hello Exec=/bin/false SystemdService=hello.service hello.service,安装到systemd下 [Unit] Description=hello [Service] Type=dbus BusName=com.test.hello ExecStart=/usr/bin/hello Restart=on-failure SuccessExitStatus=0 38 [Install] WantedBy=multi-user.target client调用代码 bool request_to_server() { GError *gerror = NULL; GDBusProxy *bproxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, NULL, "com.test.hello", "/com/test/hello", "com.test.hello", NULL, &gerror); if (NULL == bproxy) { printf ("g_bus_get_sync

dbus实例讲解1

落花浮王杯 提交于 2019-12-06 07:49:51
版权声明:本文为博主原创文章,未经博主允许不得转载。 目录 (?) [+] 1、dbus是什么东西? 网上有一篇叫“ D-Bus Tutorial ”的文章,流传较广。不少介绍dbus的资料,都引用了其中的段落。其实相对于这篇文章,我建议大家直接读“ D-Bus Specification ”,篇幅不算长,文字也不算枯燥。 D-Bus是针对桌面环境优化的IPC(interprocess communication )机制,用于进程间的通信或进程与内核的通信。最基本的D-Bus协议是一对一的通信协议。但在很多情况下,通信的一方是消息总线。消息总线是一个特殊的应用,它同时与多个应用通信,并在应用之间传递消息。下面我们会在实例中观察消息总线的作用。消息总线的角色有点类似与X系统中的窗口管理器,窗口管理器既是X客户,又负责管理窗口。 支持dbus的系统都有两个标准的消息总线:系统总线和会话总线。系统总线用于系统与应用的通信。会话总线用于应用之间的通信。网上有一个叫d-feet的 Python 程序,我们可以用它来观察系统中的dbus世界。 图1、由d-feet观察到的D-Bus世界 D-Bus是一个程序。它提供了API。但我们一般不会直接使用dbus的接口。dbus-glib是GTK版本的dbus接口封装。本文假设读者安装了dbus-glib,我安装的是dbus-glib-0.76

dbus-daemon使用技巧

冷暖自知 提交于 2019-12-06 07:49:07
转载时请注明出处和作者联系方式 文章出处:http://blog.csdn.net/jack0106 作者联系方式:冯牮 fengjian0106@yahoo.com.cn dbus-daemon是一个后台进程,负责消息的转发。它就像个路由器。最常见的基于dbus的程序也是符合C/S结构的。 比如我们自己写了两个程序,A和B,其中A是客户,B是服务。假设A要调用B的一个函数C,那么实际的消息流动方向是:A告诉dbus-daemon我要调用B的C函数,然后dbus-daemon则去调用B的C函数,如果C有返回值的话,B会把返回值告诉dbus-daemon,然后dbus-daemon再把返回值告诉A。由此可以看出,dbus-daemon是很关键的一个后台进程。 以ubuntu为例,通常情况下,会有两个dbus-daemon进程,一个是属于system的,一个是属于session的,这两个进程,都是在用户登录的时候由dbus-launch启动的。 大多数普通程序,都是使用session的dbus-daemon,默认情况下,A就是将消息发给了这个属于session的dbus-daemon。 但是在调试过程中,有时想看到一些更详细的信息,因此可以自己再启动一个dbus-daemon,现在就有一个问题,A的消息是流向了哪一个dbus-daemon? 其实dbus-daemon是有地址的

DBus学习(1)

有些话、适合烂在心里 提交于 2019-12-06 07:48:52
*引用本文请注明来自 blog.csdn.net/wtz1985 在LINUX系统下写开源代码的程序员,对DBUS应该是不会再陌生了。它的低时延和低消耗等优点吸引了很多人的目光,因为我们现在开发的平台,很多设计到DBUS这个通讯机制,所以我花了比较多的时间去熟悉它。通过这段时间的学习,把笔记也做一下,今天先介绍什么DBUS。 什么是DBUS? DBUS是实质上一个适用于桌面应用的进程间的通讯机制,即所谓的IPC机制。适合在同一台机器,不适合于INTERNET的IPC机制。DBUS不是一个为所有可能的应用的通用的IPC机制,不支持其他IPC机制的很多特性。DBUS提供了一个低时延、低消耗的IPC通讯,因为它采用了二进制的数据交换协议,不需要转换成文本化的数据进行交换,DBUS提供了面向多重对象系统的包装,可以在原有的面向对象的应用框架下使用DBUS,不需要学习新的概念和规范等。 DBUS是支持一对一和多对多的对等通讯,在一对一的直接通讯时,两个应用程序连接在一起,这是最简单的工作方式。在多对多的通讯时,这就需要一个叫DBUS后台的角色去分转,一个应用程序发消息给另外一个应用程序,先到达后台,再让后台将信息发送到目的应用程序。在这里DBUS后台就充当着一个路由器的角色。 DBUS包含了系统更新通知,如插入新设备通知、新软件安装通知等,和桌面应用的交互协作能力