yoctoベースのLinuxディストリビューションに/etc/hostsファイルを追加する秘訣は何ですか?

yoctoベースのLinuxディストリビューションに/etc/hostsファイルを追加する秘訣は何ですか?

私はYoctoディストリビューションを開発しており、デフォルトのファイルをいくつかのDNS設定を挿入する必要がある/etc/hosts新しいファイルに置き換える必要があります。hosts

イメージで見つかった基本ファイルは次のとおりです。

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

問題に対する解決策を直接見つけました。これが最善の解決策であるかどうかはわかりませんが、私にとっては十分です。

タスクを2つのステップに分けることができます。

ステップ1:レシピを探す

私は一緒に働いていますゼウスこのバージョンでは、最終的にイメージ/etc/hostsにインストールされたレシピを見つけました。
meta/recipes-core/base-fles/base-files_<recipe_version>.bb

hosts以前のレシピを見つけるために、すべての欲望レイヤーを含むフォルダ内のファイルを見つけました。これを行うには、次のコマンドを実行しました。

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

ステップ2: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_URIrotationなど)は、引き続きデフォルトのフォルダーnsswitch.confから来ます。base-files
meta/recipes-core/base-fles/base-files

関連情報