x86_64에서 16KB 페이지 크기로 Cuttlefish 시뮬레이션

이 설정에는 x86_64 Linux 호스트가 필요합니다. 이 페이지에서는 x86_64에서 16KB 페이지 크기를 지원하는 Cuttlefish를 빌드하고 시작하는 방법을 보여줍니다. 이 페이지의 안내는 Cuttlefish 패키지가 컴퓨터에 설치되어 있다고 가정합니다. 설치 안내는 Cuttlefish 설치의 1단계를 참고하세요.

Android 지속적 통합 사이트에서 직접 사전 빌드된 아티팩트를 다운로드하거나 소스 코드를 수정해야 하는 경우 AOSP에서 빌드하여 Cuttlefish를 실행할 수 있습니다.

커널 구현

x86_64 16KB 페이지 에뮬레이션 지원이 Android 14 6.6 GKI의 page_size_emulation 패치 시리즈에 추가되었습니다. 명령줄에서 page_shift=14를 전달하면 이 에뮬레이션이 사용 설정됩니다. _16k 접미사가 있는 x86_64 타겟(또는 _pgagnostic 접미사가 있는 이전 타겟)은 aosp_cf_x86_64_phone_pgagnostic와 같이 기본적으로 이 옵션을 전달하고 기본적으로 16KB 모드에서 작동합니다.

아티팩트를 다운로드하여 Cuttlefish 실행

Android 지속적 통합 사이트로 이동합니다. 브랜치 이름으로 aosp-main-throttled를 입력합니다. aosp_cf_x86_64_phone_pgagnostic 타겟의 최신 빌드를 클릭합니다. 이제 Ad Exchange 계정의 Cuttlefish 설치 중 5번째.

AOSP에서 빌드하여 Cuttlefish 실행

다음과 같이 페이지에 구속받지 않는 타겟으로 Cuttlefish를 빌드하고 실행하세요.

$ mkdir main && cd main
$ repo init -u https://android.googlesource.com/platform/manifest -b main
$ repo sync -c -j32

# Build cf agnostic target.
$ source build/envsetup.sh
$ lunch aosp_cf_x86_64_phone_pgagnostic-trunk_staging-userdebug
$ m

# Launch cf with a kernel with 16 KB page size support.
$ launch_cvd
...
...
VIRTUAL_DEVICE_DISPLAY_POWER_MODE_CHANGED
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
Generating new secret with slot ID: 4
VIRTUAL_DEVICE_BOOT_STARTED
VIRTUAL_DEVICE_NETWORK_MOBILE_CONNECTED

페이지 크기 및 부팅 확인

페이지 크기 및 부팅 상태를 확인하려면 다음을 실행합니다.

  1. 셸에 루트로 액세스합니다.

    $ adb root
    adbd is already running as root
    $ adb shell
    vsoc_x86_64_pgagnostic:/ #
    
  2. 페이지 크기 및 부팅 상태를 확인합니다.

    vsoc_x86_64_pgagnostic::/ # getconf PAGE_SIZE
    16384
    vsoc_x86_64_pgagnostic::/ # getprop | grep sys.boot.completed
    sys.boot_completed: 1