Linux内核模块-实例2(二)
2014-04-06 19:47
495 查看
2.2 Hello World (P2) :许可权限和模块的声明
环境:Linux内核 2.6
1. 内核模块实例(book.c)
2.代码解析
MODULE_LICENSE("GPL");
此处可有可无,可以不加,系统默认(但会报警)。模块声明描述内核模块的许可权限,如果不声明LICENSE,模块被加载时,将收到内核的警告。在 Linux2.6 内核中,可接受的 LICENSE 包括" GPL","GPL
v2","GPL and additional rights","Dual BSD/GPL","Dual MPL/GPL","Proprietary" 。
MODULE_AUTHOR(DRIVER_AUTHOR);MODULE_DESCRIPTION(DRIVER_DESC);
模块的声明与描述可加可不加。
3.Makefile文件的写法
Makefile 文件由五部分组成:显示规则 含规则 变量定义 makefile 指示符和注释
一条 Make 的规则原型为:
目标 ... :依赖 ..
命令
代码:参照2.1
相关链接:
内核模块编程入门:http://www.tldp.org/LDP/lkmpg/2.6/html/index.html
环境:Linux内核 2.6
1. 内核模块实例(book.c)
/* * book.c - Demonstrates module documentation. */ # include <linux/module.h> /* Need by all modules */ # include <linux/kernel.h> /* Need for HERN_INFO */ # include <linux/init.h> /* Need for the macros */ # define DRIVER_AUTHOR "Star <s@dirac.org>" # define DRIVER_DESC "A sample driver" static char* bookName = "Good Book."; static int bookNumber = 100; static int __init book_init(void) { printk(KERN_INFO "Book name is %s\n", bookName); printk(KERN_INFO "Book number is %d\n", bookNumber); return 0; } static void __exit book_exit(void) { printk(KERN_INFO "Book module exit.\n"); } module_init(book_init); module_exit(book_exit); module_param(bookName, charp, S_IRUGO); module_param(bookNumber, int, S_IRUGO); /* You can use strings, like this: */ /* Get rid of taint message by declaring code as GPL. */ MODULE_LICENSE("GPL"); /* Or with defines, like this: */ MODULE_AUTHOR(DRIVER_AUTHOR); /* Who wrote this module? */ MODULE_DESCRIPTION(DRIVER_DESC); /* What does this module do */
2.代码解析
MODULE_LICENSE("GPL");
此处可有可无,可以不加,系统默认(但会报警)。模块声明描述内核模块的许可权限,如果不声明LICENSE,模块被加载时,将收到内核的警告。在 Linux2.6 内核中,可接受的 LICENSE 包括" GPL","GPL
v2","GPL and additional rights","Dual BSD/GPL","Dual MPL/GPL","Proprietary" 。
MODULE_AUTHOR(DRIVER_AUTHOR);MODULE_DESCRIPTION(DRIVER_DESC);
模块的声明与描述可加可不加。
3.Makefile文件的写法
Makefile 文件由五部分组成:显示规则 含规则 变量定义 makefile 指示符和注释
一条 Make 的规则原型为:
目标 ... :依赖 ..
命令
代码:参照2.1
相关链接:
内核模块编程入门:http://www.tldp.org/LDP/lkmpg/2.6/html/index.html
相关文章推荐
- Linux内核模块开发实例学习
- Linux内核模块-实例1(二)
- Linux内核模块-实例3(二)
- Linux内核模块-实例4(二)
- Linux内核模块与Makefile实例
- Linux内核模块与Makefile实例
- Linux内核模块实例
- Linux内核模块开发实例学习
- 最简单的linux内核模块实例
- ASP.NET TreeView树型菜单操作实例(代码调试通过)
- 〖ExtJS〗之Panel实例
- Tapestry4+Spring+Hibernate整合实例及说明
- HID - Keyboard键盘和Mouse鼠标实例
- S3C2440上LCD驱动(FrameBuffer)实例开发讲解(二)
- Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用
- java多线程交互 经典实例__生产者与消费者模型
- K2 Blackpearl中从数据库直接删除流程实例之K2Server表
- apache伪静态规则及常见规则用法实例
- javascript树形菜单简单实例
- hadoop+zookeeper+hbase安装、配置及应用实例