VMware workstation 에서 공유폴더로 Yocto 빌드 수행하기

Taeyoon Kim·2025년 4월 2일
0

VMware workstation 은 가상머신과 호스트 사이에 공유폴더 기능을 제공한다.
공유폴더 기능을 활성화 하는 방법은 쉽게 찾을 수 있으니 따로 찾아보기 바란다.

공유폴더를 추가하게 되면, 우분투를 설치한 경우에 /mnt/hgfs/ 아래에 해당 폴더가 추가된다. (hgfs 는 Host Guest File System 의 두문자어 인 듯하다)
예를 들어, SHARE 라는 이름으로 공유폴더를 추가하면
/mnt/hgfs/SHARE/ 라는 폴더가 추가되며 파일을 공유할 수 있다.

그리하여, /mnt/hgfs/SHARE 아래에 적절한 소스코드와 Makefile을 갖추어 놓고, devtool add my-app /mnt/hgfs/SHARE 명령으로 Yocto 빌드 환경에 추가하고자 하였다.

근데, 다음과 같은 에러가 발생하였다.
File: …/poky/meta/classes/externalsrc.bbclass

function: externalsrc_configure_prefunc


Exception: OSError: [Errno 95] Operation not supported: ‘…/work/aarch64-…/my-app/1.0-r0’ -> ‘/mnt/hgfs/SHARE/oe-workdir’

처음에는 /mnt 아래에 있으니 권한이 문제인가 했는데, SHARE 폴더는 권한이 777이었다.
에러 메시지에서 볼 수 있는 oe-workdir 은 해당 레시피의 work dir 을 가리키는 소프트링크 파일을 추가하는 것인데, externalsrc 클래스를 이용하면 이를 외부 소스폴더로 지정할 폴더에 만들어 주는 것 같다.
아무래도 공유 폴더는 윈도우의 파일 시스템으로 되어 있기 때문에 리눅스의 심볼릭 링크를 만들 수 없는 것으로 보였다.

poky/meta 아래의 externalsrc.bbclass 파일을 살펴 보면, externalsrc_configure_prefunc 라는 함수가 이 심볼릭 링크 파일들을 생성하는 역할을 수행하며, 같은 파일 내의 python 익명 함수(Bitbake 문법 상의 파이썬 익명 함수) 내에 d.prependVarFlag(‘do_configure’, ‘prefuncs’, “externalsrc_configure_prefunc ”) 라는 줄이 이 함수를 언제나 실행되도록 하는 부분이었다. 따라서 해당 부분의 맨 앞부분에 # 을 추가하여 주석 처리만 해 주니 devtool add my-app /mnt/hgfs/SHARE 명령이 잘 수행되었다.

profile
Linux, Yocto Project, Embedded System, OS

0개의 댓글