Windows、WSL 与容器开发
本页依据 文档基线与后续更新 中记录的 Zephyr main 快照更新。
容器适合固定构建依赖、共享团队开发环境或运行 CI。首次学习建议先完成 Windows 原生开发环境 或 搭建开发环境并运行第一个应用 的官方入门流程,再决定是否需要容器。
旧教程依赖特定年份的 Docker 镜像、旧 SDK 路径和截图。这些组合不能作为当前 Zephyr 开发环境的通用配置;选用容器时应记录镜像摘要、Zephyr 提交和模块清单。
容器镜像与工作区
Zephyr 项目维护的容器定义见 docker-image 仓库。 它区分用于开发、构建或 CI 的镜像,镜像所带的 SDK 和工具会随发布变化。 根据该仓库说明选择镜像,并核对其中的 Python、SDK 和主机架构是否满足目标 Zephyr 版本。
工作区至少需要保存以下内容:
.west/、zephyr/和清单要求的模块。应用源文件、配置、overlay 和用于复现的版本记录。
与目标、工具链匹配的构建输出目录。
把源码放在持久卷或宿主机挂载目录。容器销毁后,容器内部未持久化的安装或修改会丢失。
容器中的虚拟环境应在容器内部创建,不要复用 Windows 主机上的 .venv。
切换 Linux 与 Windows 环境时分别使用各自的构建目录。
在已准备好依赖的 Linux 容器中,可采用下面的工作流程;工作区路径由挂载配置决定:
cd /work/zephyrproject
west update
west packages pip --install
west zephyr-export
cd zephyr
west build -p always -b qemu_cortex_m3 samples/hello_world
west build -t run
这里假设容器已经激活可写的 Python 虚拟环境,安装 west 和兼容 SDK,且源码位于
/work/zephyrproject。镜像包含的内容不同,具体准备步骤应查看所选镜像说明。
WSL 与硬件访问
当前 Zephyr 官方入门文档仍指出 WSL 下应用烧录存在工具查找等问题,因而不建议新手 用它完成初次烧录。WSL 或 Docker 中能编译不表示能直接访问 USB 调试探针、串口或 厂商烧录程序。
如使用这类环境,应单独确认 USB 转发、设备权限、runner 所在环境和串口归属。
若改在 Windows 主机上烧录容器生成的镜像,按照板卡烧录工具要求选择实际镜像文件。
含 Linux 绝对路径的构建目录不能直接视为可在 Windows 使用的 west flash 目录。
复现记录
记录镜像标签及 digest、Zephyr 提交号、west manifest --freeze 输出、SDK 版本和
构建命令。升级容器后新建或清理构建目录,再检查目标应用。容器是环境封装方式,
它不能自动解决不兼容的源码、工具链和模块组合。