Skip to main content
Modern hardware requires proper configuration before and after installing an operating system. In this guide, you’ll learn how to configure firmware settings (BIOS/UEFI), detect hardware in Linux, inspect devices on PCI and USB buses, manage kernel modules, and explore kernel information in /proc and /sys.

1. Firmware Configuration: BIOS vs UEFI

Computers use firmware interfaces to initialize hardware and start the boot process. Legacy systems rely on BIOS (Basic Input/Output System), while most modern machines use UEFI (Unified Extensible Firmware Interface).
The image is a diagram explaining the acronyms BIOS, UEFI, and POST, with their full forms: Basic Input/Output System, Unified Extensible Firmware Interface, and Power-On Self-Test.
During POST, your firmware checks CPU, memory, and motherboard health. To enter the setup utility, press the key shown on-screen (often F2, Delete, or F12). Inside you can:
  • Set the hardware clock’s date and time
  • Enable/disable onboard peripherals (LAN, audio)
  • Configure RAM error protection (ECC)
  • Adjust IRQ and DMA channels
  • Define boot device priority
  • Enable performance features (XMP, virtualization)
  • Disable unused hardware for security or power saving
Changing firmware settings can affect system stability. Always document original values before modifying.

2. Detecting Hardware in Linux

Once Linux boots, it discovers and initializes hardware. Missing devices usually indicate a faulty component or port; detected but non-functional devices often need the correct kernel module (driver).
Here are the primary inspection tools:

2.1 Inspecting PCI Devices with lspci

The lspci utility enumerates PCI/PCIe devices:
Sample output:
To get verbose details for a specific device (e.g., 00:03.0):
Show only kernel driver info:

2.2 Inspecting USB Devices with lsusb

List all USB devices:
For a tree-view with drivers and speeds:
Query a specific device by bus and device number:

3. Managing Kernel Modules

Kernel modules enable Linux to communicate with hardware.
Unload (remove) a module:
Unloading critical modules (e.g., storage or network drivers) can render your system unbootable. Proceed with caution.
View detailed information about a module:
List only parameters:

3.1 Persistent Module Configuration

To apply module parameters at boot or blacklist unwanted modules, use files in /etc/modprobe.d/: Example: blacklisting the snd driver:

4. Kernel Information Files (/proc and /sys)

Linux exposes hardware and process information via two virtual filesystems:
  • /proc: Process and kernel data (e.g., /proc/cpuinfo)
  • /sys: Device and driver attributes (e.g., /sys/class/net)
The image is a slide titled "Information and Device Files," describing the /proc and /sys directories as special directories in RAM used by the kernel to store information on running processes.
Since /proc and /sys reside in volatile memory, their contents reset on reboot.

Continue to the quiz to test your understanding of Linux hardware configuration and inspection.

Watch Video