如何强制 Debian Stretch 以太网达到 10MBit?

如何强制 Debian Stretch 以太网达到 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/interfaces.将ethtool命令放在选项中的后面pre-up

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

以上假设是正常的 Debian Stretch。 Raspbian 这里可能有所不同。

相关内容