为了加速软件下载,所有用到的软件仓库都放在 https://gitee.com/thead-yocto
下。
因为要使用 repo 管理,下载软件仓库,需要在 PC 上预先安装好 git,repo 等工具。
repo 建议使用清华源加速,安装设置参考:https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/
Yocto 编译过程中需要下载软件进行编译、安装等,可以设置一个公共目录存放。当遇到下载速度慢的时候,可以使用手动下载,更改下载源等手段加速。
软件仓库下载:
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
下载工具链 + sysroot 软件:host.gcc-8.1.0.tar.gz
安装工具链
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 即可
推荐使用 ubuntu18.04 或 ubuntu20.04 的环境进行编译。
安装依赖
TODO
TODO
riscv_yocto
├── meta-external-toolchain
├── meta-openembedded
├── meta-riscv
├── openembedded-core
└── thead-build
├── ice-base # 默认编译 MACHINE=ice 的镜像
└── qemuriscv64 # 默认编译 MACHINE=qemuriscv64 的镜像
# 在 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/ 下,不同配置可以共享使用
# 镜像文件
./build/tmp-glibc/deploy/images/ice