CodingBox Q&A Ask question

Supermicro AOC-STGN-i1S(X520)、Proxmox 7.1: HP製DACを挿すとip linkにインターフェースが出ない

Asked Active Viewed 103 AI translation from English
4

自宅で小さなProxmox機を運用していて、ストレージノードへまともな10G経路が欲しくて、中古のSupermicro AOC-STGN-i1Sを入れました。ごく普通のIntel 82599設計で、基板刻印はE157872、構築の中では退屈な部分だろうと思っていました。そうではありませんでした。

  • Supermicro AOC-STGN-i1S、Intel X520-DA1、基板刻印E157872
  • Proxmox 7.1、カーネル5.15.30-1-pve
  • HPブランドのパッシブSFP+ DACで2台目のボックスへ
  • カードはPCIバス上では問題なく列挙される

ドライバの読み込みが最後まで終わりません。カーネルログには、サポートしていないSFP+/QSFPモジュールタイプを検出したため中断した、とあり、その後は設定できるポートがそもそも存在しません。

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

すでに試したこと:

  • /etc/modprobe.d/ixgbe.confを作成してoptions ixgbe allow_unsupported_sfp=1を入れ、update-initramfs -uしてから再起動: 変化なし
  • 同じオプションをカーネルパラメータとして渡してみた: 変化なし
  • rmmod ixgbeとmodprobe ixgbeを手動で実行: それでもip linkに新しいものは出てこない

このカードは死んでいるのでしょうか、それとも5.15カーネルでこのチェックを回避する方法が何かあって、それを見落としているのでしょうか。

Comments 5

Accepted answer

それはixgbeでEEPROMホワイトリストに引っかかったときの動きそのものです。ドライバはモジュールIDを読み、Intelの承認リストに載っていないと判断してnetdevを登録する前に中断します。だからlspciにはカードが見えるのにip linkには何も出てこないわけです。これはハードウェアの故障ではなく、ケージからモジュールを抜いた瞬間にポートが戻ってくるのもそのためです。

公式に文書化された抜け道は、あなたがすでに試したものです。

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

update-initramfs -u
rmmod ixgbe
modprobe ixgbe
ip link

5.15ではこのオプションが単純に信頼できません。私もこのカーネルで同じく何も変わらない結果になったので、やり直したりconfファイルの誤字を探したりしても意味はありません。

私のほうで決着したのはこうです。ケージが空の状態でmodprobe ixgbeするとインターフェースが上がり、HPのケーブルを戻すとまた消え、その同じHPケーブルはMellanox ConnectX-2では何の問題もなくリンクしました。ケーブルは電気的には問題なく、Intelがそのコーディングを気に入らないだけです。

効いた対処は、代わりに無銘のジェネリックSFP+ DACを挿すことでした。すぐにリンクアップ、モジュールオプションも再起動も不要です。サポート面では、Intel以外のコーディングのケーブルを使っている時点でどのみちIntelのマトリクスの外にいるので、このボックスをいずれサポート対象にしたいなら、HP品ではなくIntelコード品のDACを買ってください。

4 Indiawaverunner21IN Show original (English) AI translation

カードを見限る前に、ひとつテストしてみてください。DACをケージから完全に抜いて、rmmod ixgbe、modprobe ixgbeしてからip linkをもう一度見てください。空のケージでインターフェースが出てくるなら、カードもドライバも問題なく、チェックが引っかかっているのはケーブルのほうです。

もうひとつ知っておきたいのは、そのHP製DACは他の場所ではリンクしますか。Intel以外のNICなら普通は何の文句もなく受け入れます。それと、これは間違いなくHPコードのケーブルですか、比較用にジェネリックなものが手元にありますか。

3 United Statesphotonrunner70US Show original (English) AI translation

不安定とはいえドライバ側にノブがあるだけ、X520はまだマシだと思ったほうがいいです。X710とXL710ではモジュールチェックがファームウェア側に移っていて、allow_unsupported_sfpはi40eに対しては一切何もしません。X710-DA2にIntel以外のモジュールを挿すとこうなります。

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

これで会話終了です。そこから先の選択肢は、Intelコード品のオプティクスを使うか、コミュニティのxl710-unlockerルート(Intel純正アップデータで新しいNVMイメージを書き込んでから、サードパーティ製ツールでEEPROMの0x6800-0x7000あたりにある11ビットのフィールドをいじる、完全に自己責任)、あるいは最初からOEMバリアントを選ぶかです。HPE 562SFP+は中身がX710で、ファームウェアとi40eを更新した後は、何のハックもなしにサードパーティ製の10Gと1G銅モジュールを受け入れました。

4 Spainqsfpwolf31ES Show original (English) AI translation

OEMの話は逆方向にも効きます。DellやLenovoブランドのX710-DA2カードは未承認のSFP+やDACを拒否しますし、Intel純正ツールにはそのボード自体が一覧に出てきません。みんなが落ち着いた先は、素のIntel NVMを書き込むことでした。まずIntelのフルBootUtilパッケージからQVドライバが必要で、それがないとユーティリティはそもそもボードと通信しません。最初にオプションROMを差し替えてから、カードをインベントリしてフラッシュします。

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

インベントリとフラッシュの間に、nvmupdate.cfgをカードのSPIフラッシュサイズ(4MBか8MB)に合う単一のX710エントリだけに絞り込んでください。サイズを間違えると、保存済みのNVMイメージとハードウェアフラッシャーがないと復旧できないレンガになるので、先にETrackIDを読んで確実にしてください。その後9.30-9.40あたりのファームウェアで動いたという報告があり、副産物としてLenovoのボードでSR-IOVが使えるようになった人もいました。それでも、失っても構わないカードでしか試さないほうがいいと思います。

2 Italylambdapilot72IT Show original (English) AI translation

クロスフラッシュやEEPROMパッチのルートをこのスレッドに向けるのは慎重にしたほうがいいです。どちらもここで説明されている状況には効きません。X520のEEPROMのOEMフラグを編集するには、そもそもカードにアクセスするための動作するインターフェースが必要ですが、ここではケーブルをケージから抜くまでインターフェース自体が存在しません。それはポートが存在していて1つのモジュールを拒否している場合の直し方であって、読み込み時に中断するドライバの話ではありません。

もうひとつ深読みしすぎないほうがいいのが、別のNICでのテストです。別のホストでモジュールがリンクするというのは、そのモジュールが健全だということの証明であって、本当に使いたいホストでの動作を証明するものではありません。私が持っているUbiquiti UACC-CM-RJ45-MG銅モジュールは、CCR2004とDebian上のIntel X520-DA2では問題なく動きますが、CRS309とCRS328のSFP+ケージではオートネゴシエーションでも速度を手動固定しても一切リンクしません。ホスト依存は実在するので、まとめ買いする前に実際に使う機種で確認してください。

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