CodingBox Q&A Ask question

Supermicro AOC-STGN-i1S (X520) trên Proxmox 7.1: không có interface trong ip link khi cắm DAC HP

Asked Active Viewed 103 AI translation from English
4

Tôi chạy một hộp Proxmox nhỏ ở nhà và muốn có một đường 10G tử tế tới storage node, nên lắp vào một Supermicro AOC-STGN-i1S cũ. Đó là thiết kế Intel 82599 thường, board đánh dấu E157872, và tôi cứ nghĩ đây sẽ là phần nhàm chán nhất của cả build. Không phải vậy.

  • Supermicro AOC-STGN-i1S, Intel X520-DA1, board marking E157872
  • Proxmox 7.1, kernel 5.15.30-1-pve
  • DAC SFP+ passive mang nhãn HP nối tới hộp thứ hai
  • card enumerate bình thường trên PCI bus

Driver không bao giờ load xong. Kernel log nói nó abort vì phát hiện một loại module SFP+/QSFP mà nó không hỗ trợ, và sau đó đơn giản là không có port nào để cấu hình:

lspci    -> the X520 is listed, no complaints
ip link  -> lo and the onboard 1G only, no 10G interface at all
dmesg    -> ixgbe aborts loading, unsupported SFP+/QSFP module type

Những gì tôi đã làm:

  • tạo /etc/modprobe.d/ixgbe.conf chứa options ixgbe allow_unsupported_sfp=1, rồi update-initramfs -u và reboot: không đổi
  • truyền cùng option đó như một kernel parameter thay vào đó: không đổi
  • rmmod ixgbe và modprobe ixgbe bằng tay: vẫn không có gì mới trong ip link

Cái card đã chết, hay có cách nào vượt qua cái check này trên kernel 5.15 mà tôi đang bỏ sót?

Comments 5

Accepted answer

Cái bạn mô tả đúng y hệt một cú va vào whitelist EEPROM trên ixgbe. Driver đọc module ID, quyết định nó không nằm trong danh sách được Intel chấp nhận và abort trước khi kịp đăng ký một netdev, đó là lý do vì sao lspci thấy card mà ip link thì chẳng thấy gì cả. Chẳng cái nào trong đó là lỗi phần cứng, và đó cũng là lý do vì sao port quay lại ngay khi module bị rút khỏi cage.

Cửa thoát hiểm đã được ghi trong tài liệu chính là cái bạn đã dùng rồi:

# /etc/modprobe.d/ixgbe.conf
options ixgbe allow_unsupported_sfp=1

update-initramfs -u
rmmod ixgbe
modprobe ixgbe
ip link

Trên 5.15 cái option đó đơn giản là không đáng tin cậy. Tôi cũng gặp đúng kết quả trống rỗng đó trên kernel này, nên chẳng cần làm lại hay đi soi lỗi gõ trong file conf làm gì.

Cái chốt được vấn đề bên tôi: với cage rỗng thì interface lên khi modprobe ixgbe, cắm dây HP trở lại thì nó biến mất lần nữa, và đúng cái dây HP đó lại lên link êm ru trong một Mellanox ConnectX-2. Dây về điện thì hoàn toàn ổn, chỉ là Intel không thích cách nó được code thôi.

Cái sửa được thực sự là lắp một DAC SFP+ generic không nhãn hiệu vào thay thế. Link lên ngay lập tức, không cần module option, không cần múa reboot. Về chuyện support: với bất kỳ dây không được Intel code nào thì bạn đã ở ngoài ma trận hỗ trợ của Intel rồi, nên nếu cái hộp này có lúc nào cần được hỗ trợ chính thức, hãy mua một DAC được Intel code thay vì một cái của HP.

4 Indiawaverunner21IN Show original (English) AI translation

Trước khi kết luận card đã chết, làm một test. Rút hẳn DAC ra khỏi cage, rồi rmmod ixgbe, modprobe ixgbe và nhìn lại ip link. Nếu interface xuất hiện với cage rỗng, thì card và driver đều ổn cả, và cái dây mới là thứ khiến cái check bị nghẹn.

Điều thứ hai đáng biết: cái DAC HP đó có lên link ở đâu khác không? Một NIC không phải Intel thường sẽ nhận nó mà không kêu ca gì. Và có chắc đó là dây được code kiểu HP không, hay bạn có một cái generic nằm đâu đó để so sánh?

3 United Statesphotonrunner70US Show original (English) AI translation

Cứ coi là may mắn khi dùng X520, ít nhất bạn còn có một cái núm driver để vặn, dù nó có chập chờn. Trên X710 và XL710 thì cái check module đã chuyển vào firmware, nên allow_unsupported_sfp chẳng làm được gì cho i40e cả. Cắm một module không phải Intel vào một X710-DA2 và bạn nhận được:

Rx/Tx is disabled on this device because an unsupported SFP module type was detected

và thế là hết chuyện. Từ đó các lựa chọn là optic được Intel code, con đường xl710-unlocker của cộng đồng (đẩy một NVM image mới bằng updater của chính Intel, rồi mò vào các trường eleven-bit quanh khoảng 0x6800-0x7000 trong EEPROM bằng công cụ bên thứ ba, hoàn toàn tự chịu rủi ro), hoặc chọn ngay từ đầu một biến thể OEM: một HPE 562SFP+ bên dưới chính là một X710, và sau khi cập nhật firmware với i40e nó chấp nhận module đồng 10G và 1G bên thứ ba mà không cần hack gì cả.

4 Spainqsfpwolf31ES Show original (English) AI translation

Về hướng OEM, nó lại ngược chiều với card X710-DA2 mang nhãn Dell và Lenovo: chúng từ chối SFP+ và DAC không được duyệt, và công cụ của chính Intel còn không liệt kê được board đó. Cái mọi người chốt lại là flash NVM gốc của Intel lên chúng. Bạn cần driver QV lấy từ gói BootUtil đầy đủ của Intel trước, nếu không các tiện ích sẽ không nói chuyện được với board chút nào; option ROM bị thay thế trước tiên, và chỉ sau đó bạn mới kiểm kê card rồi flash nó:

./bootutil64e -NIC=1 -up=combo
./nvmupdate64e -i -l
ethtool -i enp1s0f0
./nvmupdate64e -rd

Giữa lúc kiểm kê và lúc flash, cắt gọn nvmupdate.cfg xuống chỉ còn một dòng X710 khớp đúng dung lượng SPI flash của card, 4 MB hoặc 8 MB. Chọn sai dung lượng là bạn có một cục gạch cần một bản NVM image đã lưu sẵn và một bộ flash phần cứng để cứu lại, nên đọc ETrackID trước và chắc chắn đã. Firmware trong khoảng 9.30-9.40 được báo là chạy tốt sau đó, và mọi người còn có thêm SR-IOV trên board Lenovo như một tác dụng phụ. Tôi vẫn chỉ thử cái này trên một card mà tôi chấp nhận được mất.

2 Italylambdapilot72IT Show original (English) AI translation

Cẩn thận khi chĩa mấy hướng crossflash và patch EEPROM vào thread này, vì chẳng cái nào giúp được cho tình huống như đã mô tả. Sửa cờ OEM trong EEPROM của X520 trước tiên cần một interface đang hoạt động để chạm được vào card qua đó, mà ở đây thì chẳng có interface nào cả cho tới khi rút dây ra khỏi cage. Đó là cách sửa cho một port đã tồn tại và từ chối một module, không phải cho một driver abort ngay khi load.

Thứ khác tôi sẽ không đọc quá lên là cái test trên một NIC khác. Một module lên link ở host khác chứng minh được module đó tốt, không chứng minh được gì cho host bạn thực sự muốn dùng nó. Tôi có mấy module đồng Ubiquiti UACC-CM-RJ45-MG chạy ngon lành trong một CCR2004 và trong một Intel X520-DA2 chạy Debian, còn trong cage SFP+ của một CRS309 và một CRS328 thì chúng không bao giờ lên link, dù bật autonegotiation hay ghim cứng speed bằng tay. Phụ thuộc vào host là có thật, nên hãy verify đúng trên cái máy thực tế trước khi mua nguyên một xấp bất cứ thứ gì.

3 IndiasfpopsIN Show original (English) AI translation
Log in to comment. Log in