代码下载:

参照官方文档即可:https://fuchsia.dev/fuchsia-src/development/source_code

curl -s "https://fuchsia.googlesource.com/fuchsia/+/master/scripts/bootstrap?format=TEXT" | base64 --decode | bash

下载时间大概在一两个小时。下载完成后,先配置好jiri命令环境变量:

PATH=/$(CODE_PATH)/fuchsia/.jiri_root/bin:$PATH

后续可以直接使用jiri更新代码:

jiri update

实际使用过程中发现代码同步/更新时有时会出现以下警告:

[23:58:37.190] Updating all projects
ERROR: 'git fetch -p origin' failed:
stdout:stderr:
fatal: unable to access 'https://dart.googlesource.com/observatory_pub_packages/': gnutls_handshake() failed: The TLS connection was non-properly terminated.command fail error: exit status 128

和设置了代理/网络不稳定有关,多尝试几次。

开始编译,使用的是Intel NUC7真机,选择如下的配置进行编译:

fx set workstation.x64 --with //bundles:kitchen_sink

其中workstation是product类型,x64是平台类型,"--with //bundles:kitchen_sink"则是要一起编译的bundle。

通过fx list-products可以看到支持的产品列表:

官方对各类product的解释: https://fuchsia.dev/fuchsia-src/development/build/fx#key-product-configurations

workstation包含包括UI支持,多媒体在内的高级功能。

fx list-boards可以查看支持的平台类型:

key bundles的分类:https://fuchsia.dev/fuchsia-src/development/build/fx#key-bundles

fx命令的详细用法参考官方文档:https://fuchsia.dev/fuchsia-src/development/build/fx

fx build开始编译,编译大约一到两个小时

编译完成后,可以在虚拟机中运行,也可以选择在真机上运行,按照官方文档,目前对NUC6/7(注意需要是酷睿)、PixelBook支持较好,建议选择这些设备进行真机调试。

官方文档,如何在intel NUC上安装fuchsia:https://fuchsia.dev/fuchsia-src/development/hardware/intel_nuc

安装有两种办法,但无一列外需要先制作Zedboot启动U盘:

制作命令也很简单,将U盘先插入fuchsia编译源码的主机(host):

fx mkzedboot /path/to/usb/disk

其中/path/to/usb/disk是U盘在host上的路径,可以通过以下命令获得:

fx list-usb-disks

输出如下:

/dev/sdc - U3
/dev/sda - USB Flash Disk  //通过df命令/手动拔插再次确认此设备为新插入的U盘

Zedboot启动盘制作完成:

把制作好的Zedboot U盘插到要安装fuchsia的设备(target)上, 并且通过在BIOS中选择从USB引导启动,启动进入后是一个蓝屏的命令行界面。

关于Zedboot的详细解释,官方文档:https://fuchsia.dev/fuchsia-src/development/build/fx#what-is-zedboot
/

Zedboot其实就是fuchsia内核Zircon的包装,包含了网络栈,可以用来和编译代码的Host通信已完成安装,还包括分区等必要工具,这和Android上的recovery的组成及扮演的角色是非常相似的。

进入Zedboot后,屏幕上显示:

netsvc start

此时target和host之间已经可以通过网络链接了,通过USB网线转接头+网线连接了编译主机与目标设备NUC。

接下来有两种安装办法

1. fx pave

通过Zedboot在target设备上进行分区,将host上编译好的各个分区的镜像通过网络上传至Zedboot并写入对应分区。这种方法会创建Fuchsia的EFI引导,这样安装完成后的Fuchsia会增加一个启动项(就像平时安装Ubuntu时那样),开机的时候能自动引导进入系统。

进入Zedboot后,通过ALT+TAB进入命令行模式,接下来就可以开始安装Fuchsia镜像了。

擦除分区:

install-disk-image wipe-partition-tables --block-device /path/to/usb/disk

其中/path/to/usb/disk是要安装的目标路径,可以通过lsblk,首次安装时我选择了主硬盘路径,相当于完全擦除其余数据只保留Fuchsia。

初始化分区表:

install-disk-image init-partition-tables --block-device /path/to/usb/disk

此时再lsblk可以看到对应的分区已经分好了。

接下来在host的命令行中输入fx pave,可以看到编译主机在本地创建了一个bootserver本地端口,等待另一端的Zedboot通过网络发起请求,连接成功后编译好的fuchsia会开始传输。

实际pave的过程中在传输镜像的过程中发生过多次网络断开,传输反复重试的情况,多等待几次重试直到成功为止。传输成功后target上的Zedboot会自动启动到Fuchsia。

经测试无法和target硬盘上原有的系统引导共存,这样测试设备在安装Fuchsia无法承担其他工作,相对会造成一定的浪费。

2. fx netboot

netboot的区别是不需要对target上的存储设备分区,每次都通过host直接传输镜像到target内存中,直接通过Zedboot引导启动到Fuchsia。这种方法可以保留target硬盘上的原系统不受影响(如已经安装了的Windows/Ubuntu),设备在不运行Fuchsia时依然可以承担其他工作,缺点是每次进入Fuchsia都需要通过U盘Zedboot引导启动,而pave在安装成功后Fuchsia可以脱离Zedboot直接启动。

同样通过启动U盘将target引导至Zedboot,通过fx netboot直接引导启动,实际一次完整镜像传输1分钟之内就完成了,依然很方便。

Fuchsia编译与真机安装相关推荐

  1. 真机安装CentOS7

    真机安装CentOS-7-x86_64-DVD-1804 使用真实主机安装centos7与安装其他版本有一个最大的不一样的地方就是,系统无法自动识别安装的U盘. 所以需要安装 人员在安装之前确认从哪个 ...

  2. arch linux安装到手机上,archlinux 的真机安装archlinux+deepin桌面系统(上)

    开头 很多人认为Archlinux比较适合稍微了解Linux一点的用户使用,但其实,我没有什么Linux使用经验,也可以拿过来用,就是稍感吃力,这里把自己安装archlinux 的过程发出来. 在安装 ...

  3. androidstudio Application Installation Failed 真机安装app安装失败提示

    今天从新安装了AS 然后真机安装app时出现以下错误提示 Installation failed with message INSTALL_FAILED_UPDATE_INCOMPATIBLE: Pa ...

  4. Android 源码编译及真机刷机实录

    最近接到一个项目,需要接触 Android 源码,所以走了一遍源码编译和刷机的过程,从开始到成功花了差不多一周的时间,踩了很多坑,在此记录一下. 整体分为四个部分: 文章目录 1.环境配置 1.1 创 ...

  5. 【xposed】真机安装xposed框架给掉坑里了

    最近安卓模拟器上高一些东西被限制挺严重的,打算使用真机来做xposed测试,正好有一台旧手机 红米5 plus,在之前Xposed Installer 还可以弄的时候,装过一台红米4,倒是挺简单的,不 ...

  6. 真机 安装未发布的 iOS11 教程

    1.安装 iOS 11的配置文件 链接:https://pan.baidu.com/s/1pLPY9Ub密码: xe6a 注意:要用真机的 Safari 浏览器打开 点击打开 如下图所示 2.点击允许 ...

  7. 真机安装AKP 遇到的问题

    真机内存空间不够了,删除不常用的,腾出足够空间,就安装成功了 导入 其他AS上的gradle项目时,出现的问题,点击Install Repository and sync project  按照提示进 ...

  8. 解决真机安装的Ubuntu18.04开机慢,关机关不了的问题

    第一次上手整真机Ubuntu 18.04,用U盘安装的时候,在勾选上安装显卡以及第三方软件的选项时,下一步就会卡死,一直在等待加载,一开始因为是显卡驱动问题,之后再安装也可以.就没勾上选项安装成功之后 ...

  9. 借用虚拟机在真机安装 ubuntu, 亦可安装至移动硬盘

    说一下另一种硬盘安装的办法,借用虚拟机装在物理硬盘上,比较变态. 0. 适用于机子里已经装了 windows 的朋友安装真正的 Ubuntu ,wubi 不在讨论之列. 1. 下载并安装 vmware ...

最新文章

  1. windows下安装mysql8.0压缩版
  2. 耗时 3 天,上亿数据如何做到秒级查询?
  3. oracle 分组后取每组第一条数据
  4. phpmyadmin 安装 配置
  5. HDU-5532Almost Sorted Array LIS问题
  6. id 怎么获取jira 评论_【JIRA】如何快速地批量查找各迭代的SprintID
  7. UML2.0详细教程(附示例)
  8. TranslateAnimation祥解
  9. Linux用户管理:新建用户组和新建用户
  10. 龙卷风袭击广东致6死215伤 广州停
  11. 《指数基金投资从入门到精通》读书笔记
  12. 服务器有什么类型?应用功能是什么
  13. 【SNA】社会网络分析二 Gephi 功能详解
  14. Python字典知识总结
  15. 【JAVA今法修真】 第四章 redis特性 击穿雪崩
  16. Excel_文本转数值型
  17. algorithm——并查集
  18. 笔记工具:幕布 简要使用教程
  19. 雨林木风诚聘Linux研发工程师
  20. 已有123所大学将云创大数据人工智能免费直播课引入课堂!

热门文章

  1. 一种安卓设备投屏到笔记本电脑上的简易方式
  2. vue路由跳转动画_vue怎么给路由切换时添加动画
  3. WordPress自带TinyMCE编辑器增强技巧大全
  4. Android .dex、.odex、Dalvik、ART、AOT、OAT
  5. 本星期在写的基于javaweb的仓库入库出库出入库毕业设计毕设使用
  6. pem crt key文件区别
  7. OSChina 周五乱弹 —— 我想当个昏君
  8. RPA 软件技术是什么意思
  9. 21考研上岸吉大人工智能学院考研复习策略
  10. TCP粘包是什么?如何处理?UDP有粘包吗?