Problem Description
Laptop: Lenovo Legion 5 15ARH05 (AMD Ryzen 7 4800H + NVIDIA GTX 1650)
OS: Fedora 43 Workstation (GNOME 49, Wayland)
Kernel: 6.18.5 (also affects earlier versions)
Symptoms:
- Screen brightness stuck at maximum
- No brightness slider in GNOME Settings → Displays
- Fn+F5/F6 brightness keys do nothing
/sys/class/backlight/directory is empty or contains non-functionalacpi_video0
Root Cause
This laptop has four separate issues that must ALL be fixed:
- BIOS graphics mode - Must be set to Switchable Graphics (not Discrete)
- AMDGPU backlight bug - Driver tries AUX backlight but hardware uses PWM (GitLab issue #1438)
- Nouveau driver conflict - Blocks AMDGPU from registering backlight
- Module loading - AMDGPU doesn’t auto-load after nouveau blacklist
Complete Solution
Step 1: Configure BIOS
Purpose: Enable AMD iGPU to drive the internal display
- Reboot and press F2 to enter BIOS
- Navigate to: Configuration → Graphics Device
- Change from “Discrete Graphics” to “Switchable Graphics”
- Press F10 to save and exit
Note: This allows the AMD integrated GPU to control the display and backlight. Without this, AMDGPU won’t initialize properly.
Step 2: Blacklist Nouveau Driver
Purpose: Prevent nouveau from conflicting with AMDGPU backlight registration
Create the blacklist file:
bash
sudo nano /etc/modprobe.d/blacklist-nouveau.conf
Add these two lines:
text
blacklist nouveau
options nouveau modeset=0
Save and exit (Ctrl+O, Enter, Ctrl+X)
Note: Your NVIDIA GPU will still work via NVK (nouveau Vulkan driver) for 3D rendering. This only removes the display driver that conflicts with AMDGPU.
Step 3: Force AMDGPU to Load at Boot
Purpose: Ensure AMDGPU loads automatically
Run these commands:
bash
echo "amdgpu" | sudo tee /etc/modules-load.d/amdgpu.conf
sudo dracut --force --add-drivers "amdgpu"
The first command tells systemd to load the module. The second rebuilds initramfs to include AMDGPU.
Step 4: Add Kernel Parameter
Purpose: Force AMDGPU to use PWM backlight instead of broken AUX
Edit GRUB configuration:
bash
sudo nano /etc/default/grub
Find the line starting with GRUB_CMDLINE_LINUX= and add amdgpu.backlight=0:
text
GRUB_CMDLINE_LINUX="rhgb quiet amdgpu.backlight=0"
Save the file, then regenerate GRUB config:
bash
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Technical note: This works around a hardware bug where the panel reports AUX backlight support but is actually wired for PWM control.
Step 5: Reboot
bash
sudo reboot
Verification
After reboot, verify everything is working:
Check backlight device exists:
bash
ls /sys/class/backlight/
Expected output: amdgpu_bl0 (or amdgpu_bl1)
Verify kernel parameter is active:
bash
cat /proc/cmdline
Should include: amdgpu.backlight=0
Confirm AMDGPU is loaded:
bash
lsmod | grep amdgpu
Should show amdgpu and related modules
Verify nouveau is NOT loaded:
bash
lsmod | grep nouveau
Should return nothing (no output)
Test brightness control:
- GNOME Settings → Displays → Brightness slider should appear and work
- Fn+F5 (decrease) and Fn+F6 (increase) should control brightness
- Manual test:
bash
echo 128 | sudo tee /sys/class/backlight/amdgpu_bl0/brightness
Screen should dim immediately
Troubleshooting
Issue: Still no backlight device after all steps
Check BIOS setting again:
- Enter BIOS (F2 at boot)
- Verify Graphics Device = “Switchable Graphics” (NOT Discrete)
Verify all commands ran successfully:
bash
# Check blacklist exists
cat /etc/modprobe.d/blacklist-nouveau.conf
# Check module load config
cat /etc/modules-load.d/amdgpu.conf
# Check kernel command line
cat /proc/cmdline | grep amdgpu.backlight
Issue: Brightness slider works but screen doesn’t change
Rare, but try changing the parameter value:
bash
sudo nano /etc/default/grub
# Change amdgpu.backlight=0 to amdgpu.backlight=1
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot
Why This Fix Works
The Legion 5 15ARH05 has hybrid graphics (AMD iGPU + NVIDIA dGPU). In Linux:
- BIOS Switchable mode routes the internal display to AMD iGPU
- Blacklisting nouveau prevents driver conflicts over backlight ownership
- Forcing AMDGPU load ensures the AMD driver initializes at boot
amdgpu.backlight=0works around a hardware bug where the panel incorrectly reports AUX backlight support
All four fixes are required. Partial solutions won’t work.
Affected Hardware
This fix applies to:
- Lenovo Legion 5 15ARH05 (Ryzen 4000 series + GTX 1650/1650Ti/1660Ti)
- Lenovo IdeaPad Gaming 3 15ARH05 (same platform)
- Other Renoir-based laptops with AMD+NVIDIA hybrid graphics
References
- GitLab freedesktop.org: AMDGPU Issue #1438 - Renoir backlight bug
- Arch Wiki: Backlight troubleshooting
- Tested on: Fedora 43, Kernel 6.18.5, BIOS EUCN41WW
Credit
Solution developed through community contributions:
- AMDGPU developers (kernel parameter fix)
- Arch Linux forums (BIOS discovery)
- Fedora Discussion users (nouveau conflict identification)
- Multiple Legion 5 owners across distributions
FINAL NOTE
Hope this helps fix your brightness/backlight issue.
Posting this mostly to document what worked for me so others can get to a working setup faster. I did use AI as a helper to speed up the troubleshooting (searching ideas, narrowing suspects), but I didn’t apply anything blindly, googled it and verified each change on the actual machine.
If you’re following this, don’t just assume it worked because some setting changed. Check the basics as you go:
cat /proc/cmdlineto confirm your kernel parameters are really applied.lsmod | egrep 'amdgpu|nouveau|nvidia'to confirm the right drivers are loaded (and the wrong ones aren’t).ls /sys/class/backlightto confirm a real backlight device exists; if it’s empty, GNOME can’t show a slider.- Finally, test that the screen actually dims/brightens (not just that a number changes).
Think of this as a signpost + checkpoints, not a perfect guide. Use the checks to adapt it to your laptop/kernel as needed.