1. 模块的许可证明 (MODULE_LICENSE): 声明描述内核模块的许可权限。如果不声明LICENSE,模块被加载时,会收到内核被污染(kernel tainted)的警告。
linux2.6内核中,可接受的MODULE_LICENSE包括:
"GPL"
"GPL v2"
"GPL and additional rights"
"Dual BSD/GPL"
"Dual MPL/GPL"
"Proprietary"
2. 模块的声明与描述
a. MODULE_LICENSE("LICENSE");
例: MODULE_LICENSE("GPL");
b. MODULE_AUTHOR(author_name); //声明模块的作者
例: MODULE_AUTHOR("lamdoc");
c. MODULE_DESCRIPTION(description); //模块描述
例: MODULE_DESCRIPTION("Basic hello world odule");
d. MODULE_VERSION(version_string); //模块版本
例: MODULE_VERSION("1.0");
e. MODULE_DEVICE_TABLE(table_info); //设备表
例:MODULE_DEVICE_TABLE(pci, twl_pci_tbl);
对于USB,PCI等设备驱动,通常会创建一个MODULE_DEVICE_TABLE,即设备表。