今回は、mii-tool(https://manpages.debian.org/buster/manpages-ja/mii-tool.8.ja.html)を使ってオートネゴシエーションの禁止と通信速度の固定を行います。 ethtoolを使う場合は、オートネゴシエーションを無効にしてネットワーク通信速度を固定する方法: ethtoolを参照して下さい。
1. ネットワーク状態の確認
はじめに、nmcliコマンドで、登録されているコネクションを確認します。
root@armadillo:~# nmcli connect NAME UUID TYPE DEVICE Wired connection 1 d32dc075-1401-3f57-a4fd-d6af06337c0c 802-3-ethernet eth0
ここでは、有線LANが登録されていることが分かります。 次に、mii-toolコマンドで、eth0の状態を確認します。
root@armadillo:~# mii-tool -v eth0 eth0: negotiated 1000baseT-FD flow-control, link ok product info: vendor 00:01:c1, model 19 rev 1 basic mode: autonegotiation enabled basic status: autonegotiation complete, link ok capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
上記結果から、eth0はオートネゴシエーションが有効、通信速度1000Mbps、全二重でリンクアップされていることが分かります。
2. オートネゴシエーションの無効と通信速度の固定
ここでは、以下のコマンドを実行して、eth0のオートネゴシエーションを無効、通信速度を100Mbpsに固定してみます。
root@armadillo:~# mii-tool eth0 -F 100baseTx-FD root@armadillo:~# fec 30bf0000.ethernet eth0: Link is Down fec 30bf0000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
mii-tool -vを実行して、eth0が指定した設定になっていることを確認します。
root@armadillo:~# mii-tool -v eth0 eth0: 1000 Mbit, full duplex, link ok product info: vendor 00:01:c1, model 19 rev 1 basic mode: 100 Mbit, full duplex basic status: link ok capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD root@armadillo:~#
Note:
mii-tool eth0 -F 100baseTx-FDコマンドを実行して暫く待ってもリンクアップされない(Link is Downで止まる)場合は、以下のコマンドでオートネゴシエーションを一旦有効にして、再度mii-tool eth0 -F 100baseTx-FDコマンドを実行して下さい。
root@armadillo:~# mii-tool eth0 -r restarting autonegotiation... root@armadillo:~# fec 30bf0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
3. 変更した内容をArmadillo起動時に自動実行
mii-toolで変更した内容は一時的なものであり、Armadilloを再起動したら変更内容はデフォルトに戻ります。 Armadillo再起動時にオートネゴシエーションを無効にして、通信速度を所定の値に設定したい場合は、スクリプトを自動実行させます。 スクリプトの例を以下に示します。
#!/bin/bash mii-tool eth0 -F 100baseTx-FD
上記スクリプトを自動実行させる方法は、以下のブログを参照して下さい。
Armadillo-X1, Armadillo-IoT G3/G3L: systemdでアプリを自動起動する方法(その1)