التخطى الى المحتوى الأساسى
تعطّل برنامج تشغيل ALFA بعد تحديث النواة؟ دليل الإصلاح الشامل
  1. المدونة/

تعطّل برنامج تشغيل ALFA بعد تحديث النواة؟ دليل الإصلاح الشامل

محتوى المقال

قمت بتشغيل sudo apt upgrade، وبعد إعادة التشغيل اختفى محول ALFA تمامًا — لا واجهة، لا أضواء، لا شيء. هذا هو السؤال الأكثر شيوعًا في دعم محولات ALFA Network USB WiFi على Linux، والتحديثات الخاصة بالنواة هي السبب في جميع الحالات تقريبًا. يرشدك هذا الدليل خلال عملية تشخيص وإصلاح منهجية لعائلتَي شريحتين الأكثر تضررًا: RTL8812AU (الموجودة في AWUS036ACH وAWUS036ACS) وMT7921AUN (الموجودة في AWUS036AXM وAXML). اتبع خطوات كل قسم وسيعود محولك إلى العمل في أقل من 15 دقيقة.

TL;DR: سبب تعطل تعريف ALFA بعد تحديث النواة هو عدم تزامن الترويسات والوحدات. لـ RTL8812AU أعد البناء عبر dkms autoinstall، و لـ MT7921AUN ثبّت firmware-misc-nonfree، وللإصلاح طويل الأمد استخدم apt full-upgrade.

لماذا تعطّل تحديثات النواة برامج التشغيل
#

تأتي برامج تشغيل WiFi على Linux في نوعين: برامج تشغيل داخل النواة المضمّنة في شجرة مصدر النواة، وبرامج تشغيل خارج الشجرة الموجودة خارجها. فهم أي نوع تستخدمه يوضح بالضبط سبب تسبّب التحديثات في حدوث مشاكل.

برامج التشغيل خارج الشجرة وDKMS
#

تستخدم شريحة RTL8812AU برنامج تشغيل خارج الشجرة يديره المجتمع (الأكثر شيوعًا هو فرع aircrack-ng/rtl8812au). نظرًا لأنه ليس جزءًا من مصدر النواة الرسمي، يجب تجميعه مقابل ترويسات نواتك الحالية. في كل مرة يتغير فيها إصدار النواة — حتى لو كان تحديث صغير مثل 6.6.156.6.20 — لا يكون الوحدة المُجمَّعة متوافقة بعد الآن وترفض النواة تحميلها.

DKMS (الدعم الديناميكي لوحدات النواة) هو الحل القياسي. يسجّل DKMS الكود المصدري لبرنامج التشغيل مع خطاف على مستوى النظام يعيد تجميع الوحدات تلقائيًا عند تثبيت حزمة نواة جديدة. عندما يكون DKMS مُعدًّا بشكل صحيح، تكون تحديثات النواة شفافة: تعيد التشغيل في النواة الجديدة ومحولك يعمل بالفعل.

يمكن أن يفشل DKMS بصمت لسببين:

  1. ترويسات النواة مفقودة — يحتاج المُجمِّع إلى تثبيت linux-headers-$(uname -r) في وقت وصول النواة الجديدة. إذا وصلت الترويسات بعد النواة، يفوّت DKMS نافذة البناء.
  2. dkms.conf قديم — إذا كان ملف الإعداد الخاص بإصدار برنامج التشغيل المثبّت لا يتطابق مع شجرة المصدر، يفشل البناء بأخطاء غامضة.

برامج التشغيل داخل النواة (MT7921AUN)
#

شريحة MT7921AUN موجودة في النواة الرئيسية منذ الإصدار 5.18. هذا يعني عدم الحاجة إلى خطوة تجميع — النواة تعرف بالفعل كيف تتواصل مع الجهاز. ومع ذلك، لا يزال برنامج التشغيل يعتمد على ملف ثنائي للبرامج الثابتة (mt7921u.bin) تُوفّره حزمة منفصلة. إذا كانت هذه الحزمة مفقودة أو غيّر تحديث النواة واجهة برمجة البرامج الثابتة المتوقعة، قد يبدو المحول محمّلًا لكنه يفشل في الاتصال بأي شبكة.

أوامر التشخيص السريع
#

قبل تغيير أي شيء، شغّل هذين الأمرين لفهم نقطة البداية:

# ما النواة التي تعمل حاليًا؟
uname -r

# ما وحدات DKMS المبنية (ولأي نوى)؟
sudo dkms status

إذا أظهر dkms status أن برنامج تشغيل RTL8812AU مبني لنواة أقدم وليس للنواة الحالية، فقد وجدت المشكلة.


الخطوة 1: تشخيص برنامج التشغيل
#

اعمل من خلال تسلسل التشخيص هذا من الأعلى إلى الأسفل. كل فحص يُضيّق نطاق السبب الجذري قبل أن تبدأ في إجراء التغييرات.

# التحقق من النواة الحالية
uname -r

# التحقق مما إذا كانت هناك أي واجهة لاسلكية
ip link show | grep -E "wlan|wlp"

# التحقق مما إذا كانت وحدة برنامج التشغيل محمّلة حاليًا
lsmod | grep -E "88XXau|rtl8812au|mt7921u"

# التحقق من حالة بناء DKMS لمحولات RTL8812AU
sudo dkms status

# مسح مخزن رسائل النواة بحثًا عن رسائل خطأ ذات صلة
sudo dmesg | grep -E "ALFA|rtl8812|mt7921" | tail -20

تفسير النتائج:

المخرجاتالمعنى
ip link لا يُرجع أي شيء لاسلكيوحدة النواة غير محمّلة أو الجهاز غير مُعدَّد
lsmod لا يُظهر وحدة مطابقةفشل تحميل الوحدة — تحقق من dmesg للأخطاء
dkms status يُظهر broken أو مفقود للنواة الحاليةفشل بناء DKMS — اتبع خطوات إصلاح RTL8812AU
dmesg يُظهر firmware: failed to load mt7921uحزمة البرامج الثابتة مفقودة — اتبع خطوات إصلاح MT7921AUN
dmesg يُظهر disagrees about version of symbolالوحدة مبنية لترويسات نواة خاطئة
إذا أظهر ip link الواجهة لكنها تختفي عند محاولة استخدامها، انتقل مباشرة إلى جدول استكشاف الأخطاء الخاص بالمحول. الواجهة المرئية لكن غير العاملة لها أسباب مختلفة عن الواجهة المفقودة تمامًا.

الإصلاح: برنامج تشغيل RTL8812AU (AWUS036ACH وACS وEACS)
#

RTL8812AU هو شريحة ALFA الأكثر استخدامًا في اختبار الاختراق بسبب دعم النطاق المزدوج وضع المراقبة الموثوق. يتطلب برنامج تشغيل خارج الشجرة وبالتالي هو الشريحة الأكثر تضررًا من تحديثات النواة.

4.1 — تثبيت ترويسات النواة
#

قبل لمس أي برنامج تشغيل، تأكد أولًا من تثبيت ترويسات نواتك الحالية:

sudo apt update
sudo apt install linux-headers-$(uname -r)

إذا اكتمل هذا الأمر بنجاح، فالترويسات موجودة الآن ويمكن لإعادة بناء DKMS المتابعة. إذا أبلغ عن عدم العثور على الحزمة، فقد تكون نواتك حديثة جدًا بالنسبة لصورة المستودع الحالية — شغّل sudo apt full-upgrade أولًا لسحب الترويسات المطابقة، ثم أعد التشغيل قبل المتابعة.

4.2 — إعادة البناء عبر DKMS (المسار الأسرع)
#

مع وجود الترويسات، اطلب من DKMS إعادة بناء جميع الوحدات المسجّلة للنواة الحالية:

sudo dkms autoinstall

راقب المخرجات بعناية. يُنهي البناء الناجح بـ DKMS: install completed. إذا نجح، أعد تحميل الوحدة دون إعادة التشغيل:

sudo modprobe 88XXau
ip link show | grep wlan

إذا ظهرت الواجهة، انتهيت. تابع إلى الخطوة 4.4 للتحقق من وضع المراقبة.

4.3 — إعادة التثبيت الكاملة من المصدر (عند فشل DKMS)
#

إذا أبلغ dkms autoinstall عن أخطاء، فإن مصدر برنامج التشغيل المسجّل تالف أو قديم. أزله بالكامل وأعد التثبيت من أحدث مصدر upstream:

# إزالة جميع إصدارات برنامج التشغيل المسجّلة في DKMS
sudo dkms remove rtl8812au/5.6.4.2 --all 2>/dev/null

# استنساخ أحدث مصدر لبرنامج التشغيل
git clone https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au

# تسجيل المصدر مع DKMS والتجميع والتثبيت في خطوة واحدة
sudo make dkms_install
رقم الإصدار 5.6.4.2 في أمر dkms remove هو إصدار شائع لكن إصدارك قد يختلف. شغّل sudo dkms status أولًا واستخدم سلسلة الإصدار الدقيقة الظاهرة في المخرجات.

بعد اكتمال البناء:

sudo modprobe 88XXau
ip link show | grep wlan

4.4 — التحقق من وضع المراقبة
#

المحول موجود فيزيائيًا وبرنامج التشغيل محمّل. تأكد من أن وضع المراقبة — الميزة التي تجعل هذا المحول مفيدًا لاختبار الأمان — لا يزال يعمل:

sudo airmon-ng start wlan0

استبدل wlan0 باسم واجهتك الفعلية من ip link. يُظهر رد ناجح monitor mode vif enabled مع اسم واجهة جديد مثل wlan0mon.

4.5 — طريقة حزمة Kali (الأسهل)
#

يأتي Kali Linux مع بناء DKMS مُعبَّأ مسبقًا لبرنامج تشغيل RTL8812AU يبقى متزامنًا مع نواة Kali. إذا كنت على Kali، استخدم هذا الأسلوب بدلًا من الاستنساخ من GitHub:

sudo apt update && sudo apt install realtek-rtl88xxau-dkms

هذا الأمر الواحد يثبّت مصدر برنامج التشغيل، يسجّله مع DKMS، ويبنيه للنواة الحالية. ستبقي عمليات apt full-upgrade المستقبلية الترويسات وبرنامج التشغيل متزامنين تلقائيًا.


الإصلاح: برنامج تشغيل MT7921AUN (AWUS036AXM وAXML)
#

تتخذ شريحة MT7921AUN (Wi-Fi 6E) مسارًا مختلفًا تمامًا. نظرًا لكونها برنامج تشغيل داخل النواة منذ Linux 5.18، لا داعي لـ DKMS ولا تجميع ولا استنساخ من GitHub. تحديثات النواة لا ينبغي أن تعطّلها — لكن مشاكل تعبئة البرامج الثابتة قد تُسبّب ذلك أحيانًا.

5.1 — تثبيت حزمة البرامج الثابتة
#

وحدة النواة (mt7921u.ko) موجودة بالفعل، لكنها تحتاج إلى ملف ثنائي للبرامج الثابتة من مساحة المستخدم لتهيئة الجهاز:

sudo apt install firmware-misc-nonfree

على Ubuntu، هذه الحزمة موجودة في مكوّن مستودع non-free. إذا فشل الأمر، تأكد من تفعيل مصادر non-free في /etc/apt/sources.list.

5.2 — إعادة تحميل برنامج التشغيل
#

بعد تثبيت البرامج الثابتة، أجبر على إعادة تحميل برنامج التشغيل دون إعادة التشغيل:

sudo modprobe -r mt7921u && sudo modprobe mt7921u

ثم تحقق من الواجهة:

ip link show | grep -E "wlan|wlp"

5.3 — التحقق من إصدار النواة
#

يتطلب برنامج تشغيل MT7921AUN نواة 5.18 أو أحدث. إذا ثبّتّ صورة Kali أو Ubuntu ضئيلة تسبق هذا الإصدار، فالوحدة ببساطة غير موجودة:

uname -r
# يجب أن تكون المخرجات 5.18.x أو أعلى

إذا كانت نواتك أقدم من 5.18، قم بترقيتها (الخطوة 5.4).

5.4 — ترقية النواة
#

sudo apt update && sudo apt full-upgrade && sudo reboot
استخدم full-upgrade بدلًا من upgrade. يحتجز الأمر الفرعي upgrade الحزم التي تتطلب إزالة حزم أخرى — وهذا غالبًا يعني أن حزمة النواة نفسها محتجزة. full-upgrade يسمح بحل التبعيات الضرورية.

5.5 — التحقق بعد إعادة التشغيل
#

بعد إعادة التشغيل في النواة الجديدة، تأكد من أن كل شيء يعمل:

sudo modprobe mt7921u
ip link show
sudo dmesg | grep mt7921 | tail -10

تُظهر مخرجات dmesg السليمة تحميل البرامج الثابتة بنجاح وتسجيل جهاز USB كواجهة شبكة.


الحفاظ على برامج التشغيل بعد التحديثات المستقبلية
#

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

استخدم دائمًا full-upgrade على Kali rolling:

sudo apt update && sudo apt full-upgrade

يضمن أمر full-upgrade أنه عند تثبيت حزمة نواة جديدة، تُثبَّت حزمة linux-headers المطابقة في نفس المعاملة. تُطلَق خطافات DKMS أثناء تثبيت الحزم — إذا وصلت الترويسات في تشغيل apt لاحق بعد النواة، يفوّت DKMS البناء.

تثبيت حزمة DKMS الوصفية:

sudo apt install dkms linux-headers-generic

يجلب هذا linux-headers-generic كتبعية لحزمة DKMS، بحيث تبقى الترويسات دائمًا محدّثة جنبًا إلى جنب مع النواة.

مجموعة نواة Ubuntu HWE:

على Ubuntu LTS، تتلقى مجموعة نواة تمكين الأجهزة تحديثات أكثر تكرارًا ودعمًا أفضل للأجهزة من نواة GA. ثبّتها مرة واحدة وستُعالَج التحديثات تلقائيًا:

sudo apt install linux-generic-hwe-24.04

التحقق من تفعيل التثبيت التلقائي لـ DKMS:

cat /etc/dkms/framework.conf | grep autoinstall

إذا كان هذا السطر معلّقًا أو مضبوطًا على no، لن يُعيد DKMS بناء الوحدات تلقائيًا. قم بإلغاء التعليق أو ضبطه على yes في /etc/dkms/framework.conf.


جدول استكشاف الأخطاء الخاص بالمحول
#

الأعراضالشريحة المحتملةالسبب الجذريالإصلاح السريع
اختفاء الواجهة بعد إعادة التشغيلRTL8812AUفشل بناء DKMSsudo dkms autoinstall
اختفاء الواجهة، يُظهر dmesg خطأ في البرامج الثابتةMT7921AUNحزمة البرامج الثابتة مفقودةsudo apt install firmware-misc-nonfree
تظهر الواجهة لكن تختفي بعد 30 ثانيةRTL8812AUعدم تطابق إصدار الوحدةsudo dkms remove --all && sudo make dkms_install
فشل وضع المراقبة مع SIOCSIFFLAGSRTL8812AUفرع برنامج التشغيل خاطئاستنساخ aircrack-ng/rtl8812au وإعادة التثبيت
iwconfig يُظهر لا امتدادات لاسلكيةأيالوحدة غير محمّلةsudo modprobe 88XXau أو sudo modprobe mt7921u
الواجهة موجودة لكن لا توجد شبكاتMT7921AUNالنواة < 5.18sudo apt full-upgrade && sudo reboot
dkms status يُظهر brokenRTL8812AUعدم تطابق المصدر/الترويساتsudo apt install linux-headers-$(uname -r) ثم إعادة البناء
قدرة TX محدودة بـ 20 dBmRTL8812AUقفل النطاق التنظيميsudo iw reg set US (عدّل لمنطقتك)

إذا لم ينجح شيء: طريقة التثبيت الجديد
#

عندما تفشل عدة محاولات إعادة بناء ويُظهر dkms status مخرجات مربكة من عدة تثبيتات جزئية، فإن البداية من الصفر أسرع من التصحيح:

# إزالة حزمة Kali إذا كانت مثبّتة
sudo apt purge realtek-rtl88xxau-dkms

# إزالة جميع إدخالات DKMS لـ rtl8812au
for ver in $(sudo dkms status | grep rtl8812au | awk -F'[,/]' '{print $2}' | tr -d ' '); do
    sudo dkms remove rtl8812au/$ver --all
done

# إزالة دليل المصدر المتبقي إن وُجد
sudo rm -rf /usr/src/rtl8812au*

# مسح أي ذاكرة تخزين مؤقت للوحدات القديمة
sudo depmod -a

# استنساخ جديد وتثبيت
git clone https://github.com/aircrack-ng/rtl8812au.git /tmp/rtl8812au
cd /tmp/rtl8812au
sudo make dkms_install
sudo modprobe 88XXau
ip link show | grep wlan
الحلقة التي تحذف إدخالات DKMS ستفشل بصمت إذا لم تُعثر على إصدارات — وهذا لا بأس به. الخطوة المهمة هي sudo rm -rf /usr/src/rtl8812au* التي تُزيل أي شجرة مصدر قد تكون في حالة تالفة.

قائمة التحقق الوقائية
#

استخدم هذه القائمة قبل كل تحديث للنظام لتجنب المفاجآت أثناء المهام:

قبل apt upgrade:

# اطّلع على حزم النواة المعلّقة تحديدًا
apt list --upgradable 2>/dev/null | grep linux-image

إذا كانت نواة جديدة قادمة، خطّط لإعادة تشغيل اختبارية قبل أي عمل إنتاجي.

بعد كل ترقية وإعادة تشغيل:

# تأكد من عودة المحول
ip link show | grep -E "wlan|wlp"

# تأكد من أن وضع المراقبة لا يزال يعمل
sudo airmon-ng check

احتفظ بخيار احتياطي:

  • احتفظ بمحرك USB يحتوي صورة Kali Live (أو محول ثانٍ ببرنامج تشغيل يعمل بشكل موثوق). مشاكل الاتصال أثناء مهمة مجدولة مكلفة — الخيار الاحتياطي المادي يستغرق دقائق للتحضير ويمكنه إنقاذ الموقف.

تثبيت حزم برامج التشغيل الحرجة على Kali:

# منع حزمة برنامج تشغيل معين من الإزالة التلقائية أثناء الترقيات
sudo apt-mark hold realtek-rtl88xxau-dkms

افكّ التثبيت قبل ترقية برنامج التشغيل صراحةً:

sudo apt-mark unhold realtek-rtl88xxau-dkms && sudo apt upgrade realtek-rtl88xxau-dkms

常見問題

لماذا تتعطل محولات ALFA بعد تحديث النواة؟

يستخدم RTL8812AU تعريفاً خارج النواة، والوحدة المُجمَّعة سابقاً تصبح غير متوافقة مع كل تغيير في إصدار النواة. يمكن لـ DKMS إعادة البناء تلقائياً، لكن غياب ترويسات النواة أو الإعدادات القديمة يسبب الفشل.

كيف أشخّص سبب تعطل تعريف ALFA بسرعة؟

نفّذ uname -r لتأكيد إصدار النواة، ثم dkms status لفحص حالة بناء الوحدة، وأخيراً dmesg لعرض رسائل خطأ البرنامج الثابت أو تحميل الوحدة.

ما أسرع طريقة لإصلاح تعطل تعريف RTL8812AU؟

بعد تثبيت ترويسات النواة المطابقة نفّذ dkms autoinstall. إذا فشل، انسخ مستودع aircrack-ng/rtl8812au من جديد ونفّذ make dkms_install.

ماذا أفعل إذا تعذر اتصال MT7921AUN بعد تحديث النواة؟

MT7921AUN تعريفه مدمج في النواة، المشكلة عادة في البرنامج الثابت. ثبّت حزمة firmware-misc-nonfree وتأكد أن إصدار النواة لا يقل عن 5.18.

كيف أمنع تحديثات النواة من تعطيل التعريف مجدداً؟

استخدم apt full-upgrade بدلاً من apt upgrade لضمان تثبيت الترويسات والنواة معاً. ثبّت dkms و linux-headers-generic كحزمة عامة للحفاظ على التبعيات.

الخلاصة
#

إخفاقات برنامج تشغيل ALFA بعد تحديثات النواة تتبع نمطًا متوقعًا ولها حلول متوقعة. محولات RTL8812AU تحتاج إلى dkms autoinstall (أو استنساخ جديد من aircrack-ng/rtl8812au) بالإضافة إلى ترويسات النواة المطابقة. محولات MT7921AUN تحتاج إلى firmware-misc-nonfree ونواة 5.18 أو أحدث. الإصلاح طويل الأمد في كلتا الحالتين هو التأكد من أن apt full-upgrade — وليس apt upgrade — هو أمر التحديث القياسي لديك، مما يبقي الترويسات والنواة متزامنين.


أدلة ذات صلة:

المراجع
#

  1. تعريف aircrack-ng الرسمي لـ rtl8812au
  2. وثائق DKMS الرسمية
  3. وثائق إدارة حزم Kali Linux
  4. وثائق Linux Kernel الرسمية
  5. تعريف MediaTek MT7921