设为首页 收藏本站
查看: 1829|回复: 0

[经验分享] Build Android-x86 ICS 4 Virtualbox from Google Virtualbox Target and Intel Kerne

[复制链接]

尚未签到

发表于 2015-4-14 08:50:57 | 显示全部楼层 |阅读模式
  最近一直在研究android源码的编译,应该说研究的很辛苦,最难的是下源码,总是不停的断掉,最后感谢公司的高网速,找到方法后12G的源码只花了1个小时就下完了。
  参考以下网址:http://software.intel.com/en-us/blogs/2012/03/06/hands-on-notesbuild-android-x86-ics-4-virtualbox-from-google-virtualbox-target-and-intel-kernel

一、环境设置:
  官网上已经写明ubuntu10.04,如果用其它版本编译,可能会出现许多奇怪的问题,我采用的为ubuntu10.04-desktop-64bit,参考文章:http://www.iyunv.com/jqyp/archive/2012/02/27/2369291.html

1、jdk的安装
  去jdk官网下载此文件:jdk-6u45-linux-x64.bin,然后是安装和设置java的环境变量,参考此网址:http://blog.iyunv.com/jjjkl81/article/details/5895845

配置java环境变量,假设用户名为:sa
  # sudo gedit /home/alex/.bashrc
在 .bashrc文件中加入:



export JAVA_HOME=/usr/lib/jvm/java/jdk1.6.0_45
export JRE_HOME=/usr/lib/jvm/java/jdk1.6.0_45/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
  

2、安装依赖库


$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc

3、升级git,现在要求git版本最低1.7.2,因此如果发现下载的git低于1.7.2,可作如下动作:


$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt-get update
$ sudo apt-get install git-core curl

二、源码下载

(一)android4.0.1_r1源码下载

建议先改/etc/hosts文件,增加文件如下:

74.125.237.1      dl-ssl.google.com
74.125.31.82    www.googlesource.com
74.125.31.82    android.googlesource.com
203.208.46.172    cache.pack.google.com
59.24.3.173     cache.pack.google.com

1、下载Repo


$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

正常情况下,你已经在hosts中做了相应的更改并且重启了机器,是不会出错的了,如果很不幸,你连不上去,可参考这篇文章:http://www.w3c.com.cn/repo-%E8%8E%B7%E5%8F%96android%E6%BA%90%E7%A0%81,此文章可以得到可用的repo。之前我主要就是卡在域名映射这一块,怎么都下载不了,然后用上篇的方法下到了repo,也下到了一部份源码,可惜最多也只下到了5G,然后就一直连不上了,足足卡在这儿一个多星期,无比的痛苦。

2、修改执行权限:


$ chmod a+x ~/bin/repo

3、创建并进入源码目录:


$ mkdir android-4.0.1_r1
$ cd android-4.0.1_r1

4、下载android-4.0.1_r1的源码

  $ repo init -u https://android.googlesource.com/platform/manifest
  $ git --git-dir .repo/manifests/.git/ branch –a
  $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
  $ repo sync

  这一步正常的话,就是等待源码下载结束了,大约有12G多点。如果中途断掉了,你可以重新执行以下命令,得以继续下载。

  $ repo sync


(二)kernel_sdk_x86源码下载
  http://software.intel.com/en-us/blogs/2012/03/06/hands-on-notesbuild-android-x86-ics-4-virtualbox-from-google-virtualbox-target-and-intel-kernel此网页中有一个Intel插件的介绍:kernel_sdk_x86.tar.gz,这个是必须要用到的,点击其中的链接Intel_x86_sysimg_2.3.7_Source_Files.zip,将其下载下来即可,建议解压缩直接到linux环境下进行,因在windows环境下会有文件覆盖的现象,恐会导致后面的编译出错。

三、源码编译:

(一)kernel_sdk_x86源码编译

1、之前下载的zip解压后有一个压缩包kernel_sdk_x86.tar.gz,这个正是我们需要的内核源码,将其再解压,放置于home目录,与android-4.0.1_r1目录处于同一级

  $ cd ~/kernel_sdk_x86
  $ cp arch/x86/configs/vbox_defconfig  .config
  $ make  ARCH=x86 menuconfig

  弹出以下对话框:
DSC0000.png
  特别注意:不能选中64-bit kernel,否则很可能编到最后会出错,再选中两处:
  Device Driver->Input Device Support –> Mice
  Network Device –>Wireless
  点击Esc键(可能是两次)退出保存

2、编译(j代表线程,一般用处理器数的2倍,我的有4核,所以用8线程编译)

  $ make ARCH=x86 –j8

  After the compiling, if you see the last line that Kernel: arch/x86/boot/bzImage is ready .Then, your make is successful.

(二)android-4.0.1_r1源码编译

1、进入源码目录

  cd ~/android-4.0.1_r1


2、拷贝内核信息到此目录

  cp ~/kernel_sdk_x86/arch/x86/boot/bzImage ~/android-4.0.1_r1/prebuilt/android-x86/kernel/kernel-vbox
cp ~/kernel_sdk_x86/vmlinux ~/android-4.0.1_r1/prebuilt/android-x86/kernel/vmlinux-vbox


3、编译源码

  source build/envsetup.sh

  你应该能看到以下信息:


including device/samsung/maguro/vendorsetup.sh
including device/samsung/tuna/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including sdk/bash_completion/adb.bash

4、lunch

  $ lunch

  出现以下信息:


1. full-eng
2. full_x86-eng
3. vbox_x86-eng
4. full_maguro-userdebug
5. full_tuna-userdebug
6. full_panda-eng
Which would you like? [full-eng] 3   (Note: make sure you select 3.vbox_x86-eng)

5、编译


$ make   -j8

编译时间比较久,完了后会看到生成了一堆.img文件。
6、设置DNS


echo "Net.eth0.dns1 = 8.8.8.8"  >> ~/android-4.0.1_r1/out/target/product/vbox_x86/root/default.prop
echo "Net.dns1 = 8.8.8.8"  >> ~/android-4.0.1_r1/out/target/product/vbox_x86/root/default.prop

7、安装virtualbox


apt-get install virtualbox-ose

8、编译成vdi文件

  $ make android_disk_vdi –j8
  $ make installer_vdi  -j8

  

四、总结
  至此,android源码基本算是结束了,关于jdk的安装稍显复杂了点,后面有机会我会测试直接通过命令安装是否不需要这么麻烦,virtualbox是必须要安装的,否则无法生成vdi文件,同样,第2步拷贝的内容也是必须的,之前我忘记了这一步骤,结果一直报错No rule to make target,把我折腾好久。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56933-1-1.html 上篇帖子: VIRTUALBOX 虚拟机安装 OS X 10.9 MAVERICKS 下篇帖子: VirtualBox共享文件夹
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表