【问题标题】:Updating the script present in Poky Source code更新 Poky 源代码中的脚本
【发布时间】:2018-11-30 15:13:09
【问题描述】:

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

【问题讨论】:

    标签: linux embedded-linux yocto


    【解决方案1】:

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

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

      $ 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 个文件

    最后在工作目录中的 initramfs-live-install-efi 配方上运行 do_unpack 任务后,您将在配方工作区中找到您修改后的文件,

        $ 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_fetch 和 do_patch 任务的搜索路径。

    【讨论】:

    • 我按照你说的做了,解压后还有旧文件
    • 我已经添加了我的图层树和 bbappend 文件的内容
    • 一件事,你有没有将带有 bbappend 文件的层添加到 belayers.conf 文件中?
    • bitbake show-layers 显示 bbappend 文件,但解包显示旧脚本.. 需要调查
    • 你有什么调试技术可以调试这个。我的意思是在 Yocto 中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    相关资源
    最近更新 更多