据我所知,以下命令将设置自动协商通告的速度和双工。
ethtool -s eth0 advertise 0x020
其中按照以下指南0x020
表示:1000baseT Full
advertise N
Sets the speed and duplex advertised by autonegotiation. The
argument is a hexadecimal value using one or a combination of
the following values:
0x001 10baseT Half
0x002 10baseT Full
0x004 100baseT Half
0x008 100baseT Full
0x010 1000baseT Half (not supported by IEEE standards)
0x020 1000baseT Full
我应用的命令1000baseT Full
仅用于通告。我想知道如何设置服务器以1000baseT Full 100baseT Full 100baseT Half
一次性通告多种链接模式。
我尝试对所需的链接模式逐一应用相同的命令,但每次新的链接模式都会替换当前模式而不是添加到其中。
我也曾像下面一样连续提到过链接模式十六进制代码,但它会返回错误。
ethtool -s eth0 advertise 0x020 0x008 0x004
ethtool: bad command line argument(s)
For more information run ethtool -h
当所有内容都被公布时,它们会在输出中显示ethtool
如下内容:
ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
请问有什么想法吗?
答案1
将数字相加。观察结果:
0x001
是0b000000000001
,0x002
是0b000000000010
,0x004
是0b000000000100
,
等等,每个位都代表某个寄存器中的一个位(标志),用于存储启用的模式。您只需启用所有想要的位即可。
在你的情况下1000baseT Full
,100baseT Full
和100baseT Half
将是0x020 + 0x008 + 0x004 = 0x02c
:
ethtool -s eth0 advertise 0x02c