DEVICE DRIVERS IN LINUX ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Linux device driver kernel files are in /dev * Drivers are either compiled into the kernel, or loaded as kernel modules * Linux device driver kernel modules can be configured, loaded, unloaded without rebooting the system * Not all device drivers are kernel devices, such as video drivers for xwindows * The programs insmod, rmmod, ksyms, lsmod, genksyms, modprobe, and depmod are part of "module utilities" and when installed, the commands are in /sbin Loading a Device Driver Kernel Module: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Use modprobe to load a kernel module into the running kernel. You can specify parameters with modprobe too. modeprobe Other commands, such as to show the loaded modules or inserting a module into the running kernel lsmod insmod Modules usually have an extension of ".o" Modules can be loaded when the system boots. They are specified in the text configuration file: /etc/modules It contains a list of modules to be loaded. Options for the modules are in the file: /etc/conf.modules Rather than directly editing the conf.modules with vi, use the script provided for that purpose update-modules Unloading a Device Driver Kernel Module: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If the module is not used by the system, it may be unloaded by either of the following methods: modprobe -r rmmod Module related command reference: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lsmod - list loaded modules insmod - install loadable kernel module modprobe - high level handling of loadable modules depmod - handle dependency descriptions for loadable kernel modules rmmod - unload loadable modules ksyms - display exported kernel symbols