打包ko到image中

很多时候,我们要在系统启动的时候在init.rc中指定开机insmod某个ko文件,因此,需要将ko文件添加到system.img中。此处以Android下打包bcmdhd.kosystem/lib/modules/为例。


编译生成 bcmdhd.ko

通过Kernel_SrcDir/drivers/net/wireless/bcmdhd/ 目录编译生成的 bcmdhd.ko会保存在如下的两个路径:

  • Android_SrcDir/device/ProjectName/common/kernel-mod/lib/modules/4.1.15/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko

  • Kernel_SrcDir/drivers/net/wireless/bcmdhd/bcmdhd.ko


修改xxx.mk文件

Android_SrcDir/device/ProjectName/common/kernel-mod/xxx.mk 添加以下4宏:

指定编译存放在哪个路径

1
2
MY_KERNEL_MOD_INSTALL_PATH := $(TARGET_OUT)/usr/lib/modules
LOCAL_MODULE_PATH := $(MY_KERNEL_MOD_INSTALL_PATH)

指定ko的文件来源路径

1
2
3
MY_KERNEL_WIFI_BCMDHD_PATH := lib/modules/4.1.15/kernel/
LOCAL_PREBUILT_EXECUTABLES := \
$(MY_KERNEL_WIFI_BCMDHD_PATH)/drivers/net/wireless/bcmdhd/bcmdhd.ko

bcmdhd.ko最终就会编译进system.img中去,即该ko会放到system/usr/lib/modules/ 目录中去。

经过测试,这样修改编译还是会提示找不到 bcmdhd.ko,需要将该ko先拷贝到lib/modules/4.1.15/kernel/drivers/net/wireless/bcmdhd/ 目录下,然后重新编译就会自动拷贝打包。

上述的调用关系流程为:

1
2
3
4
5
6
7
8
Android_SrcDir/device/ProjectName/common/kernel-mod/xxx.mk
ALL_DEFAULT_INSTALLED_MODULES += $(addprefix $(LOCAL_MODULE_PATH)/,$(notdir $(LOCAL_PREBUILT_EXECUTABLES)))

Android_SrcDir/build/core/main.mk
Default_MODULES := $(sort $(ALL_DEFAULT_INSTALLED_MODULES) \

Android_SrcDir/build/core/main.mk
modules_to_install := $(sort $(Default_MODULES) \

这部分的内容参照:http://blog.csdn.net/jscese/article/details/39209341


修改init.rc文件

一般init.rc会放在Android_SrcDir/device/ProjectName/SubProjectName/目录下。


添加配置文件的存放路径

bcmdhd.ko 使用过程中需要用到fw_bcmdhd.binnvram.txt等固件或配置文件,所以需要将其他们拷贝到指定路径,然后insmod bcmdhd.ko可以从该位置获取到这些文件的信息。
fw_bcmdhd.binnvram.txt等固件或配置文件拷贝到Android_SrcDir/device/ProjectName/SubProjectName/firmware_path 路径下,其中 firmware_path/ 目录可以自己创建。

Android_SrcDir/device/ProjectName/SubProjectName/BoardConfig.mk 文件中的PRODUCT_COPY_FILES宏下添加要拷贝到的路径,比如:

1
2
3
PRODUCT_COPY_FILES +=   \
device/ProjectName/SubProjectName/firmware_path/fw_bcmdhd.bin:system/etc/wifi/firmware/fw_bcmdhd.bin \
device/ProjectName/SubProjectName/firmware_path/nvram.txt:system/etc/wifi/firmware/nvram.txt

Title:打包ko到image中

Author:Victor Huang

Time:2019-06-08 / 14:06

Link:http://wowothink.com/18a8e793/

License: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)