Ваш вызов метода DBus не выполнен из-за политики доступа. Вероятно, потому, что вы вызвали метод без указания какого-либо интерфейса. Похоже, ошибка в скрипте, который вы пытались использовать (методы DBus всегда должны вызываться через интерфейс).
Попробуйте заменить:
def udi_to_device(self, udi):
return self.bus.get_object("org.freedesktop.Hal", udi)
С:
def udi_to_device(self, udi):
obj = self.bus.get_object("org.freedesktop.Hal", udi)
return dbus.Interface(obj, dbus_interface='org.freedesktop.Hal.Device')
Кстати: HAL теперь устарел, вам, вероятно, стоит перейти на udisks. Смотри http://www.freedesktop.org/wiki/Software/hal