linux kernel module

文档

Documentation/kbuild/modules.txt

在ubuntu上构建模块

Makefile例子

KVERS = $(shell uname -r)
obj-m += my_module.o
build: kernel_modules
kernel_modules:
	make -C /lib/modules/$(KVERS)/build M=$(CURDIR)modules
clean:
	make -C /lib/modules/$(KVERS)/build M=$(CURDIR)clean

说明

  1. -C参数表示改变目录。这里的作用是到源码树目录顶层去make。
  2. KVER 变量是获得内核的版本,以便后面找到正确的源码目录。
  3. M=xxx 是给linux内核源码的Makefile的参数,指明构建哪一个模块。
  4. make modules,modules是linux内核Makefile的一个目标。

Android中使用linux modules

  1. 将module源码放入源码树目录,修改对应的Kconfig和Makefile
  2. 也可直接修改Makefile,在其中添加 obj-m += xxx.o
  3. 在Makefile中添加 ccflags-y += -fno-pic
  4. 修改defconfig,使能 CONFIG_MODULES 和 CONFIG_MODULES_UNLOAD
  5. 编译内核
  6. 编译完成后,找到xxx.ko。将其push到手机中,用insmod安装。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值