Your Linux laptop is bleeding battery because the GPU never sleeps
I learned this the hard way on a flight from New York to London. My ThinkPad P15 usually gets 7 hours. Thirty minutes in, I was already at 85 %. By hour two, the guy next to me was watching Netflix on his Mac while I hunted for outlets.
The culprit? My NVIDIA Quadro was sitting wide awake, burning 18 watts to do… nothing.
Why Linux keeps your graphics card “on”
Windows laptops toggle the GPU like a light switch. Linux hands you the wires and says “figure it out.” Most distros leave the discrete card in the highest power state unless you tell it to chill.
- Idle NVIDIA card: 12–20 W gone.
- Idle AMD card: 8–15 W gone.
- That’s 3–4 extra hours of battery you can get back with two text files.
I measured it. Same laptop, same brightness, same browser tabs. With the GPU snoozing, I jumped from 4 h 12 min to 8 h 39 min. No magic—just udev rules.
Step-by-step: write the rules once, forget about it
1. Spot your GPU’s address
lspci -nn | grep -Ei 'VGA|3D'
Look for the line that does not say “Intel.” For me it’s:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117GLM [Quadro T1000 Mobile] [10de:1fbc]
Remember the 01:00.0 and 10de parts.
2. Create the rule file
sudo nano /etc/udev/rules.d/80-gpu-pm.rules
NVIDIA users paste:
# Auto-suspend the GPU
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", ATTR{power/control}="auto"
AMD users paste:
# Force lowest power level
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x1002", ATTR{class}=="0x030000", RUN+="/bin/sh -c 'echo low > /sys/class/drm/card*/device/power_dpm_state'"
Don’t blindly copy the card*—run ls /sys/class/drm and use the number that matches your discrete GPU.
3. Reload and check
sudo udevadm control --reload-rules && sudo udevadm trigger
Then verify:
cat /sys/bus/pci/devices/0000:01:00.0/power/control
If it says auto, you’re done.
Quick wins after the reboot
Here’s what I noticed on the same machine:
- Fans stopped spinning at 54 °C idle—total silence.
- Powertop reported an average drop from 24 W to 9 W.
- Chrome scrolling still smooth; the Intel iGPU handles it fine.
One warning: if you game or CUDA-render, the card will wake up automatically. When you close Blender, it goes back to sleep 30 seconds later. No extra clicks.
Copy-paste cheatsheet
Save this somewhere:
# Find GPU lspci -nn | grep -Ei 'VGA|3D' # Check current power state cat /sys/bus/pci/devices/0000:01:00.0/power/control # Quick on/off test (NVIDIA) sudo nvidia-smi -pm 0 sudo nvidia-smi -i 0 -rgc
That’s it. Two minutes of editing, hours of extra battery. I haven’t carried a charger on day trips since.







