להגדרה הזו נדרש מארח ARM64
של Linux. בדף הזה נסביר איך ליצור
מפעילים את Cuttlefish עם תמיכה בגודל דף של 16KB ב-ARM64
. ההוראות לגבי
הדף הזה מניח שחבילות Cuttlefish מותקנות במחשב שלכם. עבור
כדי להתקין אותם, ראו שלב 1 של התקנת 'דיונון'.
אפשר להפעיל את Cuttlefish על ידי הורדה של הקובץ המוכן מראש ארטיפקטים ישירות מ-Android Continuous אתר השילוב או ליצור אותם מ-AOSP אם צריך לשנות אותם בקוד המקור.
מפעילים את הדיונון על ידי הורדת פריטי המידע שנוצרו בתהליך הפיתוח (Artifact)
עוברים אל האתר של Android אינטגרציה רציפה (CI)
צריך להזין את aosp-main-throttled
בתור שם ההסתעפות. ללחוץ על ה-build האחרון של
יעד אחד (aosp_cf_arm64_phone_pgagnostic
). עכשיו, פועלים לפי ההוראות בשלב
5 מתוך התקנת דיונון.
השיקו דיונון על ידי בנייה מ-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