Chromium OS编译手记

闲着无聊决定编译个Chromium OS玩玩。下面的编译过程基本上是照着官方的编译文档操作的。该地址已被伟大的墙隔离了,需要查看的同学请自备梯子。

我用的编译环境是Ubuntu 10.04 LTS 64bit。官方推荐Ubuntu的最低版本是8.04。即使是编译32位目标平台的版本,也要用64bit的linux进行交叉编译。

其它的要求包括一个root权限的用户、最好有20G的磁盘剩余空间,足够快的网络。如果需要在真机上引导,还需要一个U盘。

本文中列出的命令有些是凭记忆写的,一条条照着操作一遍不一定就能成功。如果提示权限不足请根据情况sudo或chmod 744 文件名。注意,请勿使用sudo -i,或者用root执行chroot下script中的脚本。

 

准备工作,首先升级软件包:

clowwindy @clowwindy - ubuntu :~ $ sudo apt - get update
clowwindy
@clowwindy - ubuntu :~ $ sudo apt - get upgrade

 

安装以下软件包:

sudo apt - get install bison fakeroot flex g ++ g ++- multilib gperf \
libapache2
- mod - php5 libasound2 - dev libbz2 - dev libcairo2 - dev \
libdbus
- glib - 1 - dev libgconf2 - dev libgl1 - mesa - dev libglu1 - mesa - dev \
libglib2
. 0 - dev libgtk2 . 0 - dev libjpeg62 - dev libnspr4 - dev libnss3 - dev \
libpam0g
- dev libsqlite3 - dev libxslt1 - dev libxss - dev \
mesa
- common - dev msttcorefonts patch perl pkg - config python \
python2
. 5 - dev rpm subversion libcupsys2 - dev libgnome - keyring - dev \
apache2 wdiff lighttpd php5
- cgi sun - java6 - fonts \
msttcorefonts ttf
- dejavu - core ttf - kochi - gothic ttf - kochi - mincho \
ttf
- indic - fonts

 

然后安装git和svn:

sudo apt - get install git - core subversion

 

然后下载depot_tools:

wget http :// src . chromium . org / svn / trunk / tools / depot_tools . tar . gz
tar zxf depot_tools
. tar . gz
mv depot_tools
/ opt /

 

然后为depot_tools设置PATH环境变量:

cd / opt
export PATH
= `pwd` / depot_tools : " $PATH "

 

接下来获取Chromium OS的代码:

cd ~
mkdir chromiumos
cd chromiumos
gclient config http
:// src . chromium . org / git / chromiumos . git
gclient sync

 

这个过程比较慢长,可以去做别的事了。我这篇文章就是这个时候开始动笔的。

下载途中出错了一次,portage.git在90%左右的时候提示error: RPC failed; result=56, HTTP code = 200。我google了一下,没看到有人解决了这个问题,不知是bug,还是网络RP。于是重新运行gclient sync,结果从当前正在同步的git开始重新同步,又是漫长的等待……

这次没有遇到这个错误,终于下载完毕,总共下了3G左右流量,占地5.9G。

不要切断网络,因为后面的过程依然需要下载。

 

接下来构建chroot环境并进入它:

cd ~/chromiumos/chromiumos.git/src/scripts
.
/ make_chroot
./enter_chroot.sh

 

我们现在已经在chroot环境下(这个环境的/实际上在chromiumos.git/chroot/),如果要退出chroot请按Ctrl+D。

接下来设置编译的目标平台。我选择的是x86-generic。如果是ARM平台这里是arm-generic。

cd ~/ trunk / src / scripts
.
/ setup_board -- board = x86 - generic

 

为了开发方便,添加一个本地用户:

sudo . / enable_localaccount.sh USERNAME

 

设置密码:

sudo ./ set_shared_user_password . sh

 

开始编译:

./ build_packages -- board = x86 - generic

 

接下来又是漫长的等待。77分钟后编译结束。

 

然后生成镜像:

  ./ build_image -- board = x86 - generic

 

这里因为先前的权限没有处理好,导致了一个无法创建生成目录的error。sudo创建../build/目录然后设置为777权限后这个问题就解决了。

经过22分钟生成结束。

然后将镜像写入到u盘。注意,这里一定要先退出chroot环境再进行。

--from=是刚才生成的镜像所在目录,/dev/sdc是U盘设备。

./ image_to_usb . sh -- from =/ home / clowwindy / chromiumos / chromiumos . git / src / build / images / x86 - generic / 0.7 . 47 . 2010_06_18_0549 - a1 / -- to =/ dev / sdc

 

试着插到一台上网本上,成功引导,出现了登陆界面。我的无线网络没有开放SSID,这里无法设置,所以我插上网线选择以太网。用刚才的local帐号登录提示密码错误,于是用chronos和空密码登录,然后出现了浏览器。嗯,没有flash插件。应用标签页没有出现,取而代之的是传说中的web store。去google code查了下,有人反馈过这个bug,不过google貌似是故意的。当我点击web store的时候伟大的墙又一次立功了。暂时懒得弄ssh -D,这次先这样吧,以后再继续研究。

 

补充:

将镜像转换成vmware磁盘镜像的方法:

在chroot环境外,先安装依赖:

sudo apt-get install qemu

 

 

然后生成磁盘镜像:

./ image_to_vmware . sh -- from =../ build / images / x86 - generic / 0.7 . 47 . 2010_06_18_0549 - a1 -- to =~/ chromiumos . vmdk

 

 

镜像应该就能生成好了……理论上。可惜的是现在执行这个操作会发生mount: special device /dev/sda12 does not exist的错误。在google讨论组上有人讨论过这个问题。目前看来可能是google留下的一个bug。这个帖子中有人提出可以修改image_to_vmware.sh,在sudo "$TEMP_MNT"/postinst /dev/sda3这一行后面加个 --postcommit来忽略错误。修改之后重新生成,这次终于成功了。

 

最后上几张图:

2010061910570680.png

 

2010061910580317.png

 

2010061910582775.png

 

 

2010061910584554.png

 

2010061910590031.png

posted on 2010-06-18 22:39 clowwindy 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/clowwindy/archive/2010/06/18/Chromium_OS_build.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值