USB dispositivos UDev y D-BUS

Estoy tratando de obtener una lista de los dispositivos USB actualmente conectados en Ubuntu 10.10 y monitorear los cambios que ocurren, como los dispositivos que se conectan o desconectan mediante UDev y D-BUS. Soy bastante nuevo en la programación usando D-BUS. Vi un ejemplo:Linux: Cómo detectar si el teclado usb está enchufado y desenchufado solo que uno usa HAL y sé que HAL está en desuso. Encontré un código de trabajo, lo modifiqué un poco, solo que no funciona para ningún dispositivo, solo dispositivos de almacenamiento como memorias USB, reproductores multimedia o dispositivos de CD-ROM. Quiero todo lo relacionado con ratones, teclados, cargadores de cámaras USB, todo lo que esté conectado al USB. Quiero que mi programa lo sepa. Esto es básicamente lo que tengo http: //moserei.de/2010/01/08/accessing-devicekit-with-dbus-and-python.htm):

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()

Cualquier ayuda sería apreciada. Gracias de antemano, Calota Romeo

Respuestas a la pregunta(2)

Su respuesta a la pregunta