module_init(hello_init); //内核加载函数 static void __exit hello_exit(void) { printk(KERN_INFO "Hello world exit\n"); } module_exit(hello_exit); //内核卸载函数 MODULE_AUTHOR("Test Hello"); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("A simple Hello World Module"); MODULE_ALIAS("A ...
MODULE_AUTHOR("Barray Song <21cnbao@gmail.com>");MODULE_LICENSE("GPL v2"); /* 必须, 声明遵循GPL协议 */ MODULE_DESCRITION("A simple Hello World Module"); MODULE_ALIAS("a simplest module"); 包含内核模块加载函数、卸载函数,对GPL v2许可权限的声明,一些描述信息。 利用内核编译该文件,生成hello...
(1)MODULE_LICENSE("GPL"),模块的许可证。一般声明为GPL许可证,而且最好不要少,否则可能会出现莫名其妙的错误(譬如一些明显存在的函数提升找不到)。 (2)MODULE_AUTHOR("tao Deng <> 773904075@qq.com"),用来添加模块的作者信息 (3)MODULE_DESCRIPTION("xxx"),用来添加模块的描述信息 (4)MODULE_ALIAS("xxxx...
在linux内核模块中,我们可以用MODULE_AUTHOR、MODULE_DESCRIPTION、MODULE_VERSION、MODULE_TABLE、MODULE_ALIA,分别描述模块的作者、描述、版本、设备表号、别名等。 MODULE_AUTHOR("dengwei"); MODULE_LICENSE("Dual BSD/GPL"); MODULE_DESCRIPTION("A simple Hello World Module"); MODULE_ALIAS("a simplest modul...
MODULE_AUTHOR(author); MODULE_DESCRIPTION(description); MODULE_VERSION(version_string); MODULE_DEVICE_TABLE(table_info); MODULE_ALIAS(alternate_name); 放置文档在目标文件的模块中。 module_init(init_function); module_exit(exit_function); 宏定义,声明一个模块的初始化和清理函数。
**MODULE_ALIAS()为用户空间提供一个合适的别名。**下面我们来看如何编译这个内核模块。在优麒麟Linux上编译该内核模块,下面是编写内核模块的Makefile文件。 现在创建好了咱们的模块,下一步就是来编写内核模块的makefile文件 b. 内核模块的makefile文件
module_param(nbr,int, S_IRUGO);staticint__init yuer_init(void) {inti;for(i=0; i { printk(KERN_ALERT"Hello, How are you. %d\n", i); }return0; }staticvoid__exit yuer_exit(void) { printk(KERN_ALERT"I come from yuer's module, I have been unlad.\n"); ...
(MYMAJOR,MYNAME);}module_init(chrdev_init);module_exit(chrdev_exit);// MODULE_xxx这种宏作用是用来添加模块描述信息MODULE_LICENSE("GPL");// 描述模块的许可证MODULE_AUTHOR("aston");// 描述模块的作者MODULE_DESCRIPTION("module test");// 描述模块的介绍信息MODULE_ALIAS("alias xxx");// 描述...
( 一个人可读的关于模块做什么的声明 ), MODULE_VERSION ( 一个代码修订版本号; 看 <linux/module.h> 的注释以便知道创建版本字串使用的惯例), MODULE_ALIAS ( 模块为人所知的另一个名字 ), 以及 MODULE_DEVICE_TABLE ( 来告知用户空间, 模块支持那些设备 ). 我们会讨论 MODULE_ALIAS 在第 11 章以及 ...
Linux提供了三种方法查询加载到内核的模块,一种方法是直接访问proc虚拟文件系统获取,一种方法则是比较常用的lsmod方法获取,而lsmod的输出其实是基于/proc/modules。另外还有一种就是查看/sys/module/目录下是否生成已加载模块的目录。 1、/proc/modules文件