sodcalculator

10 Tech How-To

Fix Wi-Fi or Graphics Drivers Not Working in Ubuntu

Guide 10-10854 · Updated · Step by step

If your Wi-Fi or graphics drivers stop working after installing Ubuntu, the fix is usually to install the correct proprietary or additional drivers, or to update your kernel. This article walks you through the exact steps to diagnose and resolve both issues, from checking your hardware to installing the right software.

Why Drivers Break After Installation

Ubuntu, like most Linux distributions, ships with a kernel that includes open-source drivers for a wide range of hardware. These drivers are stable and work for most common components. However, some manufacturers—notably NVIDIA for graphics and Broadcom, Realtek, or Intel for Wi-Fi—do not fully support these open-source drivers. Their hardware may require proprietary firmware or drivers that are not included by default due to licensing or size constraints. When you install Ubuntu, the system may fall back to a generic driver that either lacks features or fails to initialize the hardware entirely, resulting in no Wi-Fi connection or a low-resolution display.

Checking Your Hardware

Before installing anything, you need to know exactly what hardware you have. This prevents you from installing the wrong driver and wasting time.

  • For Wi-Fi: Open a terminal (Ctrl+Alt+T) and run lspci -nnk | grep -i net or lsusb if you use a USB adapter. This shows the manufacturer and model.
  • For graphics: Run lspci -nnk | grep -i vga or lspci -nnk | grep -i 3d. Note whether it is an NVIDIA, AMD, or Intel GPU.
  • Check current driver: Run lspci -k to see which kernel driver is currently in use for each device. If it says “kernel driver in use: N/A” or shows a generic driver, that is the problem.

Fixing Wi-Fi Drivers

The most common reason Wi-Fi fails is that the proprietary firmware for your adapter is not installed. Here is the step-by-step process to fix it.

  1. Connect via Ethernet or phone tethering: You need internet access to download drivers. Plug in an Ethernet cable or use your phone’s USB tethering (enable it in phone settings).
  2. Update the package list: Run sudo apt update in a terminal.
  3. Install the generic firmware package: Run sudo apt install linux-firmware. This package contains firmware for many Wi-Fi chips, especially Intel and some Realtek models.
  4. Check for additional drivers: Go to Software & Updates (search for it in the Activities menu), click the Additional Drivers tab, and wait for it to scan. If a proprietary driver is listed for your Wi-Fi, select it and click Apply Changes.
  5. Reboot: Run sudo reboot. After reboot, check if Wi-Fi appears in the top-right menu.
  6. If it still fails: Identify the exact chipset (e.g., Realtek RTL8821CE) and search for it in the Ubuntu community forums. Many Realtek chips require a driver from the manufacturer’s GitHub repository, which you will need to compile. The commands typically involve git clone, make, and sudo make install. Follow the instructions in that repository’s README.

Fixing Graphics Drivers

Graphics issues usually manifest as a black screen, a login loop, or a very low resolution (like 1024×768). The fix depends on your GPU manufacturer.

  • NVIDIA: This is the most common source of problems. The open-source nouveau driver often fails or performs poorly.
  • AMD: Most AMD GPUs work well with the open-source amdgpu driver included in the kernel. If you have an older card, you might need the radeon driver, which is also included.
  • Intel: Intel integrated graphics generally work out of the box. Issues are rare and usually fixed by a kernel update.

Installing NVIDIA Drivers

  1. Open Software & Updates: Go to the Additional Drivers tab.
  2. Select the proprietary driver: You will see a list like “NVIDIA driver metapackage from nvidia-driver-550 (proprietary, tested)”. Select it and click Apply Changes.
  3. Reboot: Run sudo reboot.
  4. If the GUI does not load: If you get a black screen or a terminal login, press Ctrl+Alt+F2 to switch to a text console, log in, and run sudo ubuntu-drivers autoinstall. This command automatically installs the recommended driver. Then reboot again.
  5. Check the installation: Run nvidia-smi in a terminal. If it shows your GPU and driver version, the installation succeeded.

Kernel Updates as a Universal Fix

Sometimes the issue is not a missing driver but a kernel that is too old to support your hardware. Newer hardware, especially Wi-Fi chips and integrated GPUs, often requires a recent kernel.

  1. Check your kernel version: Run uname -r.
  2. Install the Hardware Enablement (HWE) kernel: If you are on an LTS release (like 22.04), run sudo apt install linux-generic-hwe-22.04 (adjust the version number to match your Ubuntu release). This installs a newer kernel from the latest non-LTS release.
  3. Reboot: The system will boot into the new kernel. If the hardware still does not work, you can boot the old kernel from the GRUB menu (hold Shift while booting) to verify the kernel is the cause.

Common Mistakes and Misconceptions

  • Installing the wrong driver version: For NVIDIA, always use the “tested” version from the repository, not the latest beta. For Wi-Fi, make sure the driver matches your exact chipset revision.
  • Disabling Secure Boot: Proprietary drivers are not signed by Microsoft, so Secure Boot may block them. If you get a “Secure Boot Violation” error, you must either disable Secure Boot in your BIOS or enroll the driver’s key (which is complex). Disabling it is the simpler path for most users.
  • Thinking a black screen is a hardware failure: If you can switch to a text terminal (Ctrl+Alt+F2), your hardware is fine; it is a driver issue.
  • Not checking for a BIOS update: Occasionally, a BIOS update fixes compatibility issues with Linux. Check your motherboard or laptop manufacturer’s website.

When to Use the Command Line Instead of the GUI

The Additional Drivers GUI is the easiest method, but it can fail to detect hardware or hang. The command line is more reliable and gives you better error messages.

  1. For graphics: Run sudo ubuntu-drivers list to see available drivers. Then run sudo ubuntu-drivers install to install the recommended one.
  2. For Wi-Fi: Run dmesg | grep -i firmware to see if the kernel is complaining about a missing firmware file. This tells you exactly which file is missing, and you can then search for it.
  3. Check for held packages: Run sudo apt --fix-broken install to resolve any dependency issues that might prevent driver installation.

Frequently Asked Questions

Why does Ubuntu work on a live USB but not after installation?

The live USB session uses a default, generic configuration that is more tolerant of missing drivers. It also runs in RAM, so it does not persist any changes. After installation, the system loads drivers from the hard drive, and if the proprietary driver is not there, the hardware fails. The fix is the same as described above: install the driver after the first boot.

Can I use Windows drivers in Ubuntu?

No, not directly. Windows drivers are binary files that use Windows kernel interfaces. There is a compatibility layer called ndiswrapper for some old Wi-Fi cards, but it is deprecated and does not work with modern hardware or kernels. It is not recommended.

Will installing a driver void my warranty?

No. Installing an operating system or its drivers does not void hardware warranties. If a hardware failure occurs, the manufacturer cannot legally refuse service because you installed Linux, though some OEMs may not offer technical support for Linux-specific issues.

How do I revert to the open-source driver if the proprietary one causes problems?

Open Software & Updates > Additional Drivers, select the open-source option (e.g., “Using X.Org X server – Nouveau display driver”), and click Apply Changes. Then reboot. If you cannot access the GUI, boot to a text console and run sudo apt purge nvidia-* to remove all NVIDIA proprietary packages.

My Wi-Fi works but is very slow. Is that a driver issue?

Sometimes. A missing or incorrect power management setting can cause slow speeds. Run sudo nano /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf and change wifi.powersave = 3 to 2 to disable power saving. Save the file and reboot. If that does not help, check if your router is broadcasting on a 5 GHz band that your adapter does not support.

What if I have a dual-GPU laptop (Intel + NVIDIA)?

This is common and requires the NVIDIA driver plus a tool called prime-select. After installing the NVIDIA driver, run sudo prime-select query to see the current mode. Use sudo prime-select on-demand to use the Intel GPU for everyday tasks and the NVIDIA GPU for heavy applications. Reboot after changing the mode. This gives better battery life and avoids overheating.

Related

General steps for current mainstream versions; menus can differ by device and version. See the disclaimer or report an error.

More in this bed

The whole Tech How-To bed →