编译android内核


编译android内核 1.准备工作: 推荐使用ubuntu(10.04LTS、12.04LTS、10.10,11.10)等linuxOS, 下载好eclipse(注意版本3.7.2,有些旧版本不能适应当前的ADT版本), 安装好JDK, $sudoadd-apt-repository"debhttp://archive.canonical.com/lucid partner" $sudoapt-getupdate $sudoapt-getinstallsun-java6-jdk 对于ubuntu10.04LTS按上面的命令执行可能还是无法安装jdk 需要再添加一个源 $sudoadd-apt-repository"debhttp://us.archive.ubuntu.com/ubuntu/ hardy multiverse 然后再 $sudoapt-getupdate $sudoapt-getinstallsun-java6-jdk 即可。 对于ubuntu11.10按上面的命令执行如果无法安装jdk,执行以下操作: $sudogedit/etc/apt/source.list 然后再此文件的最后一行添加: deb http://cz.archive.Ubuntu.com/ubuntu hardy-updates main multiverse 然后再执行: $sudoapt-getupdate $sudoapt-getinstallsun-java6-jdk 即可。 下载android的SDK(http://developer.android.com/sdk/index.html 。 若用的linux,可以使用我提供的附件中的压缩包 “android-sdk_r17-linux.tgz”; 汤卫东使用的是“android-sdk_r18-linux.tgz” 安装SDK: http://developer.android.com/sdk/installing.html 有详 细官方介绍)。 在Android sdk manger下注意使用的版本(android4.0)或者(android2.3? 向老师是说分析2.3的内核,所以推荐大家使用2.3的模拟器) 其中用到的ADT(18.0)也在我提供的附件中有。 在ADT之前一定要安装WST,否则ADT安装有问题安装ADT需要RCP版本的 eclipse。 最后,在eclipse中成功打开android 手机模拟器即OK。 可能会出现的错误的信息: 当使用版本是ubuntu 10.10输入以下命令的时候: $sudoadd-apt-repository"debhttp://archive.canonical.com/lucid partner" 会出现以下错误:Package sun-java6-jdk is not available, but is referred to by another package.This may mean that the package is missing, has been obsoleted, oris only available from another source 这是由于 ubuntu 10.10 已经去掉 sun-java6-jdk 和sun-java6-jre 的软件包,这时 要添加以下源(在 ubuntu 10.04 版本中可能也会出现这个问题): deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse 具体操作方法为:1、sudo gedit /etc/apt/sources.list 2、添加这个源:deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse 3、保存关闭 gedit 4、运行 sudo apt-get update 5、再运行 sudo apt-get install sun-java6-jdk 2.初始化编译环境 : 32位OS: $sudoapt-getinstallgit-coregnupgflexbisongperf\ build-essentialzipcurlzlib1g-devlibc6-devlibncurses5-dev\ x11proto-core-devlibx11-devlibreadline6-devlibgl1-mesa-dev\ tofrodospython-markdownlibxml2-utilsxsltproc 64位OS: sudoapt-getinstallgit-coregnupgflexbisongperfbuild-essential\ zipcurlzlib1g-devlibc6-devlib32ncurses5-devia32-libs\ x11proto-core-devlibx11-devlib32readline5-devlib32z-dev\ libgl1-mesa-devg++-multilibmingw32tofrodospython-markdown\ libxml2-utilsxsltproc 根据OS系统的不同,可能还有不同的补充,请参考 http://source.android.com/source/initializing.html,关注该网页上 的“installing required packages”,其中有的软件包因为版本问题而 安装不上,不用管它,之后遇到错误再单独解决。 3.下载内核源码: 可以从我提供的附件中,goldfish文件夹即是内核源码了。 亦可参考:http://source.android.com/source/building-kernels.html 亦或 $ git clone https://android.googlesource.com/kernel/goldfish.git $ git branch –a $ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29 4.下载交叉编译器: 可以使用我提供的附件中的arm-2011.09的压缩包,解压缩到 /home/yourname,它的bin文件夹下即为编译器。解压缩后,将该bin文件 夹加入系统环境变量中 $ export PATH=/home/yourname/arm-2011.09/bin:$PATH 也可以: 按照官网网页中的说法是下载: $ git clone https://android.googlesource.com/platform/prebuilt $ export PATH= (pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH (该步骤有可能耗费大量时间,依据网速不同,几个小时不等。) 5.设置参数以及编译: $ export ARCH=arm $ export SUBARCH=arm $ export CROSS_COMPILE=arm-none-linux-gnueabi- $ cd goldfish // 进入下载的源代码目录 $ git checkout //这个步骤我没有 做,不知道干嘛用的 $ make goldfish_defconfig 不同的android版本用不同的文件, android4.0需要采用goldfish_armv7_defconfig,对应的交叉编译器的版 本为7,如果版本号不对会造成模拟器启动后黑屏) $ make 6.报错: 我遇到的报错信息有 arm-none-linux-guneabi- commond not found 。 $ export PATH=/home/yourname/arm-2011.09/bin:$PATH $ export CROSS_COMPILE=arm-none-linux-gnueabi- 之后,就解决了。 每个每个同学可能会遇到不同的错误,希望能补充到这里来。 ERROR:include/asm is directory but symlink was expected 解决:删除 include/asm 7.测试: 最后,测试一下刚才编译的内核: emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImage emulator若系统找不到,可以去/android-sdk-linux/tools文件夹找到, 加入系统PATH即可: $ export PATH=/home/yourname/android-sdk-linux/tools:$PATH -avd后面的参数 myavd即为模拟器的名字,这个我是在eclipse中的模拟 器管理中新建的一个模拟器,用那个模拟器的名字即可。 -kernel后面的参数就找到刚才编译出的内核的路径。 若启动模拟器失败,可尝试关闭后再启动。第一次启动模拟器时可能需要 等待比较长的时间,3分钟到 15 分钟不等。
还剩5页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 7 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

twdong

贡献于2012-09-11

下载需要 7 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf