Chromium OS开发指南中文版(含Chromium OS编译方法)


        XsLiDian译自:Chromium OS Developer Guide

原地址:http://lidian.info/wiki/Chromium_OS/developer_guide

目录

  • 提要

    • 本文档的受众
  • Chromium OS 开发入门
    • 先决条件
    • 安装 depot_tools
    • 安装 git
    • 配置 git
    • committer 的准备
    • 决定存放源码的地方
    • 决定是否使用 minilayout
    • 获取源码
    • 创建 chroot
    • 进入 chroot
    • 选择要编译的 board
    • 初始化 board 编译
    • 设置 chronos 用户密码
    • 启用本地用户账户(可选)
    • 为您的 board 编译软件包
    • 为您的 board 编译磁盘映像
    • 查看磁盘映像(可选)
    • 在计算机上运行映像而不验证引导
      • 将映像存入 USB 盘
      • 从 USB 盘引导
    • 在 Chrome OS Notebook 上运行您的映像
    • 在 Chromium OS 进入命令提示符
    • 将 Chromium OS 映像安装到硬盘
    • 编译可在虚拟机中运行的映像
  • 进行变更
  • 开发分支
  • 疑难解答
    • 编译失败,问题出在哪里?
    • 如何修复 chroot 中的网络问题?
  • 进行测试
    • 获取为测试而修改的映像
    • 创建新测试
    • 查看 ebuild 实现了那些测试
    • 更多测试提示
  • 提示与技巧
  • 其他注释
    • 开发模式
  • 深入阅读
  提要

这是 Chromium OS 开发者的入门指南。 本指南的目标受众是所有希望获取、编译或对 Chromium OS 做贡献的人。 本指南不细讲任何方面,而是希望为大家展示常见任务的总体概貌。

本文档的受众
本文档旨在满足任何使用 Chromium OS 的人。 这可能是仅仅是对该项目感兴趣并想更细致地瞅瞅它是什么样的新的开发者,也可能是已经从事 Chromium OS 开发很久的开发者。

鉴于 Google 有大量员工从事 Chromium OS 开发,本文档中有时会出现一两处只与 Google 工程师有关的内容。 这些内容应保持在最少限度,因为 Chromium OS 是开源项目,我们希望尽可能开放。

注:当您生成 Chromium OS 镜像时,您需要满足第三方许可的各种署名要求。当前 build 所生成的镜像不会自动为您完成这些操作。您需要手动修改 ~/chromium/src/chrome/browser/resources/about_os_credits.html贡献者名单。

  Chromium OS 开发入门

先决条件
您需要在 Linux 平台上开发 Chromium OS。 具体而言,(代码库中的脚本)支持的环境是:

  • Ubuntu Linux(10.04 Lucid 版)——大多 Chromium OS 开发者使用 Lucid(Ubuntu 的一款“长期支持”版本)而没有升级到 10.10。译者在 10.10 中正常编译通过。在其他 Linux 发行版可能有用,但使用 Lucid 版可以免除不少麻烦。
  • 使用 64 位系统进行编译(我们希望将来支持 32 位的编译环境)。
  • 能执行 sudo 的账户(运行 chroot 命令与修改装载表(mount table)需要 root 权限。注:不要以 root 权限执行这里提到的任何命令——这些命令会在需要时(自动)执行 sudo 获取 root 权限。
  • 高速多(核)处理器、内存充足的机器可以给您更棒的编译体验。编译系统已为利用所有处理器(内核)而进行优化,采用八核处理器的机器的编译速度将比单核处理器的机器快将近八倍。我们推荐至少有 4GB 的内存,有 8GB 的话更好。如果您只有 4GB 的内存的话,请确保至少(还)有 4GB 的交换空间(swap)。
  • 首次下载(以及后续更新)最好能有良好的 Internet 连接。最小下载量约 2GB。

编译 Chromium OS 要求安装以下 Ubuntu (软件)包(下文中有安装说明):

  • git - 源码控制系统的客户端
  • keychain - ssh key 管理(如果您是 committer)

您还需要安装 depot_tools,这是一组由 Google 维护的工具集,Chromium OS 用得到它。

安装 depot_tools
您需要遵循安装 depot_tools 页面的说明开始。安装后您才可以使用 'repo' 命令获取/同步源码。

安装 git
您还需要安装 git 版本控制系统。在 Ubuntu 系统中,可以采用这句魔咒完成:

  1. sudo aptitude install git gitk git-gui

复制代码

这可以同时安装 git 的图形前端(git gui)以及版本历史浏览器(gitk)。

配置 git
现在您应该配置 git 了。如果不这样做,在以后的操作中您可能会遇到错误/问题。 使用您自己的信息替代下面的 you@example.com 与 Your Name:

  1. git config --global user.email "you@example.com"
  2. git config --global user.name "Your Name"

复制代码

committer 的准备
如果您是 Chromium OS 新手,您不是 committer。 您应该跳过此段落。 在您成为 committer 后请随时回来。

决定存放源码的地方
总有人问及应在文件系统的什嘛地方存放源码。 本文档的作者将他的源码放在 ${HOME}/chromiumos,这在 Chromium OS 开发者中间也很常见。 我建议您将源码放在那儿,本文档中的所有命令也假定您是这样做的。 如果您非常想将源码放在其他地方,也请随便。

重要注释:如果您的 home 目录处于 NFS 文件系统(Google 工程师也是这样),您必须将代码放在其他地方。 从 NFS 直接进行编译会很糟,不是因为性能原因,而是因为可能根本不会起作用(使用 sudo 与 root 的编译脚本没有 NFS 装载的访问权限,除非您的 NFS 服务器有 no_root_squash 选项。 不论您将源码放在哪里,都可以(也推荐您这样)在您的 home 目录创建指向源码目录的符号链接(symbolic link):

  1. mkdir -p /usr/local/path/to/source/chromiumosln -s /usr/local/path/to/source/chromiumos ${HOME}/chromiumos

复制代码

……否则,您应这样创建目录:

  1. mkdir -p ${HOME}/chromiumos

复制代码

边注:有人建议将源码放在 ${HOME}/trunk(本说明也曾这样建议)。 将源码放在 ${HOME}/trunk 允许您以后更马虎地操作(您可以在 build chroot 内外输入同样的命令)。 这可能更方便,但很危险,因为它可能导致您提交只在您的机器上有效,而在(代码不在 ${HOME}/trunk 的)其他机器上无效的的对编译脚本变更。

决定是否使用 minilayout
在获取源码之前,您需要决定是使用“minilayout”(迷你框架)还是“full layout”(完整框架)。 minilayout 可以让您以最少量的源码开始(以后您可以通过 cros_workon 手动选取其他源码。 完整框架可将所有与 Chromium OS 相关的源码都下载到您的硬盘上。

您在以下情况下应该选择完整框架:

  • 您认为您可能打算在源码中通过 grep 检索来熟悉代码。(注:这可能没有您认为的那样重要,因为您还可以使用 Chromium OS 代码搜索搜索全部代码。)
  • 您想获取所有能得到的源码。
  • 您有足够的磁盘空间。
  • 您的网络连接很快。注:首次同步会非常得慢,而且以后的同步也挺慢的。

您在以下情况应该选择迷你框架:

  • 您的网络连接比较慢,或者磁盘剩余空间不大
  • 您可能只开发一小部分软件包。
  • 您希望同步得快些。
  • 您不介意在开始开发以前从未开发过的软件包时的首次同步耗时稍长。

记住:即使您选择了迷你框架,您还可以通过 cros_workon 手动选取想要的软件包的源码。

获取源码
Chromium OS 采用 repo 同步源码。 对不熟悉 repo 的人来说,这是款非常高效的 git 版本控制系统框架,有助于处理大量 git 代码库。 在您根据上文安装 depot_tools 时已安装 repo。

根据您是否是 committer(如果您新来恐怕不是——参阅上文)以及是否需要迷你框架(参阅上文)有四种选项获取源码。

选项 #1:如果您不是 committer'且'想要迷你框架,请输入这些命令

  1. cd ${HOME}/chromiumos
  2. repo init -u http://git.chromium.org/git/manifest -m minilayout.xml
  3. repo sync

复制代码

选项 #2: 如果您是 committer 且想要迷你框架,您的命令为:

  1. cd ${HOME}/chromiumos
  2. repo init -u ssh://git@gitrw.chromium.org:9222/manifest -m minilayout.xml
  3. repo sync

复制代码

选项 #3:如果您不是 committer 且想要'完整框架,请输入这些命令:

  1. cd ${HOME}/chromiumos
  2. repo init -u http://git.chromium.org/git/manifest
  3. repo sync

复制代码

选项 #4:如果您是 committer 且想要'完整框架,您的命令为:

  1. cd ${HOME}/chromiumos
  2. repo init -u ssh://git@gitrw.chromium.org:9222/manifest
  3. repo sync

复制代码

边注:如果您打算编译特定分支,请将分支名称传递给 repo init(如:repo init -u <URL> [-m minilayout.xml] -b 0.9.94.T)
当您使用 repo init 时,它会询问您确认您的姓名、电子邮件地址以及您是否希望以彩色显示终端文本。这项操作很快。repo sync 要多花很多时间。根据您的网速,您的下载速度可能达到 200-400KB/s,但会有所变动。迷你框架将要下载约 2GB 的数据,耗时大概一小时

chromium os 编译相关推荐

  1. chromium OS编译过程

    安装下面的依赖: #sudo apt-get install subversion pkg-config python perl g++ g++-multilib bison  flex gperf ...

  2. 编译Chromium OS

    插入ubuntu-9.10-alternate-i386光盘后,F4选择CLI安装base system 用先前备好的USB盘里的sources.list替代/etc/apt/sources.list ...

  3. 为curl 、git、go语言、wget、repo设置代理,解决ubuntu 18.04编译chromium os问题

    为CURL设置proxy 设置代理的方式搜索了一下挺多的,我测试了这两种方式,这两种方式在ubuntu 18.04上可以运行. 有两种方法,第一通过声明环境变量: export http_proxy= ...

  4. Windows:安装Chrome OS/Chromium OS/CloudReady 到虚拟机VMware/VirtualBox

    很早之前就听说了ChromeBook,以及ChromeBook上搭载的Chrome OS系统,一直没机会去操作.今天碰巧看到了一篇讲 FydeOS .于是就想在自己的电脑上装Chrome OS,体验一 ...

  5. 每天更新的纯净版 Chromium OS 镜像已经可以下载

    原文链接:http://www.guao.hk/posts/chromium-os-vanilla-nightly-builds-from-hexxeh.html 此文章给出了一个最新的ChromeO ...

  6. 【chromium】 Chromium OS的oom机制

    前一段时间,运行在Chromium OS上的一个相机应用经常会自己崩溃,进程戛然而止,测试过程中发现使用的内存以肉眼可见的内存增长,当增长到1G左右,应用窗口突然消失,虽然原因不明,但是能猜到个大概, ...

  7. Chromium OS Autotest 编码风格

    Chromium OS Autotest 编码风格 语言 尽可能使用python 在host命令的调用中会使用少量的shell命令 一些测试会在测试的依赖项中使用C/C++ 缩进和空行 保证你的代码在 ...

  8. Chromium OS初体验 就是一款Linux

    好奇,弄了一个Chromium OS for VMWare 玩玩,发现Chromium OS并非像我之前想象的一样,并非完全是一个自主研发的独立操作系统. 启动 Chromium OS 时 vmwar ...

  9. Chromium OS——下载源码6之获取源码

    获取chromium os源码: 在家目录创建chromiumos文件夹mkdir -p ${HOME}/chromiumos 进入该文件夹目录cd ${HOME}/chromiumos,然后执行re ...

  10. Chromium Android编译指南

    先决条件 需要有一台装有Linux操作系统环境的主机来做编译,这个环境的搭建配置方法可以参考Linux-specific build instructions.目前还不支持在其它(Mac/Window ...

最新文章

  1. Linux01-基本操作与Shell
  2. Python获取当前目录下所有文件的绝对路径并存储在文件中
  3. 去除SAP中的一些特殊字符
  4. 邻值查找—算法进阶指南
  5. protected访问权限_权限修饰符 /重写
  6. 【CentOS 7笔记11】,目录权限,所有者与所有组,隐藏权限#171022
  7. 蜘蛛搜索引擎_「SEO工具」如何利用爱站工具去分析各搜索引擎蜘蛛情况?
  8. Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci
  9. Django-----模板嵌套
  10. 基于C#的在线语音识别软件开发
  11. 大数据技术的发展趋势
  12. win10系统联想电脑亮度自动调节怎么办?
  13. Spring Boot 错误页面解析原理(超级无敌详细)
  14. 世界各国 省市县 省份 城市 三级数据库表 mysql
  15. 基于思科模拟器进行子网划分
  16. 软件打开显示未选定服务器ip,LtusNtes常见问题大汇总 .doc
  17. Java中值得注意的『运算符、逻辑控制、输入输出』
  18. 10个学生,每个学生数据包括学号,姓名,成绩,输出3门总平均成绩,以及最高分学生数据(C++程序设计)
  19. pandas 取excel 中的某一列_Pandas进阶修炼120题,给你深度和广度的船新体验
  20. Unity word写入+打印

热门文章

  1. 基于Java+Springboot+Vue+elememt宠物用品商城系统设计实现
  2. AltiumDesigner20绘制51单片机最小系统原理图详细流程
  3. 电力猫服务器的网页,电力猫的安装与连接方式
  4. 【菜鸟站长成长记】CuteFTP9 初步使用心得
  5. cocos2d-js 开发常见问题
  6. 移远百科 | LTE-A关键技术分析
  7. python面板数据分析代码_【译】用python做计量之面板数据模型
  8. C#Winform拓展控件之Panel
  9. ensp vlan 划分
  10. Centos7端口查看命令