本文内容并不是 README.md 的中文翻译版本,而是针对中国大陆地区网络环境,对流程进行了修改,与 README.md 有所不同。
openFyde(总是表示为 openFyde
,第一个字母 o
为小写,F
为大写)是燧炻创新(FydeOS 的创建者)发起的一项开源计划,目的是为 Chromium OS 提供另一种选择。通过 openFyde,你可以拥有一个更加开放和灵活的 Chromium OS。在燧炻创新,我们相信有更多的选择就有更大的可能。
简单来说:openFyde 是更开放、更自由的 Chromium OS ,并且把是否要使用 Google / FydeOS 网络服务的选项交给用户。
一些具体的区别:
你不能在当前的这个仓库中提交 issue,因为它只起到介绍和指导的作用。我们欢迎你在其他 openFyde 仓库中提交 issue,如果:
你的 issue 可能会被关闭,如果:
sudo
权限的帐号目前需要的 Python 版本为 3.6 或更新版本。执行 python -V
确定 Python 是所需版本,如果当前
Python 的版本低于 3.6,那么需要卸载旧版,安装 3.6 或更新版本的 Python,或者使用
pyenv。
sudo apt-get uninstall <current python package lower than 3.6>
sudo apt-get install python3.9
然后安装其他基础工具
sudo add-apt-repository universe
sudo apt-get install git gitk git-gui curl xz-utils \
python3-pkg-resources python3-virtualenv python3-oauth2client \
lvm2 thin-provisioning-tools
<gerrit_user>
代替。$HOME/.git-credentials
加入以下内容,其中 <gerrit_user>
和 <gerrit_password>
用上一步获取到的 Username 和密码替换。https://<gerrit_user>:<gerrit_password>@gerrit.openfyde.cn
git config --global credential.helper store
执行 git ls-remote https://gerrit.openfyde.cn/chromium.googlesource.com/chromiumos/manifest.git
验证是否已经正确配置 gerrit.openfyde.cn 鉴权信息。
获取 depot_tools
git clone https://gerrit.openfyde.cn/chromium.googlesource.com/chromium/tools/depot_tools.git
cd depot_tools
git checkout e121d14b12412e95ac833cfd31602b674499ea25
然后把 depot_tools
目录加入到 PATH
变量中,并且 depot_tools
的路径要放在前部。
export PATH=/path/to/depot_tools:$PATH
建议把上述语句加到 ~/.bashrc
或 ~/.zshrc
中。
首先创建目录,后续多数命令都在此目录 $HOME/r102
中执行:
mkdir $HOME/r102
cd $HOME/r102
配置此条环境变量以禁止工具自行从 Google 服务器尝试升级,由于网络问题可能会导致卡死及失败:
export DEPOT_TOOLS_UPDATE=0
配置 git 用户名和邮箱:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
执行 repo init
;
repo init -u https://gerrit.openfyde.cn/chromium.googlesource.com/chromiumos/manifest \
-b release-R102-14695.B \
--repo-url=https://gerrit.openfyde.cn/chromium.googlesource.com/external/repo
下一步,引入 openfyde 的各个项目代码:
git clone https://gitee.com/openFyde/manifest.git openfyde/manifest -b r102-dev-gitee
ln -snfr openfyde/manifest .repo/local_manifests
openfyde/manifest
中包含了 openfyde 的项目信息,通过 .repo/local_manifests
链接引入进来。
之后进行代码同步操作,可以视机器配置和服务端状态,调整-j
或 --jobs-network
参数。具体的参数请执行 repo sync --help
或 repo help sync
查看。
以下 sync
命令会从 gerrit.openfyde.cn 同步大量代码,耗时较久,请耐心等待:
repo sync
如果中途看到 Connection to * closed by remote host.
不必中断命令,repo
会自动重试。
如果最终 repo sync
输出失败信息之后退出,可以稍后再次执行 repo sync
,之前已下载到本地的内容不会重复下载。
repo sync
成功后,会看到 repo sync has finished successfully.
的信息。
在 repo sync
之后,openfyde/chromium/src 应该已经存在 chromium 源码。为了顺利编译 chromium,需要把 chromium 所需依赖同步到本地。
确认在 chromium 目录存在 .gclient
链接到上一步生成的 dotgclient
文件。
$ cd $HOME/r102/openfyde/chromium
$ readlink .gclient
../dotgclient/dotgclient
多数的依赖内容都已经镜像至 gerrit.openfyde.cn,可以直接通过 gclient
工具获取。由于
openfyde/chromium/src/DEPS
文件还有一部分内容由 https: //chrome-infra-packages.appspot.com/提供,
另外还会在同步代码后、执行 DEPS
中指定的 hooks 命令过程中从 google storage
下载内容,网络不通的情况下无法访问到,暂时需要通过其他途径补全这部分内容,
openFyde 提供了预先打包的文件供下载。
wget https://packages.cdn.openfyde.cn/chromium/r102/cipd_deps_102.0.5005.90.tar.gz
tar xzf cipd_deps_102.0.5005.90.tar.gz
gclient sync --nohooks -vvv
此处看到 __init__:cipd ensure -log-level ......
时,命令可能会卡住,此时可以按下
ctrl+c 中止,所需内容已经由 cipd_deps_102.0.5005.90.tar.gz
提供。
接下来需要完成代码同步之后的 hooks。
wget https://packages.cdn.openfyde.cn/chromium/r102/hooks_bin_102.0.5005.90.tar.gz
tar xzf hooks_bin_102.0.5005.90.tar.gz
gclient runhooks -vvv
最后可能会看到 generate_location_tags 失败的信息,可以忽略,所需文件已经由 hooks_bin_102.0.5005.90.tar.gz
提供。
如果你想用你的 Google 账户登录 Chromium OS GUI,你需要申请 Google API Key,并在你构建的镜像中添加它们。
根据这篇文档在 Google 的网站上申请 Google API。在获得 Client ID, Client Secret 和 API key 后,把它们放在 ~/.googleapikeys
文件中,格式如下:
'google_api_key': 'your api key',
'google_default_client_id': 'your client id',
'google_default_client_secret': 'your client secret',
同样,如果你想使用由 https://account.fydeos.com 提供的 FydeOS 的在线账户和同步功能,你需要申请一个 openFyde 开发者 API Key,并将其放在同一个 ~/.googleapikeys
文件中。目前是通过将你的 FydeOS 账户(如果你还没有,可以注册一个新的账户)详细信息发送邮件到 dev-support@openfyde.io 来申请,开发者支持团队会尽快处理你的申请。
一旦你有了 openFyde 开发者 API Key,你需要把它们加到 ~/.googleapikeys
文件中,格式如下:
'fydeos_default_client_id' : 'your openFyde Developer API client id',
'fydeos_default_client_secret' : 'your openFyde Developer API client secret',
然后 Chromium OS 的构建脚本会自动从这个文件中读取必要的信息,你构建出的镜像将能够使用 Google 账户和 FydeOS 账户登录。
由于 cros_sdk
命令在创建和进入 chroot 编译环境过程中,会更新 chroot
内部的包,这个过程会由于网络问题无法编译某些包,导致命令失败,所以需要预先把编译过程中需要的文件准备好。openFyde
提供了 chroot 编译环境完整的 .cache
目录打包文件。
cd $HOME/r102
wget https://packages.cdn.openfyde.cn/distfiles/r102/r102_distfiles_cache.tar.gz
tar xzf r102_distfiles_cache.tar.gz
此时 $HOME/r102/.cache
目录中已经有了后续编译需要下载的各个源码包文件。
然后执行 cros_sdk
命令,通过 --url
指定 openFyde 提供的 sdk 包的链接。
创建并进入 chroot 内部。
cros_sdk --nouse-image --url=https://gs.cdn.openfyde.cn/chromiumos-sdk/cros-sdk-2022.04.11.135343.tar.xz
跟 Google 官方 Developer Guide 步骤一致。
下面的命令中 (inside)
表示这条命令在 chroot 环境内部执行。进入 chroot 环境后,默认所在的目录是 $HOME/trunk/src/scripts
。
(inside) export BOARD=amd64-openfyde # 对于 rpi4-openfyde 需要 export BOARD=rpi4-openfyde
(inside) setup_board --board=${BOARD}
之后需要手动为 chroot 环境编译输入法相关的包 dev-libs/capnproto
。
(inside)
sudo emerge capnproto
接下来继续编译其他 packages 和 image。
(inside) ./build_packages --board=${BOARD} --nowithautotest --autosetgov --nouse_any_chrome
(inside) ./build_image --board=${BOARD} --noenable_rootfs_verification test
最后将 image 烧录到 U 盘:
(inside) cros flash usb:// ${BOARD}/latest
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。