本文转载自 Fuchsia 中文论坛,作者:FLEMON;原文链接:https://forum.fuchsia-china.com/t/754,下载源码:https://forum.fuchsia-china.com/t/29 ;欢迎到 Fuchsia 中文论坛参与讨论或者分享你的编译过程。


粉色 + 紫色 == Fuchsia (一个新的操作系统)。

具体配置如下:

  • 系统 Ubuntu 18.04.3 LTS x64
  • CPU Intel® Core™ i3-2310M CPU @ 2.10GHz
  • 虚拟化: VT-x
  • L1d 缓存: 32K
  • L1i 缓存: 32K
  • L2 缓存: 256K
  • L3 缓存: 3072K

(是不是很垃圾?)
GPU [AMD/ATI] Robson CE [Radeon HD 6370M]
(亮机卡)
内存1 2G DDR3 1333MHZ
内存2 4G DDR3 1333MHZ

准备你的编译环境

 Debian Ubuntu 系列安装依赖包命令如下:

sudo apt-get install build-essential curl git python unzip

 macOS如下:

xcode-select --install
Xcode,还需要最新版的 [Xcode](https://developer.apple.com/xcode/)

获取源代码

安装Go 1.6版本以上,安装Git然后配置好用户名和邮箱。

下列命令会拉取大约15GB文件,Fuchsia 中文社区论坛里也有打包好的可供下载(下载说明最新下载地址

悄悄推荐一个s-s乳,付费,便宜,好用(aHR0cHM6Ly9zc3Jzcy5uZXQvcmVnaXN0ZXI/YWZmPTk4NzAzMQ==)括号里的内容自行base64解码就懂了!!!

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

执行上面的命令后,终端窗口黄色提示消息让你把 .jiri_root/bin 路径添加到变量,以便使用Fuchsia的工具链(jiri fx什么的),可在终端输入如下命令:

export PATH="/home/flomen/fuchsia/.jiri_root/bin:$PATH"

或者直接将 PATH="/home/flomen/fuchsia/.jiri_root/bin:$PATH" 添加到.bashrc

如果遇到:

Updating all projects
WARN: Some packages are skipped by cipd due to lack of access, you might want to run "cipd auth-login" and try again
ERROR: context deadline exceeded

这样的错误提示,请按提示转到相关网站,登陆Google账号获取密匙并添加到本机。

此时在你的home目录就有个fuchsia文件夹,cd 进入fuchsia文件夹,可使用 jiri update 更新源码。

编译Fuchsia

这时需要用到fx命令,以前是 fx set x64 或者 fx set arm64 。现在源码有了些变化,需要使用:

fx set [PRODUCT].[BOARD]

而这个[PRODUCT]输入 fx list-products 查看候选项,[BOARD]输入 fx list-boards 查看候选项。如图所示:

可以看见,fuchsia已经支持较多设备了,kirin970,高通835,高通msm8x53-som(不知道啥处理器),以及联发科的8167s。
栗子如下:

fx set workstation.x64 # x64 调试版
fx set core.arm64 # arm64 调试版
fx set core.x64 --release # x64 正式版

默认 fx set core.x64 走起!!

等待一会儿,此时会在~/fuchsia/out目录生成一些必要文件,用于后续编译构建。

接下来使用

fx build

开始构建你的Fuchsia!!
正在编译系统文件

从速度上来看,Fuchsia编译速度比Android快多了,而且错误也很少,几乎没有。从资源上来看,Android编译JAVA通常吃我1.3GB的RAM,硬盘,CPU也是经常爆满。而Fuchsia却很可观。

如图右边可以看出Fuchsia大法好!!!

编译进行中,睡一觉再说。

遇到个错误,我啥都没干,再次输入 fx build 后,错误又消失了,继续编译。

过程中遇到
clang++: error: unable to execute command: Aborted (core dumped)
的错误,要么是clang++软件内部错误,要么是…(不知道)
这时从新输入 fx build 继续编译
经过大约5小时的编译,终于完成了。

运行Fuchsia

QEMU不支持Vulkan,因此无法运行Fuchsia的图形堆栈。所以没有UI。
此时输入

fx run -g

  • -m 用MB设置QEMU内存大小。
  • -g 启用图形界面。
  • -N 启用网络。
  • -k 启用KVM加速。

然而这时弹出了

Could not extend fvm, unable to stat fvm image

这样的错误。解决方法:
用文本编辑器打开~/fuchsia/tools/devshell/lib/fvm.sh,将

stat_output=$(stat "${stat_flags[@]}" "${fvmraw}") 改为
stat_output=$(LC_ALL=C stat "${stat_flags[@]}" "${fvmraw}")

这是似乎是因为系统语言导致的相关问题。在

size="${BASH_REMATCH[1]}" 的后面下一行
echo $size

然后保存,此时再 fx run -g 就能运行了。

ls 命令不能用?这就不妙了。

这我不知道怎么搞,起码现在系统已经启动成功了。
接下来操作

  • ctrl+a x 将会退出QEMU的文本模式。
  • ctrl+a ? 或者 ctrl+a h 显示所有支持的命令。
  • ctrl+alt+g 取消QEMU鼠标捕获。
  • ctrl+alt+tab 切换选项卡,debuglog是调试信息,1,2,3,4都是shell。

要启用网络,首先,为QEMU配置虚拟接口,点我(Google官网)。完成后添加 -N 和 -u 参数到 fx run :

fx run -N -u scripts/start-dhcp-server.sh

然后自己探索Fuchsia吧。
dm help 查看dm命令帮助
dm shutdown 关机

Fuchsia OS 编译教程 2019 年版相关推荐

  1. python语言设计二级教程答案2019_全国计算机等级考试二级教程2019年版——Python语言程序设计参考答案...

    第二章 Python语言基本语法元素 一.选择题 C B B C A D B A D B 二.编程题 1.获得用户输入的一个整数N,计算并输出N的32次方. 在这里插入图片描述 2.获得用户输入的一段 ...

  2. mysql计算机二级电子教程_MySQL数据库程序设计(2019年版全国计算机等级考试二级教程)...

    导语 内容提要 黄靖编写的<MySQL数据库程序设计(2019年版全国计算机等级考试二级教程)>根据教育部考试中心最新颁布的<全国计算机等级考试二级MySQL数据库程序设计考试大纲( ...

  3. 谷歌向公众开放Fuchsia OS:支持手机电脑IoT,华为鸿蒙与之对标

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 已经曝光了4年多的谷歌Fuchsia操作系统,今天正式向公众开放源代码了. 从今天开始,谷歌扩展了Fuchsia的开源模型,为项目讨论创建 ...

  4. 谷歌 Fuchsia OS 进入开发者测试阶段,它真的会代替安卓吗?

    作者 | Evana Margain 译者 | 明明如月 整理 | 夕颜,责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 在过去的 8 到 10 年里,移动市场一直被两个我们都熟悉的系 ...

  5. openresty完全开发指南_谷歌 Fuchsia OS 进入开发者测试阶段,它真的会代替安卓吗?...

    作者 | Evana Margain 译者 | 明明如月 整理 | 夕颜,责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 在过去的 8 到 10 年里,移动市场一直被两个我们都熟悉的系 ...

  6. 谷歌低调了 5 年的 Fuchsia OS,终于有望面世了!

    种种迹象表明,低调了多年的 Fuchsia OS 可能就要出首个开发者版本了! 整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 千呼万唤始出来,等待了五年,谷歌 Fuchsia OS ...

  7. android source镜像源_说要替代安卓的Fuchsia OS,国内镜像上线了!

    开源最前线(ID:OpenSourceTop) 猿妹综合整理 Fuchsia OS 是谷歌正在开发的一款全新操作系统,同时也是一个开源操作系统,类似于AOSP(Android 开放源代码项目). 从首 ...

  8. 详解S60 WebKit 21772编译教程

    S60 WebKit 21772编译教程是本文要介绍的内容,主要是来了解并学习S60 WebKit应用,具体内容的学习来看本文详解. 1.安装环境: perl jdk S60-SDK-0548-3.0 ...

  9. Fuchsia 是什么?Fuchsia OS 的未来如何?

    今天意外地看到 Fuchsia 系统即将进入 "dogfood" 测试,也就是开发者已经对系统开始亲自测试的阶段,未来不远就可能进入公开测试阶段了,这对于 Flutter 开发者来 ...

最新文章

  1. 2022-2028年中国重卡行业投资分析及前景预测报告
  2. 赞!Google 资深软件工程师 LeetCode 刷题笔记首次公开
  3. [nvidia] CUDA_VISIBLE_DEVICES
  4. 一分钟了解阿里云产品:企业级分布式应用服务EDAS五大热点技术问题分析
  5. vue+vuex初入门
  6. vb杨辉三角代码编写_杨辉三角怎样用VB写杨辉三角的完整代码 – 手机爱问
  7. 光纤跳线接口_综合布线与弱电工程:跳线、尾纤、光纤接口,一文讲明白
  8. ABAP 身份证校验的函数
  9. Windows 设置文件默认打开方式
  10. [从头读历史] 第301节 山海经 其实这不是一本神话书
  11. 深度测评:贪心AI课程到底怎么样?
  12. Linux下CPU使用率过高的排查方法
  13. 《C#零基础入门之百识百例》(二十一)数组遍历 -- 删除数组零元素
  14. 启动mongodb数据库服务
  15. 多卡聚合智能融合通信设备在智慧房车上的应用
  16. 多线程:转载自-时光如水_岁月如哥
  17. 发现几个有趣的公众号!
  18. Qt 相机拍照 QCamera
  19. 2020秋招金九银十程序员离职跳槽指南,作为过来人想对你们说这几点
  20. Options API

热门文章

  1. Siggraph2019 RealTimeRender“观影推荐”
  2. AMD首款5纳米PC处理器锐龙7000亮相,频率首破5GHz大关,单核性能提升15%
  3. [光劍藏書館2020] 孔夫子旧书网
  4. 不要掉进PHP数组合并的坑。(初学者须知道)
  5. JAVA文件下载,IE不提示下载,直接打开的解决方法
  6. 大数据可视化坐标轴的定制与绘制3D图表及统计地图
  7. 玩转Jetson AGX Orin官方套件
  8. linux可变剪切分析,可变剪切的意义和重要性
  9. 吉他所有和弦的指型都靠硬记吗?
  10. 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest H题