2017-02-15 9 views
6

저는 Yocto Project와 함께 작업하며, rootfs에 파일이 포함 된 이유 (또는 레시피)를 결정하는 데 공통적 인 문제가 있습니다. 이것은 빌드 시스템의 환경, 로그 & 메타 데이터에서 잘하면 파생 될 수있는 무언가이다. 이상적으로, 명령 세트는 파일을 소스 (즉, 레시피)에 다시 연결할 수있게합니다.Yocto 프로젝트 레시피가 이미지 루트 파일 시스템의 특정 파일을 채우는 방법을 찾으십시오.

내 일반적인 전략은 메타 데이터 (예 : grep -R filename ../layers/*)에 대한 검색을 수행하고 인터넷에서 파일 이름을 검색하여 가능한 책임있는 요리법의 단서를 찾습니다. 그러나 이것이 항상 효과적인 것은 아닙니다. 대부분의 경우, 파일 이름은 제조법 내에서 명시 적으로 언급되지 않습니다. 또한 여러 레시피로 파일 이름을 제공하는 경우가 많아 궁극적으로 어떤 레시피를 제공했는지 찾을 수있는 추가 작업이 필요합니다. 물론 답을 찾을 수있는 다른 많은 단서가 있습니다. 그럼에도 불구하고이 조사는 빌드 시스템이 답변을 간단하게 해결할 수있는 충분한 정보를 가지고 있어야하는 경우가 종종 힘들다. 각각의 제조법 배치

답변

8

oe-pkgdata-util 스크립트 및 해당 하위 명령 find-path의 정확한 사용 사례입니다. 이 스크립트는 openembedded-core의 일부입니다. 당신은이 라이브러리는 레시피를 glibc가 속한 분명히 알 수

[email protected]:~/oe/build> oe-pkgdata-util find-path /lib/ld-2.24.so 
glibc: /lib/ld-2.24.so 

:

이 예를 참조하십시오.

oe-pkgdata-util에는 패키지 및 요리법에 대한 정보를 볼 수있는 유용한 하위 명령이 있으므로 --help을 확인할 가치가 있습니다.

0

후보 파일은 그래서

할 수 있습니다 CD

$ cd ${TMPDIR}/work/${MULTIMACH_TARGET_SYS} 

각각 $ WORKDIR/이미지에 배치하고 당신이해야 결과에서

$ find . -path '*/image/*/fileYouAreLookingFor' 

을 수행하는 그러한 파일을 배포하는 제조법의 $ {PN}을 추측 할 수 있어야합니다. 당신은 그래픽 프리젠 테이션을 선호하는 경우

$ find . -path '*/image/*/mc' 
./bash-completion/2.4-r0/image/usr/share/bash-completion/completions/mc 
./mc/4.8.18-r0/image/usr/share/mc 
./mc/4.8.18-r0/image/usr/bin/mc 
./mc/4.8.18-r0/image/usr/libexec/mc 
./mc/4.8.18-r0/image/etc/mc 
2

, 토스터 웹 UI는 또한 당신이 표시됩니다 플러스 의존성 정보 :

예를 들어

.