How to fix heating issue in Linux with Switchable Graphics

Fix Switchable Graphics (ATI+Intel or Nvidia+Intel) on Linux

If your laptop is heating up or slowing down due to both GPUs running, this might help.

  1. Open terminal and enter superuser mode:
su -
  1. Check if both GPUs are recognized:
lspci | grep VGA
  1. Check if vga_switcheroo is enabled:
dmesg | grep vga

Note: Closed-source drivers may disable this feature.

  1. Check which GPU is active:
cat /sys/kernel/debug/vgaswitcheroo/switch

Example output:

0:DIS: :Pwr:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0
  • IGD = integrated Intel GPU
  • DIS = discrete ATI/Nvidia GPU
  • + = GPU in use
  • Pwr = powered on
  1. Switch off the discrete GPU to reduce heat:
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
  1. Make the change permanent:
  • Edit the blacklist file to prevent the discrete driver from loading:
vim /etc/modprobe.d/blacklist.conf

Add one line depending on your GPU:

  • ATI:
blacklist radeon
  • Nvidia:
blacklist nouveau
  1. Create a script to run on boot:
vim /etc/rc.d/rc.local

Add these lines:

#!/bin/bash
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

Make it executable:

chmod +x /etc/rc.d/rc.local
  1. Reboot.
  2. Verify the discrete GPU is off:
cat /sys/kernel/debug/vgaswitcheroo/switch

Expected output:

0:DIS: :Off:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0

Now your laptop should be cooler, more responsive, and using only the integrated GPU.