منصة مرجعية

من خلال سمك السلمون المرقط منتج جديد اسمه، الروبوت السيارات (AAOS) تقدم الآن الدعم لنشر بوصفها آلة الظاهري الضيف (VM) في بيئات متوافقة مع VirtIO المعيار. trout ويستند على الحبار منصة المرجعية الافتراضية، وتتوفر مثل trout تكوين الجهاز. ويمكن الاطلاع على شفرة المصدر مساحة المستخدم في device/google/trout . يوضح الجدول أدناه التكنولوجيا المستخدمة لالمحاكاة الافتراضية كل من النظم الفرعية في trout .

وقد وضعت فريق منصة AAOS والتحقق الأولي الإفراج منصة إشارة 0.9 على كوالكوم SA8155P شرائح باستخدام خادم Lantronix الأجهزة إشارة إلى جانب COQOS مراقب أجهزة افتراضية SDK من OpenSynergy.
ميزة تقنية
التحكم في الصوت HAL vsock/gRPC
صوت HAL virtio-snd
Dumpstate HAL vsock/gRPC
نظام الرؤية الممتد (EVS) virtio-video and vendor extensions
وضع المرآب vsock/gRPC
الرسومات virtio-gpu
مستشعر HAL 2.0 virtio-scmi and IIO
إدخال شاشة تعمل باللمس virtio-input
السيارة HAL vsock/gRPC

تمديد trout

trout يمكن استخدامها كنقطة بداية لخلق داخل السيارة توفير الدعم الإعلامي (IVI) أهداف الروبوت جديدة. تم تصميم البنية التحتية للبناء بحيث يتم توسيعها وتخصيصها. على سبيل المثال:

# Inherit trout-arm64 default values and settings
$(call inherit-product, device/google/trout/aosp_trout_arm64.mk)

# Customize HALs as needed LOCAL_VHAL_PRODUCT_PACKAGE := vendor.oem.vhal@2.0-service LOCAL_AUDIO_PRODUCT_PACKAGE := vendor.oem.audio@6.0-impl
# Configure SELinux policy BOARD_SEPOLICY_DIRS += device/oem/car/sepolicy/vendor/oem
# Configure properties LOCAL_DUMPSTATE_PROPERTIES := \ ro.vendor.dumpstate.server.cid=22 \ ro.vendor.dumpstate.server.port=406 \ ro.vendor.helpersystem.log_loc=/data/dumpstate
[... and more as needed ...]

يمكن استبدال العديد من HALs لنظام التشغيل Android بشكل فردي بتطبيقات مخصصة ، أو الاحتفاظ بالتطبيقات الافتراضية ولكن تم تعديل معلمات تكوين معينة لإنشاء اتصال مناسب بين الأجهزة الافتراضية في البيئة المستهدفة. ويتم تنفيذ هذه طبقة تجريد (بما في ذلك HAL السيارات، التحكم في الصوت HAL، وDumpstate HAL) عن طريق واجهة gRPC مدعومة vsock العلاقة بين الضيف AAOS ونظام مضيف توفير تنفيذ الميزة الأساسية. يجب أن يتم تكوين هذه عن طريق تزويد المناسبة vsock معلمات الاتصال من الخصائص البائع.

بناء trout

تجميع مساحة المستخدمين

لتجميع مساحة المستخدمين:

  1. تحميل شجرة المصدر الروبوت:
    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. بناء بيئة:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

بناء النواة

بالنسبة لإصدار النظام الأساسي المرجعي الأولي 0.9 ، نظرًا لقيود تكوين برنامج Hypervisor ، لا يمكن تخصيص Android kernel. سيتم توفير نواة تم إنشاؤها مسبقًا كجزء من إصدار OpenSynergy hypervisor. ويستند النواة على الروبوت النواة المشتركة فرع common-android11-5.4 مع بعض التعديلات لدمج أحدث برامج التشغيل VirtIO. لأغراض إعلامية ، يتم توفير كود مصدر kernel المقابل في هذه المواقع:

الامتثال

الخطة هي تحقيق توافق بنسبة 100٪ في إصدار لاحق.

القيود والعناصر غير معتمد في trout

  • بلوتوث.
  • نظام الملاحة العالمي عبر الأقمار الصناعية (GNSS).
  • LaunchCVD. trout لا التمهيد حاليا تحت crosvm .
  • الرسومات. في هذا الإصدار، الجهاز virgl VirtIO GPU يعمل فقط عندما dmabuf . معطل. تعرض واجهة المستخدم ألوانًا معكوسة للأحمر والأزرق.