ChromiumOS源码下载及编译

由于ChromiumOS系统的编译需要使用非Root用户进行,故这里新增一个用户cos以用于ChromiumOS系统的开发工作:

adduser cos

这里需要注意的是用户名chronos 是预留给编译系统使用的,这里增加的用于编译的用户名不能为chronos

工具安装

在进行源码下载之前首先需要进行工具的安装:

aptitude install git-core gitk git-gui subversion curl lvm2 thin-provisioning-tools python-pkg-resources python-virtualenv

下载depot_tools并加入系统路径:

cd ~
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"

权限准备

将增加的用户cos加入到文件/etc/sudoers中:

cos     ALL=(ALL:ALL) ALL

再执行如下代码:

cd /tmp
cat > ./sudo_editor <<EOF
#!/bin/sh
echo Defaults \!tty_tickets > \$1          # Entering your password in one shell affects all shells 
echo Defaults timestamp_timeout=180 >> \$1 # Time between re-requesting your password, in minutes
EOF
chmod +x ./sudo_editor 
sudo EDITOR=./sudo_editor visudo -f /etc/sudoers.d/relax_requirements

代码下载

创建工作目录并进入:

mkdir ~/workspaces
cd ~/workspaces

下载代码:

mkdir chromiumos
cd chromiumos
repo init -u https://chromium.googlesource.com/chromiumos/manifest.git
repo sync

如果是要使用指定版本的代码,则最好创建一个新的工作目录,再进行代码同步:

mkdir release-R59-9460.B
cd release-R59-9460.B

repo init -u https://chromium.googlesource.com/chromiumos/manifest.git -b  release-R59-9460.B --reference /home/cos/workspaces/chromiumos
repo sync

编译代码

Chroot环境创建

进入到源码目录执行如下命令进入到chroot环境:

cros_sdk
  • 这里会在当前目录下创建一个名为.cache的目录来保存用于构建chroot环境的包,其中最大的一个包位于目录.cache/sdks下,名称形式类似于cros-sdk-2017.04.12.210012.tar.xz,大小接近2G,如果有多个环境开发的话,可以拷贝该文件到新的工作环境中以节省下载时间。

系统编译

此时所执行的代码都在Chroot环境下,首先选取主板类型并初始化主板设定:

export BOARD=quawks
./setup_board --board=${BOARD}

然后设定系统的超级用户密码:

./set_shared_user_password.sh
  • 超级用户的密码是写入到文件/etc/shared_user_passwd.txt

再接下来进行系统编译,这里实际上是使用gentoo中的ebuild来进行包的下载和编译:

./build_packages --board=${BOARD}

最后就是将编译好的系统进行打包:

./build_image --board=${BOARD} --noenable_rootfs_verification test
  • 需要注意的是,当编译为test版本时,先前所设定的系统超级用户密码则变为无效,而被统一改为test0000

系统烧录

接下来就是将系统刷入到U盘中进行安装:

cros flash usb:// ${BOARD}/latest

系统安装

启动进入U盘系统,然后在Shell环境下执行如下命令进行系统安装:

/usr/sbin/chromeos-install
  • 对于不同的系统有不同的进入U盘启动环境的方法,具体可以参考页面developer-information-for-chrome-os-devices
  • 对于这里使用的Asus C300来说,进入的方法为按住Esc+Refresh+Power三个键。重启后Ctrl+D进入到硬盘启动,再输入sudo crossystem dev_boot_usb=1以打开从U盘启动的选项。

更多选择

当进入Chroot环境进行编译时,会使用ebuild编译Chromium浏览器项目,这又是一个几十G的下载量,所以最好的方式自然是能够重用下载好的Chromium项目。这里有如下几个需要注意的点:

  1. 将Chromium浏览器项目放置在目录~/cos/chromium
  2. 修改ChromiumOS项目下的配置文件src/third_party/chromiumos-overlay/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild,去除其中的+runhooks,因为在编译ChromiumOS时,如果执行到runhooks,又会去下载和编译工具链;
  3. 在工作目录中执行cros_sdk --chrome_root=/home/cos/chromium,以进入Chroot环境;
  4. 在选定好主板类型后,执行cros_workon --board=${BOARD} start chromeos-chrome,以确保使用自定义的ebuild文件,这通常就是编号为9999的ebuild文件,最终执行结果为将数据=chromeos-base/chromeos-chrome-9999写入到文件.config/cros_workon/quawks中;
  5. 在Chroot环境中,还需要执行export CHROME_ORIGIN=LOCAL_SOURCE以使用本地项目进行编译;

最终对Chromium项目的修改,都会被编译进ChromiumOS系统,其他的步骤与原版无二致。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,552评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,666评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,519评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,180评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,205评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,344评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,781评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,449评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,635评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,467评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,515评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,217评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,775评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,851评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,084评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,637评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,204评论 2 341

推荐阅读更多精彩内容

  • chromebook 在2014的CES上得奖之后,一直备受大家关注,由于其低廉的价格,获得了广泛的认可。在亚马逊...
    lzt阅读 6,745评论 1 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,321评论 25 707
  • 转载自酷安 @breathiness #电脑玩家# #电脑好软# #学习使我快乐# 电脑好软推荐——Linux 篇...
    失落无意义阅读 5,646评论 0 50
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,099评论 9 467
  • 最近接了一个客户,需要帮做一个关于毕业季的专题策划活动,赶工完活动策划案跟商业提案,总感觉这样拿出去不一定能打动客...
    达达令阅读 766评论 0 3