المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

معلومات أساسية

الأجهزة القابلة للتطبيق

أستكشاف أخطاء تثبيت أجهزة Nexus SmartNIC وإصلاحها

الخطوة 1. تحقق من تثبيت الأجهزة بشكل صحيح.

الخطوة 2. تحقق من توافق فتحة PCI Express.

الخطوة 3. تحقق من التثبيت في فتحة PCI Express النشطة.

الخطوة 4. التحقق من تلقي Nexus SmartNIC للطاقة.

الخطوة 5. التحقق من سلامة البرامج الثابتة.

الخطوة 6. تحقق من اكتشاف PCI Express لنظام تشغيل المضيف.

أستكشاف أخطاء تثبيت برنامج Nexus SmartNIC وإصلاحها

الخطوة 1. التحقق من إستخدام برنامج التشغيل.

الخطوة 2. التحقق من تثبيت برنامج التشغيل.

التحقق من تثبيت برنامج التشغيل من RPM (APT و YUM وما إلى ذلك)

التحقق من تثبيت برنامج التشغيل من المصدر

الخطوة 3. محاولة تحميل برنامج تشغيل البرنامج.

رسالة الخطأ "momodprobe: Deadly: Module exanic not found"

رسالة الخطأ "modprobe: المفتاح المطلوب غير متوفر"

الخطوة 4. تأكيد وظيفة الأداة المساعدة Nexus SmartNIC.

معلومات ذات صلة

المقدمة

يصف هذا المستند الخطوات المستخدمة لاستكشاف أخطاء تثبيت برامج تشغيل الأجهزة والبرامج وإصلاحها لبطاقات واجهة الشبكة ذات زمن الوصول المنخفض ل Nexus SmartNIC (المعروفة سابقا باسم ExaNIC).

المتطلبات الأساسية

المتطلبات

توصيك Cisco بفهم إجراء تثبيت الأجهزة لبطاقات واجهة الشبكة ذات زمن الوصول المنخفض من Nexus SmartNIC. توصي Cisco أيضا بأن تمتلك فهم أساسي لواجهة سطر أوامر Linux.

المكونات المستخدمة

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك مباشرة، فتأكد من فهمك للتأثير المحتمل لأي أمر.

معلومات أساسية

الأجهزة القابلة للتطبيق

تنطبق الإجراءات الواردة في هذا المستند على هذا الجهاز:

- Nexus SmartNIC X10

- Nexus SmartNIC X10-HPT

- Nexus SmartNIC X10-GM

- Nexus SmartNIC X25

- Nexus SmartNIC X40

- Nexus SmartNIC X100

- Nexus SmartNIC v5P

- Nexus SmartNIC V9P

أستكشاف أخطاء تثبيت أجهزة Nexus SmartNIC وإصلاحها

يغطي هذا القسم من المستند الخطوات المستخدمة لاستكشاف أخطاء تثبيت الأجهزة لبطاقة واجهة الشبكة ذات زمن الوصول المنخفض ل Nexus SmartNIC وإصلاحها. اتبع هذا القسم من المستند عندما لا يتعرف نظام التشغيل المضيف (عادة ما يكون برنامج لينوكس أو خادم Windows) على Nexus SmartNIC كجهاز طرفي PCI Express صالح.

الخطوة 1. تحقق من تثبيت الأجهزة بشكل صحيح.

يجب تثبيت بطاقات واجهة شبكة Nexus SmartNIC بشكل صحيح في فتحة PCI Express (PCIe) على اللوحة الأم أو قاعدة/البطاقة الفرعية للمضيف. للحصول على معلومات إضافية حول كيفية تثبيت بطاقة PCIe، راجع الدليل الخاص بمضيفك الذي توفره الشركة المصنعة.

للحصول على معلومات إضافية حول تثبيت بطاقة PCIe على خوادم Cisco UCS، ارجع إلى هذه الوثائق الداعمة:

- دليل خدمة وتثبيت خادم Cisco UCS C220 M5

- دليل خدمة وتثبيت خادم Cisco UCS C240 M5

الخطوة 2. تحقق من توافق فتحة PCI Express.

يجب تثبيت جميع بطاقات واجهة شبكة Nexus SmartNIC في فتحة متوافقة مع PCIe 3.0. علاوة على ذلك، يجب إستخدام فتحة PCIe x8 كحد أدنى مع 49 سنا لتوصيل جميع بطاقات واجهة الشبكة Nexus SmartNIC. للحصول على معلومات إضافية حول ما إذا كانت فتحات PCIe تفي بهذه المواصفات، راجع الدليل الخاص بمضيفك الذي توفره الشركة المصنعة.

للحصول على معلومات إضافية حول مواصفات فتحة PCIe على خوادم Cisco UCS، ارجع إلى هذا الجدول والمستندات الداعمة:

نموذج خادم Cisco UCS

توافق فتحات PCIe

الوثائق الداعمة

Cisco UCS C220 M5

كافة فتحات PCIe متوافقة

دليل خدمة وتثبيت خادم Cisco UCS C220 M5

Cisco UCS C240 M5

كافة فتحات PCIe متوافقة

دليل خدمة وتثبيت خادم Cisco UCS C240 M5

الخطوة 3. تحقق من التثبيت في فتحة PCI Express النشطة.

يجب إدخال Nexus SmartNIC بشكل صحيح في فتحة PCI Express متصلة بوحدة معالجة مركزية (وحدة معالجة مركزية) نشطة ومثبتة. إذا كان المضيف مجهزا بمقابس متعددة لوحدة المعالجة المركزية (CPU) حيث لم يتم تثبيت وحدة المعالجة المركزية (والتي يطلق عليها أيضا "تكوين وحدة المعالجة المركزية الفردية") إلا أن جميع فتحات PCIe قد لا تكون نشطة وتعمل. للحصول على معلومات إضافية حول فتحات PCIe التي يتم تنشيطها في تهيئة وحدة معالجة مركزية واحدة، راجع الدليل الخاص بمضيفك الذي توفره الشركة المصنعة.

لمزيد من المعلومات حول فتحات PCIe النشطة على خوادم Cisco UCS في تكوين وحدة معالجة مركزية واحدة، ارجع إلى هذا الجدول والمستندات الداعمة:

نموذج خادم Cisco UCS

فتحات PCIe نشطة

الوثائق الداعمة

Cisco UCS C220 M5

قاعدة بطاقة PCIe 1، فتحة 1

دليل خدمة وتثبيت خادم Cisco UCS C220 M5

Cisco UCS C240 M5

قاعدة بطاقة PCIe 1، فتحة 1

قاعدة بطاقة PCIe 1 وفتحة 2

قاعدة بطاقة PCIe 1B وفتحة 1

قاعدة بطاقة PCIe 1B، فتحة 2

قاعدة بطاقة PCIe 1B، فتحة 3

دليل خدمة وتثبيت خادم Cisco UCS C240 M5

الخطوة 4. التحقق من تلقي Nexus SmartNIC للطاقة.

تحتوي كل بطاقة واجهة شبكة Nexus SmartNIC على عدد من مصابيح LED (وحدات ثنائية باعثة للضوء) موجودة على قوس PCIe. تكون مصابيح LED هذه مرئية عادة من خارج المضيف. يحتوي كل منفذ +SFP ومنفذ QSFP على بطاقة واجهة الشبكة على مؤشر LED واحد أكبر حجما مرتبط به. ويشار إلى مصابيح LED هذه بشكل جماعي باسم مصابيح LED للموانئ.

في بطاقات واجهة الشبكة التي لا تحتوي إلا على منافذ +SFP، يتوفر مؤشر LED أحمر أصغر حجما يتم اقترانه بموصل PPS (باستثناء Nexus SmartNIC X10-GM، حيث يرتبط مؤشر LED الأحمر الصغير بحالة ساعة المدير الكبير). ويشار إلى مؤشر LED هذا باسم مؤشر PPS LED.

ملاحظة: لا تحتوي بطاقات واجهة شبكة Nexus SmartNIC المزودة بمنافذ QSFP على مؤشر LED لمنافذ PPS.

وباختصار، ارجع إلى الجدول هنا:

نموذج Nexus SmartNIC

مصابيح LED للمنفذ

مؤشر LED الخاص ببروتوكول PPS

الطراز X10

نعم

نعم

X10-HPT

نعم

نعم

X10-GM

نعم

نعم (GPS)

X25

نعم

نعم

الطراز X40

نعم

لا

الطراز X100

نعم

لا

V5P

نعم

لا

V9P

نعم

لا

عندما يتم تشغيل بطاقة واجهة شبكة Nexus SmartNIC لأول مرة بجانب المضيف، يجب أن تظهر جميع مصابيح LED على بطاقة واجهة الشبكة بسرعة flash في لحظات. إذا لم تكن هناك مصابيح LED تبعث ضوءا في أي وقت بعد تشغيل المضيف، فإن هذا يشير إلى أن بطاقة واجهة شبكة Nexus SmartNIC لا تتلقى الطاقة بشكل صحيح من الناقل PCIe. تحريت هذا إصدار بعد ذلك مع هذا إجراء:

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

2. تحقق ما إذا كانت بطاقة واجهة شبكة Nexus SmartNIC تعمل دون مشاكل في فتحة PCIe أخرى معروفة بوظيفتها.

3. تحقق ما إذا كانت بطاقة واجهة شبكة Nexus SmartNIC تعمل دون مشكلة في فتحة PCIe معروفة بأنها تعمل على مضيف آخر معروف عنه أنه يعمل.

إذا فشلت بطاقة واجهة شبكة Nexus SmartNIC في الحصول على الطاقة بغض النظر عن فتحة PCIe والمضيف المستخدم، فاتصل ب TAC من Cisco للحصول على مزيد من أستكشاف الأخطاء وإصلاحها.

الخطوة 5. التحقق من سلامة البرامج الثابتة.

وكما تمت الإشارة إليه مسبقا في الخطوة 4، يحتمل أن يكون لكل بطاقة واجهة شبكة Nexus SmartNIC نوعان من مصابيح LED:

- مصابيح LED للمنفذ

- مؤشر LED الخاص ببروتوكول PPS

عندما لا يتم إدراج وحدات SFP+/QSFP النمطية في المنافذ الخاصة ببطاقة واجهة الشبكة، يجب أن تظل مصابيح LED هذه قيد الإيقاف بعد الذاكرة المؤقتة المؤقتة الموضحة في الخطوة 4 عند تشغيل بطاقة واجهة الشبكة في البداية.

هناك ثلاثة سيناريوهات شائعة حيث لا يكون هذا هو الحال نتيجة لتلف أو فقد البرامج الثابتة:

- إذا بقيت مصباح LED لكل من المنفذ و PPS مضاءة بعد الفلاش المؤقت عندما لا يتم إدراج وحدات SFP+/QSFP ولم يتعرف نظام التشغيل المضيف على بطاقة واجهة الشبكة كجهاز طرفي PCIe صالح (مثل من خلال الأمر lspci)، فقد يلزم إسترداد البرامج الثابتة لبطاقة واجهة الشبكة Nexus SmartNIC. اتبع عملية إسترداد البرنامج الثابت Nexus SmartNIC وتحميل إصدار جديد من البرنامج الثابت على Nexus SmartNIC. إن لا يحل هذا إصدار، اتصل ب cisco TAC ل إضافي يتحرى.

- في حالة تزويد بطاقة واجهة شبكة Nexus SmartNIC بمؤشر LED يضيء بمؤشر PPS باستمرار، فإن البرامج الثابتة الموجودة المحملة على البطاقة تكون تالفة وقد دخلت البطاقة في وضع إسترداد البرامج الثابتة. يجب عليك اتباع عملية تحديث البرنامج الثابت Nexus SmartNIC لاستخدام بطاقة واجهة الشبكة بشكل طبيعي. إن لا يحل هذا إصدار، اتصل ب cisco TAC ل إضافي يتحرى.

- إذا لم تكن بطاقة واجهة شبكة Nexus SmartNIC مزودة بمصباح PPS وكانت مصابيح LED الخاصة بالمنفذ تتغير باستمرار بين وضع إيقاف التشغيل والكهرمان، فإن البرامج الثابتة الموجودة المحملة على البطاقة تكون تالفة وقد دخلت البطاقة في وضع إسترداد البرامج الثابتة. يجب عليك اتباع عملية تحديث البرنامج الثابت Nexus SmartNIC لاستخدام بطاقة واجهة الشبكة بشكل طبيعي. إن لا يحل هذا إصدار، اتصل ب cisco TAC ل إضافي يتحرى.

الخطوة 6. تحقق من اكتشاف PCI Express لنظام تشغيل المضيف.

يمكنك تأكيد أن نظام التشغيل المضيف يمكنه اكتشاف بطاقة واجهة شبكة Nexus SmartNIC بنجاح من خلال ناقل PCIe باستخدام الأمر lspci. معرف مورد PCI (VID) 16 بت الخاص ب Exablaze هو 0x1ce4، والذي يمكن إستخدامه للتحقق من أجهزة PCIe الخاصة ب Nexus SmartNIC للحصول على معلومات. وهذا موضح في المثال التالي:

[root@host ~]# lspci -d 1ce4:

01:00.0 Ethernet controller: Exablaze ExaNIC X10

يمكن عرض معلومات أكثر تفصيلا حول بطاقة PCIe من خلال إضافة علامة-v المطوية إلى الأمر lspci. وهذا موضح في المثال التالي:

[root@host ~]# lspci -d 1ce4: -v

01:00.0 Ethernet controller: Exablaze ExaNIC X10

Subsystem: Exablaze ExaNIC X10

Flags: bus master, fast devsel, latency 0, IRQ 30

Memory at 92000000 (32-bit, non-prefetchable) [size=8M]

Memory at 92800000 (64-bit, non-prefetchable) [size=4M]

Capabilities: [80] Power Management version 3

Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit+

Capabilities: [c0] Express Endpoint, MSI 00

Capabilities: [100] Advanced Error Reporting

Capabilities: [1b8] Latency Tolerance Reporting

Capabilities: [300] #19

Capabilities: [340] Vendor Specific Information: ID=0001 Rev=0 Len=02c <?>

Kernel modules: exanic

يمكن عرض معلومات أكثر تفصيلا بإضافة علامة-VV المطبعية إلى الأمر lspci. وهذا موضح في المثال التالي:

[root@host ~]# lspci -d 1ce4: -vv

01:00.0 Ethernet controller: Exablaze ExaNIC X10

Subsystem: Exablaze ExaNIC X10

Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+

Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

Latency: 0

Interrupt: pin A routed to IRQ 30

Region 0: Memory at 92000000 (32-bit, non-prefetchable) [size=8M]

Region 2: Memory at 92800000 (64-bit, non-prefetchable) [size=4M]

Capabilities: [80] Power Management version 3

Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)

Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-

Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit+

Address: 00000000fee003b8  Data: 0000

Capabilities: [c0] Express (v2) Endpoint, MSI 00

DevCap:    MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us

ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 75.000W

DevCtl:    Report errors: Correctable- Non-Fatal- Fatal- Unsupported-

RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+

MaxPayload 128 bytes, MaxReadReq 512 bytes

DevSta:    CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-

LnkCap:    Port #0, Speed 8GT/s, Width x8, ASPM not supported, Exit Latency L0s unlimited, L1 unlimited

ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+

LnkCtl:    ASPM Disabled; RCB 64 bytes Disabled- CommClk+

ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-

LnkSta:    Speed 8GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR+, OBFF Not Supported

DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled

LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-

Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-

Compliance De-emphasis: -6dB

LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, EqualizationPhase1+

EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-

Capabilities: [100 v2] Advanced Error Reporting

UESta:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

UEMsk:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

UESvrt:    DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-

CESta:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-

CEMsk:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+

AERCap:    First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-

Capabilities: [1b8 v1] Latency Tolerance Reporting

Max snoop latency: 0ns

Max no snoop latency: 0ns

Capabilities: [300 v1] #19

Capabilities: [340 v1] Vendor Specific Information: ID=0001 Rev=0 Len=02c <?>

Kernel modules: exanic

إذا كان الأمر lspci يعرض معلومات حول بطاقة واجهة الشبكة Nexus SmartNIC، فإن هذا يشير إلى أن نظام التشغيل المضيف قد اكتشف بطاقة واجهة شبكة Nexus SmartNIC بنجاح من خلال ناقل PCIe. وبالانتقال إلى الأمام، يمكن تثبيت برامج تشغيل Nexus SmartNIC وبدء إستخدام البطاقة.

أستكشاف أخطاء تثبيت برنامج Nexus SmartNIC وإصلاحها

يغطي هذا القسم من المستند الخطوات المستخدمة لاستكشاف أخطاء تثبيت برنامج تشغيل بطاقة واجهة الشبكة ذات زمن الوصول المنخفض ل Nexus SmartNIC وإصلاحها. اتبع هذا القسم من المستند عندما يتعرف نظام التشغيل المضيف (عادة ما يكون برنامج لينوكس أو خادم Windows) على بطاقة واجهة Nexus SmartNIC كجهاز طرفي PCI Express صالح، ولكن نظام التشغيل المضيف لا يتعرف على منافذ Nexus SmartNIC كواجهة شبكة صالحة. ويتم توضيح مثال على ذلك في الإخراج هنا:

[root@host ~]# ls /dev/exanic*

ls: cannot access /dev/exanic*: No such file or directory

يفترض هذا القسم من المستند أن واحدا قد واجه خطأ أثناء محاولة تثبيت برامج تشغيل Nexus SmartNIC كما هو موضح في دليل تثبيت برامج Nexus SmartNIC.

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

الخطوة 1. التحقق من إستخدام برنامج التشغيل.

إذا قام نواة نظام التشغيل المضيف بتحميل برنامج تشغيل لبطاقة واجهة شبكة Nexus SmartNIC، فإن الأمر lspci مع علامة -v المطوية سيعرض برنامج التشغيل المستخدم. يمكن للمرء الاستعلام عن الأجهزة التي تستخدم معرف مورد PCI (0x1ce4) الخاص ب Exablaze لعرض المعلومات الخاصة بأجهزة PCIe الخاصة ب Nexus SmartNIC. ويتم توضيح مثال على ذلك في الإخراج هنا:

[root@host ~]# lspci -d 1ce4: -v | egrep Kernel.driver

Kernel driver in use: exanic

إذا لم يقوم نواة نظام التشغيل المضيف بتحميل برنامج التشغيل، فسيتم حذف سطر "برنامج تشغيل kernel قيد الاستخدام" هذا من مخرجات الأمر lspci -d 1ce4: -v.

الخطوة 2. التحقق من تثبيت برنامج التشغيل.

التحقق من تثبيت برنامج التشغيل من RPM (APT و YUM وما إلى ذلك)

كما هو موضح في دليل تثبيت برامج Nexus SmartNIC، يمكن تثبيت برامج تشغيل برنامج Nexus SmartNIC من خلال مدير الحزم (مثل APT أو YUM أو مباشرة من خلال RPM). إذا قمت بتثبيت برامج تشغيل ExaNIC باستخدام هذه الطريقة، فيمكنك التحقق من تثبيت جميع الملفات بشكل صحيح كما هو موضح أدناه.

اعتمادا على بنية وحدة المعالجة المركزية (CPU) الخاصة بمضيفك، قد يكون ملف libexanic.a library في /usr/lib/ أو في /usr/lib64/. وفيما يلي مثال على بنية وحدة معالجة مركزية (CPU) بسرعة x86 (32 بت):

[root@host ~]# ls /usr/lib/ | grep exanic

libexanic.a

وفيما يلي مثال على بنية وحدة معالجة مركزية (CPU) بسرعة x86_64 (64 بت):

[root@host ~]# ls /usr/lib64/ | grep exanic

libexanic.a

تأكد من وجود ملفات رؤوس مكتبة Nexus SmartNIC في دليل /usr/include/exanic/. وهذا موضح في المثال التالي:

[root@host ~]# ls /usr/include/exanic/ -1

config.h

const.h

exanic.h

fifo_if.h

fifo_rx.h

fifo_tx.h

filter.h

firewall.h

hw_info.h

ioctl.h

pcie_if.h

port.h

register.h

time.h

util.h

تأكد من وجود أدوات Nexus SmartNIC Binary Utilities في الدليل /usr/bin/. وهذا موضح في المثال التالي:

[root@host ~]# ls /usr/bin/ -1 | grep exanic-

exanic-capture

exanic-clock-check

exanic-clock-sync

exanic-config

exanic-fwupdate

أخيرا، تأكد من أن ملف الوحدة النمطية exanic.ko.xz موجود في دليل /lib/modules/'uname -r/extra/extra. لاحظ أن الأمر المضمن 'uname -r' يقوم تلقائيا بإدراج إصدار kernel الحالي في الدليل. هذا الأمر محاط بعلامات تمييز خطيرة (')، وليس بعلامات اقتباس مفردة. وهذا موضح في المثال التالي:

[root@host ~]# ls /lib/modules/\`uname -r\`/extra/ | grep exanic

exanic.ko.xz

التحقق من تثبيت برنامج التشغيل من المصدر

كما هو موضح في دليل تثبيت برامج Nexus SmartNIC، يمكن إنشاء برامج تشغيل Nexus SmartNIC وتثبيتها من رمز المصدر. إذا قمت بتثبيت برامج تشغيل Nexus SmartNIC باستخدام هذه الطريقة، فيمكنك التحقق من تثبيت جميع الملفات بشكل صحيح كما هو موضح في الأمثلة الواردة هنا.

تأكد من أن ملف مكتبة libexanic.a موجود في الدليل /usr/local/lib/. وهذا موضح في المثال التالي:

[root@host ~]# ls /usr/local/lib/ | grep exanic

libexanic.a

تأكد من وجود ملفات رؤوس مكتبة Nexus SmartNIC في دليل /usr/local/include/exexexexanic/. وهذا موضح في المثال التالي:

[root@host ~]# ls /usr/local/include/exanic/ -1

config.h

const.h

exanic.h

fifo_if.h

fifo_rx.h

fifo_tx.h

filter.h

firewall.h

hw_info.h

ioctl.h

pcie_if.h

port.h

register.h

time.h

util.h

تأكد من أن أدوات Nexus SmartNIC الثنائية موجودة في دليل /usr/local/bin/. وهذا موضح في المثال التالي:

[root@host ~]# ls /usr/local/bin -1 | grep exanic-

exanic-capture

exanic-clock-check

exanic-clock-sync

exanic-config

exanic-fwupdate

وأخيرا، تأكد من أن ملف الوحدة النمطية exanic.ko موجود في دليل /lib/modules/'uname -r'/extra/. لاحظ أن الأمر المضمن 'uname -r' يقوم تلقائيا بإدراج إصدار kernel الحالي في الدليل. هذا الأمر محاط بعلامات تمييز خطيرة (')، وليس بعلامات اقتباس مفردة. وهذا موضح في المثال التالي:

[root@host ~]# ls /lib/modules/`uname -r`/extra | grep exanic

exanic.ko

الخطوة 3. محاولة تحميل برنامج تشغيل البرنامج.

يمكن تحميل برنامج تشغيل برنامج Nexus SmartNIC يدويا باستخدام الأمر modeProbe exanic.

إذا تم تحميل برامج تشغيل Nexus SmartNIC، فإن نواة Linux ستتعرف عليه كجهاز. يمكنك التحقق من ذلك باستخدام الأمر ls /dev/exanic*، الذي سيظهر جميع أجهزة Nexus SmartNIC المعروفة. وهذا موضح في المثال التالي:

[root@host ~]# ls /dev/exanic*

/dev/exanic0

إذا لم يتم تحميل برامج تشغيل Nexus SmartNIC بنجاح، فقد يرجع الأمر modeProbe exanic خطأ أو قد لا يرجع خطأ. توضح الأقسام الفرعية أدناه كيفية أستكشاف الأخطاء وإصلاحها التي تم إرجاعها بواسطة هذا الأمر.

رسالة الخطأ "momodprobe: Deadly: Module exanic not found"

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

تبعيات وحدة Kernel المعينة بشكل غير صحيح

يتعذر على نظام التشغيل المضيف تحديد موقع الوحدة التي تم إنشاؤها ل kernel الجاري تشغيله حاليا. ونتيجة لذلك، يتعذر على نظام التشغيل المضيف تحميل الوحدة النمطية في النظام باستخدام الأمر modeProbe. يمكن حل هذا الأمر باستخدام الأمر depmod -a، والذي سيقوم بإنشاء خريطة لتبعيات وحدات kernel النمطية. بعد ذلك يمكن تحميل وحدة kernel باستخدام الأمر modeProbe exanic.

لم يتم إنشاء وحدة Kernel بواسطة DKMS

يسمح DKMS (دعم وحدة Kernel الديناميكية) بإعادة إنشاء وحدات Kernel تلقائيا عند تثبيت نواة نظام تشغيل جديدة. إذا لم تقم DKMS ببناء وحدة Nexus SmartNIC Kernel النمطية، فمن الممكن أن تكون وحدة Nexus SmartNIC kernel قد تم تجميعها مسبقا للحصول على إصدار kernel مختلف لنظام التشغيل.

لكي يعمل نظام إدارة المفاتيح والفيديو والماوس كما هو متوقع، يجب تثبيت حزم Kernel-devel و kernel-head باستخدام مدير حزمة نظام التشغيل المضيف. يتم عرض مثال حول كيفية تأكيد ما إذا كانت هذه الحزمة مثبتة باستخدام أمر قائمة yum في الإخراج هنا:

[root@host ~]$ yum list kernel-devel

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirror.internode.on.net

* epel: ucmirror.canterbury.ac.nz

* extras: mirror.internode.on.net

* updates: centos.mirror.serversaustralia.com.au

Installed Packages

kernel-devel.x86_64                                      3.10.0-1062.el7                                            @base

kernel-devel.x86_64                                      3.10.0-1062.12.1.el7                                       @updates

[root@host ~]$ yum list kernel-headers

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirror.internode.on.net

* epel: ucmirror.canterbury.ac.nz

* extras: mirror.internode.on.net

* updates: centos.mirror.serversaustralia.com.au

Installed Packages

kernel-headers.x86_64                                     3.10.0-1062.12.1.el7                                      @updates

ارجع إلى دليل مدير حزمة نظام التشغيل المضيف للتحقق من كيفية تحديد ما إذا تم تثبيت حزمة معينة أم لا.

يمكنك تأكيد ما إذا كانت وحدة Nexus SmartNIC kernel النمطية التي تمت إضافتها وإنشاؤها وتثبيتها بنجاح بواسطة DKMS باستخدام الأمر dkms status. يتم عرض مثال على إخراج هذا الأمر في حالة العمل، المتوقعة هنا:

[root@host ~]# dkms status

exanic, 2.4.1-1.el8, 3.10.0-957.27.2.el7.x86_64, x86_64: installed

إذا أظهر هذا الإخراج أن وحدة نواة Nexus SmartNIC في حالة غير "المثبتة"، فسيحتاج المرء إما إلى إنشاء وحدة نواة Nexus SmartNIC أو تثبيتها باستخدام DKMS.

إذا تمت إضافة وحدة Nexus SmartNIC Kernel ولكن لم يتم إنشاؤها، فاستخدم الأمر dkms build -m exanic -v {version} لإنشاء وحدة Nexus SmartNIC kernel. يتم عرض مثال على هذا الأمر هنا مع إصدار البرنامج 2.4.1-1.el7:

[root@host ~]$ dkms build -m exanic -v 2.4.1-1.el7

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:

cleaning build area...

make -j16 KERNELRELEASE=3.10.0-1062.el7.x86_64 -C modules KDIR=/lib/modules/3.10.0-1062.el7.x86_64/build...

cleaning build area...

DKMS: build completed.

إذا تم إنشاء وحدة Nexus SmartNIC Kernel ولم يتم تثبيتها، أستخدم الأمر dkms install -m exanic -v {version} لتثبيت وحدة Nexus SmartNIC kernel النمطية. يتم عرض مثال على هذا الأمر هنا مع إصدار البرنامج 2.4.1-1.el7:

[root@host ~]$ dkms install -m exanic -v 2.4.1-1.el7

exanic.ko.xz:

Running module version sanity check.

- Original module

- No original module exists within this kernel

- Installation

- Installing to /lib/modules/3.10.0-1062.el7.x86_64/extra/

exasock.ko.xz:

Running module version sanity check.

- Original module

- No original module exists within this kernel

- Installation

- Installing to /lib/modules/3.10.0-1062.el7.x86_64/extra/

Adding any weak-modules

depmod...

DKMS: install completed.

بعد إنشاء وحدة Nexus SmartNIC Kernel وتثبيتها مع DKMS، يمكن تحميل وحدة Nexus SmartNIC Kernel بواسطة الأمر modeProbe.

رسالة الخطأ "modprobe: المفتاح المطلوب غير متوفر"

يمكن ملاحظة رسالة الخطأ هذه على الأجهزة المضيفة المزودة ببرامج ثابتة UEFI (واجهة البرامج الثابتة الموحدة القابلة للامتداد) التي تم تمكين بروتوكول التمهيد الآمن عليها. يمنع "التمهيد الآمن" برامج تشغيل kernel التي لم يتم توقيعها بتوقيع رقمي مقبول من التحميل. ونتيجة لذلك، عند محاولة تحميل برنامج تشغيل نواة Nexus SmartNIC باستخدام الأمر modeProbe exanic، يمنع بروتوكول التمهيد الآمن برنامج تشغيل kernel من التحميل.

لحل هذه المشكلة، يلزم تعطيل بروتوكول التمهيد الآمن داخل UEFI الخاص بالمضيف. للحصول على معلومات إضافية حول كيفية تعطيل بروتوكول التمهيد الآمن داخل UEFI الخاص بمضيفك، راجع الدليل الخاص بمضيفك الذي توفره الشركة المصنعة.

الخطوة 4. تأكيد وظيفة الأداة المساعدة Nexus SmartNIC.

يمكن إستخدام الأمر exanic-config الذي لا يحتوي على وسيطات لعرض المعلومات الأساسية حول بطاقات واجهة شبكة Nexus SmartNIC المثبتة على الجهاز المضيف بعد تحميل برامج تشغيل نواة Nexus SmartNIC في نظام التشغيل. هنا مثال على هذا المخرج:

[root@host ~]$ exanic-config

Device exanic1:

Hardware type: ExaNIC X10

Temperature: 38.8 C VCCint: 0.95 V VCCaux: 1.83 V

Function: network interface

Firmware date: 20180409 (Mon Apr 9 23:27:40 2018)

PPS port: input, termination disabled

Port 0:

Interface: enp175s0

Port speed: 10000 Mbps

Port status: enabled, SFP present, signal detected, link active

MAC address: 64:3f:5f:xx:xx:xx

RX packets: 11778 ignored: 0 error: 0 dropped: 0

TX packets: 11836

Port 1:

Interface: enp175s0d1

Port speed: 10000 Mbps

Port status: enabled, SFP present, signal detected, link active

MAC address: 64:3f:5f:xx:xx:xx

RX packets: 11836 ignored: 0 error: 0 dropped: 0

TX packets: 11778

إذا كان الأمر/الأداة المساعدة exanic-config ترجع بالمعلومات ذات الصلة حول بطاقات واجهة شبكة Nexus SmartNIC المثبتة، فإن تثبيت أجهزة Nexus SmartNIC وبرامج تشغيل البرامج كان ناجحا.

معلومات ذات صلة

- تثبيت جهاز Nexus SmartNIC

- دليل خدمة وتثبيت خادم Cisco UCS C240 M5

- دليل خدمة وتثبيت خادم Cisco UCS C220 M5

- دليل التقييم المعياري Nexus SmartNIC