要更新的 Yocto 食谱 /etc/fstab
Yocto recipe to update /etc/fstab
我在使用 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 没有改变。所以问题是:
- 有更好的方法吗?
- 如何判断我的 .bbappend 文件是否已实际执行?
ROOTFS_POSTPROCESS_COMMAND
在图像配方中处理,不在包配方中。你有2种可能。
在 base-files_%.bbappend
中更新您的 fstab:
do_install_append () {
cat >> ${D}${sysconfdir}/fstab <<EOF
# Generated from smack-userspace
smackfs /smack smackfs smackfsdefault=* 0 0
EOF
}
更新图像配方中的 fstab:在这种情况下,您只需追加
你上面写的(在你的 post 中)在图片的食谱中。
使用
创建一个新图层
yocto-layer create mylayer
在其中,创建一个名为 recipes-core 的文件夹,并在此文件夹内
创建另一个名为 base-files 的文件夹。
在此文件夹中创建一个名为 base-files_%.bbappend 的文件,内容如下:
FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
创建另一个名为 base-files 的文件夹,您应该在其中放置一个名为 fstab 的文件,其中包含您的配置。
确保在 bblayers.conf 中启用您的新层,它会正常工作,无需创建任何附加配方或东西。
我遇到了这个问题,今天用这个方法解决了。
给定以下目录结构:
.
└── 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。
我在使用 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 没有改变。所以问题是:
- 有更好的方法吗?
- 如何判断我的 .bbappend 文件是否已实际执行?
ROOTFS_POSTPROCESS_COMMAND
在图像配方中处理,不在包配方中。你有2种可能。
在
base-files_%.bbappend
中更新您的 fstab:do_install_append () { cat >> ${D}${sysconfdir}/fstab <<EOF # Generated from smack-userspace smackfs /smack smackfs smackfsdefault=* 0 0 EOF }
更新图像配方中的 fstab:在这种情况下,您只需追加 你上面写的(在你的 post 中)在图片的食谱中。
使用
创建一个新图层yocto-layer create mylayer
在其中,创建一个名为 recipes-core 的文件夹,并在此文件夹内 创建另一个名为 base-files 的文件夹。
在此文件夹中创建一个名为 base-files_%.bbappend 的文件,内容如下:
FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
创建另一个名为 base-files 的文件夹,您应该在其中放置一个名为 fstab 的文件,其中包含您的配置。
确保在 bblayers.conf 中启用您的新层,它会正常工作,无需创建任何附加配方或东西。 我遇到了这个问题,今天用这个方法解决了。
给定以下目录结构:
.
└── 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。