يحتوي هذا المستند على أسئلة شائعة حول نواة Android، والمعروفة أيضًا باسم نواة Generic Kernel Image (GKI). إذا لم تكن معتادًا على مصطلحات GKI ونواة GKI، يُرجى الرجوع إلى نظرة عامة على النواة.
هل يمكن تغيير قوائم رموز واجهة وحدة النواة (KMI) في نواة ثابتة؟
يمكن إضافة تغييرات لا تؤثر في واجهة KMI الحالية إلى النواة المجمدة. تشمل هذه التغييرات دوالاً جديدة تم تصديرها وإدخالات جديدة في قائمة الرموز. لمزيد من التفاصيل، يُرجى الاطّلاع على إدارة قوائم الرموز.
هل يمكنني تغيير البِنى التي تستخدمها وحدات المورّد في نواة ثابتة؟
لا يمكن تغيير البِنى التي تشكّل جزءًا من واجهة KMI في النواة التي تتضمّن KMI ثابتًا. قبل تجميد مؤشرات الأداء الرئيسية، يمكن تغيير هذه البُنى.
هل يمكنني تغيير النواة طالما أنّني لا أخلّ بالتوافق الثنائي أو توافق المصدر؟
يمكن إجراء تغييرات لا تؤثّر في مؤشر KMI كما هو موضّح في تصحيحات Android المحدّدة.
كيف تتعامل GKI مع إعدادات النواة؟
للحصول على معلومات حول إعدادات النواة، يُرجى الرجوع إلى التغييرات في gki_defconfig.
كيف يمكنني التعامل مع إصلاحات الأخطاء في المصدر التي تؤدي إلى الكتابة فوق وحدات GKI الحالية؟
إذا أنشأت وحدة مورّد استنادًا إلى برنامج تشغيل في نواة Android الشائعة (ACK)، يقع على عاتقك ضمان نقل إصلاحات الأخطاء من المصدر الرئيسي وACK إلى وحدتك. بشكل عام، من الأفضل استخدام نواة GKI ووحدات GKI بدون تعديل حتى توفّر Google هذه التحديثات بشكل منتظم.
هل هناك اختبارات خاصة بنواة GKI؟
تتوفّر اختبارات مجموعة اختبارات المورّدين (VTS) التي تتحقّق من تثبيت إصدار GKI معتمَد، كما تفرض متطلبات GKI لكل إصدار. على سبيل المثال، هناك اختبارات VTS لنظام التشغيل Android 12 خاصة برأس التمهيد الإصدار 3 وللتحقّق من توفّر الأقسام المطلوبة في جهاز يعمل بنواة 5.10.
كيف يمكنني إنشاء ملف جزء defconfig الخاص بالمشروع لإنشاء إصدارات الأجهزة؟
تستخدم العديد من الأجهزة المتوافقة مع GKI جزءًا من ملف الإعدادات لوصف خيارات الإعدادات المطلوبة، بالإضافة إلى gki_defconfig
، لإنشاء وحدات المورّد.
تشمل الأمثلة التي تشكّل جزءًا من قاعدة رموز ACK كلاً من Cuttlefish وDB845c.
لا توجد طريقة لتجنُّب بعض الفحص اليدوي لخيارات الإعدادات
من أجل تحسين الجزء، ولكن scripts/diffconfig
من مصادر النواة
مفيد لمقارنة نتائج gki_defconfig
وgki_defconfig+device.fragment
.
هل هناك حل بديل لتعامل modprobe مع الشرطة (-) والشرطة السفلية (_) على أنّهما متساويتان؟
يحتوي
صفحة modprobe man
على الوصف التالي: "يضيف modprobe
أو يزيل وحدة نمطية من نواة Linux بذكاء: تجدر الإشارة إلى أنّه لا يوجد فرق بين _ و- في أسماء الوحدات النمطية (يتم إجراء تحويل تلقائي للشرطة السفلية) لتوفير الراحة." يلتزم فريق GKI باصطلاح المصدر الأساسي المعياري، لذا يجب أن تأخذ اصطلاحات التسمية الخاصة بأدوات المورّدين أو الوحدات النمطية هذا الالتزام في الاعتبار.
كيف يمكنني تفعيل debugfs للاستخدام الداخلي؟
لمزيد من التفاصيل حول تفعيل debugfs، يُرجى الاطّلاع على الميزات المتداخلة لتصحيح الأخطاء في الإصدارات السابقة.
كيف يمكنني حلّ مشكلة عدم تطابق واجهات التطبيق الثنائية (ABI) بين نواة GKI وإعدادات وحدة معيّنة مفعَّلة؟
يمثّل عدم تطابق واجهات التطبيق الثنائية (ABI) بين نواة GKI وإعدادات الوحدة النمطية تبعية ضمنية لإعدادات الوحدة النمطية، حيث يؤدي تفعيل وحدة نمطية إلى إنشاء إعدادات ثنائية في صورة النواة الناتجة. يُرجى التواصل مع فريق Android kernel (kernel-team@android.com) لتحديد الخطوات التالية. بعد تحديد قائمة الرموز، أنشئ خطأ في Issue Tracker وحمِّل تغييرًا على قائمة الرموز.