Update README and add setup scripts

This commit is contained in:
francis.wang
2026-07-15 16:25:38 +08:00
parent 4c86c082a2
commit c748f6060d
3 changed files with 455 additions and 2 deletions
+66 -2
View File
@@ -6,7 +6,9 @@
```
03-openwrt-yocto/
├── setup-env.sh # 一键初始化脚本
├── setup-env.sh # Linux 环境初始化脚本
├── setup-env-macos.sh # macOS Docker 编译环境脚本
├── Dockerfile # Yocto 编译容器镜像定义
├── poky/ # Yocto 核心框架 (BitBake + OE-Core)
│ ├── bitbake/ # BitBake 构建引擎
│ ├── meta/ # OpenEmbedded-Core 基础层
@@ -48,7 +50,7 @@ source ./setup-env.sh
> 所有操作均为幂等:重复执行不会产生重复配置。
### 2. 构建镜像
### 2. 构建镜像 (Linux)
```bash
# 最小化 CLI 系统(无 Web 界面)
@@ -144,3 +146,65 @@ packagegroup-openwrt-full (继承 base)
- Yocto 版本: Scarthgap (5.0) / Nanbield (4.3)
- 已验证目标: qemux86-64
- Linux 内核: 6.6 (yocto-standard)
- **macOS**: 通过 Docker 容器支持(详见下方 macOS 编译章节)
## macOS 编译 (Docker)
> **Yocto Project 不支持在 macOS 上原生编译。** 官方推荐的跨平台方案是通过 Docker 容器运行 Linux 编译环境。
#### 前置条件
1. 安装 [Docker Desktop for Mac](https://docs.docker.com/desktop/setup/mac/)
```bash
brew install --cask docker
```
2. 启动 Docker Desktop 并确保 Docker 守护进程在运行。
3. 确保至少有 **50GB** 可用磁盘空间。
#### 初始化 macOS 编译环境
```bash
cd ~/03-openwrt-yocto
# 首次运行:构建 Docker 镜像(约需数分钟)
./setup-env-macos.sh
# 进入编译容器
./setup-env-macos.sh shell
```
进入容器后,在容器内初始化 Yocto 环境并编译:
```bash
# 在 Docker 容器内执行:
source ./setup-env.sh # 初始化 BitBake 环境
bitbake openwrt-image-base # 编译镜像
```
#### 一键编译
也可以直接从 macOS 宿主机发起编译:
```bash
./setup-env-macos.sh build openwrt-image-base
```
#### 可用命令
| 命令 | 说明 |
|------|------|
| `./setup-env-macos.sh` | 构建 Docker 镜像(首次必需) |
| `./setup-env-macos.sh shell` | 进入交互式编译容器 |
| `./setup-env-macos.sh build <target>` | 在容器中执行 bitbake 编译 |
| `./setup-env-macos.sh clean` | 清理 Docker 镜像和容器 |
| `./setup-env-macos.sh help` | 查看帮助 |
#### 技术说明
- Docker 镜像基于 **Ubuntu 24.04**Yocto Scarthgap 官方支持的发行版)
- 编译产物位于宿主机的 `build-x86-openwrt/tmp/deploy/images/` 目录
- 容器与宿主机共享项目目录,修改即时生效
- 容器内的用户 UID/GID 与宿主机用户一致,避免文件权限问题