من خلال سمك السلمون المرقط منتج جديد اسمه، الروبوت السيارات (AAOS) تقدم الآن الدعم لنشر بوصفها آلة الظاهري الضيف (VM) في بيئات متوافقة مع VirtIO المعيار. trout
ويستند على الحبار منصة المرجعية الافتراضية، وتتوفر مثل trout
تكوين الجهاز. ويمكن الاطلاع على شفرة المصدر مساحة المستخدم في device/google/trout
. يوضح الجدول أدناه التكنولوجيا المستخدمة لالمحاكاة الافتراضية كل من النظم الفرعية في trout
.
ميزة | تقنية |
---|---|
التحكم في الصوت 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
تجميع مساحة المستخدمين
لتجميع مساحة المستخدمين:
- تحميل شجرة المصدر الروبوت:
repo init -u https://android.googlesource.com/platform/manifest -b master repo sync -j8
- بناء بيئة:
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
. معطل. تعرض واجهة المستخدم ألوانًا معكوسة للأحمر والأزرق.