在/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没有改变.所以问题是:
使用创建一个新层
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中启用新层,它将正常工作,无需创建任何附加配方或东西。我今天遇到了这个问题并使用此方法解决了它。
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:在这种情况下,您只需在图像的配方中附加您在上面(在帖子中)写的内容.
给定以下目录结构:
\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\nRun Code Online (Sandbox Code Playgroud)\nbase-files_%.bbappend以及相关食谱的以下内容
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}\nRun Code Online (Sandbox Code Playgroud)\n您可以在该文件中指定所需的 fstab,并将其包含在您自己的自定义层中。编译完成后,您将在目标系统上拥有自定义 fstab。
\n| 归档时间: |
|
| 查看次数: |
3868 次 |
| 最近记录: |