Bug 465256

Summary: Powerdevil not enabling external monitor brightness controls despite ddcutil being detected
Product: [Plasma] Powerdevil Reporter: Kyle Devir <kyle.devir>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: REPORTED ---    
Severity: normal CC: jpetso, kde, me, nate, postix
Priority: NOR    
Version: master   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=431994
Latest Commit: Version Fixed In:

Description Kyle Devir 2023-02-04 07:37:56 UTC
Powerdevil isn't enabling external monitor brightness controls in the Battery applet despite ddcutil being detected during compile time. ddcutil detects my external monitor and I can change its brightness values with ddcutil manually.

PowerDevil service starts without issue, though there are these odd errors in journalctl:

Feb 04 17:26:58 archlinux org_kde_powerdevil[483180]: org.kde.powerdevil: org.kde.powerdevil.backlighthelper.brightness failed
Feb 04 17:26:58 archlinux org_kde_powerdevil[483180]: org.kde.powerdevil: The profile  "AC" tried to activate "BrightnessControl" a non-existent action. This is usually due to an installation problem, a configuration problem, or because the action is not supported
Comment 1 Kyle Devir 2023-02-10 09:06:03 UTC
Was testing Powerdevil again, and realized my previous comment's log output may not have been sufficient:

Feb 10 19:04:08 archlinux systemd[2190]: Starting Powerdevil...
Feb 10 19:04:08 archlinux libddcutil[31409]: Initializing.  ddcutil version 1.3.0
Feb 10 19:04:08 archlinux libddcutil[31409]: Library initialization complete.
Feb 10 19:04:08 archlinux dbus-daemon[708]: [system] Activating service name='org.kde.powerdevil.discretegpuhelper' requested by ':1.259' (uid=1000 pid=31409 comm="/run/media/valmar/DataSSD/KDE/usr-20230204-1700/li") (using servicehelper)
Feb 10 19:04:08 archlinux dbus-daemon[708]: [system] Successfully activated service 'org.kde.powerdevil.discretegpuhelper'
Feb 10 19:04:08 archlinux dbus-daemon[708]: [system] Activating service name='org.kde.powerdevil.chargethresholdhelper' requested by ':1.259' (uid=1000 pid=31409 comm="/run/media/valmar/DataSSD/KDE/usr-20230204-1700/li") (using servicehelp>
Feb 10 19:04:08 archlinux dbus-daemon[708]: [system] Successfully activated service 'org.kde.powerdevil.chargethresholdhelper'
Feb 10 19:04:08 archlinux dbus-daemon[708]: [system] Activating service name='org.kde.powerdevil.backlighthelper' requested by ':1.259' (uid=1000 pid=31409 comm="/run/media/valmar/DataSSD/KDE/usr-20230204-1700/li") (using servicehelper)
Feb 10 19:04:08 archlinux backlighthelper[31441]: org.kde.powerdevil: no kernel backlight interface found
Feb 10 19:04:08 archlinux dbus-daemon[708]: [system] Successfully activated service 'org.kde.powerdevil.backlighthelper'
Feb 10 19:04:08 archlinux org_kde_powerdevil[31409]: org.kde.powerdevil: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supported by the kernel for this hardware"
Feb 10 19:04:08 archlinux org_kde_powerdevil[31409]: org.kde.powerdevil: org.kde.powerdevil.backlighthelper.brightness failed
Feb 10 19:04:08 archlinux systemd[2190]: Started Powerdevil.
Feb 10 19:04:08 archlinux org_kde_powerdevil[31409]: org.kde.powerdevil: The profile  "AC" tried to activate "BrightnessControl" a non-existent action. This is usually due to an installation problem, a configuration problem, or because the>
Feb 10 19:04:08 archlinux org_kde_powerdevil[31409]: org.kde.powerdevil: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supported by the kernel for this hardware"
Comment 2 Jakob Petsovits 2024-05-04 14:54:35 UTC
Based on these logs, no backlight interface was found which means that PowerDevil would use libddcutil displays. The fact that the "BrightnessControl" action is reported as non-existent probably means that no display was added to PowerDevil's list even after querying libddcutil.

I don't know why your monitor would not show up in the list. Plasma 6.1 will have a lot of improvements on the libddcutil side, including better handling of display connect/disconnect events and more informative logs. But it's not out yet. Plasma 6.0 probably still behaves substantially the same as a year ago when this was reported.

You could try getting more detailed PowerDevil logs by following the instructions in the new README: https://invent.kde.org/plasma/powerdevil/-/blob/master/README.md

That could at least confirm that no displays were added to the list, but I can't guarantee that the logs will provide many further insights than that.