25 Star 65 Fork 170

openEuler / yocto-meta-openeuler

 / 详情

雪球计划-里程

进行中
自定义 成员
创建于  
2024-02-01 11:02

背景

旨在对南向BSP的覆盖活动,目的是扩大openEuler对南向bsp的支持范围,“雪球计划”,寓意openEuler将一步步强大,最终成为国内乃至国际顶流嵌入式操作系统

南向BSP的支持主要以SoC单位,例如NXP的I.MX系列, TI的AMX系列等等,每个系列会选择一款代表性的开发板进行验证。
后续基于同系列SoC的开发板都可以基于样板BSP进行支持。

已有的Yocto BSP参考

南向硬件参考

感谢如下公司、组织在硬件上提供的支持和赞助:

ARM开发板

移植进度标准

资料学习(10%) 移植流程(80%) 代码提交(90%) 文档完善(100%)
了解机器(学习硬件特性和功能、源码获取、构建烧录与功能测试的方法) 内核移植(替换欧拉内核) 上游代码提交(上游相关吃那个的创建等,找李新宇) 文档提交(包括构建的镜像截图,烧录截图,运行时截图,启动后的屏显log)
机器验证(板载镜像构建、烧录、启动成功并进行简单功能测试) meta层的适配 欧拉源码提交(yocto-meta-openeuler仓的提交)
开发板整体镜像制作

登记表

SOC型号 soc厂商 bsp型号 赞助商 gitee id 进度 备注
T113-S3 全志 MYD-YT113S3-4E128D-110-I-G 米尔科技 wangwei@cdjrlc.com 0% 2024/02/20:开发板寄出
T113-i 全志 MYD-YT113i-4E256D-110-I 米尔科技 wangwei@cdjrlc.com 0% 2024/02/20:开发板寄出
T527 全志 MYD-LT527M-16E2D-180-E 米尔科技 wangwei@cdjrlc.com 0% 2024/02/20:开发板寄出
RZ/G2L 瑞萨 MYD-YG2L23-8E1D-120-C-REMI 米尔科技 alichinese 15% 2024/03/09:内核移植阶段
2024/02/20:开发板寄出
i.MX 6ULL NXP MYD-Y6ULY2-V2-4E512D-50-I 米尔科技 darrenpig 0% 2024/02/20:开发板寄出
i.MX 8M Plus NXP MYD-JX8MPQ-8E2D-160-I 米尔科技 puai 10% 2024/03/09:机器验证阶段
2024/02/20:开发板寄出
STM32MP135 ST MYD-YF135-4E512D-100-I 米尔科技 bigclouds99 0% 2024/02/20:开发板寄出
AM62x TI MYD-YM6254-8E2D-140-I 米尔科技 emancipator 10% 2024/03/09:机器验证阶段
2024/02/20:开发板寄出

BSP开发步骤参考如下:

  1. 开发板资料学习,了解机器特性,以及使用,测试,烧录方法,
    验收标准:开发板特性、开发烧录、测试文档
  2. 使用开发板资料的SDK进行构建,做烧录测试,了解其目录结构,所使用的工具,代码、固件存放位置等,厂商linux kernel如果能选择,尽量使
    用内核为5.x版本作为参照对象,
    验收标准:开发板特性对应的代码目录结构解析
  3. 内核移植:下载openeuler-kernel源码,从社区节点embedded-openeuler中进行提取版本号,并下载
    例如从master开发,查看https://gitee.com/openeuler/yocto-meta-openeuler/blob/master/.oebuild/manifest.yaml中kernel的tag并下载
    代码如下:
    kernel-5.10:
    remote_url: https://gitee.com/openeuler/kernel.git
    version: 673b97e8053120a4b56fe5b5d5748dcef68a3f50
    a. 下载源码到本地:

​ git clone https://gitee.com/openeuler/kernel.git openeuler-kernel -b openEuler-22.03-LTS-SP2

​ cd openeuler-kernel

​ git checkout 673b97e8053120a4b56fe5b5d5748dcef68a3f50

​ 下一步就是驱动移植及验证
​ b. 从设备树查看外设驱动是否存在设备树中对应节点有compitible属性,在driver里面查找对应的驱动,如果则尝试编译其deconfig,如果没有的话就从厂商提供

的SDK中移植到openeuler-kernel,并完成驱动debug

验收标准:移植完成的内核推送到对应的PR上,并完善文档,外设支持的内容。以及通过的验证方法。

  1. 内核移植验证完成后制作yocto-meta-openeuler的BSP层
    a. 引入上游的BSP层以及软件层
    i. 初始化环境:
  1. oebuild init <init_dir> -u <your_own_repo_url>
  2. oebuild update

如果上游有BSP层:

ii. 复制一份.oebuild/platform/里面的板平台为这次需要的machine,并修改内容为上游层的repo_url以及layer。
iii. 制作完以上文件即可使用oebuild generate -p ,并按指示进入容器
iv. 制作openeuler的适配的附加层:

  1. 参考bsp/meta-openeuler-bsp/raspberrypi,在同级目录下新建一个目录vender名字的目录
  2. 在上述目录下增加三个基础核心配方集
    a) recipes-bsp:存放基础的配方以及固件如uboot/grub/bootfiles等
    b) recipes-core:主要存放images/packagegroups/systemd等系统核心部分
    c) recipes-kernel:主要存放linux等欧拉内核相关配方
  3. 在bsp/meta-openeuler-bsp/conf/layer.conf中参考raspberrypi与rockchip内容,增加自己的附加层
    v. 在bsp下制作BSP层,也可以直接复制meta-hisilicon,并修改成自己要样子。也可以参考yocto文档从bitbake构建bsp层
    https://docs.yoctoproject.org/bsp-guide/bsp.html#creating-a-new-bsp-layer-using-the-bitbake-layers-script
    vi. 参考上游通soc的机器配置,加入附加的机器配置
  4. 建立该机器配方:
    a) 如果上游有BSP层:参考上游同soc架构的.conf,在include内新建一个名为openeuler-
    .conf并做通用的欧拉相关的定制修改。制作自己的.conf,引用通用的openeuler-
    .conf,并定义自己所需要的配置
    b) 如果上游没有BSP层:参考其他机器的machine.conf,制作一份.conf
  5. .conf一般有
    a) KBUILD_DEFCONFIG内核的defconfig,也可以不定义,定义了就会用内核仓库内的xxxx_defconfig
    b) SERIAL_CONSOLES定义串行口,波特率等
    c) KERNEL_DTB_NAME定义设备树名
    vii. 修改内核相关的配方,参考bsp/meta-openeuler-bsp/rockchip/recipes-kernel/linux/ 做实现
    viii. kernel仓库在.oebuild/manifest里加上相应仓库地址(测试时可用自己的私仓,在推送PR的时候尽量使用公仓)
    ix. 验证并DEBUG内核linux-openeuler,烧录并验证
  6. bitbake linux-openeuler
    x. 制作文件系统
    参考bsp/meta-openeuler-bsp/rockchip/recipes-core/images,在自己层的recipes-core/images下创建.inc,定义
    分区 yocto 的第 1 页
  7. 参考bsp/meta-openeuler-bsp/rockchip/recipes-core/images,在自己层的recipes-core/images下创建.inc,定义
    IMAGE_FSTYPES等(如果machine.conf里面有了也可以不用定义),如果需要把输出挪到output下也可以参考实现
  8. 验证并DEBUG文件系统bitbake openeuler-image,烧录并验证
    xi. 过程中遇到问题可用btibake -e 查看执行环境,对照tmp/work////temp内的log对应
    相关BUG进行过程验证。
    b. 推动相关固件/优化代码欧拉建仓
    i. 验证文件系统以及驱动固件及其功能后,可推动欧拉建立相关仓库进行存储
    验收标准:移植完成的ycoto代码推送到对应的PR上,并完善文档,功能支持的内容。以及通过的验证方法。

评论 (3)

alichinese 创建了自定义

Hi alichinese, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: sig-Yocto, and any of the maintainers: @ilisimin , @fanglinxu , @Wayne Ren

openeuler-ci-bot 添加了
 
sig/sig-Yocto
标签
Wayne Ren 修改了描述
Wayne Ren 修改了描述

登记表

SOC型号 soc厂商 bsp型号 赞助商 gitee id 进度 完成时间 备注
MYS-6ULX NXP i.MX6UL/i.MX6ULL 米尔科技 @DarrenPig ---- ------ ----
MYS-6ULX NXP i.MX6UL/i.MX6ULL 米尔科技 @puai ---- ------ ----
MYS-6ULX NXP i.MX6UL/i.MX6ULL 米尔科技 @wei-app ---- ------ ----
alichinese 修改了描述
SOC型号 soc厂商 bsp型号 赞助商 gitee id 进度 完成时间 备注
D9360 芯驰 MYD-JD9360 米尔科技 @emancipator ---- ---- ----
alichinese 修改了描述
alichinese 修改了描述
alichinese 修改了描述
alichinese 修改了描述
alichinese 修改了描述
alichinese 修改了描述
alichinese 修改了描述
fanglinxu 任务状态待办的 修改为进行中

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(4)
5329419 openeuler ci bot 1632792936 13331507 darrenpig 1706849366
1
https://gitee.com/openeuler/yocto-meta-openeuler.git
git@gitee.com:openeuler/yocto-meta-openeuler.git
openeuler
yocto-meta-openeuler
yocto-meta-openeuler

搜索帮助

344bd9b3 5694891 D2dac590 5694891