「ネットワーク設定/イーサネット」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(→‎ドライバの状態の確認: 不要な編集なので削除)
 
(3人の利用者による、間の15版が非表示)
3行目: 3行目:
 
[[pt:Network configuration (Português)/Ethernet]]
 
[[pt:Network configuration (Português)/Ethernet]]
 
[[ru:Network configuration (Русский)/Ethernet]]
 
[[ru:Network configuration (Русский)/Ethernet]]
[[zh-hans:Network configuration (简体中文)/Ethernet]]
+
[[zh-hans:Network configuration/Ethernet]]
  +
この記事では[[Wikipedia:ja:イーサネット|イーサネット]]固有の情報について説明しています。一般的なネットワーク設定は[[ネットワーク設定]]でカバーされています。
 
この記事では[[Wikipedia:Ethernet|イーサネット]]の使用を説明しています。一般的なネットワーク設定は[[ネットワーク設定]]でカバーされています。
 
   
 
== デバイスドライバ ==
 
== デバイスドライバ ==
11行目: 10行目:
 
=== ドライバの状態の確認 ===
 
=== ドライバの状態の確認 ===
   
[[udev]] があなたのネットワークインタフェースカード ([[Wikipedia:ja:ネットワークカード|NIC]] を参照) を検知し、必要なモジュールを起動時に自動でロードします。{{ic|lspci -v}} のアウトプットから "Ethernet controller" エントリ(かそれに類似したもの)をチェックしてください。どのカーネルモジュールがネットワークデバイスのためのドライバを含んでいるかわかります。例:
+
[[udev]] があなたの[[Wikipedia:ja:ネットワークカード|ネットワークインターフェイスコントローラ]] (NIC)を検知し、必要な[[カーネルモジュール]]を起動時に自動でロードします。{{ic|lspci -v}} のアウトプットから "Ethernet controller" エントリ(かそれに類似したもの)をチェックしてください。どのカーネルモジュールがネットワークデバイスのためのドライバを含んでいるかわかります。例:
   
 
{{hc|$ lspci -v|
 
{{hc|$ lspci -v|
02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)
+
02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)
...
+
...
Kernel driver in use: atl1
+
Kernel driver in use: atl1
Kernel modules: atl1}}
+
Kernel modules: atl1
  +
}}
   
次に、{{ic|dmesg <nowiki>|</nowiki> grep ''module_name''}} ドライバがロードされたかチェックします。例:
+
次に、{{ic|dmesg {{!}} grep ''module_name''}} を root として実行してドライバがロードされたかチェックします。例:
   
$ dmesg | grep atl1
+
{{hc|# dmesg {{!}} grep atl1|
...
+
...
atl1 0000:02:00.0: eth0 link is up 100 Mbps full duplex
+
atl1 0000:02:00.0: eth0 link is up 100 Mbps full duplex
  +
}}
   
 
ドライバがきちんとロードされている場合は次のセクションはスキップしてください。そうでないならば、あなたの使っているモデルのために必要なモジュールを知る必要があります。
 
ドライバがきちんとロードされている場合は次のセクションはスキップしてください。そうでないならば、あなたの使っているモデルのために必要なモジュールを知る必要があります。
29行目: 30行目:
 
=== デバイスモジュールのロード ===
 
=== デバイスモジュールのロード ===
   
チップセットに必要なモジュールドライバをインターネットで検索してください。Realtek のチップセットを使っているカードには {{ic|8139too}} が、SiS のチップセットを使っているカードには {{ic|sis900}} が一般的に使われるモジュールです。どのモジュールを使うべきかがわかったら、[[カーネルモジュール#手動でモジュールを扱う|手動でモジュールをロード]]してみてください。モジュールが見つからないというエラーが表示される場合、Arch カーネルにドライバーが含まれていないのかもしれません。モジュールの名前で [[Arch User Repository|AUR]] を検索できます。
+
チップセットに必要なモジュール/ドライバをインターネットで検索してください。Realtek のチップセットを使っているカードには {{ic|8139too}} が、SiS のチップセットを使っているカードには {{ic|sis900}} が一般的に使われるモジュールです。どのモジュールを使うべきかがわかったら、[[カーネルモジュール#手動でモジュールを扱う|手動でモジュールをロード]]してみてください。モジュールが見つからないというエラーが表示される場合、まず、最近カーネルをアップグレードしたかどうかを確認してください ([[一般的なトラブルシューティング#カーネルのアップグレード後に一部の周辺機器が使用できない]] を参照)。または、Arch カーネルにドライバーが含まれていないのかもしれません。モジュールの名前で [[Arch User Repository|AUR]] を検索できます。
   
起動時に udev が自動で正しいモジュールを検知・ロードしない場合、[[カーネルモジュール#ロード]]見てくだ
+
起動時に udev が自動で正しいモジュールを検知・ロードしない場合、明示的に[[カーネルモジュール#モジュールの自動ロード|起動時にモジュールロードせる]]ことができます
   
 
== ヒントとテクニック ==
 
== ヒントとテクニック ==
39行目: 40行目:
 
{{Tip|[[dhcpcd]] は同じ機能を設定不要で提供します。}}
 
{{Tip|[[dhcpcd]] は同じ機能を設定不要で提供します。}}
   
[[公式リポジトリ]]にある {{Pkg|ifplugd}} は、ケーブルが接続された時にイーサネットデバイスを自動で設定し、ケーブルが抜かれた時に自動で設定を解除するデーモンを提供します。これはオンボードのネットワークアダプタを持っているラップトップで役に立ちます。なぜならケーブルが実際に接続されているときだけインターフェースを設定するからです。他にも、ネットワークをリスタートしたいがコンピュータの再起動をしたりシェルを使いたくないときに役に立ちます。
+
{{Pkg|ifplugd}} は、ケーブルが接続された時にイーサネットデバイスを自動で設定し、ケーブルが抜かれた時に自動で設定を解除するデーモンを提供します。これはオンボードのネットワークアダプタを持っているラップトップで役に立ちます。なぜならケーブルが実際に接続されているときだけインターフェースを設定するからです。他にも、ネットワークをリスタートしたいがコンピュータの再起動をしたりシェルを使いたくないときに役に立ちます。
   
 
デフォルトでは ifplugd は {{ic|eth0}} デバイスで動作するように設定されています。デバイスや遅延時間などは {{ic|/etc/ifplugd/ifplugd.conf}} で設定することができます。
 
デフォルトでは ifplugd は {{ic|eth0}} デバイスで動作するように設定されています。デバイスや遅延時間などは {{ic|/etc/ifplugd/ifplugd.conf}} で設定することができます。
   
{{Note|[[netctl]] パッケージに {{ic|netctl-ifplugd@.service}} が含まれています、もしくは {{Pkg|ifplugd}} パッケージの {{ic|ifplugd@.service}} を使うことができます。使用: {{ic|# systemctl enable ifplugd@eth0.service}}。}}
+
{{Note|[[netctl]] パッケージに {{ic|netctl-ifplugd@.service}} が含まれています、もしくは {{Pkg|ifplugd}} パッケージの {{ic|ifplugd@.service}} を使うことができます。例えば {{ic|ifplugd@eth0.service}} を[[有効化]]する。}}
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
49行目: 50行目:
 
=== ケーブルモデムのコンピュータを交換 ===
 
=== ケーブルモデムのコンピュータを交換 ===
   
ほとんど国内 ISP (videotron など) はネットワークインターフェイスの MAC アドレスを使って、認識するクライアント PC を一つだけに絞るようにケーブルモデムを設定しています。ケーブルモデムが初めて PC (やケーブルモデムに接続された機器) の MAC アドレスを認識すると、それ以外の MAC アドレスには頑として返答しなくなります。その PC を別の PC (またはルーター) に交換すると、新しい PC (やルーター) ではケーブルモデムを使うことができません。新しい PC (やルーター) の MAC アドレスは昔の PC の MAC アドレスと異なるからです。新しい PC を認識させるためにケーブルモデムをリセットするには、ケーブルモデムの電源を一度切ってから再度入れる必要があります。ケーブルモデムが再起動してオンラインになったら (通知ランプがおとなしくなるのでわかります)、新しく接続した PC を再起動して DHCP のリクエストを行ったり、手動で新しい DHCP リースをリクエストしてください。
+
一部ケーブル ISP (Vidéotron など) はネットワークインターフェイスの MAC アドレスを使って、認識するクライアント PC を一つだけに絞るようにケーブルモデムを設定しています。ケーブルモデムが初めて PC (やケーブルモデムに接続された機器) の MAC アドレスを認識すると、それ以外の MAC アドレスには頑として返答しなくなります。その PC を別の PC (またはルーター) に交換すると、新しい PC (やルーター) ではケーブルモデムを使うことができません。新しい PC (やルーター) の MAC アドレスは昔の PC の MAC アドレスと異なるからです。新しい PC を認識させるためにケーブルモデムをリセットするには、ケーブルモデムの電源を一度切ってから再度入れる必要があります。ケーブルモデムが再起動してオンラインになったら (通知ランプがおとなしくなるのでわかります)、新しく接続した PC を再起動して DHCP のリクエストを行ったり、手動で新しい DHCP リースをリクエストしてください。
   
この方法が上手くいかない場合、元のマシンの MAC アドレスをクローンする必要があります。[[#MAC/ハードウェアアドレスを変更する|MAC/ハードウェアアドレスを変更する]]を参照。
+
この方法が上手くいかない場合、元のマシンの MAC アドレスをクローンする必要があります。[[MAC アドレス偽装]]を参照。
   
 
=== Explicit Congestion Notification ===
 
=== Explicit Congestion Notification ===
   
[[Wikipedia:Explicit Congestion Notification|Explicit Congestion Notification]] (ECN) may cause traffic problems with old/bad routers [https://bbs.archlinux.org/viewtopic.php?id=239892]. As of [https://github.com/systemd/systemd/issues/9748 systemd 239], it is enabled for both ingoing and outgoing traffic.
+
古い/悪いルータで [[Wikipedia:Explicit Congestion Notification|Explicit Congestion Notification]] (ECN) がトラフィックの問題を引き起こす場合があります [https://bbs.archlinux.org/viewtopic.php?id=239892][https://github.com/systemd/systemd/pull/20535 systemd 240] より、これをリクエストする着信接続に対して有効化されています (カーネルのデフォルト)。
   
  +
ECN を着信接続と発信接続の両方に対して有効化するには:
To enable ECN only when requested by incoming connections (the reasonably safe, kernel default):
 
  +
  +
# sysctl net.ipv4.tcp_ecn=1
  +
  +
受信の接続により要求された時に限り ECN を有効化するには (適度に安全な、カーネルのデフォルトです):
   
 
# sysctl net.ipv4.tcp_ecn=2
 
# sysctl net.ipv4.tcp_ecn=2
   
  +
ECN を完全に無効化するには(例えば、ECN が問題を引き起こしているのか確認したい場合):
To disable ECN completely (to e.g. test whether ECN was causing problems):
 
   
 
# sysctl net.ipv4.tcp_ecn=0
 
# sysctl net.ipv4.tcp_ecn=0
   
See also the [https://www.kernel.org/doc/html/latest/networking/ip-sysctl.html kernel documentation].
+
[https://docs.kernel.org/networking/ip-sysctl.html カーネルのドキュメント]も参照してください。
  +
  +
=== Broadcom BCM57780 ===
  +
  +
この Broadcom チップセットは、ロードするモジュールの順番を指定しないと、うまく動作しないことがあります。モジュールは {{ic|broadcom}} と {{ic|tg3}} です。前者を先にロードする必要があります。
  +
  +
コンピュータにこのチップセットが存在する場合、以下のステップでうまく行くはずです:
  +
  +
* ''lspci'' の出力から NIC を見つける:
  +
  +
{{hc|$ lspci {{!}} grep Ethernet|
  +
02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe (rev 01)
  +
}}
  +
  +
* 有線ネットワークが何らかの形で機能していない場合、ケーブルを抜き、以下の手順を行う:
  +
  +
# modprobe -r tg3
  +
# modprobe broadcom
  +
# modprobe tg3
  +
  +
* ネットワークケーブルを再び差して、モジュールが成功したか確認する:
  +
  +
# dmesg | grep tg3
  +
  +
* この手順で問題が解決した場合、{{ic|broadcom}} と {{ic|tg3}} を (この順番で) {{ic|MODULES}} 配列に追加することで、これを永続化することができます:
  +
  +
{{hc|/etc/mkinitcpio.conf|2=MODULES=(.. broadcom tg3 ..)}}
  +
  +
* [[Initramfs を再生成する]]
  +
* あるいは、{{ic|/etc/modprobe.d/broadcom.conf}} を作成することもできます:
  +
  +
softdep tg3 pre: broadcom
  +
  +
{{Note|これらの方法は他のチップセットでもうまく行く場合があります (例えば、BCM57760)。}}
  +
 
=== Realtek が使えない / WOL の問題 ===
 
=== Realtek が使えない / WOL の問題 ===
   
 
Realtek 8168 8169 8101 8111(C) が搭載されている NIC (カード/オンボード) を使っている場合、起動時に NIC が無効化され、接続ランプが付かないという問題が発生することがあります。この問題は基本的に Windows をインストールしていると起こります (デュアルブート環境)。Windows における公式の Realtek ドライバー (2007年5月以降) の使用が問題の原因です。新しいドライバーでは Windows のシャットダウン時に NIC を無効化することによって Wake-On-LAN 機能を無効化しているのですが、これはつまり、Windows を起動するまでは NIC が無効のままになってしまうということです。Windows が起動するときに接続ランプが付いて、シャットダウン時に消えるようであれば、ずばりです。通常、システムの電源が入っていれば、(POST の間でも) 接続ランプは点きっぱなしになっています。この問題は新しいドライバーが入っていない他のオペレーティングシステムでも顔を出します (例: Live CD)。問題の解決方法は以下の通りです:
 
Realtek 8168 8169 8101 8111(C) が搭載されている NIC (カード/オンボード) を使っている場合、起動時に NIC が無効化され、接続ランプが付かないという問題が発生することがあります。この問題は基本的に Windows をインストールしていると起こります (デュアルブート環境)。Windows における公式の Realtek ドライバー (2007年5月以降) の使用が問題の原因です。新しいドライバーでは Windows のシャットダウン時に NIC を無効化することによって Wake-On-LAN 機能を無効化しているのですが、これはつまり、Windows を起動するまでは NIC が無効のままになってしまうということです。Windows が起動するときに接続ランプが付いて、シャットダウン時に消えるようであれば、ずばりです。通常、システムの電源が入っていれば、(POST の間でも) 接続ランプは点きっぱなしになっています。この問題は新しいドライバーが入っていない他のオペレーティングシステムでも顔を出します (例: Live CD)。問題の解決方法は以下の通りです:
   
==== 方法 1 - Linux で NIC を直接有効にする ====
+
==== Linux で NIC を直接有効にする ====
   
[[#ネットワークインターフェ有効化無効化]]に従ってインターフェイスを有効化してください。
+
[[ネットワーク設定#ネットワークインターフェ有効化/無効化]]に従ってインターフェイスを有効化してください。
   
==== 方法 2 - Windows ドライバをロールバック/変更する ====
+
==== Windows ドライバをロールバック/変更する ====
   
 
Windows の NIC ドライバーを Microsoft が提供しているドライバーに戻したり、2007年5月以前の Realtek 公式ドライバーに戻すことができます (ハードウェアに付属している CD を使用)。
 
Windows の NIC ドライバーを Microsoft が提供しているドライバーに戻したり、2007年5月以前の Realtek 公式ドライバーに戻すことができます (ハードウェアに付属している CD を使用)。
   
==== 方法 3 - Windows ドライバで WOL を有効にする ====
+
==== Windows ドライバで WOL を有効にする ====
  +
  +
{{Out of date|Windows XP は非常に古く、これは Windows 10/11 で変更されている可能性があります。要確認。}}
   
 
一番簡単な方法はおそらく Windows ドライバーで WOL の設定を変更することです。この方法はシステム全体で適用され、Arch 以外でも問題が解決します (例: ライブ CD や他のオペレーティングシステム)。Windows で、デバイスマネージャを開いて、Realtek ネットワークアダプタを探してダブルクリックしてください。"Advanced" タブ下、"Wake-on-LAN after shutdown" を "Enable" に変更してください。
 
一番簡単な方法はおそらく Windows ドライバーで WOL の設定を変更することです。この方法はシステム全体で適用され、Arch 以外でも問題が解決します (例: ライブ CD や他のオペレーティングシステム)。Windows で、デバイスマネージャを開いて、Realtek ネットワークアダプタを探してダブルクリックしてください。"Advanced" タブ下、"Wake-on-LAN after shutdown" を "Enable" に変更してください。
94行目: 135行目:
 
{{Note|新しい Realtek の Windows ドライバー (''Realtek 8111/8169 LAN Driver v5.708.1030.2008'' で確認。GIGABYTE のサイトから入手できる 2009/01/22 のドライバー) だとオプションが多少変わっていることがあります。例: ''Shutdown Wake-On-LAN --> Enable''。このオプションを {{ic|Disable}} にしても効果はないようです (Windows のシャットダウン時にリンクの光が消えることで確認できます)。あまり綺麗な方法ではありませんが、Windows を起動してからシステムをリセットする (無理やり再起動あるいはシャットダウンさせる) ことで Windows ドライバーに LAN を無効化する暇を与えないことで対処できます。Windows をまた起動してシャットダウンするまでは、リンクの光は消えないで POST 後も LAN アダプタにアクセスできるようになります。}}
 
{{Note|新しい Realtek の Windows ドライバー (''Realtek 8111/8169 LAN Driver v5.708.1030.2008'' で確認。GIGABYTE のサイトから入手できる 2009/01/22 のドライバー) だとオプションが多少変わっていることがあります。例: ''Shutdown Wake-On-LAN --> Enable''。このオプションを {{ic|Disable}} にしても効果はないようです (Windows のシャットダウン時にリンクの光が消えることで確認できます)。あまり綺麗な方法ではありませんが、Windows を起動してからシステムをリセットする (無理やり再起動あるいはシャットダウンさせる) ことで Windows ドライバーに LAN を無効化する暇を与えないことで対処できます。Windows をまた起動してシャットダウンするまでは、リンクの光は消えないで POST 後も LAN アダプタにアクセスできるようになります。}}
   
==== 方法 4 - 新しい Realtek Linux ドライバ使う ====
+
==== BIOS/CMOS ''LAN Boot ROM''有効にする ====
 
Realtek のサイトに Linux 用の Realtek カードの新しいドライバーが存在します (テストしていませんがおそらく問題が解決されるはずです)。
 
 
==== 方法 5 - BIOS/CMOS で ''LAN Boot ROM'' を有効にする ====
 
   
 
BIOS/CMOS で ''Integrated Peripherals --> Onboard LAN Boot ROM --> Enabled'' を設定することで、Windows のドライバーが OS のシャットダウン時に無効化するのとは関係なく、システムの起動時に Realtek の LAN チップが有効化されます。
 
BIOS/CMOS で ''Integrated Peripherals --> Onboard LAN Boot ROM --> Enabled'' を設定することで、Windows のドライバーが OS のシャットダウン時に無効化するのとは関係なく、システムの起動時に Realtek の LAN チップが有効化されます。
104行目: 141行目:
 
{{Note|上記の方法は GIGABYTE GA-G31M-ES2L マザーボードの BIOS バージョン F8 (2009/02/05 に公開) で何回か確認済みです。}}
 
{{Note|上記の方法は GIGABYTE GA-G31M-ES2L マザーボードの BIOS バージョン F8 (2009/02/05 に公開) で何回か確認済みです。}}
   
==== Disable USB AutoSuspend ====
+
==== USB AutoSuspend を無効にする ====
   
  +
省電力機能を使用している場合 (特に、USB autosuspend)、デバイスが正しくロードされず、''NO-CARRIER'' 状態になって、リンクが確立されない可能性があります (RT8156B でテスト済み)。
{{Style|Not everybody uses [[TLP]].}}
 
   
  +
これを解決するには、USB autosuspend を有効化しないデバイスを手動で設定する方法について [[電源管理#USB の自動サスペンド]] を参照してください。または、[[TLP]] を使用している場合は、[https://linrunner.de/tlp/settings/usb.html USB デバイスに関する TLP のドキュメント]を参照してください。その後、デバイスを再接続してください。
When using Power Saving features, specifically USB Auto Suspend with TLP, the device can fail to load correctly, resulting in a ''NO-CARRIER'' state (tested with RT8156B), and no established link.
 
 
To resolve, add the device ID to the USB Denylist of your TLP configuration, and reconnect the device.
 
 
=== Broadcom BCM57780 ===
 
 
この Broadcom チップセットはモジュールをロードする順番を指定しないと上手く動作しないことが時々あります。モジュールは {{ic|broadcom}} と {{ic|tg3}} であり、前者を最初にロードする必要があります。
 
 
コンピューターにこのチップセットが載っている場合、以下の手順に従ってください:
 
 
* ''lspci'' の出力で NIC を確認:
 
$ lspci | grep Ethernet
 
02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe (rev 01)
 
 
* 有線ネットワークが機能しない場合、ケーブルを切断して以下を (root で) 実行:
 
# modprobe -r tg3
 
# modprobe broadcom
 
# modprobe tg3
 
 
* ネットワークケーブルを接続。これで問題が解決する場合 {{ic|broadcom}} と {{ic|tg3}} を (この順番で) {{ic|/etc/mkinitcpio.conf}} の {{ic|MODULES}} 行に追加することで設定を永続化できます:
 
MODULES=".. broadcom tg3 .."
 
 
* initramfs を再生成:
 
# mkinitcpio -p linux
 
 
* もしくは、{{ic|/etc/modprobe.d/broadcom.conf}} を作成:
 
softdep tg3 pre: broadcom
 
 
{{Note|以上の方法は、BCM57760 など、他のチップセットでも使えることがあります。}}
 
   
 
=== Realtek RTL8111/8168B ===
 
=== Realtek RTL8111/8168B ===
   
{{hc|<nowiki># lspci | grep Ethernet</nowiki>|
+
{{hc|# lspci {{!}} grep Ethernet|
 
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
 
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
 
}}
 
}}
   
このアダプタは {{ic|r8169}} モジュールによって認識されます。しかしながら、使われているチップによって、接続が出来たりできなかったりすることがあります。そのような場合は、[[公式リポジトリ]]にある {{Pkg|r8168}} を使うことで安定した接続をすることができます。{{ic|r8169}} を[[ブラックリスト]]に入れて、{{Pkg|r8168}} が [[udev]] によって自動でロードされない場合、[[カーネルモジュール#ロード]]見てくだ
+
このアダプタは {{ic|r8169}} モジュールによって認識されます。しかしながら、使われているチップによって、接続が出来たりできなかったりすることがあります。そのような場合は、{{Pkg|r8168}} を使うことで安定した接続をすることができます。{{ic|r8169}} を[[ブラックリスト]]に入れて、{{Pkg|r8168}} が [[udev]] によって自動でロードされない場合、明示的に[[カーネルモジュール#モジュールの自動ロード|起動時にモジュールロードせる]]ことができます
  +
  +
{{Accuracy|"some revisions", no proof the driver is the cause, and not e.g poorly configured DNS servers}}
   
このアダプタのいくつかのリビジョンのドライバにおけるもう1つの欠陥は IPv6 サポートが貧弱であることです。Web ページがハングしたり、回線が遅くなったりした場合は、[[IPv6#機能を無効にする]]が参考になります。
+
このアダプタの一部のリビジョンのドライバにおけるもう1つの欠陥は IPv6 サポートが貧弱であることです。Web ページがハングしたり、回線が遅くなったりした場合は、[[IPv6#機能を無効にする]] が参考になります。
   
 
=== Gigabyte マザーボードと Realtek 8111/8168/8411 ===
 
=== Gigabyte マザーボードと Realtek 8111/8168/8411 ===
   
Gigabyte GA-990FXA-UD3 などのマザーボードでは IOMMU をオフにして (デフォルトでオフになっていることもあります) 起動を行うと、ネットワークインターフェイスが不安定になって、接続が出来なかったり、通信速度が遅くなったりします。オンボードの NIC だけでなく、コンピュータに接続した他の PCI NIC でも起こりえます。IOMMU の設定はマザーボードに接続された全てのネットワークインターフェイスに影響を与えるからです。IOMMU を有効にしてインストールメディアで起動すると AMD I-10/xhci のページフォールトが数秒だけ表示されますが、その後通常通り起動して、オンボードの NIC が (r8169 モジュールを使用する場合でも) 完全に機能するようになるはずです。
+
Gigabyte GA-990FXA-UD3 などのマザーボードでは [[IOMMU]] をオフにして (デフォルトでオフになっていることもあります) 起動を行うと、ネットワークインターフェイスが不安定になって、接続が出来なかったり、通信速度が遅くなったりします。オンボードの NIC だけでなく、コンピュータに接続した他の PCI NIC でも起こりえます。IOMMU の設定はマザーボードに接続された全てのネットワークインターフェイスに影響を与えるからです。IOMMU を有効にしてインストールメディアで起動すると AMD I-10/xhci のページフォールトが数秒だけ表示されますが、その後通常通り起動して、オンボードの NIC が (r8169 モジュールを使用する場合でも) 完全に機能するようになるはずです。
   
 
インストール時にブートプロセスを設定する場合、起動時のエラーメッセージを排除して USB 3.0 を機能させるために[[カーネルパラメータ]]に {{ic|1=iommu=soft}} を追加してください。
 
インストール時にブートプロセスを設定する場合、起動時のエラーメッセージを排除して USB 3.0 を機能させるために[[カーネルパラメータ]]に {{ic|1=iommu=soft}} を追加してください。
   
=== MicroStar Motherboard with Realtek 8111/8168/8411 ===
+
=== MicroStar Motherboard Realtek 8111/8168/8411 ===
   
  +
"MicroStar B450M MORTAR TITANIUM" のようなマザーボードでは、イーサネットケーブルを抜き差ししたり、ルータの DHCP サーバを再起動したりすると {{ic|r8169}} がダウンシフト状態に入り、1000 Mbit/s のイーサネット速度が 100 Mbit/s にまで落ちます。その際、以下のようなカーネルログが表示されます:
With motherboards such as the "MicroStar B450M MORTAR TITANIUM", unpluging/pluging Ethernet cables or restarting router's DHCP server would cause {{ic|r8169}} to enter a downshifted status, and downgrade the 1000 Mbit/s Ethernet speed to 100 Mbit/s. The kernel log will show:
 
   
 
{{hc|# dmesg {{!}} grep r8169|
 
{{hc|# dmesg {{!}} grep r8169|
163行目: 174行目:
 
}}
 
}}
   
  +
この場合、アダプタを再起動してください(down にセットし up にセットしてください)。例えば:
In this case, restart the adapter (set it down and up). For example:
 
   
 
# ip link set dev enp34s0 down
 
# ip link set dev enp34s0 down
 
# ip link set dev enp34s0 up
 
# ip link set dev enp34s0 up
  +
  +
{{TranslationStatus|Network configuration/Ethernet|2023-07-10|782365}}

2023年8月8日 (火) 23:07時点における最新版

この記事ではイーサネット固有の情報について説明しています。一般的なネットワーク設定はネットワーク設定でカバーされています。

デバイスドライバ

ドライバの状態の確認

udev があなたのネットワークインターフェイスコントローラ (NIC)を検知し、必要なカーネルモジュールを起動時に自動でロードします。lspci -v のアウトプットから "Ethernet controller" エントリ(かそれに類似したもの)をチェックしてください。どのカーネルモジュールがネットワークデバイスのためのドライバを含んでいるかわかります。例:

$ lspci -v
02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)
 	...
 	Kernel driver in use: atl1
 	Kernel modules: atl1

次に、dmesg | grep module_name を root として実行してドライバがロードされたかチェックします。例:

# dmesg | grep atl1
...
atl1 0000:02:00.0: eth0 link is up 100 Mbps full duplex

ドライバがきちんとロードされている場合は次のセクションはスキップしてください。そうでないならば、あなたの使っているモデルのために必要なモジュールを知る必要があります。

デバイスモジュールのロード

チップセットに必要なモジュール/ドライバをインターネットで検索してください。Realtek のチップセットを使っているカードには 8139too が、SiS のチップセットを使っているカードには sis900 が一般的に使われるモジュールです。どのモジュールを使うべきかがわかったら、手動でモジュールをロードしてみてください。モジュールが見つからないというエラーが表示される場合、まず、最近カーネルをアップグレードしたかどうかを確認してください (一般的なトラブルシューティング#カーネルのアップグレード後に一部の周辺機器が使用できない を参照)。または、Arch カーネルにドライバーが含まれていないのかもしれません。モジュールの名前で AUR を検索できます。

起動時に udev が自動で正しいモジュールを検知・ロードしない場合、明示的に起動時にモジュールをロードさせることができます。

ヒントとテクニック

ラップトップのための ifplugd

ヒント: dhcpcd は同じ機能を設定不要で提供します。

ifplugd は、ケーブルが接続された時にイーサネットデバイスを自動で設定し、ケーブルが抜かれた時に自動で設定を解除するデーモンを提供します。これはオンボードのネットワークアダプタを持っているラップトップで役に立ちます。なぜならケーブルが実際に接続されているときだけインターフェースを設定するからです。他にも、ネットワークをリスタートしたいがコンピュータの再起動をしたりシェルを使いたくないときに役に立ちます。

デフォルトでは ifplugd は eth0 デバイスで動作するように設定されています。デバイスや遅延時間などは /etc/ifplugd/ifplugd.conf で設定することができます。

ノート: netctl パッケージに netctl-ifplugd@.service が含まれています、もしくは ifplugd パッケージの ifplugd@.service を使うことができます。例えば ifplugd@eth0.service有効化する。

トラブルシューティング

ケーブルモデムのコンピュータを交換

一部のケーブル ISP (Vidéotron など) はネットワークインターフェイスの MAC アドレスを使って、認識するクライアント PC を一つだけに絞るようにケーブルモデムを設定しています。ケーブルモデムが初めて PC (やケーブルモデムに接続された機器) の MAC アドレスを認識すると、それ以外の MAC アドレスには頑として返答しなくなります。その PC を別の PC (またはルーター) に交換すると、新しい PC (やルーター) ではケーブルモデムを使うことができません。新しい PC (やルーター) の MAC アドレスは昔の PC の MAC アドレスと異なるからです。新しい PC を認識させるためにケーブルモデムをリセットするには、ケーブルモデムの電源を一度切ってから再度入れる必要があります。ケーブルモデムが再起動してオンラインになったら (通知ランプがおとなしくなるのでわかります)、新しく接続した PC を再起動して DHCP のリクエストを行ったり、手動で新しい DHCP リースをリクエストしてください。

この方法が上手くいかない場合、元のマシンの MAC アドレスをクローンする必要があります。MAC アドレス偽装を参照。

Explicit Congestion Notification

古い/悪いルータで Explicit Congestion Notification (ECN) がトラフィックの問題を引き起こす場合があります [1]systemd 240 より、これをリクエストする着信接続に対して有効化されています (カーネルのデフォルト)。

ECN を着信接続と発信接続の両方に対して有効化するには:

# sysctl net.ipv4.tcp_ecn=1

受信の接続により要求された時に限り ECN を有効化するには (適度に安全な、カーネルのデフォルトです):

# sysctl net.ipv4.tcp_ecn=2

ECN を完全に無効化するには(例えば、ECN が問題を引き起こしているのか確認したい場合):

# sysctl net.ipv4.tcp_ecn=0

カーネルのドキュメントも参照してください。

Broadcom BCM57780

この Broadcom チップセットは、ロードするモジュールの順番を指定しないと、うまく動作しないことがあります。モジュールは broadcomtg3 です。前者を先にロードする必要があります。

コンピュータにこのチップセットが存在する場合、以下のステップでうまく行くはずです:

  • lspci の出力から NIC を見つける:
$ lspci | grep Ethernet
02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe (rev 01)
  • 有線ネットワークが何らかの形で機能していない場合、ケーブルを抜き、以下の手順を行う:
# modprobe -r tg3
# modprobe broadcom
# modprobe tg3
  • ネットワークケーブルを再び差して、モジュールが成功したか確認する:
# dmesg | grep tg3
  • この手順で問題が解決した場合、broadcomtg3 を (この順番で) MODULES 配列に追加することで、これを永続化することができます:
/etc/mkinitcpio.conf
MODULES=(.. broadcom tg3 ..)
softdep tg3 pre: broadcom
ノート: これらの方法は他のチップセットでもうまく行く場合があります (例えば、BCM57760)。

Realtek が使えない / WOL の問題

Realtek 8168 8169 8101 8111(C) が搭載されている NIC (カード/オンボード) を使っている場合、起動時に NIC が無効化され、接続ランプが付かないという問題が発生することがあります。この問題は基本的に Windows をインストールしていると起こります (デュアルブート環境)。Windows における公式の Realtek ドライバー (2007年5月以降) の使用が問題の原因です。新しいドライバーでは Windows のシャットダウン時に NIC を無効化することによって Wake-On-LAN 機能を無効化しているのですが、これはつまり、Windows を起動するまでは NIC が無効のままになってしまうということです。Windows が起動するときに接続ランプが付いて、シャットダウン時に消えるようであれば、ずばりです。通常、システムの電源が入っていれば、(POST の間でも) 接続ランプは点きっぱなしになっています。この問題は新しいドライバーが入っていない他のオペレーティングシステムでも顔を出します (例: Live CD)。問題の解決方法は以下の通りです:

Linux で NIC を直接有効にする

ネットワーク設定#ネットワークインターフェイスを有効化/無効化に従ってインターフェイスを有効化してください。

Windows ドライバをロールバック/変更する

Windows の NIC ドライバーを Microsoft が提供しているドライバーに戻したり、2007年5月以前の Realtek 公式ドライバーに戻すことができます (ハードウェアに付属している CD を使用)。

Windows ドライバで WOL を有効にする

この記事またはセクションは情報が古くなっています。
理由: Windows XP は非常に古く、これは Windows 10/11 で変更されている可能性があります。要確認。 (Discuss)

一番簡単な方法はおそらく Windows ドライバーで WOL の設定を変更することです。この方法はシステム全体で適用され、Arch 以外でも問題が解決します (例: ライブ CD や他のオペレーティングシステム)。Windows で、デバイスマネージャを開いて、Realtek ネットワークアダプタを探してダブルクリックしてください。"Advanced" タブ下、"Wake-on-LAN after shutdown" を "Enable" に変更してください。

Windows XP の場合
マイコンピュータを右クリックして"プロパティ"を選択
--> Hardware tab
  --> Device Manager
    --> Network Adapters
      --> "double click" Realtek ...
        --> Advanced tab
          --> Wake-On-Lan After Shutdown
            --> Enable
ノート: 新しい Realtek の Windows ドライバー (Realtek 8111/8169 LAN Driver v5.708.1030.2008 で確認。GIGABYTE のサイトから入手できる 2009/01/22 のドライバー) だとオプションが多少変わっていることがあります。例: Shutdown Wake-On-LAN --> Enable。このオプションを Disable にしても効果はないようです (Windows のシャットダウン時にリンクの光が消えることで確認できます)。あまり綺麗な方法ではありませんが、Windows を起動してからシステムをリセットする (無理やり再起動あるいはシャットダウンさせる) ことで Windows ドライバーに LAN を無効化する暇を与えないことで対処できます。Windows をまた起動してシャットダウンするまでは、リンクの光は消えないで POST 後も LAN アダプタにアクセスできるようになります。

BIOS/CMOS で LAN Boot ROM を有効にする

BIOS/CMOS で Integrated Peripherals --> Onboard LAN Boot ROM --> Enabled を設定することで、Windows のドライバーが OS のシャットダウン時に無効化するのとは関係なく、システムの起動時に Realtek の LAN チップが有効化されます。

ノート: 上記の方法は GIGABYTE GA-G31M-ES2L マザーボードの BIOS バージョン F8 (2009/02/05 に公開) で何回か確認済みです。

USB AutoSuspend を無効にする

省電力機能を使用している場合 (特に、USB autosuspend)、デバイスが正しくロードされず、NO-CARRIER 状態になって、リンクが確立されない可能性があります (RT8156B でテスト済み)。

これを解決するには、USB autosuspend を有効化しないデバイスを手動で設定する方法について 電源管理#USB の自動サスペンド を参照してください。または、TLP を使用している場合は、USB デバイスに関する TLP のドキュメントを参照してください。その後、デバイスを再接続してください。

Realtek RTL8111/8168B

# lspci | grep Ethernet
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)

このアダプタは r8169 モジュールによって認識されます。しかしながら、使われているチップによって、接続が出来たりできなかったりすることがあります。そのような場合は、r8168 を使うことで安定した接続をすることができます。r8169ブラックリストに入れて、r8168udev によって自動でロードされない場合、明示的に起動時にモジュールをロードさせることができます。

この記事またはセクションの正確性には問題があります。
理由: "some revisions", no proof the driver is the cause, and not e.g poorly configured DNS servers (議論: トーク:ネットワーク設定/イーサネット#)

このアダプタの一部のリビジョンのドライバにおけるもう1つの欠陥は IPv6 サポートが貧弱であることです。Web ページがハングしたり、回線が遅くなったりした場合は、IPv6#機能を無効にする が参考になります。

Gigabyte マザーボードと Realtek 8111/8168/8411

Gigabyte GA-990FXA-UD3 などのマザーボードでは IOMMU をオフにして (デフォルトでオフになっていることもあります) 起動を行うと、ネットワークインターフェイスが不安定になって、接続が出来なかったり、通信速度が遅くなったりします。オンボードの NIC だけでなく、コンピュータに接続した他の PCI NIC でも起こりえます。IOMMU の設定はマザーボードに接続された全てのネットワークインターフェイスに影響を与えるからです。IOMMU を有効にしてインストールメディアで起動すると AMD I-10/xhci のページフォールトが数秒だけ表示されますが、その後通常通り起動して、オンボードの NIC が (r8169 モジュールを使用する場合でも) 完全に機能するようになるはずです。

インストール時にブートプロセスを設定する場合、起動時のエラーメッセージを排除して USB 3.0 を機能させるためにカーネルパラメータiommu=soft を追加してください。

MicroStar Motherboard と Realtek 8111/8168/8411

"MicroStar B450M MORTAR TITANIUM" のようなマザーボードでは、イーサネットケーブルを抜き差ししたり、ルータの DHCP サーバを再起動したりすると r8169 がダウンシフト状態に入り、1000 Mbit/s のイーサネット速度が 100 Mbit/s にまで落ちます。その際、以下のようなカーネルログが表示されます:

# dmesg | grep r8169
Generic FE-GE Realtek PHY r8169-2200:00: Downshift occurred from negotiated speed 1Gbps to actual speed 100Mbps, check cabling!
r8169 0000:22:00.0 enp34s0: Link is Up - 100Mbps/Full (downshifted) - flow control rx/tx

この場合、アダプタを再起動してください(down にセットし up にセットしてください)。例えば:

# ip link set dev enp34s0 down
# ip link set dev enp34s0 up
翻訳ステータス: このページは en:Network configuration/Ethernet の翻訳バージョンです。最後の翻訳日は 2023-07-10 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。