# Riscv Yocto 仓库构建说明 ## 仓库下载 1. 为了加速软件下载,所有用到的软件仓库都放在 `https://gitee.com/thead-yocto` 下。 2. 因为要使用 repo 管理,下载软件仓库,需要在 PC 上预先安装好 git,repo 等工具。 repo 建议使用清华源加速,安装设置参考:`https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/` 3. Yocto 编译过程中需要下载软件进行编译、安装等,可以设置一个公共目录存放。当遇到下载速度慢的时候,可以使用手动下载,更改下载源等手段加速。 4. 软件仓库下载: ```bash mkdir riscv_yocto cd riscv_yocto repo init -u git@gitee.com:thead-yocto/manifests.git -m riscv-yocto.xml repo sync -c -d -j16 ``` ## 工具链安装 1. 下载工具链 + sysroot 软件:host.gcc-8.1.0.tar.gz 2. 安装工具链 ```bash mkdir ~/.thead # 将下载的 host.gcc-8.1.0.tar.gz 解压到 ~/.thead tar zxf host.gcc-8.1.0.tar.gz -C ~/.thead # 也可以将工具链放到其他位置,同时修改 meta-riscv/conf/machine/include/thead-base.inc 即可 ``` ## 安装编译环境 1. 推荐使用 ubuntu18.04 或 ubuntu20.04 的环境进行编译。 2. 安装依赖 > TODO 3. 使用 docker 环境 > TODO ## 编译 1. 代码目录 ```bash riscv_yocto ├── meta-external-toolchain ├── meta-openembedded ├── meta-riscv ├── openembedded-core └── thead-build ├── downloads -> MY/YOCTO/DOWNLOADS # 可以手动创建链接指向共享下载目录 ├── ice-base # 默认编译 MACHINE=ice 的镜像 │   ├── conf │   └── README.md ├── ice-xfce # 默认编译 MACHINE=ice 的xfce镜像 │   ├── conf │   └── README.md ├── qemuriscv64 # 默认编译 MACHINE=qemuriscv64 的镜像 └── sstate-cache # 编译时自动生成 ``` 2. 编译 ```bash # 在 yocto 工程根目录 riscv_yocto/ 下执行: source openembedded-core/oe-init-build-env thead-build/ice-base # 将 build 目录指定为 thead-build/ice-base # 确认 downloads 文件夹:设置一个存放 yocto 下载文件的共享目录 SHARE_YOCTO_DOWNLOAD_FILE_FOLDER ln -s SHARE_YOCTO_DOWNLOAD_FILE_FOLDER/ ../downloads # 编译:thead-build/ice-base/conf/auto.conf 中默认设置为 MACHINE ?= "ice" bitbake core-image-minimal # 如果要编译其他target MACHINE,可加入 MACHINE=xxx 进行指定 MACHINE=qemuriscv64 bitbake core-image-minimal # sstate-cache/ 会放在 thead-build/ 下,不同配置可以共享使用 ``` 3. 输出 ```bash # 镜像文件 ./build/tmp-glibc/deploy/images/ice ```