时隔一年,我又回来了。
这次会对上次的过程进行一定的补充,同样还是完整的流程,配置贴上:
本次将使用此机器进行编译,大约会耗时30min,比上次的6小时好太多。
1.安装所需软件包:
For Ubuntu:
sudo apt-get install build-essential curl git python unzip
2.获取源码
cd ~/
curl -s "https://fuchsia.googlesource.com/fuchsia/+/master/scripts/bootstrap?format=TEXT" | base64 --decode | bash
注意,以上操作会在主目录创建一个fuchsia文件夹,所以不要自己创建一个fuchsia文件夹然后cd进去,不然就是~/fuchsia/fuchsia了。该过程耗时较长,并且需要科学上网,也可以从本论坛镜像站获取,或者用vps主机同步,再打包tar.gz,然后用vps开启ftp服务,再在自己电脑上下载。另外该过程需要cipd登录,执行:
./fuchsia/.jiri_root/bin/cipd auth-login
终端会给你一个地址,需要科学的复制到浏览器进行访问,会得到一串编码,把该编码复制进终端,回车即可。执行:
./fuchsia/,jiri_root/bin/jiri update
然后耐心等待完成。
3.部署环境
为了方便使用一些工具,例如 jiri
, fx
, cipd
,我们可以把~/fuchsia/.jiri_root/bin
添加到环境变量中。打开文件管理,CTRL+H
显示隐藏文件,使用文本编辑器打开.bashrc
,在末尾添加:
PATH="~/fuchsia/.jiri_root/bin:$PATH"
source "~/fuchsia/scripts/fx-env.sh"
fx-update-path
然后执行:
source .bashrc //使环境变量生效,或者重启终端也可以。
如果该环境变量无法起作用,请把~
替换为绝对路径。
4.查看编译选项
fx list-boards //列出支持的board
fx list-products //列出支持的product
讲解:
fx set <product>.<board> //配置你要编译的类型
fx build [options] //编译
fx mkzedboot [storage device] //将启动文件写入储存设备
fx serve //创建服务,在编译好的fvm镜像中是不带很多软件包的,需要通过推送到设备安装,像是系统和app分离了
fx pave //似乎和fx serve没多大区别。
fx flash [device] //将镜像写入储存设备,这样就不用zedboot去开推送系统。
5.配置和编译
fx set workstation.x64
product表示你要编译哪些东西,workstation基本包含了所有软件包,core包含核心命令和universe包,bringup是最小的集成,专门用于使用网络部署系统。
boards自己看名字就懂了,是选择要运行的设备类型。
fx build
然后就是等待了。
完成,耗时约半小时。
6.写入U盘
使用lsblk
命令查看储存设备,找到U盘。
执行 sudo mkzedboot [device]
,device是U盘,例如/dev/sdc
7.启动部署
在目标[target]机器开启网络堆栈功能,然后UEFI启动U盘。
目标主[target]机会进入一个命令行界面,带有两个终端,使用CTRL+ALT+TAB
切换tab标签,你需要一个空白的硬盘来安装Fuchsia,使用命令:
lsblk
查看你的硬盘设备。然后再:
install-disk-image init-partition-tables [这里填储存设备选项,我忘了填什么了] <存储设备路径>
这个命令会在中创建新的分区表和分区。
然后在服务[host]主机上运行fx serve
但在这里,很不幸我的目标主机似乎无法链接上局域网,CPU为G3930,主板是H110M,没法使用pave和serve,目前还没尝试fx flash
,正在探索中。