@Steve, You are absolutely right on all your points. I have 2 related to the bug udi: 1) Nvidia card pci udi = '/org/freedesktop/Hal/devices/pci_10de_1d8' info.linux.driver = 'nvidia' (string) info.parent = '/org/freedesktop/Hal/devices/pci_8086_27a1' (string) info.product = 'G72M [GeForce Go 7400]' (string) info.subsystem = 'pci' (string) info.udi = '/org/freedesktop/Hal/devices/pci_10de_1d8' (string) info.vendor = 'nVidia Corporation' (string) linux.hotplug_type = 2 (0x2) (int) linux.subsystem = 'pci' (string) linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0' (string) pci.device_class = 3 (0x3) (int) pci.device_protocol = 0 (0x0) (int) pci.device_subclass = 0 (0x0) (int) pci.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0' (string) pci.product = 'G72M [GeForce Go 7400]' (string) pci.product_id = 472 (0x1d8) (int) pci.subsys_product_id = 33263 (0x81ef) (int) pci.subsys_vendor = 'Sony Corporation' (string) pci.subsys_vendor_id = 4173 (0x104d) (int) pci.vendor = 'nVidia Corporation' (string) pci.vendor_id = 4318 (0x10de) (int) 2) the backlight udi = '/org/freedesktop/Hal/devices/computer_backlight' info.capabilities = {'laptop_panel'} (string list) info.category = 'laptop_panel' (string) info.interfaces = {'org.freedesktop.Hal.Device.LaptopPanel'} (string list) info.parent = '/org/freedesktop/Hal/devices/computer' (string) info.product = 'Generic Backlight Device' (string) info.subsystem = 'backlight' (string) info.udi = '/org/freedesktop/Hal/devices/computer_backlight' (string) laptop_panel.access_method = 'sony-nvidia' (string) laptop_panel.num_levels = 18 (0x12) (int) linux.hotplug_type = 2 (0x2) (int) linux.subsystem = 'backlight' (string) org.freedesktop.Hal.Device.LaptopPanel.method_argnames = {'brightness_value', ''} (string list) org.freedesktop.Hal.Device.LaptopPanel.method_execpaths = {'hal-system-lcd-set-brightness', 'hal-system-lcd-get-brightness'} (string list) org.freedesktop.Hal.Device.LaptopPanel.method_names = {'SetBrightness', 'GetBrightness'} (string list) org.freedesktop.Hal.Device.LaptopPanel.method_signatures = {'i', ''} (string list) The first one (nvidia pci) is used in 10-sony-laptop-brightness.fdi to match the video card by its primary_video.product. The second one (the backlight) is used in 10-laptop-panel-mgmt-policy.fdi to add necessary config. In the latter fdi the following matching rules are used: According to the rules it should match the second udi (the backlight),and as the udi does not contain "linux.sysfs_path" then necessary attributes should be added. But on my (and most likely benste's) config it does not. May be there is a bug in the process of rules being applied? But if I change the last matching rule to it works! Why do we need to check if "linux.sysfs_path" exists to apply the config? Can we check for "laptop_panel.access_method"=sony-nvidia, as we make this assingment in 10-sony-laptop-brightness.fdi? I guess the rule should look like this (I am not an expert, but the complete beginner): Your thoughts? P.S. I've just checked the above rule. It does not work. But the following works!