
ملفات بيانات المايكروكود الرسمية من إنتل لتحديث البرامج الثابتة للمعالج، بهدف التخفيف من الثغرات الأمنية ومعالجة المشكلات الوظيفية على أنظمة لينكس.
توفر حزمة تحديث الميكروكود (MCU) لمعالجات إنتل آليةً لإصدار تحديثات للتنبيهات الأمنية والمشكلات الوظيفية، بما في ذلك الأخطاء (errata). بالإضافة إلى ذلك، فإن وحدات MCU مسؤولة عن بدء تشغيل enclave الخاص بـ SGX (على المعالجات التي تدعم ميزة SGX)، وتنفيذ السلوكيات المعقدة (مثل المساعدات assists)، والمزيد. الطريقة المفضلة لتطبيق وحدات MCU هي استخدام BIOS النظام. بالنسبة لمجموعة فرعية من معالجات إنتل، يمكن أيضًا تحديث وحدة MCU في وقت التشغيل باستخدام نظام التشغيل. تحتوي حزمة الميكروكود من إنتل المشتركة هنا على تحديثات لتلك المعالجات التي تدعم تحميل وحدات MCU عبر نظام التشغيل.
يمكن أن يساعد تحديث الميكروكود في التخفيف من بعض الثغرات الأمنية المحتملة في وحدات المعالجة المركزية (CPUs)، بالإضافة إلى معالجة بعض المشكلات الوظيفية التي قد تؤدي، على سبيل المثال، إلى سلوك غير متوقع للنظام مثل التجمّد، والانهيارات، وإعادة التشغيل غير المتوقعة، وأخطاء البيانات، وما إلى ذلك. لمعرفة المزيد حول تطبيق وحدات MCU على معالج إنتل، راجع إرشادات تحديث الميكروكود.
تم توفير هذه الحزمة لموزّعي لينكس لإدراجها في إصدارات أنظمة التشغيل الخاصة بهم. توصي إنتل بالحصول على أحدث وحدات MCU باستخدام آلية التحديث الخاصة ببائع نظام التشغيل. نقطة البداية الجيدة هي بائع نظام التشغيل والبرمجيات. يمكن للمستخدمين الخبراء تحديث الميكروكود مباشرةً خارج آلية بائع نظام التشغيل. ومع ذلك، فإن هذه الطريقة معقدة وقد تؤدي إلى أخطاء إذا نُفِّذت بشكل غير صحيح. يمكن أن تشمل هذه الأخطاء على سبيل المثال لا الحصر: تجمّد النظام، وعدم القدرة على الإقلاع، وتأثيرات على الأداء، وتحميل معالجات منطقية لتحديثات مختلفة، وعدم سريان بعض التحديثات. ونتيجةً لذلك، يجب أن يقتصر استخدام هذه الطريقة على المستخدمين الخبراء فقط.
من الأفضل تحميل وحدات MCU من BIOS. يجب تطبيق بعض وحدات MCU من BIOS فقط. لا يتم تضمين هذه الوحدات أبدًا في هذه الحزمة لأنها غير مناسبة للتوزيع عبر نظام التشغيل. قد تتلقى الشركة المصنّعة للمعدات الأصلية (OEM) حزم تحديث الميكروكود التي تمثل مجموعة شاملة (superset) لما تحتويه هذه الحزمة لإدراجها في BIOS.
قد يختار بائعو أنظمة التشغيل توفير وحدة MCU يمكن للنواة استخدامها للتحميل المبكر. على سبيل المثال، يمكن للينكس تطبيق وحدة MCU في وقت مبكر جدًا من تسلسل إقلاع النواة. في الحالات التي لا يتوفر فيها تحديث BIOS، يكون التحميل المبكر هو البديل الأفضل التالي لتحديث ميكروكود المعالج. تتم إعادة تعيين حالات الميكروكود عند إعادة تشغيل الطاقة، وبالتالي يلزم تحميل وحدة MCU في كل مرة أثناء عملية الإقلاع.
يُوصى باستخدام طريقة initrd لتحميل وحدة MCU، حيث تقوم هذه الطريقة بتحميل وحدة MCU في أقرب وقت ممكن لتحقيق أقصى تغطية. يمكن للأنظمة التي لا تتحمل فترات التوقف استخدام طريقة التحميل المتأخر (late-load) لتحديث نظام قيد التشغيل دون إعادة تشغيل.
توقيع المعالج (Processor Signature) هو رقم يحدد طراز معالج إنتل وإصداره. يمكن الحصول عليه باستخدام تعليمة CPUID، أو عبر الأمر lscpu، أو من محتوى /proc/cpuinfo. وعادةً ما يُقدَّم كثلاثة حقول: العائلة (Family)، والطراز (Model)، والخطوة (Stepping).
على سبيل المثال، إذا أعاد معالج قيمة "0x000906eb" من تعليمة CPUID:
سيكون اسم الملف المنسّق المقابل في لينكس هو "06-9e-0b"، حيث:
قد يتم تنفيذ معالج لأنواع منصات متعددة. تمتلك معالجات إنتل حقل Platform ID من 3 بت في MSR(17H) يحدد نوع المنصة لما يصل إلى 8 أنواع. قد يدعم ملف MCU لطراز معالج محدد منصات متعددة. معرّفات المنصات التي يدعمها MCU هي قناع من 8 بت حيث تشير كل بت مضبوطة إلى نوع منصة يدعمه MCU. يمكن قراءة معرّف المنصة (Platform ID) لمعالج في لينكس باستخدام rdmsr من msr-tools.
يحتوي دليل intel-ucode على ملفات MCU ثنائية مسماة بتنسيق family-model-stepping. هذا التنسيق مدعوم من معظم توزيعات لينكس الحديثة. يوجد بشكل عام في دليل /lib/firmware ويمكن تحديثه من خلال واجهة إعادة تحميل الميكروكود باتباع إرشادات التحميل المتأخر أدناه.
لتحديث initrd الخاص بالتحميل المبكر، استشر توزيعة لينكس الخاصة بك حول كيفية تجميع ملفات MCU للتحميل المبكر. تستخدم بعض التوزيعات update-initramfs أو dracut. استخدم الطريقة الموصى بها من بائع نظام التشغيل للمساعدة في ضمان تحديث ملف MCU للتحميل المبكر قبل محاولة إجراء التحميل المتأخر أدناه.
لتحديث حزمة intel-ucode على النظام:
/sys/devices/system/cpu/microcode/reload$ git clone https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.git أو$ wget https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/archive/main.zipintel-ucode إلى /lib/firmware، مع استبدال الملفات الموجودة في /lib/firmware/intel-ucode/$ echo 1 > /sys/devices/system/cpu/microcode/reload$ sudo update-initramfs -u$ sudo reboot$ dmesg | grep microcode أو$ cat /proc/cpuinfo | grep microcode | sort | uniqإذا كنت تستخدم طريقة بائع نظام التشغيل لتطبيق وحدة MCU، فقد تكون الخطوات المذكورة أعلاه قد نُفِّذت تلقائيًا أثناء عملية التحديث.
يحتوي دليل intel-ucode-with-caveats على وحدات MCU التي تتطلب معالجة خاصة. يتم توفير وحدة BDX-ML MCU في هذا الدليل لأنها تتطلب التزامات (commits) خاصة في نواة لينكس، وإلا فقد يؤدي تحديثها إلى سلوك غير متوقع للنظام. يجب على بائعي أنظمة التشغيل التأكد من تضمين تصحيحات التحميل المتأخر (المقدمة في linux-kernel-patches) في التوزيعة قبل تجميع وحدة BDX-ML MCU للتحميل المتأخر.
يتكون دليل linux-kernel-patches من تصحيحات النواة التي تعالج مشكلات مختلفة تتعلق بتطبيق وحدات MCU.
$ printf "%x\n" <number_to_convert_to_hex>$ iucode_tool -l intel-ucode | grep -wF sig (حزمة iucode_tool مطلوبة)$ od -t x4 <Family-Model-Stepping> سيقرأ أول 16 بايت من ترويسة الميكروكود الثنائية المحددة في <Family-Model-Stepping>. الكتلة الثالثة هي إصدار الميكروكود. على سبيل المثال:
$ od -t x4 06-55-040000000 00000001 *02000065* 09052019 00050654انظر إلى ملف الترخيص للحصول على التفاصيل.
انظر إلى ملف security.md للحصول على التفاصيل.
انظر إلى ملف releasenote.md للحصول على التفاصيل.
تعتمد ميزات وفوائد تقنيات إنتل على تكوين النظام وقد تتطلب تمكين الأجهزة أو البرامج أو تفعيل الخدمة. يختلف الأداء حسب تكوين النظام. تحقق مع الشركة المصنعة للنظام أو بائع التجزئة أو تعلم المزيد على www.intel.com.
لا يمكن أن يكون أي منتج أو مكوّن آمنًا بشكل مطلق.
جميع المعلومات المقدمة هنا قابلة للتغيير دون إشعار. تواصل مع ممثل إنتل للحصول على أحدث مواصفات منتجات إنتل والخرائط الزمنية (roadmaps).
قد تحتوي المنتجات والخدمات الموصوفة على عيوب أو أخطاء تُعرف باسم errata قد تسبب انحرافات عن المواصفات المنشورة. الأخطاء المميزة الحالية متاحة عند الطلب.
توفر إنتل هذه المواد كما هي، دون أي ضمانات صريحة أو ضمنية.
© Intel Corporation. إنتل، وشعار إنتل، وعلامات إنتل الأخرى هي علامات تجارية لشركة Intel Corporation أو الشركات التابعة لها.
قد تُطالب أسماء وعلامات تجارية أخرى باعتبارها ملكًا للآخرين.
| محجوز | العائلة الموسّعة | الطراز الموسّع | محجوز | نوع المعالج | رمز العائلة | رقم الطراز | معرّف الخطوة |
|---|
| 31:28 | 27:20 | 19:16 | 15:14 | 13:12 | 11:8 | 7:4 | 3:0 |
| xxxx | 00000000b | 1001b | xx | 00b | 0110b | 1110b | 1011b |