pcimodules
Show kernel modules used by PCI devices
SYNOPSIS
pcimodules [options]
Given its nature as an historically specific script rather than a standardized command, a universal synopsis is difficult. Typically, it was invoked without arguments or with very simple options.
PARAMETERS
-q
(Hypothetical) Quiet mode; suppress output messages.
-v
(Hypothetical) Verbose mode; display more detailed information about detected devices and loaded modules.
-n
(Hypothetical) No-op or dry run; show what modules would be loaded without actually loading them.
DESCRIPTION
The pcimodules command (often a script) historically aimed to identify PCI (Peripheral Component Interconnect) hardware devices present in a system and load the appropriate kernel modules required for their operation. In older Linux distributions or specific embedded systems, this script would typically be run during system boot to ensure that all detected PCI hardware, such as network cards, sound cards, and graphics adapters, had their corresponding kernel drivers loaded into memory. This was crucial for the devices to function correctly.
Unlike a fixed executable, pcimodules was often a shell script that would leverage other utilities like lspci to list PCI devices, and then use configuration files or internal logic to map device IDs to kernel module names. Finally, it would invoke modprobe or insmod to load the identified modules. Modern Linux systems primarily rely on the udev daemon for dynamic device management, which automatically detects hardware, creates device nodes, and loads necessary kernel modules without needing a separate pcimodules script to be manually run or configured during boot.
CAVEATS
The pcimodules command is largely obsolete and not a standard utility found in modern Linux distributions. Its functionality has been superseded by the udev daemon, which provides a more robust and dynamic approach to hardware detection and module loading. Attempting to run pcimodules on a contemporary Linux system will likely result in a "command not found" error or execute a highly specific, possibly outdated, script if it exists at all.
MODERN APPROACH: UDEV
In modern Linux systems, the udev daemon handles dynamic device management. When a PCI device is detected (either at boot or hotplugged), udev receives an event, consults its rules (/etc/udev/rules.d/), and automatically loads the appropriate kernel module. This provides a more flexible, efficient, and hands-off approach compared to the older script-based methods like pcimodules.
HISTORY
The concept behind pcimodules emerged in earlier Linux kernel versions and distributions, where system initialization was more rigid and often relied on static scripts to identify and configure hardware. Before the widespread adoption of the udev dynamic device management system (introduced around kernel 2.6 series), scripts like pcimodules were part of the boot process (e.g., within /etc/rc.d or /etc/init.d structures) to ensure that the necessary drivers for PCI hardware were loaded. With udev's event-driven architecture, which automatically detects hardware hotplug events and loads modules on demand, the need for a separate, explicit pcimodules script diminished, leading to its obsolescence in most mainstream distributions.