Yocto Project 설정
다음 커맨드를 사용하여 Git를 설정을 한다.
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ git config --list
참고
git global 정보(user.name, user.email)를 설정하지 않아도 작업을 진행에는 아무런 영향을 주지 않는다.
Gerrit 코드 검토 도구를 사용하는 경우에 필요한 정보이다.
프로젝트에 사용할 디렉터리를 생성한다. (디렉터리를 생성할 수 있는 어떠한 이름도 사용할 수 있다.)
여기에서는 IMXLXYOCTOUG 문서와 같이 "imx-yocto-bsp"란 디렉터리 이름을 사용한다.
작업을 진행하기 전에 다음 링크를 먼저 읽어 보기를 바란다.
작업 디렉터리를 생성한 후 디렉터리로 이동한다.
$ mkdir imx-yocto-bsp
$ cd imx-yocto-bsp
"repo init" 명령어를 사용하여, Repo를 현재 디렉터리에 설치한다. (Repo에 대한 내용은 링크를 참조한다.)
$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-kirkstone -m imx-5.15.52-2.1.0.xml
옵션 설명
- -u : manifest repository를 가져올 url을 지정
- -m : 저장소에서 특정 manifest file을 선택
- -b : 특정 revision 선택
이 명령어는 "https://github.com/nxp-imx/imx-manifest" URL에서 "imx-linux-kirkstone" 리버전의 "imx-5.15.52-2.1.0.xml" manifest 파일을 선택하여 Repo 설치를 진행한다.
이 명령어 실행 후 Git 저장소가 포함된 .repo 폴더를 생성한다. (.repo 폴더는 숨긴 속성이 있으므로, "-a" 옵션을 주어야 한다.)
"repo sync" 명령어로 업데이트 된 파일들을 다운로드 한다.
$ repo sync
※ .repo 폴더 분석
"repo init" 명령어 실행 후 아래와 같은 목록을 ".repo" 폴더에서 볼 수 있다.
"repo sync" 명령어 실행 후 아래와 같음 목록을 ".repo" 폴더에서 볼 수 있다.
".repo" 폴더에 생성되는 파일과 폴더의 설명은 아래와 같다.
- .repo_config.json : repo에서 빠르게 읽고/처리할 수 있도록, config 파일의 JSON 캐시.
- .repo_fetchtimes.json : 다양한 프로젝트를 동기화할 때, stats(통계)를 기록하기 위해 "repo sync"에서 사용한다.
- copy-link-files.json : ?
- manifest.xml : repo가 사용하는 manifest 이다. "repo init"에서 생성되고 --manifest-name을 사용하여 manifests/에서 다음에 로드할 manifest 파일을 결정한다.
아래 이미지에서 다음 오드할 manifest 파일로 "imx-5.15.52-2.1.0.xml" 파일을 지정하고 있다. - manifests/ : manifest 프로젝트의 git 체크아웃(브랜치 이동). ".git/(manifests/의 하위 폴더)" 상태는 manifest.git bare 체크아웃을 지정(링크되어 있음)한다. --manifest-branch를 통해 repo init 시간에 지정된 git 브랜치를 추적한다.
로컬 브랜치 이름은 원격 추적 브랜치에 관계 없이 항상 기본값이다. 원격 브랜치가 기본값이 아니거나, 완전히 다른 원격 기본값이 있는 경우 혼동하면 안된다.
여기에서 수동 변경은 repo를 혼란스럽게 할 뿐이며, 자동으로 복구되지 않아 새로운 변경 사항이 선택되지 않기 때문에 수행해서는 안되다. - manifests.git/ : manifest 프로젝트의 bare 체크아웃. --manifest-url을 통해 repo init 시간에 지정된 git 저장소를 추적한다.
repo를 혼란스럽게 할 뿐이므로, 여기에서는 수동 변경을 해서는 안된다. 추적 설정을 전환하려면, 새 설정으로 repo init를 다시 실행한다. - project-objects/ : 여러 git 체크 아웃에서 공유하기에 안전한 Git 개체이다. 파일 시스템 레이아웃은 .git 접미사가 있는 manifest(즉, 원격 서버의 경로)의 <project name=... 설정과 일치한다. 그들의 개체를 공유하기 위해 동일한 원격 git repo에서 여러 체크아웃을 허용한다. 예를 들어, foo/bar.git의 서로 다른 브랜치로 foo/bar-master, foo/bar-release 등으로 체크아웃할 수 있다. 각 프로젝트에 대해 여러 트리가 projects/ 아래에 있지만, project-objects/ 아래에는 하나만 있다.
이 레이아웃은 다른 리모트(예: 로컬 미러와 공개 리뷰 서버)와 동기화하는 동시에 내용 중복을 방지할 수 있도록 설계되었다. 그러나, 서로 다른 리모트의 각 서버에서 동일한 경로를 사용하는 경우 문제가 발생할 수 있다. 피하는 것이 최선이다. - poject.list : "repo sync"에서 사용하는 추적 파일로 프로젝트가 추가 또는 제거되고 체크아웃에서 해당 업데이트가 필요한 시점를 확인한다.
- projects/ : manifest에 의해 동기화된 모든 프로젝트의 bare 체크아웃. 파일 시스템 레이아웃은 manifest의 <project path=...설정과 일치한다(즉, repo 클라이언트 소스 트리에서 체크아웃된 위치). 이러한 체크아웃은 .git/ state를 이 아래의 경로에 symlink 한다.
- repo/ : repo 프로젝트의 git 체크아웃. 이렇게 하면 repo가 자동으로 실행되어 최신 릴리스 버전을 얻을 수 있다.
REPO_REV 브랜치를 사용하여 REPO_URL에서 git 저장소를 추적한다. 이들은 --repo-url=<REPO_URL>와 --repo-rev=<REPO_REV> 옵션을 사용하여 repo init 시점에 지정된다.
이 디렉토리에 대한 모든 변경 사항은 일반적으로 업데이트를 확인할 때 repo 자체에서 자동으로 삭제된다. 최신 버전의 repo로 업데이트하려면, repo selfupdate를 대신 사용한다. 이것이 추적하는 git URL/branch를 변경하는 것이라면, 새 설정으로 repo init를 다시 실행한다.
아래의 이미지는 "repo init" 실행 후 "imx-yocto-bsp" 디렉토리 계층의 전체 출력이다.
아래의 이미지는 "repo sync" 실행 후 "imx-yocto-bsp" 계층의 일부 출력이다. (디렉토리 수가 많아서 처음과 마지막 화면만 캡쳐했다.)
"repo init" 실행 후 48개의 디렉토리가 "repo sync" 실행 후 4947개로 디렉토리가 늘어났다.
다음 첨부 파일은 디렉토리와 파일을 모두 출력한 텍스트 파일이다.
bare repository (bare 저장소)
bare 저장소는 일반적으로 .git라는 접미사가 붙은 폴더이다. 이 저장소에는 실제 작업되는 파일, 디렉토리가 저장되는 것이 아니라, 변경 사항, 이력등의 리비전 히스토리의 정보를 저장한다.
공유하기위한 목적으로 bare 저장소를 생성한다. 다수의 작업자나 프로젝트 참가자의 변경 사항을 공통으로 관리하기 위한 저장소로 사용할 수 있다.
'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 개발 환경 구축 - 호스트 개발 환경 (0) | 2022.10.13 |
i.MX 8M Plus 개발 환경 구축 - 8MPLUSLPD4-EVK (0) | 2022.10.13 |
i.MX 8M Plus 개발 환경 구축 (0) | 2022.10.13 |