Yocto配方更新/ etc/fstab

sla*_*pon 2 yocto

/etc/fstab使用Yocto构建它时,我无法更新我的Linux发行版.我对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; "
Run Code Online (Sandbox Code Playgroud)

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

  1. 有一个更好的方法吗?
  2. 如何判断我的.bbappend文件是否实际执行?

SHE*_*RAN 9

使用创建一个新层

yocto-layer 创建 mylayer

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

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

FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
Run Code Online (Sandbox Code Playgroud)

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

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


joh*_*ieu 7

ROOTFS_POSTPROCESS_COMMAND在图像配方中处理,而不是在包装配方中处理.你有两种可能性.

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

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


afi*_*nte 5

给定以下目录结构:

\n
.\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 recipes-core/\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 base-files/\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 base-files/\n        \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 fstab\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 base-files_%.bbappend\n
Run Code Online (Sandbox Code Playgroud)\n

base-files_%.bbappend以及相关食谱的以下内容

\n
DESCRIPTION = "Allows to customize the fstab"\nPR = "r0"\n\nFILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n\nSRC_URI += " \\\n   file://fstab \\\n"\n\ndo_install_append(){\n   install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/\n}\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n