更新 Poky 源代码中的脚本

Updating the script present in Poky Source code

meta/recipes-core/initrdscripts/files/init-install-efi.sh用于格式化和创建分区。

我修改了这个文件,为软件更新创建了一个分区。

我可以在自己的自定义图层中复制新更新的脚本文件吗recipes-core/initrdscripts/files/init-install-efi.sh.

它会更新 init-install-efi.sh。如果不是如何实现这一点,我不想触摸 poky 源代码,因为它是使用 repo 实用程序

获取的
$ tree meta-ncr/
meta-ncr/
├── conf
│   ├── bblayers.conf
│   ├── layer.conf
│   └── machine
│       └── panther2.conf
├── recipes-core
│   └── initrdscripts
│       ├── files
│       │   └── init-install-efi.sh
│       └── initramfs-live-install-efi_1.0.bbappend
└── scripts
    └── setup-environment


$ cat meta-ncr/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bbappend 
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"  
SRC_URI = "file://init-install-efi.sh"

调试后,我发现它复制的是meta-intel层中的脚本,而不是我层中的脚本。

这是bitbake-layers show-appends

的输出
initramfs-live-install-efi_1.0.bb:
  /home/jamal/repo_test/sources/meta-intel/recipes-core/initrdscripts/initramfs-live-install-efi_%.bbappend
  /home/jamal/repo_test/sources/meta-ncr/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bbappend

你能告诉我需要做哪些更改才能让我的 bbappend 代替 meta-intel 工作吗

Yocto 提供 bbappend 机制来存档您的案例而不涉及 poky 中的元数据,请按照以下几个步骤进行存档:

  1. 创建新图层或使用您现有的图层,
  2. 在这一层为initramfs-module-install-efi_1.0.bb或[创建bbappend文件=29=]initramfs-live-install-efi_1.0.bb(我发现这个菜谱是基于这个脚本的),内容:

    $ cat meta-test/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bbappend
    FILESEXTRAPATHS_prepend := "${THISDIR}/files:"  
    SRC_URI = "file://init-install-efi.sh"
    
  3. 将修改后的脚本文件移动到 files 目录下,您的元层结构应如下所示:

    $ tree meta-test/
    meta-test/
    ├── conf
    │   └── layer.conf
    ├── COPYING.MIT
    ├── README
    └── recipes-core
        └── initrdscripts
            ├── files
            │   └── init-install-efi.sh
            └── initramfs-live-install-efi_1.0.bbappend
    

    4个目录,5个文件

然后终于在 运行 do_unpack 任务 initramfs-live-install-efi 配方上工作目录你会在配方工作区找到你修改的文件,

    $ bitbake -c unpack initramfs-live-install-efi

测试:

    $ cat tmp/work/i586-poky-linux/initramfs-live-install-efi/1.0-r1/init-install-efi.sh 
    #!/bin/bash

    echo "hello"

FILESEXTRAPATHS - 用于扩展 do_fetchdo_patch 任务的搜索路径.