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

문제에 대한 해결책을 직접 찾았습니다. 이것이 최선의 해결책인지는 모르겠지만 나에게는 충분합니다.

작업을 두 가지 단계로 나눌 수 있습니다.

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_URI( rotation등 )은 계속해서 기본 폴더 nsswitch.conf인 에서 나옵니다 .base-files
meta/recipes-core/base-fles/base-files

관련 정보