호스트 개발 환경
호스트 개발 환경의 필요성
호스트 개발 환경의 필요성에 대해 설명이 잘 되어 있는 웹 사이트들이 많이 있어서 아래 링크로 대체하려고 한다.
사전 주의 사항
8MPLUSLPD4-EVK를 위한 호스트 개발 환경 구축에 대해 설명하기 전에, 미리 알아두어야 하는 몇 가지 사항을 설명한다.
사용한 호스트 PC 사양은 위의 이미지와 같다. 주의해야 할 부분은 윈도우 버전과 메모리 용량이다.
Yocto Project 4.0으로 설명을 진행할 예정인데, Windows 10 Pro:WSL2:Ubuntu 20-04로 먼저 작업해 본 결과 지속적인 오류 발생으로 작업 진행이 어려웠다. 결국 오류의 원인도 파악하지 못하고 포기했다. Windows 11 Pro:WSL2:Ubuntu 20-04에서는 몇 가지 조정으로 작업을 완료할 수 있었다.
Window 10 Pro:WSL2:Ubuntu 20-04 환경에서는 복합적인 원인이 있었던 것으로 파악하고 있다.
첫 번째는 동일 버전의 WSL2를 사용했지만, Windows 10 Pro와 Windows 11 Pro에서 차이점이 있는 것 같았다(좀 더 확인이 필요함).
두 번째는 메모리 용량이다. Yocto Project 4.0 (kirkstone)에서 "imx-5.15.52-2.1.0"를 빌드하는 데 일부 패키지 컴파일시에 메모리 사용량이 상당이 증가하는 것을 보았다. 메모리가 증가하면서 빌드 오류가 발생했다. 빌드 스레드 수를 조정하여 문제 없이 빌드를 할 수 있었다.
호스트 개발 환경 구축
우선은 Windows 11 Pro와 WSL2 에서 Ubuntu 20-04가 이미 설치되어 있다는 가정에서 설명을 진행하겠다.
WSL2에서 Ubuntu 20-04를 사용하려면 몇 가지 설정을 해주어야 하는데 링크로 대신하겠다.
요즘 기본으로 SSD를 C:\ 드라이브로 많이 사용하므로, Ubuntu 20-04 설치 위치를 일반 하드 드라이브 위치로 변경하는 것을 권장한다.
VHD 용량은 1TB 이상으로 설정해서 사용하는 것을 권장한다. IMXLXYOCTOUG 문서에는 머신 러닝 컴포넌트 빌드 시 최소 250GB의 여유 공간이 필요하다고 되어 있다.
Ubuntu 20-04를 윈도우 터미널에서 실행한다.
Ubuntu 20-40를 최신 상태로 유지하기 위해 다음 커맨드를 순차적으로 입력하여 처리한다.
$ sudo apt-get update
$ sudo apt-get upgrade
Yocto Project에 필요한 호스트 패키지를 설치한다.
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib
$ sudo apt-get install build-essential chrpath socat cpio python python3 python3-pip python3-pexpect
$ sudo apt-get install xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev
$ sudo apt-get install pylint3 xterm rsync curl zstd lz4 libssl-dev
pzstd와 lz4c는 패키지를 찾을 수 없다고 나온다. zstd와 lz4를 설치하면 되므로 무시한다.
주의 사항
구성 도구는 빌드 머신에 있는 기본 "grep"를 사용한다. 경로에 다른 버전의 "grep"이 있으면 빌드가 실패할 수 있다.
한 가지 해결 방법은 다른 버전을 "grep"이 포함되지 않는 이름으로 변경하는 것이다.
(IMXLXYOCTOUG 문서의 3.2 Host packages 참조)
Repo 유틸리티를 설정한다.
Repo란? (링크)
Repo는 Git 위에서 구축되는 도구이다. Repo는 많은 Git 리포지토리를 관리하고, 개정 제어 시스템(revision control system)에 업로드하며, 개발 워크플로의 일부를 자동화하는 데 도움을 준다. Repo는 Git을 대체하기 위한 것이 아니라, Git로 작업을 쉽게 만드는 것이다. repo 명령은 어느 경로에서나 사용할 수 있는 실행 가능한 Python 스크립트이다.
repo 유틸리티의 설치는 다음 단계를 따른다.
- 홈 디렉터리에 "bin" 폴더를 만든다. 이미 "bin" 폴더가 다음 단계로 넘어간다.
"~"는 홈 디렉터리를 의미한다.
$ mkdir ~/bin
- 위에서 생성한 "bin" 폴더에 repo 파일을 다운 받는다.
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
- 다운 받은 repo 파일의 속성을 모든 사람이 실행할 수 있도록 변경한다.
$ chmod a+x ~/bin/repo
- .bashrc 파일에 다음 라인을 추가하여, "~/bin" 폴더가 PATH 변수에 있도록 한다.
export PATH=~/bin:$PATH
- .bashrc 파일을 다시 로드한다.
$ source ~/.bashrc
※ repo 자동 설치
# Debian/Ubuntu.
$ sudo apt-get install repo
# Gentoo.
$ sudo emerge dev-vcs/repo
※ repo 수동 설치
$ mkdir -p ~/.bin
$ PATH="${HOME}/.bin:${PATH}"
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
$ chmod a+rx ~/.bin/repo
'NXP i.MX SoC Family > Evaluation Kit for the i.MX 8M Plus' 카테고리의 다른 글
i.MX 8M Plus 개발 환경 구축 - 커널 빌드 (0) | 2022.11.01 |
---|---|
i.MX 8M Plus 개발 환경 구축 - 이미지 빌드 (0) | 2022.10.25 |
i.MX 8M Plus 개발 환경 구축 - Yocto Project 설정 (0) | 2022.10.14 |
i.MX 8M Plus 개발 환경 구축 - 8MPLUSLPD4-EVK (0) | 2022.10.13 |
i.MX 8M Plus 개발 환경 구축 (0) | 2022.10.13 |