本文主要是介绍内核篇加载内核模块(Android10),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、 开发前期准备
本文中使用的是linageOs源码中下载的oneplus3 安卓10内核源码进行研究测试。交叉编译链使用的是linageOs源码中的交叉编译链。
lineageOs源码中oneplus3内核源码位置路径:
/home/qiang/lineageOs/kernel/oneplus/msm8996
lineageOs源码中交叉编译目录位置路径:
/home/qiang/lineageOs/prebuilts/gcc/linux-x86
为了方便研究测试,不破坏lineageOs中的内核源码结构。我新建一个目录专门存放内核源码、内核模块源码。并将内核源码拷贝到该目录。
本文后续测试的内核源码目录路径:
home/qiang/myproject/kernel/oneplus3/msm8996
本文后续内核模块编写存放目录路径:
/home/qiang/myproject/kernel/oneplus3/modules
二、编译内核源码
-
找到oneplus3设备的内核源码配置
安卓源码中device/厂商/手机型号/BoardConfig.mk文件中配置了内核源码路径和编译配置文件。因此在device/oneplus/oneplus3/BoardConfig.mk中存放了相关的内核配置信息,如下所示:
BOARD_KERNEL_BASE := 0x80000000
BOARD_KERNEL_PAGESIZE := 4096
BOARD_KERNEL_TAGS_OFFSET := 0x02000000
BOARD_RAMDISK_OFFSET := 0x02200000
BOARD_KERNEL_IMAGE_NAME := Image.gz-dtb
TARGET_KERNEL_SOURCE := kernel/oneplus/msm8996
TARGET_KERNEL_CONFIG := lineageos_oneplus3_defconfig
以上TARGET_KERNEL_CONFIG变量指定了oneplus3内核的编译配置文件名为:lineageos_oneplus3_defconfig。
在内核源码中编译配置文件一般存放在路径arch/处理器平台/configs下面。由于一加3手机为arm64,所以在路径arch/arm64/configs下找到配置文件lineageos_oneplus3_defco
这篇关于内核篇加载内核模块(Android10)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!