本文以Nexus 5 x为例,讲解Android Linux驱动开发的准备
驱动开发了解:
Android对硬件的支持分成了两层,
一层放在用户空间(用户?空间),
一层放在内核空间(内核?空间),
其中,硬件抽象层运行在用户空间,而Linux ?内核驱动程序运行在内核空间。
所以Android的开放代码分两层AOSP和Linux内核
1。Linux内核的下载
下载Linux内核需要确定自己的开发目标,具体的手机和型号或者开发版的系统支持信息。
5 x,以连结之前的文章,使用的分支是android-e-7.1.1-r31,对应的是大头鱼。
Nexus 5 x需要在msm里找,
<代码> mkdir内核代码>
<代码> cd内核代码>
<代码> git克隆https://aosp.tuna.tsinghua.edu.cn/kernel/msm.git 代码>
<代码> msm cd 代码>
查看所有支持的分支
<代码> git分支——代码>
<代码>遥控器/产地/android - msm -蓝鳃太阳鱼- 3.18 -派穿 遥控器/产地/android - msm -大头鱼- 3.10 -棉花糖 遥控器/产地/android - msm大头鱼- 3.10 -棉花糖-博士- 0 遥控器/产地/android 3.10 - msm -大头鱼dr1.5——棉花糖 遥控器/产地/android 3.10 - msm -大头鱼dr1.6——棉花糖 遥控器/产地/android 3.10 - msm -大头鱼mr1——棉花糖 遥控器/产地/android - msm -大头鱼- 3.10 -棉花糖- mr1东亚峰会 遥控器/产地/android 3.10 - msm -大头鱼mr2——棉花糖 遥控器/产地/android - msm -大头鱼- 3.10 - n - mr1预览- 1 遥控器/产地/android - msm -大头鱼- 3.10 - n - mr1预览- 2 遥控器/产地/android - msm -大头鱼- 3.10 - n - mr2预览- 1 * *遥控器/产地/android - msm -大头鱼- 3.10 - n - mr2预览- 2 * * 遥控器/产地/android - msm大头鱼- 3.10 - n -预览- 1 遥控器/产地/android - msm -大头鱼- 3.10 - n -预览- 2 遥控器/产地/android - msm -大头鱼- 3.10 - n -预览- 3所示 遥控器/产地/android - msm -大头鱼- 3.10 - n -预览- 4 遥控器/产地/android - msm -大头鱼- 3.10 - n -预览- 5所示 遥控器/产地/android - msm -大头鱼- 3.10 -牛轧糖 遥控器/产地/android - msm -大头鱼- 3.10 -牛轧糖错误修复 遥控器/产地/android 3.10 - msm -大头鱼hwbinder——牛轧糖 遥控器/产地/android 3.10 - msm -大头鱼mr0.5——牛轧糖 遥控器/产地/android 3.10 - msm -大头鱼mr0.6——牛轧糖 遥控器/产地/android 3.10 - msm -大头鱼mr1——牛轧糖 遥控器/产地/android 3.10 - msm -大头鱼mr1.1——牛轧糖 遥控器/产地/android 3.10 - msm -大头鱼mr2——牛轧糖 遥控器/产地/android - msm -大头鱼- 3.10 - o - mr1 preview1 遥控器/产地/android - msm -大头鱼- 3.10 - o -预览- 1 遥控器/产地/android - msm -大头鱼- 3.10 - o -预览- 2 遥控器/产地/android - msm -大头鱼- 3.10 - 3 - o -预览 遥控器/产地/android - msm -大头鱼- 3.10 - o -预览- 4 遥控器/产地/android - msm -大头鱼- 3.10 m2——奥利奥 遥控器/产地/android - msm -大头鱼- 3.10 -奥利奥- m3 遥控器/产地/android - msm -大头鱼- 3.10 -奥利奥- m4 遥控器/产地/android - msm -大头鱼- 3.10 -奥利奥- m5 遥控器/产地/android - msm -大头鱼- 3.10 -奥利奥- m6 遥控器/产地/android 3.10 - msm -大头鱼m7——奥利奥 遥控器/产地/android 3.10 - msm -大头鱼mr1——奥利奥 遥控器/产地/android - msm -大头鱼- 3.10 -奥利奥mr1 preview2 遥控器/产地/android - msm -大头鱼- 3.10 -奥利奥r4 遥控器/产地/android - msm -大头鱼- 3.10 -奥利奥r6 代码>
下载代码分支
<代码> git checkout遥控器/产地/android - msm大头鱼- 3.10 -牛轧糖- mr2 代码>
2。编译代码
大头鱼是arm64设备,所以编译参数要配置arm64
<代码>出口路径=$路径:/mnt/android/android-e-7.1.1-r31/预先构建的gcc/linux-x86/aarch74/aarch74 - linux - android - 4.9/bin:美元路径代码>
<代码> export拱=arm64 代码>
<代码> export SUBARCH=arm64 代码>
<代码>出口CROSS_COMPILE=aarch74-linux-android - 代码>
<代码>让bullhead_defconfig 代码>
<代码>使美元- j (nproc——所有)代码>
或者
<代码>让阁下代码>
注意,bullhead_defconfig是哪里来的的呢?参烤下面的链接:
https://source.android.com/setup/build/building-kernels
编译成功的界面: