This setup requires an x86_64
Linux host. This page shows how to build and
start Cuttlefish with 16 KB page size support on x86_64
. The instructions on
this page assume that Cuttlefish packages are installed in your machine. For
instructions to install them, see Step 1 of Install Cuttlefish.
You can launch Cuttlefish by either downloading the prebuilt artifacts directly from the Android Continuous Integration site or build them from AOSP if you need to modify the source code.
Kernel implementation
Support for emulating x86_64
16 KB pages is added in the Android 14 6.6
GKI in the
page_size_emulation
patch series.
Passing page_shift=14
on the command-line enables this emulation.
x86_64
targets with the _16k
suffix (or old targets with the _pgagnostic
suffix), such as aosp_cf_x86_64_phone_pgagnostic
, pass this option by default
and work in 16 KB mode by default.
Launch Cuttlefish by downloading the artifacts
Navigate to Android Continuous Integration site and
enter aosp-main-throttled
as the branch name. Click the latest build for the
aosp_cf_x86_64_phone_pgagnostic
target. Now, follow the instructions from Step
5 of Install Cuttlefish.
Launch Cuttlefish by building from AOSP
Build and launch Cuttlefish with a page-agnostic target:
$ 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
Verify page size and boot
To verify page size and boot status:
Access the shell as root:
$ adb root adbd is already running as root $ adb shell vsoc_x86_64_pgagnostic:/ #
Verify page size and boot status:
vsoc_x86_64_pgagnostic::/ # getconf PAGE_SIZE 16384 vsoc_x86_64_pgagnostic::/ # getprop | grep sys.boot.completed sys.boot_completed: 1