首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用udev和D总线改变USB设备

用udev和D总线改变USB设备
EN

Ask Ubuntu用户
提问于 2011-02-24 20:17:40
回答 1查看 4.7K关注 0票数 6

我试图获得Ubuntu10.10中当前插入USB设备的列表,并监视发生的更改,比如使用udev和D总线插入或退出设备。

我对用D总线编程相当陌生。我看到了一个例子:"Linux:如何检测usb键盘是否已插入和拔出“。问题是它使用HAL,我知道HAL被废弃了。

我找到了一些工作代码,但它只适用于存储设备,如USB棒、媒体播放器或CD-ROM驱动器。我想要所有的东西:鼠标,键盘,USB摄像头,充电器,任何连接到USB上的东西。

如何侦听任何USB设备插头和拔插头的D总线事件?

这基本上就是我现在拥有的(也是):

代码语言:javascript
代码运行次数:0
运行
复制
import dbus
import gobject
from dbus.mainloop.glib import DBusGMainLoop

def device_added_callback(device):
    print 'Device %s was added' % (device)

def device_changed_callback(device):
    print 'Device %s was changed' % (device)

#must be done before connecting to DBus
DBusGMainLoop(set_as_default=True)

bus = dbus.SystemBus()

proxy = bus.get_object("org.freedesktop.UDisks", 
                       "/org/freedesktop/UDisks")
iface = dbus.Interface(proxy, "org.freedesktop.UDisks.Device")

devices = iface.get_dbus_method('EnumerateDevices')()

print '%s' % (devices)

#addes two signal listeners
iface.connect_to_signal('DeviceAdded', device_added_callback)
iface.connect_to_signal('DeviceChanged', device_changed_callback)

#start the main loop
mainloop = gobject.MainLoop()
mainloop.run()
EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2011-02-24 22:42:20

我对DBus或udev没有太多的经验,但是比德夫看起来很有希望。

票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/27948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档