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

为Intel板Yocto生成镜像新增initrd分区需修改哪个位置?

为Yocto镜像新增initrd存储分区的修改位置(针对Intel开发板)

我刚好做过类似的适配,给你梳理下需要调整的几个关键地方,都是Yocto构建系统里和分区、镜像生成强相关的配置:

  • 分区布局定义文件(WKS文件)
    这是最核心的修改点,Intel开发板的Yocto BSP里会有一个.wks后缀的分区配置文件(比如常见的intel-corei7-64.wks,具体文件名取决于你的开发板型号),它用Wic工具的语法定义整个磁盘的分区结构。你需要在这个文件里新增一个专门存储initrd的分区条目,示例代码如下:

    part initrd --source rawcopy --sourceparams="file=${DEPLOY_DIR_IMAGE}/initrd.img" --ondisk sda --size 64 --label INITRD --align 1024
    

    简单解释:--source rawcopy表示直接复制指定文件到分区,--sourceparams指定要复制的initrd镜像路径,--size设置分区大小(这里给64MB足够,你可以根据自己的initrd实际大小调整),--label给分区加个易识别的标识,--align保证分区按1024扇区对齐,符合现代存储设备的性能要求。

  • 镜像构建配置文件
    如果你修改了官方WKS文件,建议把修改后的文件放到自己的自定义BSP层里,然后在对应机器的配置文件(比如conf/machine/intel-corei7-64.conf)里指定使用你修改后的WKS文件:

    WKS_FILE ?= "custom-intel-corei7-64.wks"
    

    另外,还要确保initrd镜像能被正确生成并放到DEPLOY_DIR_IMAGE目录下——如果你的自定义镜像配方里没有默认生成initrd,可能需要在local.conf或者镜像bb文件里添加INITRAMFS_IMAGE = "initramfs-image"这类配置,保证Wic能找到要复制的文件。

  • 启动配置(可选)
    如果你需要让系统从这个新分区加载initrd,还得修改GRUB或UEFI的启动模板文件。比如在BSP层的grub.cfg模板里,把initrd的路径指向新分区,示例:

    initrd (hd0,4)/initrd.img
    

    注意这里的分区编号要和你新增的分区位置对应(MBR分区表通常从1开始计数,GPT则看实际排序)。如果只是单纯存储initrd不需要直接加载,这一步可以跳过。

最后提两个小建议:修改完WKS文件后,可以先用wic create命令单独测试分区表生成是否正常,比如wic create custom-intel-corei7-64 -e core-image-minimal;另外尽量不要直接修改Yocto官方BSP层的文件,把修改放到自己的自定义层里,方便后续版本升级维护。

内容的提问来源于stack exchange,提问作者md.jamal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:51:58