我有一个带有 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 这里可能有所不同。