To exclusively use the integrated GPU on Ubuntu 24.04, you must disable the discrete GPU driver in the kernel boot parameters rather than using xrandr, which only manages display outputs. For NVIDIA systems, append nouveau.modeset=0 or blacklist the nvidia module to prevent the system from loading drivers for the dedicated card. This ensures all rendering tasks fall back to the Intel or AMD integrated graphics hardware.
Why xrandr Cannot Disable GPUs
It is a common misconception that thexrandr command can be used to shut down or disable a discrete graphics processing unit (GPU). The tool xrandr is strictly an interface for the RandR extension of the X Window System. Its primary function is to configure display outputs, such as monitors, projectors, and TVs, connected to the graphical server. When you run xrandr --output HDMI-1 --off, you are telling the display server to stop sending video signals to that specific physical port. You are not powering down the hardware responsible for generating those signals.
The actual rendering work happens within the GPU's VRAM and compute units. Even if you disable every output port via xrandr, the discrete GPU remains active, powered on, and potentially drawing electricity. It continues to initialize its drivers and maintain its state in memory. If your goal is to save power, reduce heat, or force the system to rely solely on the integrated graphics for performance consistency, manipulating display ports is technically insufficient. You need to prevent the operating system from loading the driver for the discrete card entirely.
For more details on managing display configurations in Ubuntu, see Ubuntu 24.04 LTS Freezes Boot (Try Install & Safe Graphics).
Identifying Your Discrete GPU
Before modifying system settings, you must confirm that your system has a discrete GPU and identify its type. Most modern laptops with "switchable graphics" feature an Intel or AMD integrated GPU alongside an NVIDIA or AMD discrete GPU. Open a terminal and run the following command to list all PCI devices related to graphics:lspci | grep -i vga
lspci | grep -i 3d
lspci | grep -i display
This output will typically show two entries. One will correspond to your Integrated Graphics Processor (often labeled as VGA compatible controller with Intel or AMD), and the other will be the Discrete GPU (often labeled as 3D controller or VGA compatible controller with NVIDIA or AMD). Note the exact model names. If you have an NVIDIA card, the Linux open-source driver is called nouveau, and the proprietary driver is simply nvidia. If you have an AMD discrete card, the driver is usually part of the mainline kernel but can be controlled via module blacklisting.
Disabling the Discrete GPU Driver on Boot
To force the system to ignore the discrete GPU, you must prevent its kernel module from loading during the boot process. This is achieved by editing the GRUB configuration file. First, open the GRUB default configuration file with root privileges:sudo nano /etc/default/grub
Locate the line starting with GRUB_CMDLINE_LINUX_DEFAULT. It likely looks something like this:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
You need to add specific parameters to this string depending on your hardware.
For NVIDIA Discrete GPUs:
If you want to completely disable the NVIDIA driver, add nvidia-drm.modeset=0 to ensure the DRM modesetting is off, and blacklist the module. However, the most effective way to force integrated-only usage is to blacklist the nvidia and nouveau modules. Add the following to the end of the line inside the quotes:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0 nvidia-drm.modeset=0"
Alternatively, you can create a blacklist file. Create a new file at /etc/modprobe.d/blacklist-nvidia.conf:
sudo nano /etc/modprobe.d/blacklist-nvidia.conf
Add these lines:
blacklist nouveau
blacklist nvidia
blacklist nvidia_drm
blacklist nvidia_modeset
For AMD Discrete GPUs:
AMD cards are often handled by the same amdgpu driver as integrated RDNA2/RDNA3 chips, making simple blacklisting risky. In many cases, AMD Hybrid Graphics uses PRIME render offloading. To force integrated-only mode, you may need to disable the PCIe link to the dGPU via BIOS/UEFI settings if available, as software disabling is less reliable due to shared driver stacks. If you must disable it via kernel parameters, check if your specific chip supports amdgpu.sg=0 or similar isolation flags, but BIOS-level disabling is preferred.
After saving the blacklist file, update GRUB to apply the changes:
sudo update-grub
Reboot your system. Upon restart, the discrete GPU should no longer be initialized by the kernel. You can verify this by running lspci | grep -i vga again; the discrete GPU might still appear in the PCI list, but it will not have a driver attached. Check the loaded modules with lsmod | grep nvidia; it should return empty results.
Verifying Integrated GPU Usage
Once the system is rebooted, you need to confirm that the X server is indeed using the integrated graphics. Run the following command to check which driver is being used for your display:glxinfo | grep "OpenGL renderer"
The output should explicitly mention your integrated graphics manufacturer, such as "Intel" or "AMD," and should not mention NVIDIA or a separate discrete AMD chip. Additionally, you can monitor power consumption. On many laptops, the discrete GPU draws significant power even when idle. By disabling its driver, you should observe lower battery drain and reduced fan activity under light loads.
For information on keeping windows visible across workspaces while using X11, refer to How to Use iPad 2nd Monitor with Ubuntu 24.04 LTS (X11).
Risks and Considerations
Disabling the discrete GPU permanently means you lose access to its computational power. Applications that require CUDA cores, such as Blender, DaVinci Resolve, or certain machine learning frameworks, will fail to run or will run significantly slower using CPU emulation. Games that rely on Vulkan or OpenGL features exclusive to the high-end GPU will also perform poorly or crash. Furthermore, some laptop manufacturers implement hybrid graphics switching at the firmware level. If your laptop uses NVIDIA Optimus technology, the integrated GPU often acts as the display controller even when the discrete GPU is doing the rendering. Blacklisting the NVIDIA driver breaks this handshake. While this achieves your goal of "integrated only," it may cause issues with sleep/wake cycles or external monitor detection if the system expects the discrete GPU to handle certain EDID reads. Always test your specific workload before committing to a permanent configuration change. If you encounter boot failures after these changes, you can recover by booting into recovery mode or using a live USB to revert the GRUB changes and remove the blacklist file.Frequently Asked Questions
Does blacklisting the NVIDIA driver save battery life?
Yes, blacklisting the driver prevents the kernel from initializing the discrete GPU, which stops it from drawing power when idle. This can significantly extend battery life on laptops that would otherwise keep the dGPU active in the background.Can I re-enable the discrete GPU later without reinstalling Ubuntu?
Absolutely. You can reverse the process by removing the blacklist file from/etc/modprobe.d/ and restoring the original GRUB_CMDLINE_LINUX_DEFAULT string in /etc/default/grub, then running sudo update-grub and rebooting.
Will my games still run if I disable the discrete GPU?
Games will run, but they will rely entirely on the integrated graphics. Performance will be drastically reduced, and many modern titles may not launch or will run at unplayable frame rates if they require specific hardware features found only in discrete GPUs.What if my AMD discrete GPU shares the same driver as the integrated one?
With AMD, both integrated and discrete GPUs often use theamdgpu driver. Blacklisting it disables both. In this case, you must rely on BIOS/UEFI settings to physically disable the dGPU PCIe link, or use AMD's PRIME offloading settings to force software-based switching, though true hardware disablement is difficult via software alone.
Is it safe to use xrandr to turn off monitors instead?
Using xrandr to turn off monitors is safe and reversible, but it does not disable the GPU itself. The discrete GPU will continue to render frames and consume power even if no monitor is displaying them. This method is suitable for turning off unused screens but not for power saving or forcing integrated-only rendering.