CodingBox Q&A Ask question

وحدة Dell M14MK من نوع SFP28 مرفوضة على OpenWrt بلا أنماط واجهة مشتركة بينما وحدة QSFPTEK من نوع SFP+ تعمل

Asked Active Viewed 92 AI translation from English
7

مختبر منزلي صغير. أعدت تحميل محول Linksys LGS328C بنظام OpenWrt SNAPSHOT للابتعاد عن الواجهة الرسومية القياسية. نجا كل شيء من هذا الانتقال باستثناء منفذ SFP28 واحد كان يعمل بشكل ممتاز سابقًا.

  • المحول: Linksys LGS328C (Realtek rtl930x)، OpenWrt SNAPSHOT
  • الوحدة: Dell S28-10G-25G-SR-85C، مزدوجة المعدل 10G/25G، تقرأ EEPROM كـDELL M14MK rev A1
  • وحدة مرجعية في نفس المقبس: QSFPTEK QT-SFP+-SR
  • نفس الألياف ونفس الطرف البعيد في كلا الاختبارين

يتم اكتشاف وحدة Dell ثم رفضها مباشرة:

sfp sfp-p49: module DELL M14MK rev A1
rtl83xx-switch ...: unsupported SFP module: no common interface modes

# ethtool lan28
        Advertised link modes:  10000baseCR/Full
        Link detected: no

أشياء تحققت منها بالفعل:

  • استبدلت بوحدة QSFPTEK SFP+ في نفس المقبس: يُظهر السجل المنفذ يختار inband/10gbase-r، وأحصل على رابط نظيف بسرعة 10 غيغابت/ثانية؛
  • نفس وحدة Dell عملت بشكل جيد على هذا المحول تحت البرنامج القياسي، إذن البصرية ليست ميتة؛
  • أعدت تركيبها ونظّفت الموصل، لا تغيير في السجل.

هل الوحدة مبرمجة فعليًا بشكل خاطئ، أم أن تعريف المحول (driver) متزمّت مع قطعة قادرة على 25G؟ أفضّل فهم هذا بدلًا من مجرد شراء بصرية أخرى.

Comments 5

Accepted answer

تلك المفرغة (dump) تفسر كل شيء. طبقة sfp في النواة لديها مدخل واحد بالضبط عندما تحسب أنماط الواجهة التي يمكن للوحدة تشغيلها، وهو بايتات التوافق (compliance) تلك. مع عدم ضبط أي منها، ينتهي بمجموعة فارغة، يتقاطعها مع ما يعرضه MAC، لا يحصل على شيء مشترك، ويطبع بالضبط الرسالة التي تراها. القيمة 10000baseCR/Full في ethtool هي ما تبقى من جانب المنفذ، وليست شيئًا طلبته الوحدة. البرنامج الثابت القياسي للمورّد لا يهتم، لأن تلك الصور عادة ما تتخطى بايتات التوافق كليًا وتطابق سلاسل المورّد والقطعة مقابل قائمة مثبّتة بدلًا من ذلك - وهذا سبب عمل البصرية قبل أن تُحمّل عليها OpenWrt.

الإصلاح الذي يصمد فعليًا هو خاصية غريبة (quirk) للوحدة. في drivers/net/phy/sfp.c أضف إدخال SFP_QUIRK_S يطابق المورّد DELL مع القطعة M14MK ويفرض ضبط ETHTOOL_LINK_MODE_10000baseSR_Full وPHY_INTERFACE_MODE_10GBASER، ثم أعد بناء الصورة. يعمل المنفذ كرابط 10G عادي يُبلّغ 10000baseSR/Full ويختفي سطر unsupported-module من السجل.

تحذيران. أبقِ الترقيعة بشكل يمكنك إرساله إلى netdev بدلًا من الاحتفاظ به محليًا: ذاكرة EEPROM لن تصلح نفسها، وأشخاص آخرون يملكون نفس قطعة Dell. وإذا كنت تفضل عدم صيانة بناء نواة إطلاقًا، فالبديل الممل هو وحدة QSFPTEK SFP+ التي لديك بالفعل - 10G هو كل ما سيعطيه هذا المنفذ على أي حال.

5 United Statestxnode67US Show original (English) AI translation

قبل أن تلوم تعريف المحول (driver)، أفرغ EEPROM وانظر إلى ما تعلنه الوحدة: ethtool --module-info lan28. انشر الصفوف الأولى من المفرغة السداسية عشرية (hex dump) بالإضافة إلى ethtool lan28 الكامل. "no common interface modes" يعني أن النواة لم تستطع اشتقاق نمط واحد قابل للاستخدام من الوحدة، إذن محتوى تلك البايتات هو القصة كاملة هنا.

شيء آخر يجب تأكيده: هل QSFPTEK موجودة في نفس المقبس، وليس مقبسًا مجاورًا؟ سطر السجل لديك يقول p49 بينما مخرجات ethtool تقول lan28، وخلط المنافذ في هذا النوع من الاختبار يهدر الكثير من الوقت.

3 United Statesphotonrunner70US Show original (English) AI translation

أفرغتها. الخلاصة: لا يوجد أي رمز توافق (compliance) بسرعة 10G مضبوط إطلاقًا - تلك البايتات فارغة ببساطة، بينما سلاسل المورّد والقطعة مملوءة تمامًا كما تتوقع لـDELL M14MK rev A1. ethtool lan28 ما زال يُظهر Advertised link modes: 10000baseCR/Full وLink detected: no، وأمر dmesg | grep lan25 لا يُظهر شيئًا أبعد من السطرين من منشوري الأول.

إذن الوحدة لا تخبر المضيف بأي شيء تقريبًا عمّا تستطيع فعله فعليًا، وQSFPTEK في نفس المقبس ما زالت تعمل بسرعة 10 غيغابت/ثانية.

0 South Koreawaverunner63KR Show original (English) AI translation

يستحق التدوين، لأن تقرير الخلل السابق حول هذا الاقتران بالضبط خمّن شيئًا مختلفًا. النظرية هناك كانت أن الوحدة مزدوجة المعدل تعلن عن 25gbase-r، وتعريف rtl930x لا ينفذ ذلك النمط، ويخرج التقاطع فارغًا ولا شيء خاطئ في الوحدة نفسها. المفرغة السداسية عشرية تقتل ذلك التفسير: الوحدة لا تعلن عن شيء، ليس 25G. نفس رسالة النواة، سبب مختلف، والمفرغة وحدها تميّز بين الاثنين.

إنه أيضًا تذكير بأن بصرية بعلامة تجارية للمورّد ليست مرمّزة بشكل صحيح تلقائيًا. سيُظهر نظام Dell الخاص OS10 وحدة Q28-128GFC-SW4 أصلية (قطعة KP0VM) كـQSFP28 100GBASE-SR4 مع Qualified false، لأن بعض الدفعات تحمل ترميز EEPROM لا يتعرف عليه تأهيل الوسيط الخاص بها، ويبقى رابط FC معطلًا إلى أن تسمح بوحدات الإرسال والاستقبال غير المدعومة يدويًا.

1 RussianetadminRU Show original (English) AI translation

بنيت صورة بإدخال SFP_QUIRK_S لـDELL / M14MK وهي تفعل بالضبط ما وصفته. يعمل المنفذ بسرعة 10 غيغابت/ثانية، ويُبلّغ ethtool lan28 الآن 10000baseSR/Full مع الرابط up، والسجل نظيف - لا سطر unsupported-module في أي مكان. تركته يعمل بحركة مرور حقيقية لبضعة أيام قبل لمس أي شيء آخر على الجهاز، لا اهتزازات (flaps).

أُنظّف الترقيعة الآن لإرسالها إلى netdev، بما أن الاحتفاظ بها في شجرتي الخاصة لا يفيد أحدًا. شكرًا لدفعي نحو مفرغة module-info أولًا، كنت أقرأ جداول أنماط التعريف لأمسيتين.

2 South Koreawaverunner63KR Show original (English) AI translation
Log in to comment. Log in