In some cases especially with older, used laptops or failing hardware a clever method to extend the life of your machine is to completely disable one of the GPUs. Over the past few years, I’ve encountered many broken laptops that either refuse to boot entirely or freeze instantly upon reaching the desktop because a faulty graphics chip triggers a system crash. By forcing the system to bypass the broken GPU and rely solely on the working integrated graphics, you can bypass these hardware failures and keep your laptop running smoothly.
Here is how you can achieve this on Linux:
On Linux systems with dual GPUs (typically an integrated Intel/AMD CPU graphics chip and a dedicated NVIDIA/AMD graphics card), completely forbidding the system from accessing or loading drivers for the dedicated GPU (dGPU) can be done cleanly by blacklisting the kernel modules or using kernel parameters.
Here are the most effective ways to completely hide and disable a specific GPU.
Method 1: Kernel Module Blacklisting (Recommended)
If you want to prevent the system from loading the drivers for your dedicated GPU (e.g., an NVIDIA card using the proprietary nvidia driver or open-source nouveau driver), you can blacklist them via modprobe.
- **Create a blacklist configuration file:**Open a terminal and create a new configuration file in
/etc/modprobe.d/:
Bash
sudo nano /etc/modprobe.d/disable-dgpu.conf
- Add the drivers to the file:
- For NVIDIA GPUs, paste the following lines:
Plaintext
blacklist nouveau
blacklist nvidia
blacklist nvidia_drm
blacklist nvidia_modeset
blacklist nvidia_uvm
```
* **For dedicated AMD GPUs**, paste:
```text
blacklist radeon
blacklist amdgpu
```
3. **Save and exit:**
Press `Ctrl + O` then `Enter` to save, and `Ctrl + X` to exit.
4. **Update your initramfs/initrd:**
For the changes to take effect before the graphical interface starts, your system's boot image needs to be updated:
* **On Ubuntu/Debian based systems:**
```bash
sudo update-initramfs -u
```
* **On Fedora/RHEL systems:**
```bash
sudo dracut --force
```
* **On Arch Linux:**
```bash
sudo mkinitcpio -P
```
---
### Method 2: Disabling via GRUB Kernel Parameters
Sometimes drivers load so early during the boot sequence that `/etc/modprobe.d/` configurations are bypassed. Adding instructions directly to your GRUB boot loader forces the kernel to ignore the driver entirely.
1. **Edit the GRUB configuration file:**
```bash
sudo nano /etc/default/grub
- **Modify the Linux command line:**Locate the line starting with
GRUB_CMDLINE_LINUX_DEFAULT(orGRUB_CMDLINE_LINUX) and append the module blacklists.
- For NVIDIA:
Plaintext
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash rd.driver.blacklist=nouveau modprobe.blacklist=nouveau rd.driver.blacklist=nvidia modprobe.blacklist=nvidia"
```
* **For AMD:**
```text
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash rd.driver.blacklist=amdgpu modprobe.blacklist=amdgpu"
```
3. **Update the GRUB bootloader configuration:**
* **Ubuntu/Debian:**
```bash
sudo update-grub
```
* **Fedora/Arch/RHEL (GRUB2):**
```bash
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
```
*(Note: If your system uses EFI on Arch or Fedora, the target path might be `/boot/efi/EFI/fedora/grub.cfg` or `/boot/grub/grub.cfg`).*
---
### Method 3: Hardware-Level Disabling via udev (Complete Isolation)
If you don't even want the kernel to see the device path, you can use a `udev` rule to remove the device from the PCI bus immediately when detected during boot.
1. **Find your GPU's PCI Address:**
Run `lspci | grep -E "VGA|3D"` to find the ID of the card you want to block (e.g., `0000:01:00.0`).
2. **Create a udev rule:**
```bash
sudo nano /etc/udev/rules.d/00-remove-dgpu.rules
- Paste the following line (replace
0000:01:00.0with your actual GPU PCI address found in step 1):
Plaintext
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", KERNEL=="0000:01:00.0", ATTR{remove}="1"
(Note: 0x10de is the vendor ID for NVIDIA. If you are blocking an AMD card, change it to 0x1002).
Method 4: Check BIOS/UEFI Settings first
Before modifying the operating system config, restart your laptop and spam F2, F12, or Del to enter your BIOS/UEFI setup.
Many modern laptops have a setting under Advanced, Display, or Chipset labeled Display Mode, GPU Working Mode, or Graphics Device. If you switch this from Dynamic/Hybrid/Optimus to UMA Graphics Only or Integrated Only, the laptop firmware completely disconnects power and data lanes to the dedicated GPU, rendering it invisible to the OS entirely.