Fedora 43 on Framework 13 AMD AI 300 brightness keys

Which Linux distro are you using?
Fedora KDE Plasma

Which release version?
43

Which kernel are you using?
6.19.10-200.fc43.x86_64

Which BIOS version are you using?
03.05

Which Framework Laptop 13 model are you using?
AMD Ryzen™ AI 300 Series

I cannot adjust the brightness with the keyboard shortcuts (F7, F8, with or without fn lock). After going through many threads here is the current state:

  • Automatic brightness adjustment works (if enabled – I currently have it disabled).

  • I can adjust both with the brightness slider and with brightnessctl

  • I have tried blacklisting the hid_sensor_hub module lsmod | rg ^hid_sensor shows nothing and cat /proc/cmdline contains the module blacklist

  • Brightness keys register with libnput:

    sudo libinput debug-events
    (...)
    -event5   KEYBOARD_KEY                 +0.000s  KEY_BRIGHTNESSUP (225) pressed
    event5   KEYBOARD_KEY                 +0.135s  KEY_BRIGHTNESSUP (225) released
    event5   KEYBOARD_KEY                 +0.576s  KEY_BRIGHTNESSDOWN (224) pressed
    event5   KEYBOARD_KEY                 +0.685s  KEY_BRIGHTNESSDOWN (224) released
    
    
  • Brightness keys register with evtest for FRMW0004:00 32AC:0006 Consumer Control

  • I read [SOLVED-GUIDE] 12th gen not sending XF86MonBrightnessUp / Down - #67 by devkev post but I don’t think it’s applicable in my case. I have the same three i2c-FRMW0004:00 i2c-FRMW0005:00 i2c-PIXA3854:00 under both /sys/bus/i2c/devicesand /sys/bus/i2c/drivers/i2c_hid_acpi.

  • All other control keys (fn+Fxx) work.

  • Brightness keys used to work, however I have been using the laptop docked with external display, so I don’t know exactly when it stopped working.

I feel like I have exhausted my options so I would appreciate any help here.

It’s a KDE Plasma 6 thing. I’ve not looked into it beyond using the sliders in the ‘Brightness and Colour’ notification tray app or the ‘Display Configuration’ item in System Settings.

I’ve seen this recently with a x11 desktop environment.

Couple days ago I reset the bios to defaults and it’s been fine ever since. I’ve wondered if maybe the bios update I ran a couple weeks ago caused it?

Thank you @Kenny_Lewis . I only had a little time too look into it today. But checking with

systemctl --user status plasma-powerdevil
# and looking at
journalctl --user -eu plasma-powerdevil

Revealed that ddcutil could access i2c (permission issues). I did what ddcutil environment suggested and added my user to i2c group and set udev rules for i2c devices:

echo 'SUBSYSTEM=="i2c-dev", GROUP="i2c", MODE="0660"' > /etc/udev/rules.d/99-i2c.rules

The permission problem is resolved, but I still cannot control brightness with the key shortcuts. I wonder if there are further clues in the two excerpts below.

~ ❯ ddcutil detect
Invalid display
   I2C bus:  /dev/i2c-3
   DRM_connector:           card1-eDP-1
   EDID synopsis:
      Mfg id:               BOE - BOE
      Model:                NE135A1M-NY1
      Product code:         3252  (0x0cb4)
      Serial number:
      Binary serial number: 0 (0x00000000)
      Manufacture year:     2023,  Week: 52
   This monitor does not support DDC/CI. (I2C slave address x37 is unresponsive.)

Invalid display
   I2C bus:  /dev/i2c-12
   DRM_connector:           card1-eDP-1
   EDID synopsis:
      Mfg id:               BOE - BOE
      Model:                NE135A1M-NY1
      Product code:         3252  (0x0cb4)
      Serial number:
      Binary serial number: 0 (0x00000000)
      Manufacture year:     2023,  Week: 52
   This monitor does not support DDC/CI. (I2C slave address x37 is unresponsive.)

~ ❯ journalctl --user --no-pager --no-hostname -o short -u plasma-powerdevil.service | cut -d' ' -f4-
systemd[1992]: Starting plasma-powerdevil.service - Powerdevil...
org_kde_powerdevil[7373]: Starting libddcutil. library built Sep  5 2025 at 00:00:00. stdout_stderr_redirected=true
org_kde_powerdevil[7373]: Initializing libddcutil.  ddcutil version: 2.2.1, shared library: /usr/lib64/libddcutil.so.5.3.0
org_kde_powerdevil[7373]: [  7373] Options passed from client:
org_kde_powerdevil[7373]: [  7373] Applying combined libddcutil options:
org_kde_powerdevil[7373]: [  7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: [  7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: [  7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: [  7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: [  7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: [  7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: Library initialization complete.
org_kde_powerdevil[7373]: Watching for DPMS state changes unimplemented
org_kde_powerdevil[7373]: [  7373] Watching for DPMS state changes unimplemented
org_kde_powerdevil[7373]: [  7373] Watching for display connection changes, resolved watch mode = Watch_Mode_Xevent, poll loop interval = 100 millisec
org_kde_powerdevil[7373]: [  7373]                                          extra_stabilization_millisec: 0,  stabilization_poll_millisec: 100
org_kde_powerdevil[7373]: [  7373] libddcutil recheck thread 0x562c441619a0 started
org_kde_powerdevil[7373]: [  7373] libddcutil watch thread 0x562c44152f70 started
org_kde_powerdevil[7373]: [  7578] (dw_recheck_displays_func) Recheck interval: Sleeping for 200 milliseconds
org_kde_powerdevil[7373]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supported by the kernel for this hardware"
systemd[1992]: Started plasma-powerdevil.service - Powerdevil.
org_kde_powerdevil[7373]: Handle button events action could not check for screen configuration
org_kde_powerdevil[7373]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supported by the kernel for this hardware"
org_kde_powerdevil[7373]: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: App info not found for 'org.kde.org_kde_powerdevil'")
org_kde_powerdevil[7373]: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: App info not found for 'org.kde.org_kde_powerdevil'")
org_kde_powerdevil[7373]: org.kde.powerdevil.chargethresholdhelper.getconservationmode failed "Battery conservation mode is not supported"
org_kde_powerdevil[7373]: org.kde.powerdevil.chargethresholdhelper.getconservationmode failed "Battery conservation mode is not supported"

@cmemory I also wonder if that’s the case but I’m currently not willing to revert to the previous version.

Not revert back to a previous version. Merely restore defaults of the existing installed version.

Hi! I’m actually encountering the same issue on my arch install!

I thought the source culprit might have been iio-sensor-proxy, but uninstalling the package and rebooting hasn’t helped. Neither has blacklisting the hid_sensor_hub kernel module with a config file in /etc/modprobe.d/ with mkinitcpio rebuild.

Another tidbit of interesting information is that running evtest (even with the –-grab flag) is not reporting the key press. Input device is separate for brightness keys. It is being detected.

While I did have the button working for a second, I’ve been setting this machine up for the first time. Because of that, I don’t have a good log of changes, so unfortunately I can’t say what package broke the functionality on my end.

I’ll double check my pacman logs to see if there’s anything crazy that broke this, but it seems pretty unobvious :frowning:

A small update: I can adjust the brightness of both my laptop screen and an external monitor if I’m using an external keyboard (connected via Bluetooth). evtest and libinput debug-events show the same keys being pressed as when using the laptop keyboard.

@cmemory I will try reverting BIOS to defaults when I get the chance.

I’m having the symptom again. I noticed this time that I can use the left Alt key instead of the function key with F7,8. Plus, now it’s back to normal a couple hrs later. I must have been able to trigger it to enable again but not sure how I did it. Will pay closer attention to my keypresses next time.

Got it working. Not sure why the device is disabled, but running

qdbus6 org.kde.KWin /org/kde/KWin/InputDevice/event6 org.kde.KWin.InputDevice.enabled true

will re-enable the brightness keys

That worked! With two small differences: It’s event5 using qdbus-qt6 for me.

Same issue on KDE Neon 24.04 (latest stable plasma release). Unfortunately none of the provided fixes work.

also showing up on event5 but the enable command with qdbus6 does not fix anything

event5 KEYBOARD_KEY +0.339s KEY_BRIGHTNESSUP (225) pressed
event5 KEYBOARD_KEY +0.385s KEY_BRIGHTNESSUP (225) released
event5 KEYBOARD_KEY +0.636s KEY_BRIGHTNESSDOWN (224) pressed
event5 KEYBOARD_KEY +0.703s KEY_BRIGHTNESSDOWN (224) released

turns out to be caused by a package incompatibility and was resolved with a apt update/upgrade where ambient light sensor and keyboard brightness sensors were not working (likely a recent issue with plasma 6.6.0’s new AMS support)