USBPcap مقابل usbmon: اختيار مسار التقاط USB للتشخيص الميداني
قارن USBPcap على Windows وusbmon على Linux لتشخيص بروتوكول USB. يتضمن أسئلة إعداد الالتقاط، والأدلة التي يجب الحفاظ عليها، وكيفية مقارنة حالات فشل Windows فقط مقابل التقاطات Linux.
غالبًا ما تبدأ تشخيصات USB بسؤال حول المنصة: "هل نلتقط على Linux أم Windows؟ الإجابة مهمة لأن مسار الالتقاط مختلف. يستخدم Linux عادة usbmon. يستخدم Windows عادة USBPcap. كلاهما يمكن أن يدعم تشخيصات ميدانية مفيدة، لكنهما يأتيان بافتراضات إعداد مختلفة، وأذونات، وسلوك برنامج تشغيل، وأنماط فشل."
إجابة سريعة: "استخدم USBPcap عندما يتكرر الخطأ فقط على مضيف Windows، أو مكدس برنامج تشغيل، أو جهاز عميل. استخدم usbmon عندما تتحكم في جهاز مختبر Linux، أو تحتاج إلى احتكاك إعداد أقل، أو تريد التقاطًا قابلاً للتكرار من مقاعد CI وأنظمة التحقق المدمجة. استخدم كليهما عندما يختلف Windows وLinux — هذا الاختلاف غالبًا هو الدليل."
ما يجب التقاطه أولاً
لا تبدأ بالتصفية بقوة. لعمل البرامج الثابتة USB، يجب أن يتضمن الالتقاط الأول التعداد وأول نقل على مستوى التطبيق بعد التهيئة. إذا بدأت بعد أن يكون الجهاز مُهيأ بالفعل، فقد تفقد الواصف الدقيق أو طلب الفئة الذي يشرح الفشل.
أدلة الحد الأدنى:
- توقيت التوصيل/إعادة التعيين/إعادة التوصيل
- واصفات الجهاز، والتهيئة، والواجهة، ونقطة النهاية، وBOS، وHID، وCDC، أو MSC، أو البائع
- حقول حزمة الإعداد لعمليات نقل التحكم
- عنوان نقطة النهاية، الاتجاه، ونوع النقل
- علامات الحالة/التوقف/المهلة/الحزمة القصيرة
- بايتات الحمولة الخام للنقل الفاشل
- سياق ربط المضيف وبرنامج التشغيل
النقطة المهمة ليست أي منصة "أفضل". النقطة المهمة هي ما إذا كان الالتقاط يحافظ على أدلة كافية لشرح سلوك الجهاز.
ما يجب أن يحافظ عليه التقاط USB
لتصحيح أخطاء البرامج الثابتة والأجهزة، يحافظ الالتقاط المفيد على:
- سياق الناقل والجهاز
- عنوان نقطة النهاية والاتجاه
- نوع النقل
- حقول حزمة الإعداد
- استجابات الواصف
- مؤشرات الحالة والخطأ
- بايتات الحمولة الخام
- ترتيب التوقيت
- بيانات وصفية كافية لربط الحزم بجهاز
بدون هذا الهيكل، يصبح الالتقاط تفريغ بايتات يصعب الدفاع عنه في حالة دعم.
Linux usbmon
على Linux، يكشف usbmon عن حركة USB من النواة. يكون مفيدًا لفرق البرامج الثابتة لأن Linux غالبًا متاح في المختبرات ومقاعد CI وبيئات التحقق المدمجة. كما أنه يتجنب بعض تعقيد ربط برنامج تشغيل Windows عندما يكون الهدف مراقبة التعداد وعمليات النقل.
فحص الإعداد النموذجي:
sudo modprobe usbmon
ls /sys/kernel/debug/usb/usbmon
إذا لم تتمكن أداة الالتقاط من رؤية usbmon، فتحقق من تحميل debugfs وأن المستخدم لديه إذن لقراءة نقاط نهاية المراقبة. لا تعامل فشل الإذن كـ "لا توجد حركة USB"؛ يعني فقط أن المضيف لم يكشف عن مصدر الالتقاط.
أسئلة Linux النموذجية:
- هل لدى المستخدم إذن للالتقاط؟
- على أي ناقل الجهاز؟
- هل توقف التعداد قبل التهيئة؟
- هل تصل الطلبات الخاصة بالفئة؟
- هل تتحرك نقاط النهاية بعد التهيئة؟
إذا أظهر Linux تعدادًا وعمليات نقل نظيفة، لكن Windows يفشل، فإن المشتبه به التالي قد يكون ربط برنامج تشغيل Windows، أو إعداد INF، أو تثبيت USBPcap، أو توافق الفئة.
Windows USBPcap
على Windows، USBPcap هو مسار برنامج تشغيل التقاط الشائع لحركة USB. يكون ذا قيمة لأن العديد من العملاء يكررون مشكلات الجهاز فقط على مضيفي Windows. إذا كان المنتج جهاز برامج ثابتة، فإن تجاهل أدلة Windows يمكن أن يفقد الفشل الميداني الفعلي.
المخاطرة الخاصة بـ Windows هي نطاق الالتقاط. يلتقط USBPcap من محور جذري محدد. إذا كان الجهاز على وحدة تحكم أو موزع آخر، فقد يكون الالتقاط فارغًا تمامًا بينما الجهاز مشغول في مكان آخر. تأكد من المحور الجذري قبل استنتاج أن البرامج الثابتة صامتة.
أسئلة Windows النموذجية:
- هل USBPcap مثبت ونشط؟
- أي محور جذري يجب التقاطه؟
- هل ربط الجهاز ببرنامج التشغيل المتوقع؟
- هل اكتمل التعداد قبل أن يفتح التطبيق الجهاز؟
- هل هناك طلبات فئة أو عمليات نقل bulk/interrupt بعد الربط؟
تكون التقاطات Windows مفيدة بشكل خاص عندما تظهر المشكلة فقط مع مكدس برنامج تشغيل محدد أو بيئة تطبيق.
قارن الالتقاطات، لا تطويها
إذا تصرف نفس جهاز USB بشكل مختلف على Linux وWindows، فإن هذا الاختلاف دليل. لا تطوه في "USB متقلب". قارن:
- طلبات الواصفات
- التهيئة المحددة
- الطلبات الخاصة بالفئة
- حركة نقطة النهاية بعد الإعداد
- حالات الخطأ
- التوقيت حول إعادة التعيين وإعادة التوصيل
قد تُظهر المقارنة أن البرامج الثابتة حساسة للمنصة، أو أن مضيفًا واحدًا يرفض واصفًا يتسامح معه الآخر، أو أن طبقة التطبيق تفشل بعد أن ينجح إعداد USB بالفعل.
أين يتناسب Bus Scope
Bus Scope منصة عمل التقاط وفحص USB مبنية حول الأدلة. ليس محلل شبكة عام ولا يحاول استيعاب كل مجال بروتوكول. وظيفته هي جعل التقاطات USB أسهل للفحص والتصفية والحفظ والشرح.
لسير عمل usbmon وUSBPcap، يجب أن يساعد Bus Scope الفرق:
- تحديد محول الالتقاط وسياق الجهاز
- فحص حزم الإعداد والواصفات
- فك تشفير الأدلة ذات الصلة بالفئة حيثما كان مدعومًا
- الاحتفاظ بالبايتات الخام مرتبطة بالحقول المفسرة
- حفظ جلسات
.bscopeلإعادة التشغيل والتسليم
عندما يقول التقرير الميداني "الجهاز يفشل على Windows لكنه يعمل على Linux"، يجب أن تكون الخطوة التالية هي التخمين. يجب أن تكون مقارنة أدلة الالتقاط.