编译chrome

来源:互联网 发布:淘宝橱窗在什么位置 编辑:程序博客网 时间:2024/05/29 23:48

最近心血来潮,折腾起ChromiumOS,其实玩的很没水平,因为现在ChromiumOS的编译机制已经很方便了,照着 《Chromium OS Developer Guide》做也基本都能把系统整出来。虽然如此,但网上中文的资料有点滞后,当下ChromiumOS的编译过程已经有所改变,所以还是把这个过程记录下。因为玩得没什么深度,所以本文内容也基本是对《Chromium OS Developer Guide》的低水平翻译加上我自己编译过程中的一些体会。

前期准备

从源码得到ChromeOS(准确说应该是ChromiumOS,因为二者还是有些区别的。因为ChromiumOS是开源版,所以没有带上私有版权的软件,比如一些解码包)你至少要具备一下条件:

  • 一个64位的Ubuntu Linux,官方推荐是10.04,因为开发者一般用LTS版本。当然版本号应该不是大问题,我第一次编译时是在10.10上完成的,也没什么大问题。最重要的是:你要有管理员权限!
  • 一台性能够好的机器!官方建议的入门配置是至少4G内存,4G swap,4核CPU,这样整个编译过程大约需要90分钟。并且如果是八核的话,时间可能几乎对半!但实际上我用的机器没那么强:

CPU:i52300

RAM:4G DDR3

SWAP:4G

我用的时间是120分钟左右,囧。虽然如此,但实践证明内存小点也行,SWAP要大点,不过时间就长得坑爹了。

  • 最后还得安装一下软件:git-core gitk git-gui subversion curl

Ubuntu下:

sudo aptitude install git-core gitk git-gui subversion curl

安装depot_tools

Chromium OS 使用一组称作 depot_tools 的软件包管理 checkout 与代码审校。

1.获取depot_tools:

svn co http://src.chromium.org/svn/trunk/tools/depot_tools

2.添加到PATH:
在.profile文件加上这样一行

export PATH="$PATH":"$HOME"/depot_tools

配置Git:

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

把上面的”you@example.com”和”Your Name”换成你的邮箱和姓名。
获取代码:
现在建立一个文件存放代码:

mkdir -p ${HOME}/chromiumos

ChromiumOS的代码有两种:minilayout和full layout,minilayout当然会比较小,官方推荐一般编译用这种,但似乎用这种代码编译时,还得一边从网络下载“东西”,在网络状况不是很好的情况下,很容易断掉,所以我推荐还是用fulllayout(完全下载完chromium目录有7G!)。下面是这两种代码的下载方法:

#minilayout:

cd ${HOME}/chromiumos

repo init -u http://git.chromium.org/chromiumos/manifest.git -m minilayout.xml --repo-url http://git.chromium.org/external/repo.git

repo sync

#full layout:

cd ${HOME}/chromiumos

repo init -u http://git.chromium.org/chromiumos/manifest.git --repo-url http://git.chromium.org/external/repo.git

repo sync

创建 chroot

cros_sdk
它会自动下载cros_sdk,这个可以看作ChromiumOS的编译环境?整个过程完成后,就会进入chroot环境,出现“~/trunk/src/scripts $”这样的标识。为了区分chroot中输入的命令,我这里用紫色标记。

创建架构变量:

BOARD=x86-generic
这里将编译一个在X86上运行的版本。

初始化board编译:

./setup_board --board=${BOARD}
系统会自动下载一些相关文件,需要等待一定时间。

设置chronos 用户密码:

./set_shared_user_password.sh

接下来,开始漫长的编译了:

./build_packages --board=${BOARD}
最新的版本,编译已经很方便了,几乎不会有什么差错。不过在一次编译中,到几乎要完成的时候断掉了……输出提示找不到一个包,当时我很淡定的重新输入了一下“./build_packages –board=${BOARD}”,很快编译也就完成了,做成镜像也可以启动。反正出现错误时,不必慌,分析下输出,然后重新试下,大不了全部再来。

生成镜像:

编译完成后,最“困难”的部分也就过去了,接下来打包镜像:
./build_image --board=${BOARD} --withdev --noenable_rootfs_verification
生成的镜像位于: ~/trunk/src/build/images/${BOARD}/latest
如果你想把系统写到优盘:
./image_to_usb.sh --board=${BOARD} --to=${MY_USB_KEY_LOCATION}
如果你想生成一个虚拟机镜像:
./image_to_vm.sh --board=${BOARD}
默认情况下生成kvm的镜像,如果你想要一个VM或者VBOX镜像,可以带上参数“–format=vmware”或“–format=virtualbox”

整个基本的过程差不多就是这样,最后荣幸地宣布本文真是在Chromium OS 下完成!

原创粉丝点击