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/interfaces
ethtool
pre-up
iface eth0 inet dhcp
pre-up /sbin/ethtool -s eth0 speed 10 duplex half autoneg off
上記は一般的なDebian Stretchを想定しています。 Raspbianはここで異なる場合があります。