将 /etc/hosts 文件添加到 yocto-base Linux 发行版的秘诀是什么?

将 /etc/hosts 文件添加到 yocto-base Linux 发行版的秘诀是什么?

我正在开发 Yocto 发行版,我需要用/etc/hosts一个新hosts文件替换默认文件,我必须在其中插入一些 DNS 设置。

我在图像中找到的默认文件是:

127.0.0.1   localhost.localdomain       localhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

要修改 Yocto 图像中的文件,/etc/hosts我需要找到将文件添加到图像的配方。有人可以帮我找到这个食谱吗?

谢谢

答案1

我自己找到了问题的解决方案。我不知道这是否是最好的解决方案,但对我来说这已经足够了。

我可以将任务分为两个不同的步骤。

第一步:找到菜谱

我正在与宙斯释放 yocto;在此版本中,我最终找到了安装/etc/hosts在图像中的配方;食谱是:
meta/recipes-core/base-fles/base-files_<recipe_version>.bb

hosts为了找到以前的食谱,我在包含所有 yocto 层的文件夹中查找了该文件。为此,我执行了以下命令:

cd <path/to/yocto/folder>
find ./meta* -name "*hosts*"

上一个命令的输出包含:

...
./meta/recipes-core/base-files/base-files/hosts
...

在食谱中./meta/recipes-core/base-files/base-files_3.0.14.bb我发现了以下作业:

SRC_URI = "file://rotation \
           file://nsswitch.conf \
           file://motd \
=========> file://hosts \
           file://host.conf \
           file://profile \
           file://shells \
           file://fstab \
           file://issue.net \
           file://issue \
           file://share/dot.bashrc \
           file://share/dot.profile \
           file://licenses/GPL-2 \
           "

文件在哪里hosts

第二步:创建base_files_%.bbappend文件

我发现替换文件的方法hosts是添加一个base_files_%.bbappend文件(在 中)并用我的新文件mylayer/recipes-core/base-files替换默认文件。hostshosts

我的文件内容base_files_%.bbappend是:

FILESEXTRAPATHS_prepend := "${THISDIR}/base-files:"

SRC_URI = "file://rotation \
       file://nsswitch.conf \
       file://motd \
       file://hosts \
       file://host.conf \
       file://profile \
       file://shells \
       file://fstab \
       file://issue.net \
       file://issue \
       file://share/dot.bashrc \
       file://share/dot.profile \
       file://licenses/GPL-2 \
"

此外,我已将新hosts文件插入文件夹中 mylayer/recipes-core/base-fles/base-files::

mylayer
   |
   recipes-core
      |
      base-files
         |
         base-files
            |
            hosts

定义中列出的其他文件SRC_URIrotationnsswitch.conf等)继续来自主base-files文件夹:
meta/recipes-core/base-fles/base-files

相关内容