סימולציה של Cuttlefish עם גודל דף של 16KB ב-x86_64

כדי להגדיר את זה צריך מארח Linux x86_64. בדף הזה מוסבר איך ליצור ולהפעיל את Cuttlefish עם תמיכה בגודל דף של 16 KB ב-x86_64. ההוראות בדף הזה מניחות שחבילות Cuttlefish מותקנות במחשב שלכם. הוראות להתקנה מופיעות בשלב 1 של התקנת Cuttlefish.

אפשר להפעיל את Cuttlefish על ידי הורדת הארטיפקטים שנבנו מראש ישירות מהאתר של Android Continuous Integration, או על ידי בניית הארטיפקטים מ-AOSP אם צריך לשנות את קוד המקור.

הטמעה של ליבה

נוספה תמיכה בהדמיה של דפים בגודל 16KB ב-Android 14 6.6 GKI בסדרת התיקונים page_size_emulation.x86_64 העברת page_shift=14 בשורת הפקודה מפעילה את האמולציה הזו. יעדים של x86_64 עם הסיומת _16k (או יעדים ישנים עם הסיומת _pgagnostic), כמו aosp_cf_x86_64_phone_pgagnostic, מעבירים את האפשרות הזו כברירת מחדל ופועלים במצב 16 KB כברירת מחדל.

מורידים את פריטי המידע שנוצרים בתהליך פיתוח (Artifact) כדי להפעיל את Cuttlefish

עוברים אל אתר האינטגרציה הרציפה של Android ומזינים aosp-main-throttled כשם הענף. לוחצים על ה-build האחרון של aosp_cf_x86_64_only_phone_pgagnostic היעד. עכשיו פועלים לפי ההוראות משלב 5 של התקנת Cuttlefish.

הפעלת Cuttlefish על ידי בנייה מ-AOSP

בנייה והפעלה של Cuttlefish עם יעד שמסתגל לגודל הדף:

$ mkdir android-latest-release && cd android-latest-release
$ 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_x86_64_only_phone_pgagnostic-aosp_current-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. גישה למעטפת כ-root:

    $ 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