Hello,
recently i bought a Lenovo Legion Slim 5 16 laptop which comes with an:
AMD Rzyzen 7 8845HS CPU
Nvidia RTX 4070 GPU
Most use cases for this PC, when it comes to work done on Fedora operating system, are software development tasks with no need for the dGPU to be used. After the initial installation, I came across an issue related to brightness adjustment which is very common when it comes to those laptops and Linux in general. Adjusting the brightness via the button shortcut caused the system to fail and turn off completely. After updating the kernel to the latest 6.11 version provided in Fedora 41 the crashing stopped, but I’m still unable to adjust the brightness. I tried a lot of options, like using amdgpu.backlight=0 and various combinations of acpi_brightness boot flags but all failed. It’s worth saying that at some point I was able to adjust the brightness by manually writing to the /sys/class/backlight files. The second thing is that I have not explicitly installed any Nvidia drivers. The laptop runs with the GPUs in hybrid mode.
Im wondering if it is possible to somehow disable the usage of the dGPU and completely rely on the AMD iGPU. I believe I saw a similar solution in a different ticket, where the built-in Nouveau drivers were blacklist-ed to prevent the Nvidia dGPU to be used by the system.
Another thing that I came across which I believe is more related to the CPU is a huge battery drain. At some point in time, I read about the CPU in question, that it is designed to run in some kind of battery-efficiency mode which causes it to drain less battery at the cost of performance
The system can drain like 10% of the battery at idle, which is very strange considering this laptop can run about ~4h of the battery without the battery-saving mode on Win11.
Use powertop to figure out what is draining your battery. On idle usage, all cpu cores should be in low (~C5-C6) states, if not, you can check what programs/devices drain power. Powertop - ArchWiki. You can also check what CPU governor is running, in Fedora Gnome that’s controllable from the Settings in GUI.
The Arch Wiki has a great article on the finer points of getting backlight to work, it’s unusual to say the least that backlight button kills the system Backlight - ArchWiki
You can sometimes disable the dGPU in the UEFI/Bios
Having the latest firmware also helps with getting the most out of your battery (and fixing stuff like backlight), but be careful, while Fedora has fwupd to do this Package fwupd/fwupd-fedora · GitHub , you have to be careful what firmware is update (and have a backup and usb boot drive just in case), if the UEFI gets updated that has (for me) resulted in getting GRUB unlisted etc, so please be careful. Checking if there is newer firmware can be a good first step.
In most cases, updating the BIOS (either legacy or uefi) resets the bios to factory defaults. Users should always be prepared to redo any changes they may have made in the past when bios is updated.
When it comes to the backlight control issue, I managed to fix the problem! I removed the amdgpu.backlight=0 boot flag and replaced it with acpi_backlight=native (the video and vendor parameter for this argument disable the backlight completely).
I attempted to diagnose the power consumption problem. Powertop version and some other info as a reminder:
PowerTOP Version - 2.15 ran at Sat Feb 22 12:29:24 2025
Kernel Version - Linux version 6.12.13-200.fc41.x86_64
System Name - LENOVOLNVNB161216Legion Slim 5 16AHP9
CPU Information - 16 AMD Ryzen 7 8845HS w/ Radeon 780M Graphics
OS Informatio - Fedora release 41 (Forty One)
The powertop report showed that 38% is pm_runtime_work and 32% is nouveau_display_hpd_work in the “Top 10 Power Consumers”. Most events came from hrtimer_wakup and tick_nohz_handler.
The “Processor Idle State Report” showed:
POLL 0.2%
C1 0.1%
C2 0.7%
C3 96.6%
I saw in the task manager that one of the cores in around 85-90% all the time.
As far as I understand it, the dGPU should only be used when a software that requires such computing power is running. The system was idling with a single terminal window open when powertop was generating its report.
I attempted to disable the dGPU by adding a nouveau.modeset=0 kernel parameter. I want to point out that I’m not sure if it is the correct way, because I still see the Nvidia entry when calling lspci, but the nouveau entry from powertop was gone when i checked the power consumption.
The biggest downside is that now the external monitor is not working (which also tells me that I successfully disabled the dGPU). Is there a way of keeping the nouveau driver enabled to make the dGPU work when i want to plug in an external monitor, but keep it disabled when it is not in usage? I also want to point out that all the previous stuff that I did was without an external monitor plugged in, so there was no reason for the dGPU being invoked.
I know, you are probably right. The thing is, I want to stick with the open-source alternative and the solution seems to be within reach…
I came across this article which speaks about the issue of dGPU not turning off. It may be the thing that I’m looking for. I see the example being dedicated for X11 with the usage of xrandr, I’m wondering what’s the alternative for Wayland when it comes to checking active VGA outputs to select which one to disable.
One of the issues with Wayland + Nvidia is that power control of the GPU can’t (last I checked anyways) be controlled without nvidia-settings, and that is (or was) not completely ported for Wayland. In X11 it does work. If you have both (e.g. switch at gdm login), you could try that (but unsure if it would work without the proprietary driver. My recollection of this is also dated to a year or so ago when I gave up on the proprietary driver.