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_VERSION (version_string); //声明模块的版本 MODULE_DEVICE_TABLE (table_info); //声明模块的设备表 MODULE_ALIAS (alternate_name); //声明模块的别名 MODULE_LICENSE("GPL"); //声明模块的许可证 MODULE_PARM_DESC //参数作用的描述 MODULE_SUPPORTED_DEVICE //模块支持的设备...
可以在模块中包含的其他描述性定义有MODULE_AUTHOR(声明谁编写了模块)。MODULE_DESCRIPION(一个人可读的关于模块做什么的声明),MODULE_VERSION(一个代码修订版本号; 看 <linux/module.h> 的注释以便知道创建版本字串使用的惯例),MODULE_ALIAS (模块为人所知的另一个名子),以及MODULE_DEVICE_TABLE ( 来告知用户空间...
1、MODULE_ALIAS、MODULE_LICENSE、MODULE_AUTHOR、MODULE_DESCRIPTION、MODULE_PARM_DESC。这些宏定义在include/linux/module.h,简单的在section(“.modinfo”)生成描述的字符串信息,使用modinfo命令,可以查看这些信息。 2、module_param、MODULE_PARM。宏定义在include/linux/moduleparam.h,基本意思就是在section(“__pa...
MODULE_ALIAS("a simplest module"); 包含内核模块加载函数、卸载函数,对GPL v2许可权限的声明,一些描述信息。 利用内核编译该文件,生成hello.ko模块文件夹。可通过"insmod ./hello.ko"加载驱动,"rmmod hello"卸载驱动。加载时,输出"Hello World enter",卸载时输出"Hello World exit"。
**MODULE_ALIAS()为用户空间提供一个合适的别名。**下面我们来看如何编译这个内核模块。在优麒麟Linux上编译该内核模块,下面是编写内核模块的Makefile文件。 现在创建好了咱们的模块,下一步就是来编写内核模块的makefile文件 b. 内核模块的makefile文件
最近在整理Linux运维基线,整理记录下常用的alias设置。 alias alias命令用于设置指令的别名。用于简化较长的命令。 语法 代码语言:javascript 代码运行次数:0 运行 AI代码解释 alias[别名]=[指令名称]示例:alias ls='ls --color=auto' 用法 代码语言:javascript ...
MODULE_LICENSE("Dual BSD/GPL"); /*模块许可证明,描述内核模块的许可权限,必须*/ MODULE_DESCRIPTION("A simple Hello World Module"); /*模块说明,可选*/ MODULE_ALIAS("a simplest module"); /*模块说明,可选*/ 1. 2. 3. 4. 5. 6.
1. #include <linux/module.h> /* 引入与模块相关的宏 */ 2. #include <linux/init.h> /* 引入module_init() module_exit()函数 */ 3. #include <linux/moduleparam.h>/* 引入module_param() */ 4 5. MODULE_AUTHOR("Yu Qiang");
module_init(my_device_init);module_exit(my_device_exit); 1. 2. 2、模块依赖 内核模块之间一般存在着依赖关系,比如某个模块需要依赖于另一个模块才能正常工作。内核模块的依赖关系可以通过MODULE_DEPEND或MODULE_ALIAS来实现,其中MODULE_DEPEND表示一个模块依赖于另一个模块,而MODULE_ALIAS则表示一个模块别名。