根据公司业务需求,需要着手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 =
BOARD−−safe−f
(./ 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
本文详细介绍Chromebook的基础概念、开发环境的搭建过程及镜像的编译安装方法,并分享了实际操作中遇到的问题及其解决方案。

被折叠的 条评论
为什么被折叠?



