在Mac OS系统上搭建开发环境

本节主要介绍如何搭建一个基于Mac OS系统的Zehpyr开发环境。

在完成本节的所有步骤之后,你能够在以下版本的Mac OS系统上编译和运行自己的Zephyr应用:

  • Mac OS X 10.11 (El Capitan)

更新你的操作系统统

在开始搭建开发环境前,确保你的操作系统已经被更新。

安装必须的软件和依赖软件

为了在Mac OS系统上安装构建Zephyr内核所需的软件工具,你需要构建目标设备所需的交叉编译器,同时还要安装开发系统所需的工具。

注意:对于以下列举的所需软件包,最小版本号的不同并不会映像软件的使用。

特别注意:在安装下列软件包前,请建超你的防火墙和代理配置来确认英特网访问是可以的。

首先,安装Homebre(The missing package manager for OS X)。Homebrew是一个自由并且开源的软件包管理系统,它的目的在于简化在苹果的Mac OS X操作系统上安装软件的过程。

安装Homebrew,访问Homebrew主页,按照页面上的说明进行安装。

为了完成Homebrew的安装,你可能会被要求安装某些缺失的依赖软件。如果遇到缺失的依赖软件,根据提供的安装说明进行安装。

当Homebrew成功安装后,使用命令行安装如下的工具:

$ brew install gettext qemu help2man mpfr gmp coreutils wget
$ brew tap homebrew/dupes
$ brew install grep --default-names
$ brew install crosstool-ng

你可以选择使用源码编译安装最新的crosstool-ng。从crosstool-ng网站下载最新的代码。通常最新的版本的crosstool-ng会支持最新的编译器。

$ wget
http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.22.0.tar.bz2
$ tar xvf crosstool-ng-1.22.0.tar.bz2
$ cd crosstool-ng/
$ ./configure
$ make
$ make install

配置工具链

创建一个大小写敏感的文件系统

在Zephyr内核源码树中,我们为ARM和X86平台提供了两种配置方案用以提前确定在编译工具链时的可选项。配置文件能在$ZEPHYR_BASE/scripts/cross_compiler/中找到。

$ cp ${ZEPHYR_BASE}/scripts/cross_compiler/x86.config .config

使用配置菜单可,用户可以自定义已存在的配置或创建新的配置。

$ ct-ng menuconfig

验证工具链的配置

在开始构建工具链之前,我们建议进行一个快速的工具链配置验证。

  1. 打开生成的.config文件。
  2. 确保以下内容在配置文件中存在,假设镜像挂载点为/Volumes/CrossToolNG
...
CT_LOCAL_TARBALLS_DIR="/Volumes/CrossToolNG/src"
# CT_SAVE_TARBALLS is not set
CT_WORK_DIR="${CT_TOP_DIR}/.build"
CT_PREFIX_DIR="/Volumes/CrossToolNG/x-tools/${CT_TARGET}"
CT_INSTALL_DIR="${CT_PREFIX_DIR}"
...

构建工具链

输入以下命令开始构建工具链:

$ ct-ng build

上述指令的执行可能会花费一些时间。当执行结束时,你可以在/Volumes/CrossToolNG/x-tools目录下找到构建完成的工具链。如果你需要支持不同架构的工具链,为所有的架构重复执行上述命令。

为了使用Zephy工具链,需要设置如下的环境变量,并且使用安装位置的工具链:

$ export ZEPHYR_GCC_VARIANT=xtools
$ export ZEPHYR_SDK_INSTALL_DIR=/Volumes/CrossToolNG/x-tools

如果要在未来的会话中使用相同的工具链,可以在文件$HOME/.zephyrrc中设置环境变量,例如:

$ cat <<EOF > ~/.zephyrrc
export ZEPHYR_SDK_INSTALL_DIR=/Volumes/CrossToolNG/x-tools
export ZEPHYR_GCC_VARIANT=xtools
EOF