이 페이지에서는 Cuttlefish에서 AAOS SDV를 다운로드, 빌드, 실행하는 방법을 설명합니다.
Repo 클라이언트 초기화
클라이언트를 설정하여 Android 소스 저장소에 액세스하려면 다음을 실행하세요.
sdv와 같은 작업 디렉터리를 만들고 이동합니다.mkdir WORKING_DIRECTORYcd WORKING_DIRECTORY소스 제어를 위해 다음과 같이 작업 디렉터리를 초기화합니다.
이 예에서는
26Q2-fs-release브랜치를 사용합니다.RELEASE=26Q2-fs-releaserepo init -u https://partner-android.googlesource.com/platform/vendor/pdk/generic/fs/manifest/ -b $RELEASE-u옵션은 필수이며 매니페스트 파일을 식별합니다. 이 파일은 Android 소스의 다양한 Git 프로젝트가 작업 디렉터리 내에 배치되는 위치를 지정하는 XML 파일입니다. 이 예에서는 매니페스트 파일의 이름이 지정되지 않았으므로 명령어에서는 기본 매니페스트 파일(default.xml)을 사용합니다.-b옵션은 초기화하는 브랜치를 식별합니다.출력에는 다음 메시지가 포함됩니다.
repo has been initialized in path_to_working_directory
AAOS SDV 소스 다운로드
다음 명령어를 실행하여 Android 소스 트리를 작업 디렉터리로 다운로드하세요.
repo sync -c -j8-c 인수는 서버에서 현재 매니페스트 브랜치를 가져오도록 Repo에 지시합니다. -j8 명령어는 신속한 완료를 위해 스레드 간에 동기화를 분할합니다.
빌드 환경 설정
작업 디렉터리 내에서 envsetup.sh 스크립트를 제공하여 빌드 환경을 설정합니다.
source build/envsetup.sh이 스크립트는 이 페이지에서 사용된 명령어를 비롯하여 Android 소스 코드를 사용할 수 있도록 하는 여러 명령어를 가져옵니다. 스크립트의 소스를 보려면 platform/build/envsetup.sh를 참고하세요. 기본 제공 도움말을 보려면 hmm을 입력하세요.
타겟 선택
SDV를 빌드하기 전에 빌드할 타겟 을 식별합니다. 빌드 타겟을 식별하려면 lunch 명령어 뒤에 빌드하려는 타겟을 나타내는 문자열을 사용합니다. 예를 들어 다음 명령어를 사용하여 Cuttlefish 에뮬레이터의 타겟을 빌드합니다.
lunch sdv_core_cf-trunk_staging-userdebug이 명령어는 빌드할 제품, 출시 구성, 변형을 선택하고 선택사항을 환경에 저장합니다.
SDV의 lunch 타겟은 devices/google/sdv 디렉터리에 있는 별도의 Git 프로젝트에서 제공됩니다. 사용 가능한 타겟에 관한 자세한 설명은 device/google/sdv/README.md를 참고하세요. 주요 Cuttlefish (cf) 타겟은 다음과 같습니다.
sdv_core_cf-trunk_staging-userdebug- Cuttlefish(cf)에서 실행되는 AAOS SDV Core (sdv_core)의 이미지를 빌드합니다.sdv_media_cf-trunk_staging-userdebug- virtIO 가상화 미디어 API (sdv_media)가 포함된 AAOS SDV Core의 이미지를 빌드합니다.sdv_media_har_cf-trunk_staging-userdebug- 고가용성 렌더러 (HAR)를 포함하도록 AAOS SDV 미디어 (sdv_media_cf)lunch타겟을 확장하는 이미지를 빌드합니다. HAR은 부팅 시 자동으로 실행됩니다.sdv_ivi_cf-trunk_staging-userdebug- SDV 게이트웨이 및 자바 샘플 앱이 포함된 차량 내 인포테인먼트 (IVI) 이미지를 빌드합니다.sdv_ivi_cf_ds-trunk_staging-userdebug- AAOS SDV IVI 타겟 (sdv_ivi_cf)을 확장하고 디스플레이 안전의 DriverUI 및 Instrument Cluster 구현을 포함하는 이미지를 빌드합니다.
AAOS SDV 빌드
다음 명령어를 실행하여 타겟을 빌드하세요. 워크스테이션의 사양에 따라 첫 번째 빌드는 30~60분이 걸립니다. 후속 빌드는 시간이 훨씬 적게 걸립니다.
m빌드의 출력은 $OUT_DIR에 표시됩니다. 다른 타겟을 빌드하면 각 타겟 빌드가 $OUT_DIR에 표시됩니다.
Cuttlefish를 사용하여 빌드 테스트
AAOS SDV를 빌드한 후 Cuttlefish를 사용하여 빌드를 테스트합니다.
빌드로 Cuttlefish를 시작하려면 다음을 실행하세요.
cvd createCuttlefish는 빌드된 타겟(
sdv_core_cf-trunk_staging-userdebug)을 사용하여 실행됩니다. Cuttlefish가 부팅되면 다음 메시지가 표시됩니다.VIRTUAL_DEVICE_BOOT_COMPLETED Virtual device booted successfullyadb를 실행하여 Cuttlefish에 연결합니다.adb devices를 실행하여 빌드가 실행 중인지 확인합니다. 다음과 유사한 결과가 표시됩니다.List of devices attached 0.0.0.0:6520 devicecvd stop을 실행하여 기기를 종료합니다.
다른 빌드로 Cuttlefish의 여러 인스턴스를 실행하려면 Cuttlefish: 다중 테넌시를 참고하세요.
문제 해결
이 섹션에서는 AAOS SDV의 다운로드, 빌드 또는 실행 중에 발생할 수 있는 오류를 해결하는 방법을 설명합니다.
RBE 오류
원격 빌드 실행 (RBE) 오류가 발생하면 .bashrc 또는 .zshrc에서 USE_RBE 및 ENABLE_RBE_BOOTSTRAP의 정의를 삭제합니다.
cvd: VM 관리자 crosvm이 이 머신에서 지원되지 않음
Cuttlefish에서 VM 관리자 crosvm이 머신에서 지원되지 않는다고 보고하는 경우 다음 명령어를 실행하여 Cuttlefish를 설치합니다.
sudo apt install cuttlefish-commoncvd를 찾을 수 없음
cvd not found 오류가 표시되면 다음 단계를 따르세요.
Cuttlefish 비정상 종료 루프
Cuttlefish가 비정상 종료 루프에 들어가면 다음 단계를 따르세요.
- 모든 Cuttlefish 인스턴스를 중지하려면
cvd stop을 실행합니다. - Cuttlefish를 사용하여 빌드를 다시 테스트합니다.