Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / ARM平台的内核模块编写与安装

最近在学习arm平台下的内核模块开发,现将内核模块建立过程记录一下。 从编写代码的角度来看,创建一个简单的的内核模块可以分3步走: 1. 添加头文件(linux/init.h 和linux/module.h);         2. 加载内核(函数module_init);    3. 卸载内核(函数module_exit)如一个简单的内核模块如下:#include <linux/init.h>
#include <linux/module.h>
static int hello_init()
{
    printk(KERN_WARNING"hello my module! ");
    return 0;
} static void hello_exit()
{
    printk(KERN_WARNING"module exit! ");
}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.omodulename-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 文件。本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-04/116547.htm