
1 获取源代码
在cd ~/myandroid/kernel中执行以下命令
git clone git://androidgitkernelorg/kernel/commongit
这需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。
然后进入到common目录,然后用下面的命令来取得goldfish分支:
git checkout origin/android-goldfish-2627 -b goldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2627分支,代码则已经与android-goldgish-2627同步。
可以通过git branch来列出本地的所有分支。
2 在Host OS上准备编译环境
尽管很多人安装完Ubuntu后第一件事情就是装上build-essential,不过我在这里还是要提醒一下大家,另外做menuconfig的时候ncurses-devel库也是必须的。运行以下命令,一次搞定:
sudo apt-get install build-essential ncurses-dev
3 准备交叉编译工具链
Android代码树中有一个prebuilt项目,包含了我们编译内核所需的交叉编译工具。如果你拿了完整的Android platform 的代码树,它就会在prebuilt目录下。如果没有拿完整的代码树也没有关系,只要用Git clone一个或者到从GitWeb下载一个prebuilt项目 ,如果是从GitWeb下载的话记得解压缩就行。
4 设定环境变量
把prebuilt中的arm-eabi编译器加入$PATH
$export PATH=$PATH:/myandroid/androidsrc/prebuilt/linux-x86/toolchain/arm-eabi-421/bin
设定目标arch为arm
$export ARCH=arm
打开kernel目录下的Makefile文件,把CROSS_COMPILE指向刚才下载的prebuilt中的arm-eabi编译器
CROSS_COMPILE = arm-eabi-
把
LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,/
$(call ld-option, -Wl$(comma)–build-id,))
这一行注释掉,并且添加一个空的LDFLAGS_BUILD_ID定义,如下:
LDFLAGS_BUILD_ID =
下面的这段解释来自陈罡的blog
把它注释掉的原因是目前android的内核还不支持这个选项。–build-id选项,主要是用于在生成的elf可执行文件中加入一个内置的id,这样在core dump,或者debuginfo的时候就可以很快定位这个模块是哪次build的时候弄出来的。这样就可以避免,每次都把整个文件做一遍效验,然后才能得到该文件的是由哪次build产生的。对于内核开发者来说,这是很不错的想法,可以节约定位模块版本和其影响的时间。目前,该功能还出于early stage的状态,未来的android或许会支持,但至少目前的版本是不支持的。
对这个–build-id选项感兴趣的朋友,可以访问下面的网址,它的作者已经解释得非常明白了:
>
以上就是关于没有android内核的系统源代码应该怎么利用全部的内容,包括:没有android内核的系统源代码应该怎么利用、ue源码引擎和非源码区别、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)