linux模块编写和安装,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 文件。

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值