转自http://www.sgtalk.cn/656868.html 转载请注明。
粗略的介绍一下Chromium OS编译过程。
安装下面的依赖:
sudo apt-get install subversion pkg-config Python perl g++ g++-multilib bison flex gperf libnss3-dev libgtk2.0-dev libnspr4-0d libasound2-dev libnspr4-dev msttcorefonts libgconf2-dev libcairo2-dev libdbus-1-dev wdiff lighttpd php5-cgi sun-Java6-fonts git-core
然后,使用gclient获取Chromium OS的源码目录(四百多兆):
mkdir Chromium OS
cd Chromium OS
gclient config http://src.chromium.org/git/Chromium OS.git
gclient sync
编译脚本都在Chromium OS/src/scripts下面,依次执行下面几个脚本:
./make_local_repo.sh
运行这个脚本之前,确保安装了reprepro,否则会提示找不到命令,这时,需要将Chromium OS/repo目录删除才可以重新执行make_local_repro.sh脚本,汗~这个搞了好久Orz。
./make_chroot.sh
创建chroot编译环境后,需要下载chrome浏览器,改名为chrome-chromeos.zip并放到~/Chromium OS/src/build/x86/local_assets,这个目录需要自己依次创建。
然后进入chroot环境:
./enter_chroot.sh
这时,可以创建一个脱机用户,为了防止没有网络链接的情况下无法登录:
cd ../platform/pam_google && ./enable_localaccount.sh USERNAME
再依次编译软件包和内核,创建磁盘镜像:
./build_platform_packages.sh
./build_kernel.sh
./build_image.sh
脚本执行完毕后,会如下提示:
Done. Image created in /home/yang/trunk/src/build/images/999.999.32809.061105-a1
然后会生成rootfs.image磁盘镜像,可以将该镜像转为虚拟机磁盘(vmdk):
./image_to_vmware.sh –from=~/Downloads/Chromium OS/Chromium OS.git/src/build/images/999.999.32809.061105-a1 –to=~/Downloads/Chromium OS/Chromium OS.git/src/build/images/999.999.32809.061105-a1/rootfs.vmdk
截图:
编译好的镜像:
在vmware没有体验到好处,看来要用到我的wind U100上网本了^^
更新(11.30):如果使用src/scripts/image_to_usb这个脚本来写入的U盘的话,U盘必须要大于1G(否则出现错误),而编译生成的镜像大小却小于1G。下面的方法可以将chromeOS镜像写入1G的U盘:
生成rootfs.vmdk虚拟机磁盘文件,然后用虚拟机加载vmdk镜像并启动Ubuntu的livecd。目的是为了使用gparted来修改vmdk分区的大小。因为默认的vmdk里面有三个950Mb的分区,分别为C-STATE、SWAP、C-ROOT。先将中间的交换分区删掉,然后依次调整分区到下面的样子:
之后,退出虚拟机,在windows下用DGen(diskgen)打开vmdk文件,修改硬盘参数(终止柱面)为C-ROOT分区的终止柱面,如下:
修改前:
修改后:
然后右键点击vmdk磁盘,复制磁盘,选择源磁盘和目的磁盘拷贝即可。
更新(11.30晚),把wind U100从丁丁那里拿来,启动chromeOS很成功,系统性能很赞!但有个很大的弊端:因为某些因素(大家都清楚),部分google服务无法登陆。上图:
登陆界面:
在netbook中比虚拟机运行起来爽多了,很快速!哎~郁闷的某个墙啊~估计在chromeOS上市后该墙还不倒的话,chromeOS在中国发展看是够呛了。
更新(12.01):
默认Chrome OS的网络为dhcp模式,若要自己修改IP的话,则需要挂载U盘,并修改/etc/network/interfaces,按照debian修改网络的方式即可。因为在U盘启动Chrome OS后,根目录是只读的(home目录当然可写),所以不能修改任何文件,只能重启进入Linux挂载U盘修改。还有就是,无法挂载NTFS文件系统,应该是编译内核的时候没有写入支持吧。这篇更新就是在台式机上使用Chrome OS来写的,输入法为搜狗云输入法(输入有些迟缓),截图一张:
截图工具为Scort,Chrome OS当然没有预装,这是我在Linux下用chroot方式安装到Chrome OS中的。