להגדרה הזו נדרש מארח ARM64
של Linux. בדף הזה נסביר איך לפתח ולהפעיל
Cuttlefish עם תמיכה בגודל דף של 16KB ב-ARM64
. ההוראות בדף הזה מבוססות על ההנחה שחבילות Cuttlefish מותקנות במחשב שלכם. כדי להתקין אותם, תוכלו להיעזר בשלב 1 במאמר התקנת דיונון.
אם צריך לשנות את קוד המקור, אפשר להפעיל את Cuttlefish על ידי הורדה של הארטיפקטים המוכנים מראש ישירות מהאתר של אינטגרציה רציפה (CI) של Android, או פיתוח שלהם מ-AOSP.
מפעילים את הדיונון על ידי הורדת פריטי המידע שנוצרו בתהליך הפיתוח (Artifact)
עוברים לאתר של Android אינטגרציה רציפה (CI) ומזינים את aosp-main-throttled
בתור שם ההסתעפות. לוחצים על גרסת ה-build האחרונה של היעד aosp_cf_arm64_phone_pgagnostic
. עכשיו פועלים לפי ההוראות בשלב 5 של Install Cuttlefish (התקנת דיונון).
השיקו דיונון על ידי בנייה מ-AOSP
בונים ומפעילים 'דיונון' עם יעד שעבר דפדוף בין דפים:
$ 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
אימות גודל הדף והאתחול
כדי לאמת את גודל הדף ואת סטטוס ההפעלה:
גישה למעטפת ברמה הבסיסית (root):
$ adb root adbd is already running as root $ adb shell vsoc_arm64_pgagnostic:/ #
אימות גודל הדף וסטטוס ההפעלה:
vsoc_arm64_pgagnostic:/ # getconf PAGE_SIZE 16384 vsoc_arm64_pgagnostic:/ # getprop | grep sys.boot.completed sys.boot_completed: 1
משתמשים בדיונון עם ליבה (kernel) מותאמת אישית של דף בגודל 16KB
כדי להשתמש בליבה (kernel) מותאמת אישית, במקום בליבה מובנית מראש:
יוצרים ספריית מאגרים לליבה (kernel) נפוצה של Android ומסנכרנים את הספרייה:
$ 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)
ליבה (kernel) של גודל דף ב-Build 16KB:
$ 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
מוודאים שה-build בוצע בהצלחה:
# Generated files $ ls out/android14-6.1/dist/Image $ ls out/android14-6.1/dist/initramfs.img
מפעילים אימון עם ליבה (kernel) מותאמת אישית של דף בגודל 16KB
כדי להשתמש בליבה (kernel) החדשה שיצרה ב-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