본문 바로가기

임베디드 컴퓨팅/Khadas VIM3

Docker로 Khadas VIM3 안드로이드 Pie 빌드하기

Docker로 Khadas VIM3 안드로이드 Pie 빌드하기

이전 포스팅에서 프로젝트 구축의 기본 단계를 살펴보았습니다. 이번에는 Docker를 사용하여 Khadas VIM3용 안드로이드 Pie 빌드 환경에서 실제로 소스를 다운로드하여 빌드하는 과정을 정리합니다.

Docker 환경 구성하기

Docker 환경 구성은 이전 포스팅을 참고 합니다.

2023.12.22 - [임베디드 컴퓨팅/Khadas VIM3] - Docker로 Khadas VIM3 안드로이드 Pie 빌드환경 구성하기

 

Docker로 Khadas VIM3 안드로이드 Pie 빌드환경 구성하기

Docker로 Khadas VIM3 안드로이드 Pie 빌드환경 구성하기 Khadas VIM3는 강력한 성능과 다양한 기능을 갖춘 안드로이드 레퍼런스 플랫폼입니다. 이 플랫폼은 개발자들에게 구글 안드로이드 애플리케이션

makepluscode.tistory.com

안드로이드 Repo 초기화하고 소스 다운로드 하기

매니페스트 저장소를 다운로드하기 위해 repo init을 실행하고 repo sync 명령어를 통해서 소스를 다운로드 합니다.

안드로이드 9.0 - 64비트용

  repo init -u https://github.com/khadas/android_manifest.git -b khadas-vim3-p-64bit
  repo sync j4

안드로이드 9.0 - 32비트용

  repo init -u https://github.com/khadas/android_manifest.git -b khadas-vims-pie
  repo sync j4

repo sync 를 이용한 소스 다운로드 작업은 완료하는 데 1시간 이상 걸릴 수 있습니다. 명령어가 중간에 실패할 경우 반복해서 실행해야 할 수도 있습니다. 아래의 스크립트를 이용하면 repo sync 실패해도 자동으로 다시 실행할 수 있습니다.

#!/bin/bash
repo sync -j4
while [ $? = 1 ]; do
    echo "sync fail, retry"
    repo sync -j4
done

git-lfs를 사용하여 대용량 파일 가져오기

repo sync를 실행한 후 device/khadas 디렉토리로 이동하여 git lfs pull을 실행하여 대용량 파일을 가져옵니다. git-lfs는 Git Large File Storage의 약자로, Git에서 큰 파일을 효율적으로 관리하기 위한 확장 도구입니다. 이 단계는 컴파일 오류를 방지하기 위해 중요합니다.

cd device/khadas/
git lfs pull

빌드를 위한 새 브랜치 시작

빌드와 개발 작업을 위한 새 브랜치를 시작합니다:

repo start <BRANCH_NAME> --all

이 단계들을 따르면 Khadas VIM3용 안드로이드 소스 코드를 위한 환경 설정 및 다운로드가 완료됩니다.

안드로이드 빌드하기

첫번째, U-Boot 및 안드로이드 빌드하기: Khadas VIM3 프로젝트

U-Boot는 시스템 부팅을 관리하는 중요한 부트로더입니다. Khadas VIM3 프로젝트에서 U-Boot를 빌드하는 방법은 다음과 같습니다. TARGETkvim3 또는 kvim3l로 설정해야 합니다. 아래와 같이 프로젝트 경로로 이동하여 mk 명령어로 빌드 합니다.

cd PATH_YOUR_PROJECT
cd bootloader/uboot
./mk TARGET

이 단계에서 생성되는 이미지들은 다음과 같습니다.

  • build/u-boot.bin: 온보드 EMMC 스토리지 부팅용.
  • build/u-boot.bin.sd.bin: 외부 TF 카드 부팅용.

두번째, 안드로이드 빌드하기

Khadas VIM3용 안드로이드를 빌드하는 과정은 다음과 같습니다. 아래와 같이 프로젝트 경로로 이동하여 환경변수를 로드하고 빌드합니다.

cd PATH_YOUR_PROJECT
source build/envsetup.sh
lunch kvim3-userdebug
make -j16 otapackage

이 단계에서 생성되는 이미지는 out/target/product/TARGET/update.img 입니다.

세번째, 리눅스 커널 빌드하기

안드로이드 커널을 빌드할 때 (위에서 언급한 방법으로), 리눅스 커널도 동시에 빌드됩니다. 그러나 경우에 따라 리눅스 커널을 별도로 빌드하고 싶을 수 있습니다. 이를 위해 다음 스크립트를 실행할 수 있습니다:

make bootimage

다음 포스팅에서는 빌드된 이미지를 Khadas VIM3 의 eMMC 에 쓰는 방법을 알아보겠습니다.