web-dev-qa-db-ja.com

Realtekイーサネットカードがランダムに切断される

私のラップトップにはRealtek RTL8168イーサネットカードがありますが、これは非常にうまく機能します。場合によっては、接続が切断されるだけで、接続をリセットするためにケーブルを取り外して再接続する必要がある場合を除きます。

プリインストールされたr8169モジュールを試しましたが、現在はRealtekのWebサイトのソースでビルドされたr8168モジュールを使用しています。問題は両方のドライバーモジュールで発生します。

$ lspci | grep Ethernet
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)

$ dmesg
#stops working, no reports
#unplugging
[ 9324.277753] r8168: eth0: link down
[ 9328.636380] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
#replugging
[ 9334.316610] r8168: eth0: link up
[ 9334.316744] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
#Working again

PS:grep NetworkManager /var/log/syslogを使用して、このような接続の中断が発生した頃に、次のことを行いました。

#EDIT:These messages are printed when I plug out the cable. Before, there is nothing
Jan 28 23:40:31 dracarys NetworkManager[912]: <info> (eth0): carrier now OFF (device state 100, deferring action for 4 seconds)
Jan 28 23:40:35 dracarys NetworkManager[912]: <info> (eth0): device state change: activated -> unavailable (reason 'carrier-changed') [100 20 40]
Jan 28 23:40:35 dracarys NetworkManager[912]: <info> (eth0): deactivating device (reason 'carrier-changed') [40]
Jan 28 23:40:35 dracarys NetworkManager[912]: <info> (eth0): canceled DHCP transaction, DHCP client pid 6975
Jan 28 23:40:35 dracarys NetworkManager[912]: <warn> DNS: plugin dnsmasq update failed
Jan 28 23:40:35 dracarys NetworkManager[912]: <info> Removing DNS information from /sbin/resolvconf
Jan 28 23:40:35 dracarys NetworkManager[912]: <info> NetworkManager state is now DISCONNECTED
#replug
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> (eth0): carrier now ON (device state 20)
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> (eth0): device state change: unavailable -> disconnected (reason 'carrier-changed') [20 30 40]
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> Auto-activating connection 'Wired connection 1'.
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> Activation (eth0) starting connection 'Wired connection 1'
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> (eth0): device state change: disconnected -> prepare (reason 'none') [30 40 0]
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> NetworkManager state is now CONNECTING

そしてそれは再び働いた

これを修正する方法についてのアイデアはありますか?追加情報が必要な場合はお知らせください。

編集$ modinfo r8168

filename:       /lib/modules/3.13.0-37-generic/kernel/drivers/net/ethernet/realtek/r8168.ko
version:        8.038.00-NAPI
license:        GPL
description:    RealTek RTL-8168 Gigabit Ethernet driver
author:         Realtek and the Linux r8168 crew <[email protected]>
srcversion:     7600C3366E422907A1D79F1
alias:          pci:v00001186d00004300sv00001186sd00004B10bc*sc*i*
alias:          pci:v000010ECd00008168sv*sd*bc*sc*i*
depends:        
vermagic:       3.13.0-37-generic SMP mod_unload modversions 
parm:           eee_enable:int
parm:           speed:force phy operation. Deprecated by ethtool (8). (ushort)
parm:           duplex:force phy operation. Deprecated by ethtool (8). (int)
parm:           autoneg:force phy operation. Deprecated by ethtool (8). (int)
parm:           aspm:Enable ASPM. (int)
parm:           s5wol:Enable Shutdown Wake On Lan. (int)
parm:           rx_copybreak:Copy breakpoint for copy-only-tiny-frames (int)
parm:           timer_count:Timer Interrupt Interval. (int)
parm:           debug:Debug verbosity level (0=none, ..., 16=all) (int)
3
s3lph

数日前、RealtekのWebサイトでドライバーの新しいリリース(8.039.900)を見つけました。私はそれをダウンロードし、コンパイルし、インストールしましたが、それ以来接続のドロップを経験することはありませんでした。

r8168の更新:

最新のドライバーソースをダウンロードできます here

ダウンロードしたアーカイブを解凍して実行します

Sudo make

抽出フォルダー内。コンパイル後、現在インストールされているr8168モジュールは自動的に新しいバージョンに置き換えられます(これはmake installを実行している場合にのみ発生するはずです)

新しいバージョンをロードするには、次を実行します

Sudo modprobe -r r8168 && Sudo modprobe r8168

PS:このドライバーに付属のインストールスクリプトを使用しないでください。新しいモジュールをコンパイルする前に、古いモジュールをアンインストールします(r8168またはr8169に関係なく)。コンパイルが失敗した場合、WiFiまたは別のイーサネットカードがない場合、インターネットは使用できません。

0
s3lph

N.B:この答えは決して最終的なものではありません。オンラインでの調査と経験からの個人的な提案に基づいて、いくつかの可能な解決策を思いつきました。

カーネルモジュールの交換

オンラインでの調査から、Ubuntuのインストールに付属しているr8168モジュールを、より新しい更新されたバージョンに置き換えることが最善の解決策であることが多いようです。たとえば、 this crunchbang post

このUbuntuフォーラムの投稿 2012年には、r8168モジュールの新しい更新バージョン用のスクリプトが記載されています。 Sudo apt-get install linux-headers-$(uname -r)またはSudo apt-get install --reinstall linux-headers-$(uname -r)を実行し、matera.ttpの指示に従うことができます。そこに投稿したPraseonymは、カーネル更新ごとにモジュールを再構築することになっている dkms でドライバーをインストールすることを提案しています。これで、dkmがすでにインストールされているはずです。which dkmsで確認できます。したがって、Praseonymの指示またはmatera.ttpのいずれかを使用できます。考え方は同じです。

モジュール設定の調整

多くのネットワークの問題については、モジュール構成を微調整することで問題を解決できますが、率直に言って、同じ効果でr8169を使用しているので、問題ではないと思います。それにもかかわらず、試してみてください。

/etc/modprobe.d/ディレクトリで、r8168.confファイルを作成します。そのファイルに、次のように記述します。

options eee_enable=1

保存して再起動します。

これで、他のオプションでも同じことができます。たとえば、私の最初の推測は、options timer_count=3600をr8168.confファイルに追加することでした。なぜ3600なのか?パラメータが時間を扱うと仮定すると、ほとんどの場合は秒です。

実際に動作しなかったケースを見つけましたが、問題はBIOSに関連していました。このページを参照してください: http://ubuntuforums.org/showthread.php?t=2138125&page=2

他のすべてが失敗した場合

他の投稿でも述べたように、時々ハードウェアが問題であり、どんなに微調整しても問題は解決しない。個人的な経験では、2つのrtl8192ワイヤレスチップセットを扱いました。1つは奇妙なサウンドバグを与えていましたが、もう1つはほとんど問題なく動作します。

イーサネットカードの代替品を探すことをお勧めします。私の提案は、イーサネットスロットを備えたポータブルUSBハブ、 これらによく似ています

1