ethtool: v5.7
kernel: v5.4.52
driver: r8169 + libphy
Starting from v5.7, all ethtool --change commands fail to apply and
show the following error message:
$ ethtool -s ens5 autoneg off
netlink error: No such file or directory
Cannot set new settings: No such file or directory
not setting autoneg
'git bisect' points to:
8bb9a04 (ethtool.c: Report transceiver correctly)
After debugging I found that this commit sets deprecated.transceiver
and then do_ioctl_slinksettings() checks for it and returns -1.
errno is thus invalid and the the error message is bogus.
With debugging enabled:
$ ethtool --debug 0xffff -s ens5 autoneg off
sending genetlink packet (32 bytes):
msg length 32 genl-ctrl
CTRL_CMD_GETFAMILY
CTRL_ATTR_FAMILY_NAME = "ethtool"
<message dump/>
received genetlink packet (52 bytes):
msg length 52 error errno=-2
<message dump/>
netlink error: No such file or directory
offending message:
ETHTOOL_MSG_LINKINFO_SET
ETHTOOL_A_LINKINFO_PORT = 101
Cannot set new settings: No such file or directory
not setting autoneg