Linux 如何在Yocto中为evalboard(具有制造商预设的内核)设置抢占式实时内核?

Linux 如何在Yocto中为evalboard(具有制造商预设的内核)设置抢占式实时内核?,linux,linux-kernel,real-time,embedded-linux,yocto,Linux,Linux Kernel,Real Time,Embedded Linux,Yocto,我喜欢使用先发制人的linux内核和Yocto。 作为硬件,使用SAMA5D3x评估板+SAMA5D35-CM模块 Atmel提供了一个元Atmel层,其中包括“at91-linux_*.bb”配方。此配方为SAMA5D3x机器构建内核 为了使用实时内核,我应该插入实时补丁并在最短时间内激活它们 我没有找到如何在现有内核上实现这一点的教程。我的问题是: 如何/在何处修改给定的内核配方,使其成为实时内核(抢占rt)? 我的测试项目位于 项目主管“/主页/用户/yocto”。它有以下内容: “/”

我喜欢使用先发制人的linux内核和Yocto。 作为硬件,使用SAMA5D3x评估板+SAMA5D35-CM模块

Atmel提供了一个元Atmel层,其中包括“at91-linux_*.bb”配方。此配方为SAMA5D3x机器构建内核

为了使用实时内核,我应该插入实时补丁并在最短时间内激活它们

我没有找到如何在现有内核上实现这一点的教程。我的问题是:

如何/在何处修改给定的内核配方,使其成为实时内核(抢占rt)?

我的测试项目位于 项目主管“/主页/用户/yocto”。它有以下内容:

  • “/”==>Yocto系统
  • “/”==>元嵌入式配方
  • “/”==>atmels yocto层
  • “/meta-atmel/recipes-kernel/linux/linux-at91_4.4.bb”==>内核配方
  • “/meta-atmel/conf/machine/sama5d3xek.conf”==>运行内核的机器
  • “/myTest”==>我的测试项目
  • “/myTest/recipes kernel/linux-at91\%.bbappend”==>替换内核配置+添加自己的设备树
  • “/myTest/recipes kernel/linux/linux-at91/sama5d3xek/defconfig”=>我自己的内核配置
  • /myTest/recipes kernel/linux/linux-at91/sama5d3xek/myDev.dts==>我自己的设备树
关于如何在Yocto中激活RT内核的任何想法/教程?

通常:

../source/poky/recipes-kernel/linux
中,您应该找到一个
linux-yocto-rt_X.XX.bb
配方来编译完整的抢占式rt内核

对于meta atmel,您应该执行以下操作:

  • 为您的内核版本下载正确的RT修补程序,并使用.bbappend文件将其应用到您当前的linux内核配方中。你可以找到补丁
  • 将补丁添加到您的
    bbappend
    文件(存储在您自己的层中的一个已接受的目录中)。p、 e.:
    SRC_URI+=”file://0001-linux-rt.patch“
  • 激活抢占式内核。在您所在层的defconfig上手动设置
    CONFIG\u PREEMPT=y
    。另外,您还可以使用
    bitbake虚拟/内核-c menuconfig
  • meta atmel的陷阱:

  • linux-at91_4.4.bb配方不关心内核的补丁和子级别(p.e.4.4.66->…)。如果有一个新的版本,它将在一段时间后去元atmel层
  • linux内核的RT分支并不是为每个新的子级别提供的
  • 这意味着您自己的元层会不断中断

  • 下载补丁并应用对我来说似乎是最好的。meta atmel at91 linux遵循4.4.x内核。有没有一种自动选择rt补丁的方法,可以自动下载、提取和部署它?也许可以在“linux-at91_uu%”添加一些代码?像“do_installl_append”一样,你可以在食谱中使用
    SRC_URI
    在网上检索文件。但是我建议您将内核源代码(tar.gz)移动到您自己的层中,并手动下载它的补丁。通过这种方式,您可以确保将来有正确的来源和正确的补丁。很多时候,回购协议被移动或无法获得,你将很难正确地重定向你的食谱。这是真的。我联系了Nicolas,他正在维护meta atmel。让我们等待他对“yocto方式”的意见来完成这项任务。我倾向于在我的元层下载和存储不同内核版本的补丁,就像你建议的那样。