一、 开发前期准备
本文中使用的是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_I