Menggunakan Cuttlefish dengan ukuran halaman 16 KB di ARM64

Penyiapan ini memerlukan host Linux ARM64. Halaman ini menunjukkan cara membuat dan memulai Cuttlefish dengan dukungan ukuran halaman 16 KB di ARM64. Petunjuk di halaman ini mengasumsikan bahwa paket Cuttlefish telah diinstal di komputer Anda. Untuk mengetahui petunjuk cara menginstalnya, lihat Langkah 1 Menginstal Cuttlefish.

Anda dapat meluncurkan Cuttlefish dengan mendownload artefak yang telah dibuat sebelumnya langsung dari situs Integrasi Berkelanjutan Android atau membangunnya dari AOSP jika Anda perlu mengubah kode sumber.

Luncurkan Cuttlefish dengan mendownload artefak

Buka situs Android Continuous Integration dan masukkan aosp-main-throttled sebagai nama cabang. Klik build terbaru untuk target aosp_cf_arm64_phone_pgagnostic. Sekarang, ikuti petunjuk dari Langkah 5 Menginstal Cuttlefish.

Luncurkan Cuttlefish dengan membuat dari AOSP

Bangun dan luncurkan Cuttlefish dengan target yang tidak bergantung pada halaman:

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

# Build cf agnostic target.
$ source build/envsetup.sh
$ lunch aosp_cf_arm64_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

Memverifikasi ukuran halaman dan booting

Untuk memverifikasi ukuran halaman dan status booting:

  1. Akses shell sebagai root:

    $ adb root
    adbd is already running as root
    $ adb shell
    vsoc_arm64_pgagnostic:/ #
    
  2. Verifikasi ukuran halaman dan status booting:

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

Menggunakan Cuttlefish dengan kernel ukuran halaman 16 KB kustom

Untuk menggunakan kernel kustom, bukan kernel bawaan:

  1. Buat direktori repo untuk kernel umum Android dan sinkronkan direktori:

    $ mkdir common-android14-6.1 && cd common-android14-6.1
    $ repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1
    $ repo sync -c -j$(nproc)
    
  2. Bangun kernel ukuran halaman 16 KB:

    $ tools/bazel run --lto=none //common:kernel_aarch64_16k_dist
    $ tools/bazel run --lto=none //common-modules/virtual-device:virtual_device_aarch64_16k_dist -- \
        --dist_dir=out/android14-6.1/dist
    
  3. Verifikasi bahwa build berhasil dieksekusi:

    # Generated files
    $ ls out/android14-6.1/dist/Image
    $ ls out/android14-6.1/dist/initramfs.img
    

Mulai Cuttlefish dengan kernel ukuran halaman 16 KB kustom

Untuk menggunakan kernel yang baru dibuat di Cuttlefish:

$ launch_cvd -kernel_path ~/common-android14-6.1/out/android14-6.1/dist/Image \
      -initramfs_path ~/common-android14-6.1/out/android14-6.1/dist/initramfs.img \
      --resume=false --userdata_format=ext4 \
      --data_policy=always_create --blank_data_image_mb=8000
      -userdata_format=ext4