文章目录
一、编译环境
- 64位 Linux环境(内存最好是8G以上,预留150G硬盘空间)
- 编译用户需要有sudo权限(加入wheel组),用户名有要求不能是 root 和一些特殊名称
- 科学上网
我使用的是 Fedora 系统,用户名 crosbuilder
二、编译步骤
1. 同步代码
所用到的依赖需要自己安装一下,例如:curl、git、python3、subversion等
1.1 获取depot_tool
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
echo 'export PATH=$PATH:/path/to/depot_tools' >> ~/.bashrc
source ~/.bashrc
1.2 获取chromeos代码
mkdir ~/chromiumos
cd ~/chromiumos
#下面两个连接都行,看实际需求
# [完整最新代码]
repo init -u https://chromium.googlesource.com/chromiumos/manifest.git\
# [最小源码]
repo init -u https://git.chromium.org/git/chromiumos/manifest.git -g minilayout --repo-url https://git.chromium.org/git/external/repo.git
# 同步代码,这个比较久(需要科学上网)
repo sync
2. 编译代码
2.1 进入虚拟环境
前提条件:
- 修改sudoer文件,通过命令 sudo visudo 修改
# 修改前
%wheel ALL=(ALL) ALL
# 修改后
%wheel ALL=(ALL) NOPASSWD: ALL
- 磁盘挂载问题,如果有 nosuid 参数需要重新挂载一下,请参考 sudo failures on brand new tree?
否则运行 cros_sdk 时会报 uid is xxx,should be 0
# 如果正确设置了depot_tools的路径
# 运行下面命令会开始下载sdk并进入编译虚拟环境
cros_sdk
2.2 编译系统包
如果 cros_sdk 运行成功终端会以 (cr) 开头,接下来就可以编译系统包和构建镜像了。需要注意一下新旧版本的 depot_toos 命令是不一样的,需要自己区分一下,请参考 CrOS Tools。
# 所有支持的板层需要自己查找一下,这里以 amd64-generic 为例
cros build-packages -b amd64-generic
cros build-packages
命令运行期间可能还会下载一些网络资源,最好还是要全程科学上网。
2.3 构建镜像
这里可能是最可能出现很多奇怪问题的地方,我这里遇到两个奇奇怪怪的问题,在网上资源也很少,最后自己摸索编译通过了。
# 其他参数按照需求配置
cros build-image -b amd64-generic
错误1:command (cros_set_lsb_release) failed (rc=1)
解决方法:这个问题在网上查了很久也没有找到有用的方法,因为我使用的是 Fedora 构建的,发现这个神经的 selinux 导致的构建失败。最后通过命令 sudo setenforce 0
暂时关闭 selinux 构建通过。
错误2:command (build_dlc) failed (rc=1)
解决方法:这个是超级用户权限问题导致的,在运行构建命令前使用 sudo -i
切换到 root 用户再去构建就没问题了。
等待命令执行完看最后的输出就能知道镜像的路径,现在就可以制作启动U盘了。
三、制作启动U盘
都到这一步了就没什么好说的了,直接上链接 创建 USB 安装工具