设为首页 加入收藏

TOP

ARM平台的内核模块编写与安装
2015-07-16 12:57:12 来源: 作者: 【 】 浏览:7
Tags:ARM 平台 内核 模块 编写 安装

最近在学习arm平台下的内核模块开发,现将内核模块建立过程记录一下。  


  从编写代码的角度来看,创建一个简单的的内核模块可以分3步走:


   1. 添加头文件(linux/init.h 和linux/module.h);?


? ? ? ? 2. 加载内核(函数module_init);


 ? ? 3. 卸载内核(函数module_exit)


如一个简单的内核模块如下:


#include
#include
static int hello_init()
{
? ? printk(KERN_WARNING"hello my module!\n");
? ? return 0;
}


?


static void hello_exit()
{
? ? printk(KERN_WARNING"module exit!\n");
}


module_init(hello_init);
module_exit(hello_exit);


事实上,关键部分是两个宏 module_init() 和module_exit(),这两个宏分别完成了内核模块安装和内核模块卸载,他们的代码都是内核实现的,用户程序只要调用即可。当然,一个内核模块的组成部分还有其他可选的选项,但是这里的是必须的,也是最简单的一个部分。


  写完代码部分,接着完成Makefile的编写如下:


obj-m := hello.o
KDIR :=/home/win/myfiles/linux-mini2440
all:
   make -C $(KDIR) M=$(PWD) modules CROSS_COMPILE=arm-linux- ARCH=arm
clean:
?  rm -f *.o *.ko *.order


这是内核模块只有一个源文件的Makefile,如果源文件有多个,则采用如下版本:


obj-m := modulename.o


modulename-objs := file1.o file2.o file3.o? ......
KDIR :=/home/win/myfiles/linux-mini2440
all:
   make -C $(KDIR) M=$(PWD) modules CROSS_COMPILE=arm-linux- ARCH=arm
clean:
?  rm -f *.o *.ko *.order


然后回到代码所在目录执行make 命令,即可产生 .ko 文件。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java网络编程之InetAddress和URL 下一篇Linux 内核3.19.3编译过程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: