简体   繁体   English

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

[英]Updating the script present in Poky Source code

meta/recipes-core/initrdscripts/files/init-install-efi.sh is used for formatting and creating partitions. meta / recipes-core / initrdscripts / files / init-install-efi.sh用于格式化和创建分区。

I have modified this file to create one more partition for software update. 我已经修改了此文件,以为软件更新创建另一个分区。

Can I copy the newly updated script file in my own custom layer recipes-core/initrdscripts/files/init-install-efi.sh. 我可以将新更新的脚本文件复制到我自己的自定义层的秘诀chemies-core / initrdscripts / files / init-install-efi.sh中。

Will it update the init-install-efi.sh. 它将更新init-install-efi.sh。 If not how to achieve this, I don't want to touch the poky source code, as that is fetched using repo utility 如果不是如何实现这一目标,那么我不想触碰那些笨拙的源代码,因为这是使用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"

After debugging, I found that it is copying the script present in the meta-intel layer and not of my layer. 调试后,我发现它正在复制存在于meta-intel层而不是我的层中的脚本。

This is from the output of bitbake-layers show-appends 这来自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

Can you please tell me what changes are required for my bbappend to work instead of meta-intel 您能否告诉我,我的bbappend(而不是meta-intel)工作需要进行哪些更改?

Yocto provides bbappend mechanism to archive Your case without touching metadata from poky , please follow these few steps to archive this: Yocto提供了bbappend机制来存档您的案件,而不会涉及来自poky的元数据,请按照以下几个步骤进行存档:

  1. create new layer or use Your existing one, 创建新图层或使用您现有的图层,
  2. in this layer create bbappend file for initramfs-module-install-efi_1.0.bb or initramfs-live-install-efi_1.0.bb (I found that this recipes are based on this script), with content: 在这一层中,为initramfs-module-install-efi_1.0.bbinitramfs-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. move modified script file under files directory, Your meta layer structure should look like: 将修改后的脚本文件移动到files目录下,您的meta层结构应类似于:

     $ 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 directories, 5 files 4个目录,5个文件

Then finally after running do_unpack task on initramfs-live-install-efi recipe in working directory You will find Your modified file in recipe workspace, 然后,最后在工作目录中的initramfs-live-install-efi配方上运行do_unpack任务之后,您将在配方工作区中找到修改后的文件,

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

Test: 测试:

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

    echo "hello"

FILESEXTRAPATHS - is used to extend search path for do_fetch and do_patch tasks. FILESEXTRAPATHS-用于扩展do_fetchdo_patch任务的搜索路径。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM