fushia系统的编译

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiezhongtian/article/details/53270012

本文讲述在linux环境下fushia系统的编译环境搭建(系统ubuntu 14.04);
Fuchsia是Google主要为IoT(物联网)、PC以及移动端开发的新一代只能操作系统。与之前的Android、Chrome OS、Brillo等操作系统相比,区别之一就是它没有基于Linux内核,而是采用了微内核的Magenta(基于Little kernel)。Linux经过二、三十年的发展,今天无论是嵌入式设备还是分布式服务器,都有它的身影。但它起源于desktop时代,经过这么多年的活跃开发今天已俨然成为“大而全”的通用型内核。虽然可以通过裁剪、定制、增强满足IoT的基本功能,但时至今日种类多样的IoT设备在功能性、实时性、功耗、内存、性能上都提出了新的要求,而Fushcia就是Google继基于Android的Brillo之后尝试开发全新OS的产物。
按照谷歌给出的fushia系统环境搭建提示,这里一步步记录我在自己机器上搭建的过程;参考地址

  • 首先,安装编译需要的工具
sudo apt-get install golang git-all build-essential curl

!上述安装的编译工具不完全,编译过程中报错;我的机器上进行了一下额外包的安装:

sudo apt-get install texinfo libglib2.0-dev autoconf libtool libsdl-dev flex bison
  • **其次,下载源
curl -s https://raw.githubusercontent.com/fuchsia-mirror/jiri/master/scripts/bootstrap_jiri | bash -s fuchsia
cd fuchsiao cp .jiri_root/bin/jiri /usr/local/bin
sudo chmod 755 /usr/local/bin/jiri
  • 同步代码到本地
    • 执行下面命令进行代码同步(我使用hosts,上不了谷歌的同学可以使用laod分享的hosts):
jiri import fuchsia https://fuchsia.googlesource.com/manifest
jiri update

同步完成总共大概快6G;

  • 第三步,编译fushia的工具链
    在源码顶层目录下执行脚本开始编译(如果编译依赖 的工具没有安装完全会在此时报错,按照错误提示安装所需工具):
./scripts/build-toolchain.sh
 这个过程比较慢,如果你的机器比较好的话那还好(内存、cpu要好点);编译完成之后的工具链默认放在out/toolchain目录下;此时工具链编译完成,如下所示;


~/workdir/fuchsia$ ls out/toolchain/
clang+llvm-x86_64-linux

  • 第四部,更新代码继续编译
    如果后期你更新了代码需要再次编译的话执行:
    • 更新本地代码
      jiri update
    • 重新clean并再次编译整个工程
      ./scripts/build-toolchain.sh -c

至此我们已经位fushia系统的编译清扫了障碍,下面进一步编译fushia系统根文件系统和内核;

  • 编译根文件系统和内核
./scripts/build-sysroot.sh
  • 然后编译系统,不加任何参数默认编译的是 x86-64平台架构;
./packages/gn/gen.py
./buildtools/ninja -C out/debug-x86-64
  • gen.py脚本位不通架构平台的编译提供了参数,开发者可以在脚本后面制定特定平台标识来为特定架构编译;
./packages/gn/gen.py --target_cpu=aarch64
./buildtools/ninja -C out/debug-aarch64

如果你配置了ccache 环境加速编译过程,可以按照下面的方式来搞,这样编译速度会快不少

./packages/gn/gen.py --ccache
./buildtools/ninja -C out/debug-x86-64

在qemu中运行fushia系统

  • 下面命令会自动创建一个引导文件在 out/debug-{arch}/user.bootfs 下面;
./scripts/run-magenta-x86-64 -x out/debug-x86-64/user.bootfs -m 2048
./scripts/run-magenta-arm64 -x out/debug-aarch64/user.bootfs -m 2048
  • -x参数制定内核文件目录
  • -m参数制定使用qemu运行fushia时分配的内存空间大小
  • -g 参数启动图形控制台

【注意】 上面的命令会调用qemu来运行,如果您没有安装qemu的话执行会说没有qemu-system-xxxx;
执行命令sudo apt-get install qemu -y 安装qemu即可。

展开阅读全文

没有更多推荐了,返回首页