1 介绍
openEuler Embedded是面向嵌入式场景的,基于openEuler社区的开源Linux系统。具体说明请参考https://openeuler.gitee.io/yocto-meta-openeuler/openEuler-23.09/index.html
openEuler Embedded 通过oebuild工具构建和配置,最终生成openEuler Embedded发行版,具体使用方法,请参考https://openeuler.gitee.io/yocto-meta-openeuler/openEuler-23.09/oebuild/intro.html
本文档主要介绍如何在openEuler Embedded 使用Phytium CPU BSP包,以下操作说明是基于Ubuntu 22.04。 目前支持E2000和D2000 CPU,在飞腾demo开发板基于U-boot和UEFI固件测试过PCIE,USB,网口,串口。
强烈建议先仔细阅读以上openEuler Embeded 手册,了解系统构成和oebuild的使用。
2 准备工作
准备工作包括获取飞腾软件包(请咨询FAE,技术支持或销售),建立oebuild环境(其中使用docker)。
2.1 建立oebuild环境
#安装oebuild
$ sudo apt-get install python3 python3-pip
#如果安装过oebuild但版本不是0.0.30, 需要先卸载oebuild, sudo pip uninstall oebuild
$ sudo pip install oebuild==0.0.30
#安装docker
$ sudo apt-get install docker docker.io -y
$ sudo groupadd docker
$ sudo usermod -a -G docker $(whoami)
$ sudo systemctl reload docker && systemctl restart docker
$ sudo chmod o+rw /var/run/docker.sock
#初始化oebuild目录
$ oebuild init -b openEuler-23.09
#创建编译配置文件
$ cd
$ oebuild update
其中 是工作目录名,需要自行修改指定。“oebuild init”命令会初始化工作目录,“oebuild update”命令会下载目标版本的项目源码及构建容器, 完成后会在工作目录创建src目录 和oebuild.log 等文件。src目录是用来存放依赖的软件包源码的,包括 yocto-meta-openeuler、yocto-poky等。 后续飞腾的软件包源码也会放在这个src目录。
请参考如下链接,了解详情
https://openeuler.gitee.io/yocto-meta-openeuler/openEuler-23.09/oebuild/userguide/build/index.html
2.2 获取飞腾软件包
飞腾软件包是指openEuler Embedded 飞腾BSP包。软件包不开源。
openEuler Embedded 飞腾BSP包— openeuler-meta-phytium.tar.gz
解压BSP包到工作目录下的src.
$ tar -zxvf openeuler-meta-phytium.tar.gz -C src/yocto-meta-openeuler/bsp/
$ cp src/yocto-meta-openeuler/bsp/meta-phytium/phytium.yaml src/yocto-meta-openeuler/.oebuild/platform/
3 oebuild构建
进入目录,开始编译。命令细节可以参考
https://openeuler.gitee.io/yocto-meta-openeuler/openEuler-23.09/oebuild/userguide/build/index.html
$ cd
$ oebuild generate -p phytium
$ cd /build/phytium
$ oebuild bitbake openeuler-image
4 镜像输出位置
/build/phytium/output/xxxxx/: kernel image and rootfs
/build/phytium/tmp/deploy/images/phytium: dtb file
如果有对应的飞腾开发板,就可以使用相关dtb,见下面说明。
E2000 CPU 请使用pe220前缀的dtb文件;
D2000 CPU 请使用pd2008前缀的dtb文件。
5 镜像文件使用
一般需要SATA,NVME或U盘,进行分区,将内核,dtb,文件系统放在合适的分区中。可以参考
https://gitee.com/phytium_embedded/phytium-linux-buildroot#%E5%9C%A8%E5%BC%80%E5%8F%91%E6%9D%BF%E4%B8%8A%E5%90%AF%E5%8A%A8%E7%B3%BB%E7%BB%9F
6 在openEuler Embedded上开发
飞腾提供的软件包主要是内核和BSP包,目的是将openEuler Embedded 可以在Phytium CPU上运行,并使用CPU的相关接口。关于上层软件的开发,请参考oebuild文档
https://openeuler.gitee.io/yocto-meta-openeuler/openEuler-23.09/getting_started/index.html#install-openeuler-embedded-sdk
A 参考文献
openEuler Embedded
https://openeuler.gitee.io/yocto-meta-openeuler/openEuler-23.09/index.html
oebuild
https://openeuler.gitee.io/yocto-meta-openeuler/openEuler-23.09/oebuild/intro.html