VScode에 Yocto Project Extension 적용하기

Taeyoon Kim·2025년 4월 2일
2

Yocto Project 를 이용하려면, 기본적으로 CLI 를 이용해야 한다. 또한 전체적인 Yocto Project 의 개념과 디렉토리 구조, 이용 방식 등을 이해하고 있어야 하는데, 이는 처음 Yocto Project 를 접하는 사람들에게는 굉장히 시간과 노력이 많이 든다.

Yocto Project 는 VScode 에서 쉽게 Yocto Project 의 기능들을 수행할 수 있도록 Extension 을 만들고 있다.

따라서, 그냥 타겟 보드에서 동작할 코드를 관리하는 사람이 Yocto Project 에 대한 큰 이해 없이도 코드 수정 -> 빌드 -> 테스트 과정을 쉽게 수행할 수 있도록 VScode Extension 을 통해 Yocto Project 와 연동하는 방법을 알아보자.

Yocto Project 는 보통 리눅스 운영체제에서 사용할 수 있기 떄문에, 일반적인 윈도우 컴퓨터에서 이용하려면 가상 머신이나 컨테이너 등으로 리눅스 운영체제를 설치해야 한다.

여기에서는 VMware Workstation 17 에 Ubuntu 20.04 LTS 를 설치한 가상 머신을 이용하는 상황을 가정한다.
또한, 나의 경우 인터넷이 연결되지 않는 컴퓨터에 환경을 마련해야 했기 때문에 이를 고려했을 때의 방법을 서술한다.

먼저, 인터넷이 연결된 컴퓨터로 VScode 홈페이지에서 .deb 파일을 다운로드한다.
다음으로, “Yocto Project BitBake” extension 을 인터넷 연결 없이 설치할 수 있도록 .vsix 파일로 다운로드해야 하는데, VScode 마켓플레이스의 해당 익스텐션의 페이지에는 .vsix 파일로 다운로드하는 링크가 보이지 않는다.

따라서 vsixhub 라는 곳에서 Yocto Project BitBake 익스텐션에 대한 .vsix 파일을 다운로드 하였다.

그 후, 각자 허용된 방식으로 인터넷이 연결되지 않은 컴퓨터에 VScode 를 설치하는 .deb 파일과 Yocto Project BitBake 익스텐션의 .vsix 파일을 옮긴다.

공유폴더 또는 드래그 앤 드롭 기능을 통해 VMware Workstation 의 가상 머신(우분투)로 .deb 파일과 .vsix 파일을 옮긴다.

sudo apt install <.deb 파일의 경로> 명령으로 VScode 를 설치한다.
중간에 나오는 화면에서 yes 를 선택한다.

VScode 를 열고, Ctrl+Shift+P 를 누른 후 vsix 를 검색하여 나타나는 Extensions: Install from VSIX 를 선택하고, 미리 받은 Yocto Project BitBake 익스텐션의 .vsix 파일을 선택한다.

아마, 처음으로 code 를 열면 가장 왼쪽의 Activity Bar 라고 불리는 곳에 Yocto Project 아이콘이 없을 것이다. Ctrl+Shift+P 를 누른 후 devtool 을 검색하면 나타나는 “BitBake: Devtool: Open Workspace“ 를 선택하면, 다른 익스텐션들이 추가로 필요하다고 오른쪽 아래에 뜨게 될텐데, 만약 인터넷이 연결된 컴퓨터를 쓰는 사람이라면 편하게 설치하고, 인터넷이 연결되지 않은 컴퓨터라면 그냥 닫기를 눌러준다. 해당 익스텐션들을 추가로 깔지 않아도 기본적인 동작들은 이용 가능하다. 추가 익스텐션을 설치하라고 나타나는 창들을 닫아주지 않으면 Yocto 익스텐션이 활성화되지 않는다. 꼭 추가 익스텐션 설치가 필요하다고 나타나는 창들을 모두 닫아주자.

위의 절차가 끝났다면, 가장 왼쪽의 Activity bar 에 Yocto 아이콘이 추가되었을 것이다. 그러나 아직 익스텐션을 위한 필수 설정값들이 설정되지 않아서 제대로 된 동작을 하지 않는다.
왼쪽 Activity bar 에서 Extensions 아이콘을 클릭하면 INSTALLED 목록에 Yocto Project BitBake 가 있을 것이다. 그것을 우클릭 한 후 Settings 를 선택한다.
그러면, Yocto 익스텐션에 대한 설정값들을 설정하는 창이 나타날텐데, User 에 전체적으로 적용되도록 하는 게 있고, 현재 open한 Workspace 에 대해서만 적용되도록 하는 게 있는데, 아무래도 Yocto 의 build 디렉토리에서 code 를 열고, 그 디렉토리를 Workspace 로 하여 거기에만 적용하는 것이 나을 것 같다.
필수로 설정해야 하는 것들은
Bitbake: Path To Bitbake Folder
Bitbake: Path To Build Folder
Bitbake: Path To Env Script
Bitbake: Sdk Image
Bitbake: Ssh Target
정도가 있을 것 같다.

왼쪽에 yocto 아이콘이 나타났다면, 해당 아이콘을 클릭한다. 그러면 BITBAKE RECIPES 라는 곳과 DEVTOOL WORKSPACES 라는 곳이 생긴다.
DEVTOOL WORKSPACES 에서 기존의 devtool 의 기능들을 GUI로 쉽게 이용하면 되지만, 새로운 소스코드들을 devtool add 로 workspace 에 추가하는 기능이 아직 없다. 이는 수동으로 따로 터미널에서 해주어야 한다. devtool add 를 직접 해주고 DEVTOOL WORKSPCAES 에서 새로고침 표시 같은 것을 클릭하면 레시피들 목록을 조회하기 시작하고 devtool add 로 추가한 레시피가 추가된다.

devtool add 로 추가한 레시피의 .bb 파일을 수정해야 할 수 있는데, 이 때는 BITBAKE RECIPES 에 Add recipe 를 클릭한 후 본인이 추가한 레시피의 이름을 찾아 선택한다. 그러면 레시피가 BITBAKE RECIPES 에 나타나고 그것을 클릭하여 수정하면 된다.

기본적인 빌드 -> 배포 -> 테스트 과정은
DEVTOOL WORKSPACES 에서 어떤 레시피를 우클릭하여 Bitbake: Devtool: Build recipe 를 클릭하여 빌드
빌드가 완료되면 타겟 머신이 부팅되어 있고 개발 머신과 같은 네트워크로 연결되어 있다는 가정 하에 어떤 레시피를 우클릭하여 BitBake: Devtool: Deploy recipe 를 클릭하여 배포
만약 동작이 원하는 대로 나오지 않으면 어떤 레시피를 좌클릭하여 소스코드 폴더를 열고 코드를 수정한 후 위의 두 단계를 재수행
원하는 동작이 완료되면, devtool undeploy-target 을 수행해야 하지만 익스텐션이 이는 지원하지 않아서 수동으로 해주어야 한다.

profile
Linux, Yocto Project, Embedded System, OS

0개의 댓글