您的位置:首页 > 移动开发 > Android开发

在android手机中添加一个新的kernel module

2014-02-22 19:33 337 查看
问题描述:

有一台MTK 6572平台的手机,Android版本为4.2.2,希望能在其中添加一个新的kernel module。

下面是一个简单的helloworld实例:

1.准备代码:

目录alps/kernel/drivers/下新建一个文件夹,取名为helloworld,在其中添加两个文件

helloworld.c

#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>

static int hello_init(void)
{
printk("Hello! This is the helloworld module!\n");
return 0;
}

static void hello_exit(void)
{
printk("Module exit! Bye Bye!\n");
return;
}

module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");


Makefile,文件中就一句

obj-m := helloworld.o




2.修改上一级的Makefile

即修改文件alps/kernel/drivers/Makefile

obj-y                += helloworld/

3.编译

编译命令:./mk r k kernel/drivers/helloworld/

因为之前已经执行过new命令了,这里省略了项目名称

会在这个目录下生成如下文件,其中,helloworld.ko文件是我们最想要的:



4.打包

首先把这个helloworld.ko文件拷贝到alps/out/target/product/huaqin72_we_b1a_jb3/system/lib/modules/目录下

然后通过snod命令打包生成system.img。

当然也可以直接把这个ko文件push到手机对应的目录下:/system/lib/modules,然后在这个目下用insmod命令安装此module即可:

insmod helloworld.ko

可以通过dmesg命令查看kernel log,我们会在log中看到代码里的信息输出了。这就成功了。

也可以通过rmmod helloworld命令来卸载此module,同样可以看到log输出。

感谢【FAQ07275】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐