riscv yocto 仓库构建说明.md 2.8 KB

Riscv Yocto 仓库构建说明

仓库下载

  1. 为了加速软件下载,所有用到的软件仓库都放在 https://gitee.com/thead-yocto 下。

  2. 因为要使用 repo 管理,下载软件仓库,需要在 PC 上预先安装好 git,repo 等工具。

repo 建议使用清华源加速,安装设置参考:https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/

  1. Yocto 编译过程中需要下载软件进行编译、安装等,可以设置一个公共目录存放。当遇到下载速度慢的时候,可以使用手动下载,更改下载源等手段加速。

  2. 软件仓库下载:

   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. 安装工具链

   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

  1. 使用 docker 环境

TODO

编译

  1. 代码目录
   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       # 编译时自动生成
  1. 编译
   # 在 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/ 下,不同配置可以共享使用
  1. 输出
   # 镜像文件
   ./build/tmp-glibc/deploy/images/ice