Debian Stretch Ethernetを10MBitに強制する方法は?

Debian Stretch Ethernetを10MBitに強制する方法は?

ARMとStretchを備えたヘッドレス組み込みボードがあり、イーサネットは100Mbitでは正しく動作しませんが、10Mbitでは正しく動作します。

10Mbitを強制的に適用したいのですが、dhclientが起動する前にこれを行う必要があります。それ以外の場合は、IPアドレスを取得できません。

これまで、私は以下でこれを行いましたrc.local

echo SETTING eth0 to 10Mbit
/sbin/ethtool -s eth0 speed 10 duplex half autoneg off 
if [ -n "`pgrep dhclient`" ] then
   dhclient -r
   dhclient
fi

しかし、これは2つのdhclientインスタンスを残し、これが正しいアプローチであるかどうかはわかりません。

~ ps auxf | grep dhc
root       917  0.0  1.6   6692  1972 ?        Ss   Jul31   0:00 /sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid -l
root     16783  0.0  1.4   4336  1772 pts/1    S+   07:07   0:00          \_ grep dhc
root      1571  0.0  1.5   6692  1892 ?        Ss   Jul31   0:00 dhclient

どんな提案がありますか?ありがとうございます!

答え1

NetworkManagerを使用している場合は、次のコマンドを実行して<connection_name>NetworkManager接続設定の実際の名前に置き換えます。

nmcli connection modify <connection_name> 802-3-ethernet.speed 10 802-3-ethernet.duplex half 802-3-ethernet.auto-negotiate no

NetworkManagerを使用していない場合は、おそらくすでにオプションにコマンドを入力してくださいiface eth0 inet dhcp/etc/network/interfacesethtoolpre-up

iface eth0 inet dhcp
    pre-up /sbin/ethtool -s eth0 speed 10 duplex half autoneg off

上記は一般的なDebian Stretchを想定しています。 Raspbianはここで異なる場合があります。

関連情報