google kernel 源码
https://android.googlesource.com/kernel/common.git
源码
https://android.googlesource.com/platform/manifest/+refs
可是怎么下载源码 网上的方法都有问题 看下面转载的
1 内核下载1.1 克隆到本地
$ git clone https://android.googlesource.com/kernel/common.git
下载400多M左右,在当前目录下有一个common的文件夹
注:common可以修改为goldfish、samsung、tegra等不同厂商的内核
$ cd common
打开common,通过ctrl+H命令显示隐藏的文件夹(.git)
$ git branch -a
显示如下不同版本的kernel
john@john-Inspiron-7420:~/codebase/work/kernel/common$ git branch -a
* (no branch)
master
remotes/origin/HEAD -> origin/master
remotes/origin/android-2.6.39
remotes/origin/android-3.0
remotes/origin/android-3.3
remotes/origin/android-3.4
remotes/origin/android-3.4-compat
remotes/origin/coupled-cpuidle
remotes/origin/linux-bcm43xx-2.6.39
remotes/origin/master
1.2 checkout 对应的版本
# git checkout remotes/origin/android-3.4
下载kernel为3.4的版本,
至此,所有kernel文件在common下出现,内核下载完毕。
2 内核编译
2.1交叉编译环境设置
2.1.1 有android 源码 在android 源码根目录下设置交叉编译工具路径 john@john-Inspiron-7420:~/codebase/work$ ls abi bootable dalvik docs hardware Makefile packages system bin build development external kernel ndk prebuilt v8.log bionic cts device frameworks libcore out sdk john@john-Inspiron-7420:~/codebase/work$
export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
设置编译的架构及交叉编译工具前缀
- $exportARCH=arm
- $exportSUBARCH=arm
- $exportCROSS_COMPILE=arm-eabi-
2.1.2 无android源码 在内核源码根目录下下载交叉编译工具链,再设置环境变量,同上 john@john-Inspiron-7420:~/codebase/work/kernel$ git clone https://android.googlesource.com/platform/prebuilt
john@john-Inspiron-7420:~/codebase/work/kernel$
export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
2.2内核配置
在kernel/common/arch/arm/configs/下,有很多不同的配置,这里本人的开发板为S3C6410,因此配置如下:
john@john-Inspiron-7420:~/codebase/work/kernel/common$ make s3c6400_defconfig
#
# configuration written to .config
#
john@john-Inspiron-7420:~/codebase/work/kernel/common$
2.3内核编译
执行make命令,开始编译内核,最终在arch/arm/boot下生成内核IMG文件。
john@john-Inspiron-7420:~/codebase/work/kernel/common$ make