11. Zephyr 环境搭建
我这里 Zephyr 环境搭建在 Ubuntu 20.04 上,Ubuntu 运行在 virtualbox 虚拟机中。
11.1. 前置条件
Ubuntu 20.04 (virtualbox on win10)
11.2. 环境搭建
首先输入
sudo apt update
sudo apt upgrade
sudo apt upgrade
第一次更新的时候可能会失败,再输入一次即可。
安装依赖包
需要使用 apt
来安装依赖包,最好使用国内源。
sudo apt install --no-install-recommends git cmake ninja-build gperf \
ccache dfu-util device-tree-compiler wget \
python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
make gcc gcc-multilib g++-multilib libsdl2-dev
然后需要检查 cmake 的版本,需要 3.13.1 及以上的版本。
cmake --version
若版本较低,则需要手动更新 cmake 版本,参考官方手册。Ubuntu 20.04 一般不会有这个问题。
获取 Zephyr 并安装 Python 依赖
安装
west
Python 脚本工具,并将~/.local/bin
加入 PATH 环境变量。
pip3 install --user -U west -i https://mirrors.aliyun.com/pypi/simple/
echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc
source ~/.bashrc
这里的 -i https://mirrors.aliyun.com/pypi/simple/
表示使用国内源安装。
然后获取 Zephyr 源代码,
west init ~/zephyrproject -m https://gitee.com/AnswerInTheWind/zephyr/
cd ~/zephyrproject
west update
这里 west init
使用了参数 -m https://gitee.com/AnswerInTheWind/zephyr/
, 表明从 gitee 上下载源代码,速度更快,而且该仓库已经修改了 west.yml
文件,将依赖的模块文件也全部从 github 导向了 gitee,这样在国内安装速度也会很快。
最后使用 west update
安装依赖模块。
导出 Zephyr CMake 包,
west zephyr-export
安装 python 依赖环境
pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
可能会安装失败,多安装几次就会。
安装工具链
下载 Zephyr SDK 安装工具
cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.11.4/zephyr-sdk-0.11.4-setup.run
若嫌速度太慢,可以从企业网盘里下载,然后通过虚拟机共享文件夹到 Ubuntu 。
运行安装工具,将 SDK 安装到
~/zephyr-sdk-0.11.4
chmod +x zephyr-sdk-0.11.4-setup.run
./zephyr-sdk-0.11.4-setup.run -- -d ~/zephyr-sdk-0.11.4
建立 udev 规则,允许普通用户下载程序到 Zephyr 支持的大部分开发板。
sudo cp ~/zephyr-sdk-0.11.4/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d
sudo udevadm control --reload
编译下载
使用 samples/hello_world 来测试环境是否搭建成功。
cd ~/zephyrproject/zephyr
west build -p auto -b qemu_x86 samples/hello_world
west build -t run
运行结果如下:
jackis@jackis-zephyr:~/zephyrproject/zephyr$ west build -t run -d build/qemu_x86/hello_world
-- west build: running target run
[0/1] To exit from QEMU enter: 'CTRL+a, x'[QEMU] CPU: qemu32,+nx,+pae
SeaBIOS (version rel-1.12.1-0-ga5cab58-dirty-20200625_115407-9426dddc0a1f-zephyr
)
Booting from ROM..*** Booting Zephyr OS build zephyr-v2.4.0-8-g9c30e7946974 ***
Hello World! qemu_x86
参考: