Sử dụng mực nang có kích thước trang 16 KB trên ARM64

Cấu hình thiết lập này yêu cầu máy chủ Linux ARM64. Trang này cho biết cách tạo và khởi động Cuttlefish với tính năng hỗ trợ kích thước trang 16 KB trên ARM64. Hướng dẫn trên trang này giả định rằng bạn đã cài đặt các gói Cuttlefish trên máy. Để biết hướng dẫn cài đặt, hãy xem Bước 1 trong phần Cài đặt Cuttlefish.

Bạn có thể chạy Cuttlefish bằng cách tải các cấu phần phần mềm tạo sẵn trực tiếp từ trang web Tích hợp liên tục của Android hoặc tạo các cấu phần phần mềm đó từ AOSP nếu cần sửa đổi mã nguồn.

Chạy Cuttlefish bằng cách tải các cấu phần phần mềm xuống

Chuyển đến trang web Tích hợp liên tục của Android rồi nhập aosp-main-throttled làm tên nhánh. Nhấp vào bản dựng mới nhất cho mục tiêu aosp_cf_arm64_phone_pgagnostic. Bây giờ, hãy làm theo hướng dẫn trong Bước 5 của bài viết Cài đặt mực ống.

Chạy Cuttlefish bằng cách tạo bản dựng từ AOSP

Tạo và chạy Cuttlefish bằng một mục tiêu không phân biệt trang:

$ 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_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

Xác minh kích thước trang và quá trình khởi động

Cách xác minh kích thước trang và trạng thái khởi động:

  1. Truy cập vào shell dưới dạng thư mục gốc:

    $ adb root
    adbd is already running as root
    $ adb shell
    vsoc_arm64_pgagnostic:/ #
    
  2. Xác minh kích thước trang và trạng thái khởi động:

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

Sử dụng Cuttlefish với nhân có kích thước trang 16 KB tuỳ chỉnh

Cách sử dụng hạt nhân tuỳ chỉnh thay vì hạt nhân tạo sẵn:

  1. Tạo thư mục kho lưu trữ cho hạt nhân Android chung và đồng bộ hoá thư mục:

    $ 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. Xây dựng nhân kích thước trang 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. Xác minh rằng bản dựng được thực thi thành công:

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

Khởi động Cuttlefish bằng nhân có kích thước trang 16 KB tuỳ chỉnh

Cách sử dụng nhân mới tạo trong 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