Add Kernel Modules
Compile Custom Kernel Modules
# Install kernel headers
apt install linux-headers-$(uname -r) build-essential
# Configure kernel build options
cd /usr/src/linux-headers-$(uname -r)
make menuconfig
make menuconfig opens an ncurses interface. Navigate to the module you want, press M to build as module or * to build into kernel.
Load Modules at Runtime
modprobe
# Load a module
modprobe <module_name>
# Load with parameters
modprobe <module_name> param=value
# Remove a module
modprobe -r <module_name>
# Show module info
modinfo <module_name>
# List loaded modules
lsmod
# Check module dependencies
modprobe --show-depends <module_name>
Load Modules at Boot
/etc/modules
Add module names (one per line) to load at boot:
# /etc/modules
loop
nbd
tun
/etc/modprobe.d/
For modules requiring parameters, create a .conf file:
# /etc/modprobe.d/mymodule.conf
options <module_name> param=value
# Blacklist a module
blacklist <module_name>
Examples
# Load TUN/TAP module for VPN
modprobe tun
echo "tun" >> /etc/modules
# Blacklist PC speaker beep
echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf