You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Yocto中获取Linux内核源码(重点关注DTS文件)

使用devtool获取Yocto构建中的Linux内核源码(含DTS文件)

1. 先确认内核Recipe名称

首先得搞清楚当前镜像依赖的内核recipe是什么——通常默认是linux-yocto,但也可能是自定义的(比如linux-custom)。跑下面的命令就能查到:

bitbake -e <你的镜像名> | grep "^PREFERRED_PROVIDER_virtual/kernel="

举个例子,如果你的镜像是core-image-minimal,就执行:

bitbake -e core-image-minimal | grep "^PREFERRED_PROVIDER_virtual/kernel="

输出会类似PREFERRED_PROVIDER_virtual/kernel="linux-yocto",这就是你要处理的内核recipe名称。

2. 用devtool拉取内核源码

直接用devtool的modify命令,把内核源码拉到本地工作区,同时关联对应的recipe:

devtool modify <内核recipe名>

比如查到的是linux-yocto,就跑:

devtool modify linux-yocto

执行完后,devtool会自动下载对应版本的完整内核源码(包括所有补丁和DTS文件),存放在build/workspace/sources/<内核recipe名>目录下。

3. 快速定位DTS文件

进入源码目录后,DTS文件的常规路径是arch/<你的架构>/boot/dts:

  • 如果是ARM架构:
    cd build/workspace/sources/linux-yocto/arch/arm/boot/dts
    
  • 如果是64位ARM(aarch64):
    cd build/workspace/sources/linux-yocto/arch/arm64/boot/dts
    

要是不知道具体文件名,用find命令精准定位:

find . -name "*<你的板卡名称>*" -type f | grep .dts

比如找树莓派4的DTS:

find . -name "*rpi-4*" -type f | grep .dts

4. 修改DTS并验证

直接编辑找到的DTS文件就行。修改完后,先验证编译是否正常:

devtool build <内核recipe名>

编译通过后,要是想把修改永久集成到Yocto构建里,用devtool生成补丁并更新recipe:

devtool update-recipe <内核recipe名>

这一步会把你的修改生成补丁文件,同时更新对应的recipe,之后构建镜像时就会自动应用这个修改。

5. 退出devtool工作区(可选)

如果不需要再修改内核,执行下面的命令退出工作区:

devtool reset <内核recipe名>

内容的提问来源于stack exchange,提问作者user3518295

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:55:17