نَــبَــرَ


نُــبَـرِزُ الخَـطَّ، فَيَـتَجَـلَّى البَـيَـانُ

إنفيديا على لينكس من أين تبدأ ولماذا تتعثر الأمو

المشكلة تبدأ من قلب النواة، حيث تُدمَج تعريفات العتاد ليعمل كل شيء بتناغم. في عالم لينكس تُفضَّل الشيفرة المفتوحة، لكن إنفيديا لا تتيح تعريفات مفتوحة كما تفعل AMD، فتظل فجوة تقلّل الانسجام. في عام 2022 فتحت إنفيديا جزءا من الشيفرة لطرازات أحدث، فخفّ الضغط ولم يَختفِ. هنا تقدّم مجتمع freedesktop.org بإصدارَيْ Nouveau وNVK (بديل مفتوح المصدر وحديث لبطاقات إنفيديا الجديدة يهدف لأداء أفضل وتجربة أحدث). هذه المحاولات نافعة، لكنها ليست التعريف الأصلي، لذلك لا تستخرج كامل قوة البطاقة، وتأتي أحيانا بمشكلات جانبية. ومع ذلك أصبحت الخيارات الافتراضية التي تحملها أنوية لينكس، كمن يقول: هذا المتاح الآن حتى إشعار آخر.

عند الإقلاع تظهر العقدة الأولى. النواة تسحب Nouveau تلقائيا، فيتعطّل تحميل تعريف إنفيديا الرسمي. تتدخل التوزيعات لتُمهّد الطريق، تمنع تحميل Nouveau مبكرا، وتضبط إعدادات النواة وملفات ‎initramfs‎ وهي صورة مؤقته تساعد النواة ان ترتبط مع نظام الملفات. إي انها تقدم مخازن لتعريفات انفيديا مع حزم للتثبيت و بعض السكربتات. ثم يأتي DKMS كعامل صيانة هادئ يعيد بناء التعريف بعد كل ترقية للنواة حتى تتلاءم القطع من جديد.

لكن التوازن هش. تحديث في النواة أو قفزة في تعريف إنفيديا قد يكسر الانسجام، فنعود إلى إعادة التجميع عبر DKMS لإنتاج وحدة نواة تضيف ما يلزم ليفهم العتاد بقية المنظومة. يزداد المشهد تعقيدا مع Wayland الذي حل محل X11 في إدارة النوافذ وما يصاحبه أحيانا من اضطراب مع بطاقات إنفيديا، ومع الأجهزة الهجينة في بعض الحواسيب المحمولة حيث يتناوب المعالج الرسومي المتكامل والمنفصل على الحمل. إن قررت الإصلاح بنفسك، فتعامل معه كصيانة دورية بعد كل تحديث، وألقِ نظرة على ‎/lib/modules/‎ لتتأكد أن كل قطعة في مكانها.

التوزيعات المقترحة:

1- Pop!OS

بوب أو أس الأفضل للمبتدئين

تتعرّف بسلاسة على بطاقات إنفيديا، وتدير التحديثات دون إزعاج أو حاجة لسطر الأوامر، وتجيد التعامل مع الأجهزة ذات أكثر من بطاقة رسومية. مبنية على أوبونتو، فتستفيد من دعم عتاد واسع وقاعدة مستخدمين كبيرة.

2- Ubuntu LTS
أوبونتو الدعم الطويل الأفضل استقرارا

تفضّل الإيقاع الهادئ. اختبارات أطول قبل الإصدار وتحديثات أقل، ما يعني تغييرات أقل ومشكلات أندر. كثير من التعريفات يأتي مُجمّعا مسبقا، فيسهل التثبيت وتستقر التجربة.

3- Fedora
فيدورا الأفضل لعتاد حديث

توفر أنوية حديثة مع حزمة akmod-nvidia التي تراقب تغيّر النواة وتعيد تجميع التعريف آليا، فتشعر أن النظام يشد البراغي فور ارتخائها.

4- openSUSE Tumbleweed
أوبن سوزا تامبلوييد الأفضل للتوزيعات ذات الترقيات المستمرة

يمتلك مستودعا خاصا بتعريفات إنفيديا، ويدعم تعدد الأنوية، ويتيح الرجوع السريع لإصدار سابق عند ظهور مشكلة، كزر نجاة قبل منعطف حاد.

في النهاية، تظهر أغلب العثرات مع الإصدارات الرئيسية من الأنوية مثل ‎6.16‎ و‎6.17‎ أكثر من الفرعية كـ ‎6.16.12‎ أو ‎6.17.7‎. إن أردت تجربة أهدأ لعام تقريبا، فاختيار أنوية LTS رهان عملي. وبين إصلاحٍ يدوي أو الاعتماد على ما تهيئه التوزيعات، الغاية واحدة: تشغيل بطاقتك بانسجامٍ أعلى وضجيجٍ أقل.

دليل تشخيص وإصلاح مشاكل تعريف NVIDIA على لينكس


الجزء الأول : التشخيص

1: التحقق من Secure Boot

استخدم الأمر التالي:

mokutil --sb-state

  • إذا كانت النتيجة SecureBoot enabled: السبب غالبًا لأن الوحدات غير الموقعة تُمنع من التحميل تحت الإقلاع الآمن.

    • الحل السريع: أوقف Secure Boot من إعدادات BIOS/UEFI.

    • بديل متقدم: وقّع تعريف NVIDIA يدويًا عبر MOK للحفاظ على Secure Boot مفعّلاً (راجع الملحق).

  • إذا كانت النتيجة SecureBoot disabled: انتقل للخطوة التالية.

2: الإقلاع بنواة أقدم

من شاشة GRUB، اختر Advanced options ثم اختر نواة أقدم للاختبار.

  • إذا اشتغل النظام: المشكلة في عدم توافق البناء مع النواة الجديدة، ويمكن المتابعة إلى مسار الإصلاح أ.

  • إذا لم يعمل: أكمل للخطوة التالية.

3: فحص تحميل وحدة NVIDIA

lsmod | grep nvidia

  • إذا ظهرت nvidia وnvidia_drm: الوحدة تعمل، انتقل للخطوة 4.

  • إذا لم يظهر شيء: فشل تحميل الوحدة أو بناؤها، انتقل إلى مسار الإصلاح أ.

4: التحقق من نوع الجلسة (Wayland أو X11)

echo $XDG_SESSION_TYPE

  • إذا كانت wayland: قد تكون المشكلة في الجلسة نفسها، انتقل إلى مسار الإصلاح ب.

  • إذا كانت x11: الجلسة عادة أكثر استقرارًا مع NVIDIA، ويمكن متابعة التحليل المتقدم إن لزم.


الجزء الثاني: الإصلاح

مسار الإصلاح (أ) : فشل تحميل الوحدة أو فشل بناء DKMS

تعطيل تعريف nouveau المنافس

تحقق أولًا إن كان nouveau محمّلًا:

lsmod | grep nouveau

إن كان نشطًا، أضفه للقائمة السوداء:

echo -e "blacklist nouveau\noptions nouveau modeset=0" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf

ثم أعد بناء صورة الإقلاع حسب التوزيعة:

  • Ubuntu / Debian:

sudo update-initramfs -u

  • Fedora / openSUSE:

sudo dracut --force

  • Arch:

sudo mkinitcpio -P

إعادة بناء وحدة التعريف

  • Ubuntu / Debian / Pop!_OS:

sudo apt install --reinstall linux-headers-$(uname -r) sudo dkms autoinstall

  • Fedora:

sudo dnf reinstall kernel-devel-$(uname -r) sudo akmods --force

  • Arch / Manjaro:

sudo pacman -S linux-headers sudo dkms autoinstall

  • openSUSE:

sudo zypper install --force kernel-source kernel-syms sudo zypper reinstall nvidia-driver-G06-kmp-default

بعد ذلك، أعد بناء initramfs كما في الخطوة السابقة، ثم أعد التشغيل.

الحل الأخير: الحذف الكامل وإعادة التثبيت

إذا فشل كل شيء، قم بإزالة التعريف بالكامل وأعد تثبيته من جديد.

  • Ubuntu / Debian:

sudo apt purge '*nvidia*' --autoremove sudo ubuntu-drivers autoinstall sudo reboot

  • Fedora (مع RPM Fusion):

sudo dnf remove '*nvidia*' sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda sudo reboot

  • Arch / Manjaro:

sudo pacman -Rns nvidia nvidia-utils sudo pacman -S nvidia-dkms nvidia-utils sudo reboot

  • openSUSE:

sudo zypper rm '*nvidia*' sudo zypper install-new-recommends --repo repo-non-free

أو لتثبيت التعريف المناسب تلقائيًا

sudo zypper install-new-recommends --repo NVIDIA sudo reboot


مسار الإصلاح (ب) : مشاكل Wayland وتجمد الواجهة

  1. سجّل الخروج من الجلسة الحالية.

  2. في شاشة تسجيل الدخول، اختر رمز الترس.

  3. بدّل الجلسة من Wayland إلى X11 أو X.Org.

  4. سجّل الدخول مجددًا.

إذا لم يظهر خيار X11:

  • في Fedora:

sudo dnf install xorg-x11-server-Xorg

  • في Ubuntu:

sudo apt install xorg

  • في Debian:

sudo apt install xorg

  • في openSUSE:

sudo zypper install gnome-session


الجزء الثالث: التحليل المتقدم

فحص السجلات

sudo dmesg | grep -i -E 'nvidia|nouveau|drm' journalctl -b | grep -i -E 'nvidia|nouveau'

أمثلة تشخيص سريعة:

  • version magic mismatch: الوحدة بُنيت لنواة مختلفة، أعد بناء DKMS/akmods.

  • failed to initialize GSP: مشكلة Firmware/تهيئة، جرّب ضبط خيارات نواة NVIDIA مؤقتًا.

  • Device or resource busy: تعريف nouveau نشط مبكرًا، عطّله وأعد بناء initramfs.

الدخول من واجهة TTY عند الشاشة السوداء

اضغط Ctrl + Alt + F3، ثم نفّذ من الطرفية:

sudo dmesg | grep nvidia sudo dkms autoinstall sudo reboot


الجزء الرابع: الوقاية

استخدام Timeshift وSnapper قبل التحديثات الكبيرة

  • Timeshift:

sudo timeshift --create --comments "Before NVIDIA update"

  • Snapper (openSUSE):

sudo snapper create --description "Before NVIDIA update"

اختيار الحزمة الأنسب حسب التوزيعة

التوزيعةالحزمة الموصى بهاالسبب
Arch / Manjaronvidia-dkmsيعيد بناء الوحدة تلقائيًا مع كل تحديث للنواة.
Fedoraakmod-nvidiaيدعم البناء التلقائي عبر akmods.
Ubuntuubuntu-drivers autoinstallيختار التعريف الأنسب تلقائيًا ويضبط الاعتمادات.
openSUSEinstall-new-recommendsيثبت التعريف المتوافق مع العتاد من المستودعات.

متى نُصلح ومتى نرجع للخلف

يمكن الإصلاح إذا:

  • بُنيت الوحدة بنجاح بعد تثبيت headers.

  • تعطيل nouveau أصلح الشاشة السوداء.

  • تشغيل X11 حسّن الأداء.

الرجوع للخلف إذا:

  • فشل بناء الوحدة رغم توافر الملفات.

  • استمرار فشل nvidia-smi.

  • التعريف الجديد سبب مشاكل رسومية خطيرة.


الملحق: توقيع تعريف NVIDIA مع Secure Boot

هذا القسم اختياري لمن يرغب بإبقاء Secure Boot مفعّلًا.

إنشاء مفتاح MOK

openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 3650 -subj "/CN=My NVIDIA MOK/"

استيراده

sudo mokutil --import MOK.der

ستُطلب كلمة مرور لمرة واحدة، ثم أعد التشغيل وسجّل المفتاح من شاشة MOKManager عبر Enroll MOK ثم Continue.

توقيع وحدة NVIDIA

ابحث عن مسارات الوحدات ثم وقّعها:

find /lib/modules/$(uname -r)/ -name "nvidia*.ko*" sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 MOK.priv MOK.der /PathTo/nvidia.ko

أعد التشغيل. بعد كل تحديث للتعريف أو النواة قد تحتاج لتكرار التوقيع.


جدول تعريفات NVIDIA حسب طراز البطاقة وتوزيعة لينكس

سلسلة البطاقة والمعماريةأمثلة على الطرازاتالفرع والإطار الزمنياسم الحزمة حسب التوزيعةملاحظات هامة
سلسلة RTX 40, 30, 20 سلسلة GTX 16, 10 (Ada, Ampere, Turing, Pascal)RTX 4090, RTX 3080, RTX 2060, GTX 1660, GTX 1070الفرع الحالي المدعوم (550.xx، 2024–2025) — 2024 وأحدث- Debian/Ubuntu: nvidia-driver-550 - Fedora: akmod-nvidia - Arch: nvidia-dkms - openSUSE: nvidia-driver-G06-kmp-defaultمناسب لأغلب البطاقات الحديثة؛ أفضل أداء، ودعم Wayland هو الأفضل نسبيًا.
سلسلة GTX 900, 700, 600 (Maxwell, Kepler)GTX 980, GTX 970, GTX 780, GTX 750 Ti, GTX 660فرع مدعوم أمنيًا فقط (470.xx، 2021–2024) — ما قبل 2022- Debian/Ubuntu: nvidia-driver-470 - Fedora: akmod-nvidia-470xx - Arch: nvidia-470xx-dkms - openSUSE: nvidia-driver-G05-kmp-defaultتحديثات أمنية فقط؛ دعم Wayland محدود جدًا؛ آخر فرع لبطاقات Kepler.
سلسلة GTX 500, 400 (Fermi)GTX 580, GTX 560, GTX 460فرع منتهي الدعم (390.xx وما قبله) — قبل 2016 تقريبًا- Debian/Ubuntu: nvidia-driver-390 - Fedora: akmod-nvidia-390xx - Arch: nvidia-390xx-dkms - openSUSE: nvidia-driver-G04-kmp-defaultاحتمال عدم التوافق مع أنوية حديثة؛ لا يدعم Wayland.
سلسلة GeForce 8, 9, 100–300 (Tesla)9800 GT, 8800 GT, GT 220فرع أرشيفي (340.xx) — دعم منتهي- Debian/Ubuntu: nvidia-driver-340 - Fedora/Arch: غالبًا عبر مستودعات غير رسمية (AUR في Arch). - openSUSE: nvidia-driver-G03-kmp-defaultصعب التشغيل على الأنظمة الحديثة؛ يفضّل استخدام nouveau.

ملاحظة: إن توفر خيار يعتمد على إعادة البناء التلقائي مثل nvidia-dkms أو akmod-nvidia فاختَره لتفادي مشاكل تحديث النواة.