Table of Contents
Why Drivers Matter After Installing Linux
When your new Linux system boots for the first time, it already includes many drivers inside the kernel. In many cases, hardware works without extra steps. However, for some types of devices you may need to install or adjust drivers to get full performance or special features.
In this chapter, you focus on the practical side of driver setup right after installation. You do not learn the full theory of the kernel or how drivers are written, only how to make your hardware actually work on a fresh desktop system.
Important: Before changing drivers, make sure you know how to reboot the system safely and how to log in to a text console. On most systems you can use Ctrl+Alt+F3 to reach a text login and Ctrl+Alt+F1 or Ctrl+Alt+F2 to return to the graphical desktop.
Identifying Your Hardware
Before installing or changing drivers, you should know what hardware you have. Linux offers tools that show device information.
In a terminal, you can list PCI devices, which include graphics cards, network cards, and many controllers, by running:
lspciYou can list USB devices, such as some Wi‑Fi adapters, webcams, or external cards, by running:
lsusbIf you are not sure which line corresponds to what, you can use more descriptive output:
lspci -nnkThis shows vendor and device IDs and, on many systems, which kernel driver is currently in use for a device. When troubleshooting a driver, this is one of the first commands to run.
Using the Distribution’s Driver Tools
Most beginner friendly distributions provide graphical tools that handle drivers for you. The exact names differ, but the idea is the same. The system scans your hardware, offers drivers that match, and lets you switch between them.
On Ubuntu and many Ubuntu based systems, you can open a tool called “Software & Updates,” then go to the “Additional Drivers” tab. You normally find it in the applications menu under “Settings” or “Software.” This tab lists proprietary and open drivers for hardware such as NVIDIA graphics and some wireless chips. You can select a driver, apply the change, and reboot.
On Linux Mint, a dedicated “Driver Manager” application performs a similar function. It shows recommended drivers and alternative drivers for certain devices. The “recommended” option is usually the safest.
On distributions like Fedora or openSUSE, the installer and package manager pull in most needed drivers automatically. For some proprietary drivers, you might need to enable extra repositories. You usually do this in the main software management tool, not in a specialized driver manager.
The main rule is simple. First, look for a graphical driver tool provided by your distribution. Use that if it exists, because it understands the policies and packaging of your specific system.
Rule: Prefer your distribution’s official driver tool or repositories. Avoid random install scripts from websites, because they can break package management and make updates harder.
Graphics Drivers
Graphics drivers have a large impact on performance, especially for 3D, gaming, and video acceleration. On a fresh Linux install, you want to confirm that your graphics card uses a suitable driver.
Integrated Graphics
If you use Intel integrated graphics or recent AMD integrated graphics, the default drivers that the kernel provides are usually correct. The system uses open drivers from the kernel and the Mesa project. You rarely need to install anything extra.
You can check which driver is in use by running:
lspci -nnk | grep -A3 -i vga
This shows the VGA or 3D controller and the kernel module in use. Names like i915 for Intel or amdgpu for modern AMD chips indicate that the system is using standard open drivers.
NVIDIA Graphics
NVIDIA graphics cards often work with an open driver called nouveau, but this driver may not give full performance or support all features. Many users choose the proprietary NVIDIA driver packages that the distribution provides.
On a distribution with a graphical driver manager, you typically see multiple options for an NVIDIA card. You will usually see one or more proprietary driver versions and possibly the open nouveau driver. The tool often marks one driver as recommended. If you want better 3D performance or better power management, you select the recommended proprietary NVIDIA driver, apply the change, and reboot.
On systems without a graphical driver tool, you install the driver using the package manager with a package name that contains “nvidia.” For example, on an Ubuntu based system you might see packages like nvidia-driver-535. On Fedora or openSUSE, similar packages exist in specific repositories. You still reboot after installing so that the new driver is used.
If the graphical environment fails to start after a driver change, you can go to a text console and switch back to the previous driver using the package manager or the distribution’s tools.
Hybrid Graphics on Laptops
Some laptops include both integrated graphics and a discrete GPU such as NVIDIA. For these systems, the driver situation is more complex. The distribution usually sets up a method that chooses which GPU to use, or lets you select per application or per session.
On Ubuntu and related systems, the “Additional Drivers” tool often offers NVIDIA drivers that are designed for these hybrid setups. You normally accept the recommended option and then use desktop tools to switch performance profiles if they exist.
If your laptop feels hot, the battery drains quickly, or fans are loud after a driver change, it might indicate that the discrete GPU is active all the time. In that case, you may want to check your driver settings or return to the previous configuration.
Network Drivers
A working network connection is essential just after installation. Linux usually handles wired connections without extra action, but wireless adapters are sometimes more difficult, especially ones that need proprietary firmware.
Wired Network
For Ethernet connections, the kernel usually includes a driver that matches the card or onboard controller. After boot, you should see the wired connection appear in your network manager and receive an IP address from your router.
If the wired connection does not appear, check the PCI devices:
lspci -nnk | grep -A3 -i ethernetLook at the “Kernel driver in use” and “Kernel modules” lines. If there is no driver in use, you might be missing a module or firmware. In many beginner distributions, installing package updates pulls in missing firmware if the hardware is common.
Wireless Network
Wireless adapters are often based on chipsets from companies such as Intel, Broadcom, Realtek, or Qualcomm. Some are supported by open drivers, others need binary firmware or even full proprietary drivers.
To identify your wireless chip, run:
lspci -nnk | grep -A3 -i networkor, for USB devices:
lsusbOn Ubuntu based systems, the “Additional Drivers” tab may show proprietary drivers for wireless chips, especially for Broadcom. If your Wi‑Fi is missing or unreliable, check this tab and apply any suggested driver for your wireless device.
On distributions that separate firmware from drivers, you may need to install a firmware package. These packages have names that include “firmware” and the vendor name. The system often loads the firmware automatically after installation and a reboot.
When troubleshooting, you can check which Wi‑Fi driver is loaded by running:
lsmod | grep -i wifiIf there is no module that matches your chipset, search your distribution documentation for that specific chip model and Linux.
Audio Drivers
Audio support uses both kernel drivers and user space sound systems. After installation, you should hear sound from speakers or headphones with no extra action. If there is no sound, the first place to look is the desktop’s sound settings panel. Check that the correct output device is selected and that volume is not muted.
From the driver side, you can inspect audio devices with:
lspci -nnk | grep -A3 -i audioMost modern systems use a general driver for the audio controller. Problems are more often related to incorrect output selection or muted channels rather than missing kernel drivers. Ensure that your distribution is updated, since some audio issues are fixed by newer kernels or sound packages.
Input Devices and Special Keys
Keyboards, mice, and standard touchpads usually work out of the box. They use generic USB or PS/2 drivers that are built into the kernel. For laptop touchpads, especially on very new models, you may find improved behavior in newer kernels.
If your touchpad behaves poorly, check the system settings panel for touchpad options. Driver specific options are often exposed there, such as tap to click, scrolling modes, or palm detection.
Function keys for volume, brightness, or special laptop features depend on ACPI support and sometimes vendor specific drivers. On some systems, a newer kernel improves support for these keys. For a fresh install, make sure you have installed all updates from your distribution, which often include kernel and firmware updates.
Printer and Scanner Drivers
Printing and scanning setup often feels different from drivers for internal devices. Modern Linux distributions integrate printing systems that can automatically detect many printers on a local network or via USB and install appropriate drivers or “PPD” files.
When you plug in a printer over USB or connect to the same network as a network printer, open your system settings and go to the printers section. Add a new printer. The system usually suggests a driver or a generic driver. For common models, this is enough.
Some vendors provide specific Linux packages or drivers. If you use one of those, prefer vendor packages that are distributed as normal .deb or .rpm files rather than shell scripts. You can install these through the graphical software manager or the package manager and then add the printer through the normal settings panel.
Scanners are often supported through the same or related libraries. When you open a scanning application, it searches for devices and uses the underlying driver. If your scanner is not found, check if your distribution has extra packages for scanner support that match your scanner’s vendor.
Firmware and Microcode Updates
Some hardware depends on firmware files, which the kernel loads from the filesystem during boot. These files are stored in directories that are part of the root filesystem, and distributions supply them through regular packages. Firmware is important for devices like wireless chips, some graphics cards, and storage controllers.
You usually do not manage firmware files by hand. Instead, you keep your system updated using the distribution’s package tools. The update process pulls newer firmware when it becomes available.
For processors from Intel and AMD, microcode updates fix hardware level bugs. Most modern desktop distributions offer microcode packages. On Ubuntu based systems, these have names like intel-microcode or amd64-microcode. When installed, the boot process loads the microcode before the kernel continues.
Keeping firmware and microcode updated is part of keeping your drivers effective and your system stable.
Verifying and Troubleshooting Drivers
After you change or install a driver, you want to verify that it is loaded and working.
To check which kernel modules are currently loaded, you can run:
lsmod
For a particular device, combine lspci -nnk or lsusb with lsmod to confirm that the expected driver is active. Many drivers also write useful information to the system log. On a fresh desktop system, you can read recent messages with:
dmesg | tailor filter for a device name or driver name:
dmesg | grep -i nvidiaIf something goes wrong, and the graphical environment does not start after a driver change, use a text console to undo the last change. For example, you can remove a driver package or select a different driver using your distribution’s tools. Often, simply going back to the previously recommended driver restores a working desktop.
Rule: Change one driver at a time, reboot, and test. If a change breaks your system, revert it before changing anything else. This makes troubleshooting much easier.
By using the distribution’s tools, keeping the system updated, and checking basic device information, you can handle most driver related tasks after a fresh Linux installation without needing deep internal knowledge.