
1.)更改设备树
我根据以下内容构建了一个图像:MACHINE ?? =“sama5d3xek”
在生成过程之后,我在deploy dir中找到了5D35的两个设备树文件:
> zImage – 4.1 git0 19291d7be4-r0-sama5d35ek-.dtb
> zImage – 4.1 git0 19291d7be4-r0-sama5d35ek-revc-.dtb
因为主板是revD我使用zImage – 4.1 git0 19291d7be4-r0-sama5d35ek-.dtb.
在此文件中,只定义了can0和i2c1.
我也喜欢使用can1和i2c0.为此我想我需要创建一个自己的dts文件并将其包含在内核构建过程中.
到目前为止,我将dts文件放在我的元测试配方中.想法如何将其复制/修补到内核中?
2.)更改内核配置
我检查了内核
bitbake virtual / kernel -c menuconfig
因为我没有使用SAMA5D2等,只有控制台我停用了这些内核配置.我将新的“.config”保存到my-recipe目录中.我有一个类似的问题,如1 – 如何修补/复制到内核?
我是yocto和内核黑客的新手.知道怎么做吗?
解决方法@H_301_38@ 如果您正在使用最近的Yocto项目版本,那么您可以使用recipetool来完成大部分的工作.您有两个选项,您可以使用现有的recipetool命令和少量的手动工作,或者您可以在Meta-mentor中使用recipetool插件,该插件提供了一些特定于内核的命令来为您执行此 *** 作.图层设置
首先,您需要一个图层来存储您的更改.如果您已经创建了一个图层,则可以使用它,否则我们可以创建一个图层并将其添加到我们的配置中:
$yocto-layer create local 1$bitbake-layers add-layer Meta-local
选项一:使用Meta-mentor中的recipetool插件
建立
首先,克隆元导师:
$git clone https://github.com/MentorEmbedded/Meta-mentor
接下来,在您的配置中添加Meta-mel:
$bitbake-layers add-layer path/to/Meta-mentor/Meta-mel
或者将Meta-mentor / Meta-mel / lib复制到您自己的图层中:
$cp -a path/to/Meta-mentor/Meta-mel/lib Meta-local/
设备树
$recipetool kernel_add_dts Meta-local /path/to/your.dts
内核配置
$recipetool kernel_add_fragments Meta-local /path/to/your.cfg
要么:
$recipetool kernel_set_defconfig Meta-local /path/to/the/defconfig
方案二:手动
在下面的部分中,显然您的机器名称应该是sama5d3xek.传递给下面的recipetool命令的’-m your-machine-name’使得配方中的更改特定于您的机器,而不是影响使用该配方的任何机器.如果您知道配方仅用于您的机器,那么您可以放弃它,但保留它是最安全的,因为一些BSP层对多台机器使用相同的内核配方.例如,linux-yocto用于许多.
设备树
然后,假设您有一个方便的.dts,您想要使用:
$recipetool appendsrcfile -wm your-machine-name path/to/Meta-local virtual/kernel /path/to/your.dts 'arch/${ARCH}/boot/dts/your.dts' 这将在元本地中创建.bbappend并将.dts添加到SRC_URI,将其放在内核源代码树中的相应路径中.下一步是编辑它创建的追加并将.dts的.dtb添加到KERNEL_DEVICETREE变量,即:
KERNEL_DEVICETREE += "your.dtb"
如果内核配方包含recipes-kernel / linux / linux-dtb.inc,则KERNEL_DEVICETREE中的任何.dtb文件都将使用内核的构建系统从其.dts文件创建.有些内核不包含linux-dtb.inc,在这种情况下你可以自己添加:
require recipes-kernel/linux/linux-dtb.inc
内核配置
内核配置稍微复杂一些,因为配置的完成方式在内核配方之间略有不同.一些内核配方支持配置片段(它只是一个带有defconfig / .config部分的文本文件),而其他配置片段则必须完全覆盖配置. ‘linux-yocto’配方可以处理和使用片段,其他一些也可以.
要查看您正在使用的内核配方(顶层文件名将是使用的那个):
$bitbake -e virtual/kernel | grep '^file='
如果要使用配置片段,可以手动创建片段,也可以生成片段:
$bitbake -c menuconfig virtual/kernel$bitbake -c diffconfig virtual/kernel
‘diffconfig’任务将使用menuconfig中的更改创建一个片段,并打印到它的路径.
然后你可以将它添加到内核中(尽管如此,只有某些配方会使用它):
$recipetool appendsrcfile -wWm your-machine-name Meta-local virtual/kernel /path/to/your.cfg
要覆盖整个配置,大多数配方都会遵守并使用’defconfig’源文件,因此:
$recipetool appendsrcfile -Wm your-machine-name Meta-local virtual/kernel /path/to/the/defconfig
注意:defconfig不是自动生成的.将defconfig替换为menuconfig(‘.config’)的结果.
总结以上是内存溢出为你收集整理的linux-kernel – 如何在Yocto中使用自己的设备树和修改后的内核配置?全部内容,希望文章能够帮你解决linux-kernel – 如何在Yocto中使用自己的设备树和修改后的内核配置?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)