将安卓驱动编译成moudle开机后自动启动

本文介绍了如何将安卓驱动程序编译为模块并在系统启动时自动加载。首先,确保驱动代码正确并能正常运行。然后,修改驱动文件夹下的Makefile、Kconfig和defconfig文件,将驱动配置为模块编译。编译完成后,模块位于android/out/target/product/YOUR_IMAGE_NAME/obj/kernel目录。最后,探讨了如何通过系统启动脚本在开机时插入insmod,实现驱动的自动加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设我们写好了驱动程序:xxx.c,并且可以正常运行(驱动的init match probe等等都OK)

先看一下将驱动编译进内核的情况,主要关注以下几个文件:

驱动文件夹下的Makefile里有一句:

obj-$(CONFIG_XXX)  += xxx.o

驱动文件夹下的Kconfig(如我的是Kconfig.x86)有:

config XXX
    bool "ABCD"
    depens on YYYY
    help
        ...

arch/x86/configs/kkkk_defconfig里有一句:

CONFIG_XXX=y

(这里等号两边不要留空格)

接下来将驱动编译成module

Makefile不变

将Kconfig中的改为:

config XXX
    tristate "ABCD"
    depends on YYYY
    help
        ...

defconfig中的改为:

CONFIG_XXX=m

编译成功后,在目录android/out/target/product/YOUR_IMAGE_NAME/obj/kernel/目录下可以找到编译完成的module。
系统启动后,用adb查看/system/lib/modules/目录,也可以找到对应的module。

现在我们的系统中已经包含了该driver,只不过是以moudle的形式存在,接下来要做的工作就是利用脚本将该module在系统启动的时候insmod。关于系统启动时脚本的调用还有待研究……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值