Gunakan Cuttlefish dengan ukuran halaman 16 /> 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 diinstal di komputer Anda. Untuk mengetahui petunjuk menginstalnya, lihat Langkah 1 dari Menginstal Cuttlefish.

Anda dapat meluncurkan sotong dengan mendownload artefak bawaan langsung dari situs Continuous Integration Android atau mem-build-nya dari AOSP jika Anda perlu mengubah kode sumber.

Luncurkan sotong dengan mendownload artefak

Buka situs Android Continuous Integration, lalu 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.

Meluncurkan sotong dengan membangun dari AOSP

Bangun dan luncurkan Cuttlefish dengan target agnostik halaman:

$ 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_arm64_phone_pgagnostic-trunk-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. Memverifikasi ukuran halaman dan status booting:

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

Gunakan Cuttlefish dengan kernel ukuran halaman 16 KB kustom

Untuk menggunakan kernel kustom, sebagai ganti kernel bawaan:

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

    $ 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. Pastikan 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