没有android内核的系统源代码应该怎么利用

没有android内核的系统源代码应该怎么利用,第1张

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源码引擎和非源码区别、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9821898.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存