Yocto 홈페이지에서 보게 된 내용.
https://www.yoctoproject.org/yocto-project-at-embedded-open-source-summit-2023/
Yocto Project at Embedded Open-Source Summit 2023 - The Yocto Project
The Yocto Project was present at the Embedded Open-Source Summit, which took place in Prague, Czech Republic, between June 26 and 30, 2023. The Yocto Project Dev Day, the first...
www.yoctoproject.org
발표자의 비디오도 있다.
아래는 슬라이드
https://rossburton.gitlab.io/why-build-slow/
https://rossburton.gitlab.io/why-build-slow/
this is the chart from the workstation earlier, zoomed right out. on the whole it has a very steep gradient which is the result of it building fast, and there are some interesting regions I've marked with arrows you can hopefully just about see. There's a
rossburton.gitlab.io
sstate cache 와 download 폴더는 공유하자.
sstate cache 만 잘 설정 해주어도 빌드 속도가 크게 줄어드는 것을 확인할 수 있다.
아래의 블로그가 설명을 잘 해주었다.
https://bootlin.com/blog/yocto-sharing-the-sstate-cache-and-download-directories/
Yocto: sharing the sstate cache and download directories - Bootlin's blog
When developing projects based on Yocto Project / OpenEmbedded, a quite common practice is to have multiple build environments in different directories: one per product, or one for each development branch, or for other scenarios. Each build environment cou
bootlin.com
내 프로젝트의 빌드를 이해하자
왜 빌드가 같이 되는지 파악하고 정리하자.
$ bitbake -g mypp
$ cat pn-buildlist
mypp
quilt-native
patch-native
binutils-cross-arm
pseudo-native
rpm-native
...
$ grep gcc pn-buildlist
gcc-cross-aarch64
gcc
$ oe-depends-dot task-depends.dot -w -k myppdep.do_populate_sysroot
Because: mypp.do_prepare_recipe_sysroot
mypp.do_prepare_recipe_sysroot -> myppdep.do_populate_sysroot
# GUI
$ bitbake -u taskexp -g mypp
oe-depends-dot 로 일일이 찾기보다 GUI 로 보면 편하다.
-u taskexp 옵션을 활용.

그래도 보기는 힘들다.
pybootchartgui.py 로 buildstats 를 살펴보자.
buildstats 의 내용을 GUI 로 볼 수 있다.
cairo 라이브러리가 필요할 수 있음.
$ sudo apt install libcairo2 python-cairo
...
$ poky/scripts/pybootchartgui/pybootchartgui.py build/tmp/buildstats/20230925162844/

한눈에 범인이 보인다.
막대가 긴 녀석들이 시간을 오래 잡아먹는 원인들이다.

2번 작업의 시작까지 멍 때렸던 이유는 1번 작업이 완료되는데 시간이 오래 걸리기 때문이었다.

뭐 이런 것도 보여준다.
Hash Equivalence
속도 향상을 위해 적용되어 있다고 한다.
https://docs.yoctoproject.org/overview-manual/concepts.html#hash-equivalence
4 Yocto Project Concepts — The Yocto Project ® 5.1.999 documentation
Some tasks are easier to implement when allowed to perform certain operations that are normally reserved for the root user (e.g. do_install, do_package_write*, do_rootfs, and do_image_*). For example, the do_install task benefits from being able to set the
docs.yoctoproject.org
기존에 빌드되어 있는 것들 중 아무런 변동사항이 없는 것들은 스킵한다.
하드웨어 향상
좋은 하드웨어를 사용하자...
'YOCTO' 카테고리의 다른 글
packagegroup 에 조건부 레시피 추가와 삭제 (0) | 2025.01.13 |
---|