at_shigehisa.y…
2019年10月1日 10時15分
今回は、ethtool(https://manpages.debian.org/buster/ethtool/ethtool.8.en.html)を使ってオートネゴシエーションの禁止と通信速度の固定を行います。 mii-toolを使う場合は、オートネゴシエーションを無効にしてネットワーク通信速度を固定する方法: mii-toolを参照して下さい。
1. ネットワーク状態の確認
はじめに、nmcliコマンドで、登録されているコネクションを確認します。
root@armadillo:~# nmcli connect
NAME UUID TYPE DEVICE
Wired connection 1 d32dc075-1401-3f57-a4fd-d6af06337c0c 802-3-ethernet eth0
ここでは、有線LANが登録されていることが分かります。
2. ethtoolのインストールおよびeth0の状態確認
以下のコマンドでethtoolをインストールします。
root@armadillo:~# apt-get install ethtool
以下のコマンドを実行して、eth0の状態を確認します。
root@armadillo:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Link detected: yes
上記結果から、eth0はオートネゴシエーションが有効、通信速度1000Mbps、全二重でリンクアップされていることが分かります。
3. オートネゴシエーションの無効と通信速度の固定
ここでは、以下のコマンドを実行して、eth0のオートネゴシエーションを無効、通信速度を100Mbpsに固定してみます。
root@armadillo:~# ethtool -s eth0 speed 100 duplex full autoneg off
root@armadillo:~# fec 30bf0000.ethernet eth0: Link is Down
fec 30bf0000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
ethtoolを実行して、eth0が指定した設定になっていることを確認します。
root@armadillo:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Advertised link modes: 100baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: No
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: g
Wake-on: d
Link detected: yes
root@armadillo:~#
4. 変更した内容をArmadillo起動時に自動実行
ethtoolで変更した内容は一時的なものであり、Armadilloを再起動したら変更内容はデフォルトに戻ります。 Armadillo再起動時にオートネゴシエーションを無効にして、通信速度を所定の値に設定したい場合は、スクリプトを自動実行させます。 スクリプトの例を以下に示します。
#!/bin/bash
ethtool -s eth0 speed 100 duplex full autoneg off
上記スクリプトを自動実行させる方法は、以下のブログを参照して下さい。
Armadillo-X1, Armadillo-IoT G3/G3L: systemdでアプリを自動起動する方法(その1)