GNU/Linux >> Linux の 問題 >  >> Linux

Linux e1000e (Intel ネットワーク ドライバー) の問題が山積みです。どこから始めればよいですか?

解決策 1:

pcie_aspm=off でカーネルを起動してみてください カーネル パラメータ

解決策 2:

Intel のドライバーの readme から:downloadmirror.intel.com/9180/eng/README.txt

82573(V/L/E) TX ユニット ハング メッセージ

82573 チップセットを搭載したいくつかのアダプターは、e1000 ドライバーでの通常の動作中に「TX unit hang」メッセージを表示します。この問題は、TSO が有効な場合と無効な場合の両方で発生し、EEPROM で有効になっている電源管理機能が原因です。ベンダーへのチップセットの初期リリースには、この機能を有効にする EEPROM ビットがありました。この問題が発見された後、EEPROM で機能が無効になっている新しいアダプタがリリースされました。

アダプタで問題が発生し、チップセットが 82573 ベースのものである場合は、ethtool を使用してアダプタに修正が必要かどうかを確認できます:

 # ethtool -e eth0
 Offset          Values
 ------          ------
 0x0000          00 12 34 56 fe dc 30 0d 46 f7 f4 00 ff ff ff ff
 0x0010          ff ff ff ff 6b 02 8c 10 d9 15 8c 10 86 80 de 83
                                                           ^^

オフセット 0x001e (de) の値には、ビット 0 が設定されていません。これにより、問題のある省電力機能が有効になります。この場合、EEPROM はオフセット 0x001e で「df」を読み取る必要があります。

1 回限りの EEPROM 修正は、シェル スクリプトとして利用できます。このスクリプトは、アダプターが修正に適用可能であること、および修正が必要かどうかを検証します。修正が必要な場合は、変更が EEPROM に適用され、チェックサムが更新されます。 EEPROM に変更が加えられた場合、ユーザーは修正を適用した後にシステムを再起動する必要があります。

スクリプトの出力例:

 # bash fixeep-82573-dspd.sh eth0
 eth0: is a "82573E Gigabit Ethernet Controller"
 This fixup is applicable to your hardware
 executing command: ethtool -E eth0 magic 0x109a8086 offset 0x1e value 0xdf
 Change made. You *MUST* reboot your machine before changes take effect!

スクリプトは http://e1000.sourceforge.net/files/fixeep-82573-dspd.sh からダウンロードできます

解決策 3:

墓掘り人として、この古いお尻のスレッドを掘り下げて、Ubuntu のソリューションを共有したいと思います。最新の Intel ネットワーク ドライバー (執筆時点では 3.4.0.2) をダウンロードします。解凍し、Makefile の行に何かを追加し、パッチを取得し、パッチを適用し、インストールし、モジュールを再読み込みし、最後に再起動します。頑張ってください。

wget https://downloadcenter.intel.com/download/15817/Intel-Network-Adapter-Driver-for-PCIe-Intel-Gigabit-Ethernet-Network-Connections-Under-Linux-?product=60019
tar -zxvf e1000e-3.4.0.2.tar.gz
vi e1000e-3.4.0.2/src/Makefile
    ## Locate line 152: EXTRA_CFLAGS += $(CFLAGS_EXTRA)
    ## Append -fno-pie
## Download the patch from https://sourceforge.net/p/e1000/bugs/_discuss/thread/9048ab8e 
## wget/curl won't work here. THANKS SOURCE FORGE.
patch -p0 < e1000e-3.4.0.2-timer-updates.patch
cd e1000e-3.4.0.2/src/
sudo make install
sudo rmmod e1000e && sudo modprobe e1000e
sudo reboot

この札束は、Ubuntu 18.04、カーネル 4.15 で完成しました。

解決策 4:

Ubuntu 18.04.1、4.15.0-36 カーネルの e1000e で同じ問題が発生しましたが、何も役に立ちませんでした。ドライバを intel から 3.4.2.1-NAPI に直接更新しましたが、改善はありません。このスレッドと他のスレッドにリストされているすべてのものは役に立ちませんでした。この Ubuntu バグ レポートを読んで推測したところ、リングバッファー サイズを大幅に削減するための回避策が見つかりました:

sudo ethtool -G eth0 rx 256 tx 256

これにより、問題が完全に解決され、パフォーマンスにまったく影響がないように見えます (デスクトップでの使用、基本的なベンチマークのみ)。


Linux
  1. Linuxでのハードウェア問題のトラブルシューティング

  2. Linuxにデバイスドライバーをインストールする方法

  3. Linuxのトラブルシューティング101:システムパフォーマンス

  1. 使い始める5つのLinuxコマンド

  2. Linuxでビデオティアリングを修正する方法(Intelグラフィックスを使用)

  3. Linux –名前付きセマフォはどこに保存されますか?

  1. Linuxでサービスを有効にする

  2. Linux で PATH_MAX はどこで定義されていますか?

  3. Linux CFS スケジューラ コードはどこにありますか?