Chrome开发-基础知识

本文详细介绍Chromebook的基础概念、开发环境的搭建过程及镜像的编译安装方法,并分享了实际操作中遇到的问题及其解决方案。

根据公司业务需求,需要着手Chromebook相关的开发工作,新知识、新机遇、新挑战,从零开始学习,第一阶段主要掌握Chromebook相关的一些基本概念、开发环境的搭建以及镜像的编译与安装。

一、ChromeBook基本概念

1.Chromium OS与Google Chrome OS的差异
这里写图片描述

2.分支

不同平台、board、硬件对软件的要求各有不同,所以Google会给每个客户切出自己对应的FactoryBranch、FirmwareBranch、ReleaseBranch,每个分支上只打跟该分支相关的补丁,不同的分支有各自不同的作用。

这里写图片描述

3.镜像
开发过程中常用的镜像有以下三种:
这里写图片描述

4.Firmware的三种模式
Bios有三种模式,可以在VT2下通过crossystem mainfw_type查看。
这里写图片描述
Normal模式与Developer模式之间的切换方式如下:
这里写图片描述

5.Moblab

①什么是Moblab?
MobLab是一个盒子中的测试系统,将定制的Chrome操作系统映像加载到Chromebox上,它是一种自包含自动测试环境,提供了与Chrome操作系统实验室类似的设置,可用于各种类型的自动测试,包括:设备启动测试,例如运行BVTS等类似测试、固件测试(如FAFT, Fully Automated Firmware Tests )、组件测试等。

②Moblab有哪些特点?
容易设置和管理、全实验室功能支持、可扩展、通用平台、开源

③使用Moblab能实现什么?
使用MobLab,开发者可以获得强大、低维护的测试环境,可以与Chrome操作系统实验室中相同的方式运行相同的测试、查看测试结果、访问他们负责的项目的构建映像以及运行不是Chromium OS源代码树一部分的自定义本地测试。

④需要的硬件支持
Chrombox、USB-to-ethernet adapter、Internal SSD

这里写图片描述

二、搭建开发环境

1.前提条件
①必须在Linux环境下才能开发Chromium操作系统,我们采用的是大多数开发人员都使用的Trusty(LTS版本的Ubuntu14.04)。

②安装git版本控制系统、git的图形前端、git提交历史浏览器以及curl下载助手 sudo apt-get install git-core gitk git-gui curl

③安装depot_tools,此步骤是必需的,安装之后才能使用repo命令获取/同步源代码。

④配置git git config –global user.emailyou@example.com
git config –global user.name“Your Name”

⑤检查是否正在运行64位体系结构 uname –m

⑥验证默认文件权限(umask)设置是否正确 umask 022 并将该命令写入〜/ .bashrc文件中。

2.创建源码路径
mkdir -p $ {HOME} / factory_jerry (factory_jerry可以自己命名)

3.拉取源码
Chromium OS 使用repo来同步源代码, repo是一个git的包装,它帮助处理大量的git仓库。

①repo init -u https://chromium.googlesource.com/chromiumos/manifest.git –repo-url https://chromium.googlesource.com/external/repo.git [-g minilayout]
注意:添加“-g minilayout”选项以执行minilayout检出。

②repo sync –j4(-j4表示可以同时同步4个存储库)

三、镜像的编译与安装

1.创建Chromium OS

①创建chroot ,为了确保每个人都使用相同的确切环境和工具来构建Chromium OS,所有的构建都是在chroot中完成。cros_sdk(也可用于进入/ trunk / src / scripts目录)

②选择电路板 export BOARD = x86-generic

③初始化板的构建 ./setup_board –board = $ {BOARD}

④设置chronos用户密码 ./set_shared_user_password.sh

⑤为电路板创建包 ./build_packages –board = $ {BOARD}(相当于Makefile系统中的make all )

⑥构建基于Chromium OS的开发镜像
./build_image –board = $ {BOARD} –noenable_rootfs_verification dev

⑦查看磁盘镜像
./mount_gpt_image.sh –board = BOARDsafef (./ get_latest_image.sh –board = $ {BOARD})

⑧完成后卸载根文件系统 ./mount_gpt_image.sh –board = $ {BOARD} -u

2.制作U盘安装工具

sudo dd if=/home/dw/factory_jerry/src/build/images/x86-generic/R41-6591.227.2016_12_31_1634-a1/chromium_image.bin of=/dev/sdX bs=8M iflag=fullblock oflag=dsync
②sync
参数:
if=镜像的路径
of=输出文件
bs=bytes 即一次读/写的字节数
iflag=读取方式(fullblock为输入积累完整块)
oflag=写入方式(dsync为同步I/O存取模式)

注意事项:在Ubuntu系统上,可在终端输入 df –h 来查看存储设备信息, X一般为b,也可能是c,d,…等, sdax为电脑硬盘,在 chromebook上,没有硬盘,用的是EMMC(/dev/mmcblk0)。

3.安装Image到Chromebook的几种方法

①安装TestImage的方法

这里写图片描述

这里写图片描述

四、以上过程中遇到的问题以及解决方法

①在Vmware环境下安装的Ubuntu14.04不能在当前目录打开终端很不方便
sudo apt-get install nautilus –open –terminal

②VMWare环境下识别不到外部存储设备
VirtualBox设置——USB选项——选中启用USB控制器——启用USB2.0(EHCI)控制器——提示安装Extension Pack—— 下载与VirtualBox版本一致的安装包并添加进去——重启

③执行repo sync –j16 报错
与默认Manifest.xml中的设置冲突,改为-j8

④同一个U盘在不同电脑上制作安装盘的时候有不同结果,终端显示制作完成但是U盘为空,为什么会这样?
sudo dd if=/home/dw/factory_jerry/src/build/images/x86-generic/R41-6591.227.2016_12_31_1634-a1/chromium_image.bin of=/dev/sdX bs=8M iflag=fullblock oflag=dsync

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值