# Linux Loadable Kernel Module HOWTO

### Bryan Henderson

2006-09-24

Revision History
Revision v1.09 | 2006-09-24 | Revised by: bjh
Fix typos.
Revision v1.08 | 2006-03-03 | Revised by: bjh
Add copyright information.
Revision v1.07 | 2005-07-20 | Revised by: bjh
Add some 2.6 info and disclaimers. Update references to Linux Device Drivers book, Linux Kernel Module Programming Guide.
Revision v1.06 | 2005-01-12 | Revised by: bjh
Cover Linux 2.6 briefly. Update hello.c and reference to Lkmpg. Add information about perils of unloading. Mention dmesg as way to see kernel messages.
Revision v1.05 | 2004-01-05 | Revised by: bjh
Add information on module.h and -DMODULE. Fix tldb.org to tldp.org. Add information on kallsyms.
Revision v1.04 | 2003-10-10 | Revised by: bjh
Fix typo: AHA154x should be AHA152x Add information on what module names the kernel module loader calls for. Add information on what an LKM does when you first load it. Add information on loop module. Change linuxdoc.org to tldp.org.
Revision v1.03 | 2003-07-03 | Revised by: bjh
Update on kernels that don't load into vmalloc space. Add explanation of "deleted" state of an LKM. Explain GPLONLY.
Revision v1.02 | 2002-05-21 | Revised by: bjh
Correct explanation of symbol versioning. Correct author of Linux Device Drivers. Add info about memory allocation penalty of LKM vs bound-in. Add LKM-to-LKM symbol matching requirement. Add open source licensing issue in LKM symbol resolution. Add SMP symbol versioning info.
Revision v1.01 | 2001-08-18 | Revised by: bjh
Add material on various features created in the last few years: kernel module loader, ksymoops symbols, kernel-version-dependent LKM file location.
Revision v1.00 | 2001-06-14 | Revised by: bjh
Initial release.

This is the HOWTO for Linux loadable kernel modules (LKMs). It explains what they are and how to use and create them. It also includes documentation of parameters and other details of use of some particular modules.

|  | Next
|  | Preface