e1000eドライバをイーサネットアダプタに割り当てる方法

e1000eドライバをイーサネットアダプタに割り当てる方法

イーサネットアダプタに特定のドライバを使用するように指示する方法はありますか?または、どのように動作するかに応じて、ドライバに特定のアダプタをサポートするように指示する方法がありますか?

私のシステムは、e1000eドライバがオンボードI219-LMイーサネットアダプタに接続されていない最近インストールされたRHEL Server 7.3オペレーティングシステム(カーネル3.10.0-514.el7.x86_64)を実行しています。この状況は、アダプターが正しく機能しない理由を調査している間に発見されました。正しく機能するもう1つのイーサネットアダプタは、MBに接続されたPCIカードです。

簡単にlspci言うと:

# lspci | grep net
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)
06:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)

I219-LMデバイスの詳細は、lspci使用しているドライバを報告しません。

# lspci -v -s 00:1f.6
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)
    Subsystem: Intel Corporation Device 0000
    Flags: fast devsel, IRQ 16
    Memory at a1700000 (32-bit, non-prefetchable) [size=128K]
    Capabilities: [c8] Power Management version 3
    Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [e0] PCI Advanced Features
    Kernel modules: e1000e

これとは対照的に、異なるアダプタに対する同じコマンドは、デバイスがe1000eを使用していることを示しています。

# lspci -v -s 06:00.0
06:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)
    Subsystem: Intel Corporation PRO/1000 PT Server Adapter
    Flags: bus master, fast devsel, latency 0, IRQ 130
    Memory at a1320000 (32-bit, non-prefetchable) [size=128K]
    Memory at a1300000 (32-bit, non-prefetchable) [size=128K]
    I/O ports at 4000 [disabled] [size=32]
    Expansion ROM at a1340000 [disabled] [size=128K]
    Capabilities: [c8] Power Management version 2
    Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [e0] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [140] Device Serial Number [edited]
    Kernel driver in use: e1000e
    Kernel modules: e1000e

同じOSとオンボード(および動作する)のI219-LMアダプタタイプを使用する他のシステムを使用できます。ここでは、ドライバが実際にデバイスに接続する必要があることを確認しました。

地域を探索した/sys/bus/pci/drivers/e1000e後、/sys/devices/pci0000:00/0000:00:1f.6欠落しているコンテンツが見つかりました。

  1. .../drivers/e1000eこのフォルダには、82572EIアダプタのPCIアドレスを使用するこの領域へのソフトリンクがありますが、I219-LMアダプタのPCIアドレスへのソフトリンクはありません。/sys/devices/対照的に、言及された「制御」システムには、自分が所有するすべてのアダプタへのリンクがあります。
  2. この領域にはソフトリンク/sys/devices/pci0000:00/0000:00:1f.6はありません。driverただし、ソフトリンクは../pci0000:00/0000:06:00.0他のアダプタの対応するフォルダ()に存在し、その/sys/bus/pci/drivers/e1000eフォルダが存在する必要があるパスを指します。

この問題を解決するのに役立つ追加情報が必要な場合は、お知らせください。

ありがとうございます。

ベストアンサー1

最新のハードウェアを使用するRHEL7.9でも、このような状況が発生したようです。結論はRed Hatが新しいNICドライバを彼らのバージョンドライバーの。そのため、最新のハードウェアがその時点でサポートしているよりも前になる可能性があります。あなたのNICバージョンがRHEL7でサポートされていることを知っています。そのNICを使用するワークステーションがあり、すべてがうまく機能するためです。私の場合、新しいDell Precision TowerにI219-LM NICがあります。これには、Red HatがRHEL7をサポートするためにバックポートしないドライババージョンが必要です(現在RHEL8でサポートされています)。 PXEブートを行ったので、その部分を操作するには追加の作業が必要でした。

PXEブートが機能するには、ブートに使用されているinitrdイメージを更新してイメージをインストールする必要がありましたが、これは実際にこの質問の範囲に含まれていないため、スキップします。

インテルのウェブサイトからドライバをダウンロードできます。e1000eダウンロードページまたはkmodリポジトリ(kmod e1000eリンク)。私の場合は、SpacewalkサーバーからPXEを起動してパッケージをインストールしていたので、kmod-e1000eパッケージを私のリポジトリに追加し、ビルドプロセス中にインストールしました。 kmod-e1000eパッケージは、将来のカーネルアップグレードで上書きしないようにするため、より簡単なオプションです。

TL; DR Red Hatはドライバーのサポートがないため、最新のドライバーを個別にインストールすることでこの問題を解決することもできます。

PS必要に応じて、PXEブート操作を実行する方法を喜んで作成します。

おすすめ記事