This page is an introduction and FAQ for Linux kernel modules. It is not intended to replace official documentation (listed at the bottom of the page).
Linux kernel modules
Under Debian, the module can be installed from three different kind of sources:
Upstream Linux kernel modules: Those are shipped in the linux-image-* kernel packages.
Extra modules, that's aren't in the upstream Linux kernel. Those are usually built using dkms. The available modules can be listed by running apt rdepends dkms.
An older less flexible mechanism for building extra modules is module-assistant. The available modules can be listed by running apt rdepends module-assistant.
Note: some of those packages are in contrib, or non-free sections.
- Others, like third party, proprietary and other or binary blobs modules... You should not install such modules on your system except when you have no other choice.
Automatic loading of modules
Nowadays, most modules related to hardware support should be automatically loaded, thanks to udev and modules alias that are hardcoded in kernel modules (see the alias fields in modinfo snd-hda-intel output).
If you want to get a module to autoload when a device is accessed you can often add lines to /etc/modules or a file to /etc/modules-load.d/. When the Linux kernel receives a request to open a device file that it does not have capabilities for it issues a request to modprobe for the module 'char-major-n' or 'block-major-n' depending on whether the device is a character or block device, and the device's major number, n.
For example, my sound devices have major number 14, and my sound module is emu10k1 so added the alias below to my /etc/modules-load.d directory.
$ ls -l /dev/dsp crw-rw---- 1 root audio 14, 3 Jul 5 2000 /dev/dsp $ cat /etc/modules-load.d alias char-major-14 emu10k1
Alias
This file links specific Linux kernel module names to the service names the kernel knows (aliases).
As a very simple example, it could link the service eth0 to the kernel driver module for the particular Ethernet card you installed in your computer.
The alias directive can be used to give alias names to modules. A line in /etc/modules that look like this:
alias iso9660 isofs
makes it possible to write modprobe iso9660 although there is no object file for such module available.
See Also
ModulesAll - Full list of Linux kernel modules for the Debian's Linux kernel images.
KernelModuleBlacklisting - Prevent a module from being automatically loaded.
KernelDKMS - Build extra modules with dkms.
ModuleAssistant - Build extra modules with module-assistant.
initramfs - aka Loading modules at boot time, before the root file system is mounted.
- Manual pages: