الرئيسية
» لينوكس
»
كيفية إصلاح مشكلة عدم تحميل برامج تشغيل NVIDIA بعد تحديث النواة على أوبونتو
كيفية إصلاح مشكلة عدم تحميل برامج تشغيل NVIDIA بعد تحديث النواة على أوبونتو
قد يؤدي تحديث نواة أوبونتو إلى تشغيل نظام NVIDIA بشكل طبيعي بينما يتوقف برنامج التشغيل الخاص به عن التحميل. وتختلف الأعراض الظاهرة: nvidia-smiفقد تظهر رسالة خطأ تفيد بعدم القدرة على الاتصال ببرنامج التشغيل، أو قد تتوقف تطبيقات CUDA عن رؤية وحدة معالجة الرسومات، أو قد يعود سطح المكتب إلى عرض البرامج، أو modprobe nvidiaقد يتعطل النظام تمامًا. والحل العملي هو تحديد الطبقة المعطلة بدلًا من إعادة تثبيت كل شيء دفعة واحدة.
يركز هذا المرجع على برامج تشغيل NVIDIA المُضمّنة في حزمة أوبونتو، والإرشادات الحالية من Canonical. اعتبارًا من أكتوبر 2026، توصي أوبونتو باستخدام ubuntu-driversأداة أو تطبيق برامج التشغيل الإضافية لمعظم الأنظمة، كما توصي باستخدام وحدات النواة المُجمّعة مسبقًا والموقعة عند توفرها. تدعم وثائق NVIDIA الخاصة بأوبونتو أيضًا إصدارات أوبونتو 22.04 و24.04 و26.04، ولكن يختلف اسم الحزمة في الإصدارات الأحدث، لذا لا تنسخ رقم الإصدار من مثال إلا إذا كان مُتاحًا بالفعل لجهازك.
قائمة فحص التشخيص السريع
يفحص
يأمر
ما يخبرك به
النواة قيد التشغيل
uname -r
واجهة برمجة التطبيقات (ABI) الخاصة بالنواة التي تحتاج إلى وحدة NVIDIA مطابقة.
حالة السائق
nvidia-smi
ما إذا كان بإمكان مساحة المستخدم التواصل مع وحدة نواة NVIDIA المحملة.
الوحدات النمطية المحملة
lsmod | grep -E 'nvidia|nouveau'
سواء كانت NVIDIA أو Nouveau تمتلك وحدة معالجة الرسومات حاليًا.
الحزمة الموصى بها
sudo ubuntu-drivers list
فروع برامج التشغيل التي يعتبرها نظام أوبونتو مناسبة للأجهزة.
نظام تثبيت آمن
mokutil --sb-state
ما إذا كان من الممكن رفض وحدات نواة النظام غير الموقعة التابعة لجهات خارجية.
إذا nvidia-smiفشلت العملية ولم nvidiaتظهر أي وحدات نمطية lsmod، فإن العطل يقع أسفل طبقة CUDA أو طبقة تطبيق سطح المكتب. أما إذا nvidia-smiأبلغت Failed to initialize NVML: Driver/library version mismatchCanonical عن خطأ، فتشير إلى أن هذا الخطأ ناتج عن عدم تطابق بين مساحة المستخدم ووحدة النواة، وهو ما يحدث غالبًا بعد تحديث برنامج التشغيل؛ وقد تكون إعادة تشغيل الجهاز كافية إذا كانت الوحدة النمطية الجديدة مثبتة بالفعل.
إذا كان بإمكانك اختيار نواة أقدم من GRUB ويعمل برنامج التشغيل عليها، فهذا دليل قوي على أن النواة الجديدة تفتقر إلى وحدة NVIDIA قابلة للاستخدام. تُعدّ النواة الأقدم حلاً مؤقتاً مفيداً، لكنها ليست الحل النهائي، إذ لا يزال من الضروري توافق النواة الحالية وبرنامج التشغيل.
2. اسأل أوبونتو عن فرع برنامج التشغيل الذي يوصي به
على جهاز سطح مكتب أو محطة عمل أوبونتو القياسية، استخدم منطق اختيار برنامج التشغيل الخاص بأوبونتو بدلاً من تخمين الفرع:
sudo apt update
sudo ubuntu-drivers list
بالنسبة لمعظم أنظمة سطح المكتب وأنظمة الألعاب، توصي Canonical باستخدام برنامج تشغيل UDA العادي بدلاً من -serverحزمة برامج التشغيل. أما بالنسبة لخوادم الحوسبة، فيُرجى اتباع إرشادات الخادم ubuntu-drivers list --gpgpuعند الاقتضاء. إذا كان نظامك قد تم تثبيته مسبقًا باستخدام مُثبِّت NVIDIA المستقل .runأو مستودع تابع لجهة خارجية، فإن استخدام مصادر حزم برامج تشغيل مختلفة قد يُصعِّب عملية التشخيص. تُحذِّر Canonical صراحةً من أن برامج التشغيل المُثبَّتة خارج الطرق الموثقة لديها قد تستبدل مكونات Ubuntu المُقدَّمة وقد تتداخل مع خاصية التمهيد الآمن.
استخدم خاصية اكتشاف برامج التشغيل في أوبونتو لتحديد الفرع المناسب لوحدة معالجة الرسومات المثبتة بدلاً من ترميز إصدار من جهاز آخر.
3. تحقق من خاصية التمهيد الآمن قبل إعادة بناء أي شيء
يُعدّ التمهيد الآمن سببًا شائعًا لوجود وحدة NVIDIA على القرص ولكن عدم تحميلها. تحقق من حالتها:
mokutil --sb-state
sudo modprobe nvidia
إذا تم تفعيل ميزة التمهيد الآمن (Secure Boot) modprobeوعرضت رسالة مثل Key was rejected by service"خطأ"، فهذا يعني أن نواة النظام تُفعّل التحقق من موثوقية الوحدات النمطية. يُطبّق نظام أوبونتو التحقق من صحة وحدات النواة النمطية ضمن ميزة التمهيد الآمن على إصدارات amd64 المدعومة منذ سنوات. تُفضّل شركة كانونيكال استخدام وحدات NVIDIA النمطية المُوقّعة والمُجمّعة مُسبقًا عند توفّرها. في حال استخدامك لـ DKMS عمدًا، قد يطلب نظام أوبونتو إنشاء مفتاح مالك الجهاز (MOK) وتسجيله عند إعادة التشغيل.
لا تقم بتعطيل خاصية التمهيد الآمن كخطوة أولى لحل المشكلة. قد تكون هذه تجربة تشخيصية قصيرة في بيئة مُحكمة، ولكن الحل الأمثل عادةً هو تثبيت وحدة نمطية موقّعة أو تسجيل مفتاح MOK بشكل صحيح. توثّق Canonical آلية التسجيل في وثائق التمهيد الآمن UEFI الخاصة بها .
يشير رفض التوقيع إلى مشكلة في موثوقية التمهيد الآمن وليس إلى عدم وجود وحدة معالجة رسومية. لذا، يُنصح بحل مشكلة توقيع الوحدة أو تسجيل مفتاح MOK بدلاً من إعادة تثبيت مكتبات مساحة المستخدم بشكل متكرر.
4. تحقق مما إذا كانت وحدة NVIDIA المطابقة موجودة لنواة النظام قيد التشغيل
ترتبط حزم NVIDIA المُجمّعة مسبقًا في أوبونتو بواجهة برمجة تطبيقات النواة (ABI). استبدلها DRIVER_BRANCHبالفرع الموضح بواسطة ubuntu-drivers list:
إذا كانت الحزمة مثبتة لنواة النظام الحالية، فتابع إلى فحوصات التمهيد الآمن، وNouveau، والسجلات أدناه. أما إذا كانت مفقودة، فقم بتثبيت حزمة الوحدة النمطية المطابقة تمامًا.
تدعم Canonical أيضًا تثبيت حزمة التعريف الخاصة بالنكهة، على سبيل المثال linux-modules-nvidia-${DRIVER_BRANCH}-generic، مما يُسهّل على ترقيات النواة المستقبلية سحب وحدات NVIDIA المُناسبة. يعتمد اسم الحزمة الدقيق على إصدار Ubuntu الخاص بك، ونكهة النواة، وفرع برنامج التشغيل، وما إذا كنت تستخدم إصدارًا خاصًا بالخوادم، لذا تحقق من الخيار المُقترح الذي يُظهره APT قبل التأكيد.
يساعد فحص سياسة الحزمة في التمييز بين وحدة NVIDIA الخاصة بالنواة المفقودة ومشكلة برنامج تشغيل مساحة المستخدم.
5. إذا كنت تستخدم DKMS، فتأكد من وجود رؤوس النواة الحالية.
يقوم DKMS بإنشاء وحدة نمطية خاصة بنواة النظام التي تستخدمها، ولذلك فهو يحتاج إلى ملفات رأسية متوافقة مع النواة. توصي Canonical باستخدام DKMS بشكل أساسي عندما لا تتوفر وحدات نمطية مُجمّعة مسبقًا، كما هو الحال مع بعض النوى المُخصصة.
sudo apt install linux-headers-$(uname -r)
dkms status
إذا لم يُظهر إدخال NVIDIA DKMS عملية بناء ناجحة للنواة الحالية، فراجع سجل البناء /var/lib/dkms/قبل محاولة إزالة أي حزمة عشوائية. تشمل أسباب الفشل الشائعة فقدان ملفات الرأس، أو عدم توافق مُصرّف/نواة النظام، أو مشكلة في توقيع الوحدة. بعد تصحيح المتطلبات الأساسية، أعد تثبيت حزمة DKMS المناسبة أو استخدم المسار التلقائي في أوبونتو.
sudo ubuntu-drivers install --include-dkms
استخدم هذا الأمر فقط عند الحاجة الفعلية إلى DKMS. تشير وثائق Canonical الحالية لأجهزة سطح المكتب إلى أن الوحدات النمطية المُجمَّعة مسبقًا هي الخيار المُفضَّل لمعظم المستخدمين، لا سيما مع ميزة التمهيد الآمن.
يلزم وجود رؤوس نواة متطابقة عندما يتعين على DKMS تجميع وحدة NVIDIA للنواة الحالية.
6. قم بتثبيت الوحدة النمطية المجمعة مسبقًا المفقودة عند توفرها
إذا أظهرت الخطوة 4 أن النواة الحالية تفتقر إلى وحدة NVIDIA المجمعة مسبقًا، فقم بتثبيتها بشكل صريح ودع APT يعيد بناء initramfs:
ثم تأكد من اكتمال عملية APT بنجاح دون أخطاء في التبعيات. تجنب فرض تثبيت الحزم باستخدام الأمر dpkg --force-*`--`؛ فقد يؤدي ذلك إلى ترك وحدات النواة ومكتبات مساحة المستخدم والحزم الوصفية بإصدارات غير متوافقة.
إذا لم تكن متأكدًا من الفرع الذي يجب استخدامه، فإن الإصلاح العام الأكثر أمانًا هو:
sudo ubuntu-drivers install
تشير البيانات الأساسية إلى أنها ubuntu-driversتستخدم نفس المنطق الذي يستخدمه تطبيق برامج التشغيل الإضافية، وتختار افتراضيًا برامج التشغيل الموقعة مسبقًا والمعروفة بأنها تعمل مع التمهيد الآمن.
يؤدي تثبيت حزمة الوحدة النمطية الخاصة بالنواة إلى إصلاح الحالة الشائعة حيث يكون فرع برنامج التشغيل موجودًا ولكن النواة الجديدة تفتقر إلى وحدة NVIDIA المطابقة لها.
7. أعد تشغيل الجهاز بعد تغييرات الحزمة
إعادة التشغيل ليست مجرد إجراء شكلي هنا. قد يحتفظ نظام التشغيل بنسخة قديمة من وحدة NVIDIA في الذاكرة بينما يكون نظام إدارة الحزم APT قد قام بالفعل بتحديث مكتبات مساحة المستخدم على القرص. وقد وثّقت شركة Canonical هذا الأمر تحديدًا باعتباره سببًا لعدم توافق إصدار برنامج تشغيل/مكتبة NVML بعد التحديثات.
sudo reboot
بعد إعادة التشغيل، لا تقم بإعادة التثبيت فوراً. تحقق أولاً من النتيجة باستخدام الأوامر الواردة في القسم التالي.
بعد إجراء تغييرات على برنامج التشغيل أو وحدة النواة، أعد تشغيل الجهاز حتى تقوم النواة بتحميل وحدة NVIDIA المثبتة حديثًا وتعود مكونات مساحة المستخدم إلى نفس الإصدار.
تتضمن عملية الإصلاح الناجحة ثلاث علامات مفيدة: nvidia-smiعرض قائمة بوحدة معالجة الرسومات (GPU)، lsmodوعرض وحدات NVIDIA، /proc/driver/nvidia/versionوالإبلاغ عن إصدار الوحدة قيد التشغيل. بالنسبة لأحمال عمل CUDA، أعد تشغيل التطبيق أو الإطار الذي فشل سابقًا؛ nvidia-smiفهذا وحده يثبت وجود اتصال بين برامج التشغيل، وليس بالضرورة أن تكون جميع مكتبات CUDA في بيئتك متوافقة.
حالة نهائية سليمة: يستطيع برنامج nvidia-smi التواصل مع وحدة معالجة الرسومات (GPU) ويتم تحميل وحدات نواة NVIDIA. القيم المعروضة هي مثال فقط، وليست إصدارًا مطلوبًا.
إذا استمرت المشكلة: استخدم الأعراض لاختيار الإجراء التالي
"عدم توافق إصدار برنامج التشغيل/المكتبة"
أعد تشغيل الجهاز أولاً. ثم قارن إصدار وحدة النواة المُشغّلة مع الحزم المُثبّتة. تُشير Canonical إلى أن مكونات مساحة المستخدم المُحدّثة قد لا تتوافق مؤقتًا مع وحدة قديمة لا تزال مُحمّلة في الذاكرة. إذا استمر عدم التوافق بعد إعادة التشغيل، فتحقق من وجود مصادر حزم مختلطة وفروع برامج تشغيل متعددة.
لم يتم العثور على أي أجهزة، وتم تحميل برنامج نوفو.
يفحص:
lsmod | grep nouveau
تشير وثائق خادم أوبونتو إلى أن برنامج Nouveau قد يتعارض مع برنامج تشغيل NVIDIA الخاص في هذه الحالة. إذا كان برنامج Nouveau مُحمّلاً وتعتزم استخدام برنامج التشغيل الخاص، تُقدّم Canonical وثائق لحظره وإعادة بناء initramfs.
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/disable-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/disable-nouveau.conf
sudo update-initramfs -u
sudo reboot
لا تقم بحظر Nouveau لمجرد وجوده على القرص؛ تأكد أولاً من أنه محمل بالفعل وله صلة بالفشل.
modprobe nvidiaيقول إن المفتاح قد تم رفضه
ارجع إلى مسار التمهيد الآمن. استخدم وحدات أوبونتو الموقّعة كلما أمكن، أو أكمل تسجيل مفتاح التشفير الرئيسي (MOK) لوحدة DKMS. لن يؤدي إعادة تثبيت نفس الوحدة غير الموقّعة بشكل متكرر إلى تغيير قرار الثقة.
لا تحتوي النواة الجديدة على حزمة وحدات نمطية متوافقة
قم بتشغيل نواة قديمة معروفة بكفاءتها مؤقتًا، وحافظ على تحديث النظام، وتحقق مما إذا كانت أوبونتو توفر وحدة نمطية مُجمّعة مسبقًا متوافقة مع النواة الأحدث. إذا كنت تستخدم نواة مخصصة عن قصد، فقد يكون DKMS مناسبًا، ولكن راجع سجل بنائها وتأكد من توقيع التمهيد الآمن. تجنب تثبيت نواة قديمة بشكل دائم إلا إذا كان لديك خطة صيانة لتحديثات الأمان.
الأوامر التي يجب جمعها قبل طلب المساعدة
توفر هذه الأوامر حزمة تشخيصية مضغوطة دون تغيير النظام:
أدرج إصدار أوبونتو من lsb_release -aأو /etc/os-release، ونواة النظام بالتحديد من uname -r، وما إذا كان برنامج التشغيل قد تم تثبيته أصلاً عبر حزم أوبونتو، أو مستودع NVIDIA، أو PPA، أو برنامج التثبيت المستقل. عادةً ما تكون هذه التفاصيل أكثر أهمية من العبارة العامة "تعطل برنامج التشغيل بعد التحديث".
الوقاية العملية
يُفضل استخدام نظام التشغيل الخاص بنظام أوبونتو ubuntu-driversأو نظام التشغيل الإضافي لأنظمة سطح المكتب العادية.
احتفظ بحزمة تعريف نكهة النواة مثبتة حتى تتمكن تحديثات النواة المستقبلية من جلب وحدات NVIDIA المتوافقة.
أعد تشغيل الجهاز بعد ترقيات النواة أو برنامج تشغيل NVIDIA بدلاً من الاستمرار في استخدام مجموعة مختلطة من البيانات الموجودة في الذاكرة/على القرص.
احتفظ بنواة واحدة على الأقل معروفة بأنها تعمل بشكل صحيح حتى تتأكد من أن النواة الجديدة تعمل مع برنامج تشغيل وحدة معالجة الرسومات.
تجنب خلط حزم أوبونتو، وPPAs، ومثبت NVIDIA المستقل، ومستودعات متعددة إلا إذا كنت تدير العواقب عن قصد.
تختلف فروع برامج التشغيل، وواجهة برمجة التطبيقات الثنائية (ABI) لنواة النظام، وأسماء الحزم باختلاف الإصدار. لذا، استبدل دائمًا القيم التي يُبلغ عنها نظامك وAPT بدلاً من اعتبار الإصدارات النموذجية عامة.