更新Poky源代码中存在的脚本

时间:2018-06-21 10:12:31

标签: linux embedded-linux yocto

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

我已经修改了该文件,以创建另一个分区来进行软件更新。

我可以将新更新的脚本文件复制到我自己的自定义层的秘诀chemies-core / initrdscripts / files / init-install-efi.sh中。

它将更新init-install-efi.sh。如果不是如何实现这一目标,那么我不想触碰那些笨拙的源代码,因为它是使用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)必须进行哪些更改

1 个答案:

答案 0 :(得分:1)

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

  1. 创建新图层或使用您现有的图层,
  2. 在这一层的
  3. 中为 initramfs-module-install-efi_1.0.bb initramfs-live-install-efi_1创建 bbappend 文件。 0.bb (我发现此食谱基于此脚本),内容为:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    
    buildscript {
    
        repositories {
            google()
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.2'
    
    
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    
    allprojects {
        repositories {
            google()
            jcenter()
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    
  4. 将修改后的脚本文件移动到 files 目录下,您的元层结构应类似于:

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

    4个目录,5个文件

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

$ 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

测试:

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

FILESEXTRAPATHS-用于扩展 do_fetch do_patch 任务的搜索路径。