إصدار Linux 6.2 kernel

بعد شهرين من التطوير، قدم لينوس تورفالدس إصدار Linux kernel 6.2. من بين أبرز التغييرات: السماح بقبول التعليمات البرمجية بموجب ترخيص Copyleft-Next، وتحسين تنفيذ RAID5/6 في Btrfs، واستمرار تكامل الدعم للغة Rust، وتقليل الحمل الزائد للحماية من هجمات Retbleed، تمت إضافة القدرة على تنظيم استهلاك الذاكرة أثناء إعادة الكتابة، وتمت إضافة آلية لموازنة TCP PLB (موازنة التحميل الوقائي)، وتمت إضافة آلية حماية تدفق الأوامر المختلطة (FineIBT)، وأصبح لدى BPF الآن القدرة على تحديد الكائنات وهياكل البيانات الخاصة بها ، تم تضمين الأداة المساعدة rv (التحقق من وقت التشغيل)، وتم تقليل استهلاك الطاقة في تنفيذ أقفال RCU.

يتضمن الإصدار الجديد 16843 إصلاحًا من 2178 مطورًا، وحجم التصحيح هو 62 ميجابايت (أثرت التغييرات على 14108 ملفًا، وتمت إضافة 730195 سطرًا من التعليمات البرمجية، وتم حذف 409485 سطرًا). حوالي 42% من جميع التغييرات التي تم إدخالها في 6.2 تتعلق ببرامج تشغيل الأجهزة، وحوالي 16% من التغييرات تتعلق بتحديث التعليمات البرمجية الخاصة ببنيات الأجهزة، و12% تتعلق بمكدس الشبكة، و4% تتعلق بأنظمة الملفات، و3% ترتبط بالأنظمة الفرعية للنواة الداخلية.

الابتكارات الرئيسية في kernel 6.2:

  • خدمات الذاكرة والنظام
    • يُسمح بالتضمين في كود النواة والتغييرات المقدمة بموجب ترخيص Copyleft-Next 0.3.1. تم إنشاء ترخيص Copyleft-Next بواسطة أحد مؤلفي GPLv3 وهو متوافق تمامًا مع ترخيص GPLv2، كما أكد ذلك محامون من SUSE وRed Hat. بالمقارنة مع GPLv2، فإن ترخيص Copyleft-Next أكثر إحكاما وأسهل في الفهم (تمت إزالة الجزء التمهيدي والإشارة إلى التنازلات القديمة)، ويحدد الإطار الزمني والإجراءات لإزالة الانتهاكات، ويزيل تلقائيًا متطلبات الحقوق المتروكة للبرامج القديمة التي عمره أكثر من 15 عامًا.

      يحتوي Copyleft-Next أيضًا على شرط منح التكنولوجيا الخاصة، والذي، على عكس GPLv2، يجعل هذا الترخيص متوافقًا مع ترخيص Apache 2.0. لضمان التوافق الكامل مع GPLv2، تنص Copyleft-Next صراحةً على إمكانية توفير عمل مشتق بموجب ترخيص GPL بالإضافة إلى ترخيص Copyleft-Next الأصلي.

    • يتضمن الهيكل الأداة المساعدة "rv"، التي توفر واجهة للتفاعل من مساحة المستخدم مع معالجات النظام الفرعي RV (التحقق من وقت التشغيل)، والمصممة للتحقق من التشغيل الصحيح على أنظمة موثوقة للغاية تضمن عدم وجود أعطال. يتم إجراء التحقق في وقت التشغيل عن طريق ربط المعالجات بنقاط التتبع التي تتحقق من التقدم الفعلي للتنفيذ مقابل نموذج محدد مرجعي محدد مسبقًا للجهاز الذي يحدد السلوك المتوقع للنظام.
    • جهاز zRAM، الذي يسمح بتخزين قسم المبادلة في الذاكرة في شكل مضغوط (يتم إنشاء جهاز كتلة في الذاكرة يتم إجراء المبادلة عليه بالضغط)، ينفذ القدرة على إعادة حزم الصفحات باستخدام خوارزمية بديلة لتحقيق مستوى أعلى من الضغط. الفكرة الرئيسية هي توفير الاختيار بين عدة خوارزميات (lzo، lzo-rle، lz4، lz4hc، zstd)، وتقديم تنازلات خاصة بهم بين سرعة الضغط/إلغاء الضغط ومستوى الضغط، أو الأمثل في مواقف خاصة (على سبيل المثال، لضغط كبير صفحات الذاكرة).
    • تمت إضافة واجهة برمجة التطبيقات "iommufd" لإدارة نظام إدارة ذاكرة الإدخال/الإخراج - IOMMU (وحدة إدارة ذاكرة الإدخال/الإخراج) من مساحة المستخدم. تتيح واجهة برمجة التطبيقات الجديدة إدارة جداول صفحات ذاكرة الإدخال/الإخراج باستخدام واصفات الملفات.
    • يوفر BPF القدرة على إنشاء أنواع، وتحديد الكائنات الخاصة بك، وبناء التسلسل الهرمي الخاص بك للكائنات، وإنشاء هياكل البيانات الخاصة بك بمرونة، مثل القوائم المرتبطة. بالنسبة لبرامج BPF التي تنتقل إلى وضع السكون (BPF_F_SLEEPABLE)، تمت إضافة دعم لأقفال bpf_rcu_read_{,un}lock(). تم تنفيذ الدعم لحفظ كائنات Task_struct. تمت إضافة نوع الخريطة BPF_MAP_TYPE_CGRP_STORAGE، مما يوفر مساحة تخزين محلية لمجموعات التحكم.
    • بالنسبة لآلية حظر RCU (قراءة-نسخ-تحديث)، يتم تنفيذ آلية اختيارية لمكالمات رد الاتصال "الكسولة"، حيث تتم معالجة العديد من مكالمات رد الاتصال مرة واحدة باستخدام مؤقت في الوضع الدفعي. يتيح لنا تطبيق التحسين المقترح تقليل استهلاك الطاقة على أجهزة Android وChromeOS بنسبة 5-10% عن طريق تأجيل طلبات RCU أثناء أوقات الخمول أو التحميل المنخفض على النظام.
    • تمت إضافة sysctl Split_lock_mitigate للتحكم في كيفية تفاعل النظام عندما يكتشف أقفال الانقسام التي تحدث عند الوصول إلى البيانات غير المحاذاة في الذاكرة بسبب عبور البيانات لخطين من ذاكرة التخزين المؤقت لوحدة المعالجة المركزية عند تنفيذ تعليمات ذرية. تؤدي مثل هذه العوائق إلى انخفاض كبير في الأداء. يؤدي تعيين Split_lock_mitigate إلى 0 فقط إلى إصدار تحذير بوجود مشكلة، بينما يؤدي تعيين Split_lock_mitigate إلى 1 أيضًا إلى العملية التي تسببت في إبطاء القفل للحفاظ على الأداء لبقية النظام.
    • تم اقتراح تطبيق جديد لـ qspinlock لبنية PowerPC، والذي يوضح الأداء العالي ويحل بعض مشكلات القفل التي تنشأ في حالات استثنائية.
    • تمت إعادة صياغة رمز معالجة المقاطعة MSI (مقاطعات الإشارة للرسائل)، مما أدى إلى التخلص من المشكلات المعمارية المتراكمة وإضافة دعم لربط المعالجات الفردية بأجهزة مختلفة.
    • بالنسبة للأنظمة المستندة إلى بنية مجموعة تعليمات LoongArch المستخدمة في معالجات Loongson 3 5000 وتنفيذ RISC ISA الجديد، على غرار MIPS وRISC-V، يتم تنفيذ دعم ftrace وحماية المكدس وأوضاع السكون والاستعداد.
    • تم توفير القدرة على تعيين أسماء لمناطق الذاكرة المجهولة المشتركة (في السابق، كان من الممكن تعيين الأسماء فقط للذاكرة المجهولة الخاصة المخصصة لعملية معينة).
    • تمت إضافة معلمة سطر أوامر kernel جديدة "trace_trigger"، المصممة لتنشيط مشغل التتبع المستخدم لربط الأوامر الشرطية التي يتم استدعاؤها عند تشغيل فحص التحكم (على سبيل المثال، Trace_trigger=”sched_switch.stacktrace if prev_state == 2″).
    • تمت زيادة متطلبات إصدار حزمة binutils. يتطلب بناء النواة الآن على الأقل binutils 2.25.
    • عند استدعاء exec()، تمت إضافة القدرة على وضع عملية في مساحة اسم زمنية، حيث يختلف الوقت عن وقت النظام.
    • لقد بدأنا في نقل وظائف إضافية من فرع Rust-for-Linux تتعلق باستخدام لغة Rust كلغة ثانية لتطوير برامج التشغيل ووحدات kernel. يتم تعطيل دعم Rust افتراضيًا ولا يؤدي إلى تضمين Rust باعتباره تبعية مطلوبة لبناء kernel. تم توسيع الوظائف الأساسية المقدمة في الإصدار الأخير لدعم التعليمات البرمجية ذات المستوى المنخفض، مثل نوع Vec ووحدات الماكرو pr_debug!() و pr_cont!() و pr_alert!()، بالإضافة إلى الماكرو الإجرائي "#[vtable" ]"، مما يبسط العمل مع جداول المؤشرات الخاصة بالوظائف. من المتوقع إضافة روابط Rust عالية المستوى على أنظمة kernel الفرعية، والتي ستسمح بإنشاء برامج تشغيل كاملة في Rust، في الإصدارات المستقبلية.
    • تم الآن الإعلان عن نوع "char" المستخدم في kernel بأنه غير موقع بشكل افتراضي لجميع البنيات.
    • تم الإعلان عن آلية تخصيص ذاكرة اللوحة - SLOB (مخصص اللوحة)، والتي تم تصميمها للأنظمة ذات كمية صغيرة من الذاكرة، بأنها قديمة. بدلاً من SLOB، في الظروف العادية، يوصى باستخدام SLUB أو SLAB. بالنسبة للأنظمة التي تحتوي على كمية صغيرة من الذاكرة، يوصى باستخدام SLUB في الوضع SLUB_TINY.
  • نظام القرص الفرعي ، I / O وأنظمة الملفات
    • تم إجراء تحسينات على Btrfs بهدف إصلاح مشكلة "ثغرة الكتابة" في تطبيقات RAID 5/6 (محاولة لاستعادة RAID في حالة حدوث عطل أثناء الكتابة ومن المستحيل فهم الكتلة التي تمت كتابة جهاز RAID عليها بشكل صحيح، والتي يمكن أن تؤدي إلى تدمير الكتلة، المقابلة للكتل المكتتبة). بالإضافة إلى ذلك، تقوم محركات أقراص SSD الآن تلقائيًا بتمكين عملية التجاهل غير المتزامنة افتراضيًا عندما يكون ذلك ممكنًا، مما يسمح بتحسين الأداء بسبب التجميع الفعال لعمليات التجاهل في قوائم الانتظار ومعالجة قائمة الانتظار بواسطة معالج الخلفية. تحسين أداء عمليات الإرسال وlseek، بالإضافة إلى FIEMAP ioctl.
    • تم توسيع إمكانيات إدارة الكتابة المؤجلة (إعادة الكتابة، وحفظ البيانات المتغيرة في الخلفية) لأجهزة الحظر. في بعض المواقف، كما هو الحال عند استخدام أجهزة حظر الشبكة أو محركات أقراص USB، يمكن أن تؤدي عمليات الكتابة البطيئة إلى استهلاك كميات كبيرة من ذاكرة الوصول العشوائي (RAM). من أجل التحكم في سلوك الكتابة البطيئة والحفاظ على حجم ذاكرة التخزين المؤقت للصفحة ضمن حدود معينة، تم تقديم معلمات جديدة الصارمة_limit وmin_bytes وmax_bytes وmin_ratio_fine وmax_ratio_fine في sysfs (/sys/class/bdi/).
    • ينفذ نظام الملفات F2FS عملية الاستبدال الذري ioctl، والتي تسمح لك بكتابة البيانات إلى ملف ضمن عملية ذرية واحدة. يضيف F2FS أيضًا ذاكرة تخزين مؤقت لمدى الكتلة للمساعدة في تحديد البيانات المستخدمة بشكل نشط أو البيانات التي لم يتم الوصول إليها لفترة طويلة.
    • في ext4 FS تتم ملاحظة تصحيحات الأخطاء فقط.
    • يوفر نظام الملفات ntfs3 عدة خيارات تحميل جديدة: "nocase" للتحكم في حساسية حالة الأحرف في أسماء الملفات والدلائل؛ windows_name لمنع إنشاء أسماء الملفات التي تحتوي على أحرف غير صالحة لنظام التشغيل Windows؛ Hide_dot_files للتحكم في تعيين تسمية الملف المخفي للملفات التي تبدأ بنقطة.
    • يطبق نظام الملفات Squashfs خيار التثبيت "threads="، والذي يسمح لك بتحديد عدد سلاسل العمليات لموازاة عمليات إلغاء الضغط. قدم Squashfs أيضًا القدرة على تعيين معرفات المستخدم لأنظمة الملفات المثبتة، المستخدمة لمطابقة ملفات مستخدم معين على قسم خارجي مثبت مع مستخدم آخر على النظام الحالي.
    • تمت إعادة صياغة تنفيذ قوائم التحكم في الوصول POSIX (POSIX ACLs). يزيل التنفيذ الجديد المشكلات المعمارية، ويبسط صيانة قاعدة التعليمات البرمجية، ويقدم أنواع بيانات أكثر أمانًا.
    • أضاف النظام الفرعي fscrypt، الذي يُستخدم للتشفير الشفاف للملفات والأدلة، دعمًا لخوارزمية التشفير SM4 (المعيار الصيني GB/T 32907-2016).
    • تم توفير القدرة على بناء النواة بدون دعم NFSv2 (في المستقبل يخططون للتوقف تمامًا عن دعم NFSv2).
    • تم تغيير تنظيم التحقق من حقوق الوصول إلى أجهزة NVMe. يوفر القدرة على القراءة والكتابة على جهاز NVMe إذا كانت عملية الكتابة لديها حق الوصول إلى الملف المخصص للجهاز (في السابق كان يجب أن تحصل العملية على إذن CAP_SYS_ADMIN).
    • تمت إزالة برنامج تشغيل حزمة الأقراص المضغوطة/أقراص DVD، والذي تم إهماله في عام 2016.
  • المحاكاة الافتراضية والأمن
    • تم تطبيق طريقة جديدة للحماية ضد ثغرة Retbleed في وحدات المعالجة المركزية Intel وAMD، باستخدام تتبع عمق الاتصال، والذي لا يؤدي إلى إبطاء العمل بقدر الحماية الموجودة مسبقًا ضد Retbleed. لتمكين الوضع الجديد، تم اقتراح معلمة سطر أوامر kernel "retbleed=stuff".
    • تمت إضافة آلية حماية تدفق تعليمات FineIBT المختلطة، والتي تجمع بين استخدام تعليمات الأجهزة Intel IBT (تتبع الفروع غير المباشرة) وحماية البرامج kCFI (تكامل التحكم في تدفق النواة) لمنع انتهاك أمر التنفيذ العادي (تدفق التحكم) نتيجة للاستخدام من عمليات الاستغلال التي تعدل المؤشرات المخزنة في الذاكرة على الوظائف. يسمح FineIBT بالتنفيذ عن طريق الانتقال غير المباشر فقط في حالة الانتقال إلى تعليمة ENDBR، والتي يتم وضعها في بداية الوظيفة. بالإضافة إلى ذلك، عن طريق القياس مع آلية kCFI، يتم بعد ذلك فحص التجزئة لضمان ثبات المؤشرات.
    • تمت إضافة قيود لمنع الهجمات التي تتلاعب بتوليد حالات "عفوا"، وبعدها يتم إكمال المهام التي بها مشكلات واستعادة الحالة دون إيقاف النظام. مع وجود عدد كبير جدًا من استدعاءات الحالة "عفوًا"، يحدث تجاوز سعة العداد المرجعي (refcount)، مما يسمح باستغلال الثغرات الأمنية الناتجة عن إلغاء مرجعيات المؤشر NULL. للحماية من مثل هذه الهجمات، تمت إضافة حد إلى النواة للحد الأقصى لعدد مشغلات "oops"، وبعد تجاوز هذا الحد ستبدأ النواة في الانتقال إلى حالة "الذعر" تليها إعادة التشغيل، والتي لن تسمح بتحقيق الهدف. عدد التكرارات المطلوبة لتجاوز إعادة العد. افتراضيًا، يتم تعيين الحد على 10 آلاف "عفوا"، ولكن إذا رغبت في ذلك، يمكن تغييره من خلال المعلمة oops_limit.
    • تمت إضافة معلمة التكوين LEGACY_TIOCSTI وsysctl Legacy_tiocsti لتعطيل القدرة على وضع البيانات في الجهاز باستخدام ioctl TIOCSTI، حيث يمكن استخدام هذه الوظيفة لاستبدال الأحرف التعسفية في المخزن المؤقت للإدخال الطرفي ومحاكاة إدخال المستخدم.
    • تم اقتراح نوع جديد من البنية الداخلية، encoded_page، حيث يتم استخدام البتات السفلية للمؤشر لتخزين معلومات إضافية تستخدم للحماية من عدم المرجعية العرضية للمؤشر (إذا كان عدم المرجعية ضروريًا بالفعل، فيجب مسح هذه البتات الإضافية أولاً) .
    • على منصة ARM64، في مرحلة التمهيد، من الممكن تمكين أو تعطيل تنفيذ البرنامج لآلية Shadow Stack، والتي تُستخدم للحماية من الكتابة فوق عنوان المرسل من وظيفة في حالة تجاوز سعة المخزن المؤقت على المكدس ( جوهر الحماية هو حفظ عنوان المرسل في مكدس "ظل" منفصل بعد نقل التحكم إلى الوظيفة واسترداد العنوان المحدد قبل الخروج من الوظيفة). يتيح لك دعم تطبيقات الأجهزة والبرامج الخاصة بـ Shadow Stack في مجموعة kernel واحدة استخدام نواة واحدة على أنظمة ARM مختلفة، بغض النظر عن دعمها لتعليمات مصادقة المؤشر. يتم تضمين تنفيذ البرنامج من خلال استبدال التعليمات اللازمة في الكود أثناء التحميل.
    • تمت إضافة دعم لاستخدام آلية إشعار الخروج غير المتزامن على معالجات Intel، مما يسمح باكتشاف الهجمات أحادية الخطوة على التعليمات البرمجية المنفذة في جيوب SGX.
    • تم اقتراح مجموعة من العمليات التي تسمح لبرنامج Hypervisor بدعم الطلبات الواردة من أنظمة ضيف Intel TDX (امتدادات المجال الموثوق بها).
    • تمت إزالة إعدادات بناء النواة RANDOM_TRUST_BOOTLOADER وRANDOM_TRUST_CPU، لصالح خيارات سطر الأوامر المقابلة Random.trust_bootloader وrandom.trust_cpu.
    • أضافت آلية Landlock، التي تسمح لك بالحد من تفاعل مجموعة من العمليات مع البيئة الخارجية، دعمًا لعلامة LANDLOCK_ACCESS_FS_TRUNCATE، مما يجعل من الممكن التحكم في تنفيذ عمليات اقتطاع الملفات.
  • النظام الفرعي للشبكة
    • بالنسبة إلى IPv6، تمت إضافة دعم PLB (موازنة التحميل الوقائي)، وهي آلية موازنة التحميل بين روابط الشبكة تهدف إلى تقليل نقاط التحميل الزائد على محولات مركز البيانات. من خلال تغيير تسمية تدفق IPv6، يقوم PLB بتغيير مسارات الحزمة بشكل عشوائي لموازنة الحمل على منافذ المحول. لتقليل إعادة ترتيب الحزم، يتم تنفيذ هذه العملية بعد فترات من الخمول كلما أمكن ذلك. أدى استخدام PLB في مراكز بيانات Google إلى تقليل خلل التحميل على منافذ التبديل بمعدل 60%، وتقليل فقدان الحزم بنسبة 33%، وتقليل زمن الوصول بنسبة 20%.
    • تمت إضافة برنامج تشغيل لأجهزة MediaTek التي تدعم Wi-Fi 7 (802.11be).
    • تمت إضافة دعم لروابط 800 جيجابت.
    • تمت إضافة القدرة على إعادة تسمية واجهات الشبكة بسرعة، دون توقف العمل.
    • تمت إضافة إشارة إلى عنوان IP الذي وصلت إليه الحزمة إلى رسائل السجل الخاصة بتدفق SYN.
    • بالنسبة لـ UDP، تم تنفيذ القدرة على استخدام جداول التجزئة المنفصلة لمساحات أسماء مختلفة للشبكة.
    • بالنسبة لجسور الشبكة، تم تنفيذ دعم طريقة مصادقة MAB (تجاوز مصادقة MAC).
    • بالنسبة لبروتوكول CAN (CAN_RAW)، تم تنفيذ دعم وضع مأخذ التوصيل SO_MARK لإرفاق مرشحات حركة المرور المستندة إلى fwmark.
    • تطبق ipset معلمة قناع نقطي جديدة تسمح لك بتعيين قناع بناءً على البتات العشوائية في عنوان IP (على سبيل المثال، "ipset create set1 hash:ip bitmask 255.128.255.0").
    • تمت إضافة دعم لمعالجة الرؤوس الداخلية داخل الحزم النفقية إلى nf_tables.
  • معدات
    • تمت إضافة النظام الفرعي "accel" مع تنفيذ إطار عمل للمسرعات الحسابية، والذي يمكن توفيره إما في شكل ASICs فردية أو في شكل كتل IP داخل SoC وGPU. تهدف هذه المسرعات بشكل أساسي إلى تسريع حل مشكلات التعلم الآلي.
    • يتضمن برنامج التشغيل amdgpu دعمًا لمكونات GC وPSP وSMU وNBIO IP. بالنسبة لأنظمة ARM64، يتم تنفيذ دعم DCN (Display Core Next). تم نقل تنفيذ إخراج الشاشة المحمية من استخدام DCN10 إلى DCN21 ويمكن استخدامه الآن عند توصيل شاشات متعددة.
    • قام برنامج التشغيل i915 (Intel) بتثبيت الدعم لبطاقات الفيديو المنفصلة Intel Arc (DG2/Alchemist).
    • يدعم برنامج التشغيل Nouveau وحدات معالجة الرسومات NVIDIA GA102 (RTX 30) استنادًا إلى بنية Ampere. بالنسبة لبطاقات nva3 (GT215)، تمت إضافة القدرة على التحكم في الإضاءة الخلفية.
    • تمت إضافة دعم للمحولات اللاسلكية المستندة إلى شرائح Realtek 8852BE وRealtek 8821CU و8822BU و8822CU و8723DU (USB) وMediaTek MT7996 وواجهات Broadcom BCM4377/4378/4387 Bluetooth، بالإضافة إلى وحدات تحكم Motorcomm yt8521 وNVIDIA Tegra GE Ethernet.
    • تمت إضافة دعم ASoC (نظام ALSA على الشريحة) لشرائح الصوت المدمجة HP Stream 8، Advantech MICA-071، Dell SKU 0C11، Intel ALC5682I-VD، Xiaomi Redmi Book Pro 14 2022، i.MX93، Armada 38x، RK3588. تمت إضافة دعم لواجهة الصوت Focusrite Saffire Pro 40. تمت إضافة برنامج ترميز الصوت Realtek RT1318.
    • تمت إضافة دعم للهواتف الذكية والأجهزة اللوحية من Sony (Xperia 10 IV و5 IV وX وX Compact وOnePlus One و3 و3T وNord N100 وXiaomi Poco F1 وMi6 وHuawei Watch وGoogle Pixel 3a وSamsung Galaxy Tab 4 10.1.
    • تمت إضافة دعم لـ ARM SoC وApple T6000 (M1 Pro)، T6001 (M1 Max)، T6002 (M1 Ultra)، Qualcomm MSM8996 Pro (Snapdragon 821)، SM6115 (Snapdragon 662)، SM4250 (Snapdragon 460)، SM6375 (Snapdragon 695) اللوحات، SDM670 (Snapdragon 670)، MSM8976 (Snapdragon 652)، MSM8956 (Snapdragon 650)، RK3326 Odroid-Go/rg351، Zyxel NSA310S، InnoComm i.MX8MM، Odroid Go Ultra.

وفي الوقت نفسه، شكلت مؤسسة البرمجيات الحرة في أمريكا اللاتينية نسخة من النواة 6.2 المجانية تمامًا - Linux-libre 6.2-gnu، خالية من عناصر البرامج الثابتة وبرامج التشغيل التي تحتوي على مكونات غير حرة أو أقسام تعليمات برمجية، ونطاقها محدود. من قبل الشركة المصنعة. يقوم الإصدار الجديد بتنظيف النقط الجديدة في برنامج التشغيل الجديد. تم تعطيل تحميل Blob في برامج تشغيل البلوتوث mt7622 وmt7996 wifi وbcm4377. تنظيف أسماء blob في ملفات dts لبنية Aarch64. تم تحديث رمز تنظيف النقطة الكبيرة في برامج التشغيل والأنظمة الفرعية المختلفة. توقف عن تنظيف برنامج التشغيل s5k4ecgx، حيث تمت إزالته من النواة.

المصدر: opennet.ru

إضافة تعليق