【问题标题】:Yocto recipe to update /etc/fstabYocto 配方更新 /etc/fstab
【发布时间】:2022-02-14 19:58:59
【问题描述】:

在使用 Yocto 构建我的 Linux 发行版时,我无法更新 /etc/fstab。我对 Yocto 还很陌生,所以也许我已经疯了。

我最近的尝试是添加一个名为 base-files_%.bbappend 的配方。

mount_smackfs () {
    cat >> ${IMAGE_ROOTFS}/etc/fstab <<EOF

# Generated from smack-userspace
smackfs /smack smackfs smackfsdefault=* 0 0 

EOF
} 

ROOTFS_POSTPROCESS_COMMAND += "mount_smackfs; "

但是,发行版上的输出 /etc/fstab 没有改变。所以问题是:

  1. 有没有更好的方法来做到这一点?
  2. 如何判断我的 .bbappend 文件是否实际执行?

【问题讨论】:

  • 一个有用的东西 - 你可以添加一个语句: bbplain "Am here now..." 在配方中的 shell 函数中;它在“烹饪”时被回显到标准输出。见:stackoverflow.com/a/59027178/779269

标签: yocto


【解决方案1】:

ROOTFS_POSTPROCESS_COMMAND 在图像配方中处理,不在包配方中。你有两种可能。

  • base-files_%.bbappend 中更新您的 fstab:

    do_install_append () {
        cat >> ${D}${sysconfdir}/fstab <<EOF
    
    # Generated from smack-userspace
    smackfs /smack smackfs smackfsdefault=* 0 0 
    
    EOF
    }
    
  • 更新图像配方中的 fstab:在这种情况下,您只需附加 您在图片的食谱中(在您的帖子中)上面写的内容。

【讨论】:

  • 如果修改依赖于.ext-image怎么办?假设您想使用 UUID 挂载分区?
【解决方案2】:

使用

创建一个新层

yocto-layer 创建 mylayer

在其中创建一个名为 recipes-core 的文件夹,并在该文件夹内 创建另一个名为 base-files 的文件夹。

在此文件夹中创建一个名为 base-files_%.bbappend 的文件,其内容如下:

FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"

创建另一个名为 base-files 的文件夹,您应该在其中放置一个名为 fstab 的文件,其中包含您的配置。

确保在 bblayers.conf 中启用您的新层,它会正常工作,无需创建任何附加配方或东西。 我遇到了这个问题,今天用这个方法解决了。

【讨论】:

    【解决方案3】:

    给定以下目录结构:

    .
    └── recipes-core/
        └── base-files/
            ├── base-files/
            │   └── fstab
            └── base-files_%.bbappend
    

    以及相关配方base_files_%.bbappend的以下内容

    DESCRIPTION = "Allows to customize the fstab"
    PR = "r0"
    
    FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
    
    SRC_URI += " \
       file://fstab \
    "
    
    do_install_append(){
       install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/
    }
    

    您可以在该文件中指定所需的 fstab,并将其包含在您自己的自定义层中。编译完成后,您将在目标系统上拥有自定义 fstab。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-20
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      相关资源
      最近更新 更多