Yocto

M1 Macbook에서 Yocto 빌드 환경 설정 2부 (네트워킹)

chbae 2023. 5. 23. 08:00
728x90
반응형

Macbook에서 Docker를 이용한 Yocto 빌드 환경 설정을 하는 것에 대해서는 https://yocto.tistory.com/158 에서 소개하였다. 이 글에서는 Yocto 빌드 후 생성된 qemu 이미지를 docker 환경 내에서 실행하여 docker host 환경과 실행된 qemu 내부의 shell 간의 네트워킹을 하는 방법에 대해서 설명하고자 한다.

 

TUN/TAP (https://en.wikipedia.org/wiki/TUN/TAP) 환경을 root유저로 만들어서 실행을 하여 네트워크를 구성하는 것을 권장하지만 docker 환경 내이고 쉽게 테스트를 하기 위해 여기에서는 qemu를 실행할 때 user networking 환경인 slirp를 이용하여 구성한다.

 

 

이전 글에서도 설명했지만 실행은 간단하다. runqemu 명령어의 옵션으로 slirp만 넣어주면 된다. 그렇게 되면 qemu 로 실행한 이미지는 ip가 10.0.2.15로 설정되고 게이트웨이는 10.0.2.2로 설정되어 외부로 인터넷이 되는 환경이 구성된다. 이후 docker 내에 있는 ip로 qemu shell에서 ping을 보내면 바로 접속이 된다. 하지만 반대로 docker host에서 qemu 환경으로는 접속이 바로 안된다. 이부분은 추후에 알아보기로 한다.

 

https://www.yocto.co.kr/189 글에서 PACKAGE_FEED에 대한 것을 설명했는데 아래와 같이 설정하고 빌드한 후 dnf를 qemu shell 내에서 실행하면 docker host에 있는 PACKAGE FEED 웹서버에 접속하여 소스를 받아올 수 있다.

 

PACKAGE_FEED_URIS = "http://172.17.0.2:1234"
EXTRA_IMAGE_FEATURES:append = " package-management"

 

아래 이미지는 필자의 MACBOOK M1 PRO에서 실행한 결과를 캡쳐한 내용이다. 사실 따로 설정한 것은 없고 qemu를 실행할 때 slirp를 옵션으로 넣어주면 알아서 설정이 되고 docker host의 ip로 접속하면 된다.

 

필자는 사실 안되는지 알고 구글링을 한참 하다가 결국 아무것도 안해도 된다는 사실을 알고 좀 허망했다. 하지만 반대로 Docker host에서 qemu shell로 가는 것에 대해서는 좀 더 알아봐야 한다. 이 부분을 알게되면 다시 3부 글로 남길 예정이다.

728x90