本文主要参考自 https://fuchsia-china.com/guide-of-fuchsia-os-compilation/zh-cn/
我的开发环境是manjaro,基于archlinux,所以一些命令与ubuntu不同。
关于下载代码的相关说明
1. 由于fuchsia托管在google,所以下载很麻烦。开始使用electron-ssr作为http代理,但是这个软件经常会弹出提示框然后打断网络。因此建议使用cow做socks转http,可以比较稳定下载。
2. 由于使用了python2所以需要对/usr/bin/python的符号链接进行替换,指向python2
3. 由于脚本限制,代理服务器需要写成http://127.0.0.1:7777
的形式,不然在python简本中会报错
4. 有时候出现ERROR: Project integration(integration) contains uncommited changes
可以删除那个文件夹然后重新执行jiri update
然后你会发现还报这个错误(我没找到解决方法。。。)
5. 截至目前(2019.3.4)fuchsia源码大小20G

开始编译
编译很快,链接超级慢,不知道为什么连接时候根本没有并发,cpu基本空载,内存貌似没上过8,保险起见建议小于16g内存用户开启swap

如果使用固态编译应该会快不少,由于硬盘都存电影了,只能找了个闲置笔记本硬盘还是usb3连接的,速度比较慢,从netdata可以看到明显的io等待,不过没办法,还有种子要下(手动滑稽),估计连接也是卡在io上了,于是电脑慢慢编译,我去睡觉了,明早再看结果把。
emmm,临睡觉前编译完了:)完了今天不能睡觉了
[feilong@feilong-dev fuchsia]$ time ./scripts/fx full-build
ninja: Entering directory `/mnt/fuchsia/fuchsia/out/build-zircon'
[13573/13573] STAMP obj/manifest-x64.stamp
ninja: Entering directory `/mnt/fuchsia/fuchsia/out/x64'
[1/1] Regenerating ninja files
[9326/9326] STAMP obj/build/gn/default.stamp
real 132m37.180s
user 186m42.420s
sys 15m26.925s
编译了好久
运行
我内存也比较多,所以也4g扔出去:)
后来看了下运行代码,默认2g,推荐-k
参数,启用kvm