我正在尝试配置一台 PC 引擎盒来运行 OpenEmbedded 构建,其中一个或多个网络接口关闭自动协商,但我的 .link 文件中似乎缺少一些内容。在启动时,我收到以下消息:
Dec 26 23:20:07 rl-000db948364a systemd[1]: Started udev Kernel Device Manager.
Dec 26 23:20:07 rl-000db948364a systemd-udevd[231]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Dec 26 23:20:07 rl-000db948364a systemd-udevd[244]: link_config: Cannot set device settings for eth2 : Invalid argument
Dec 26 23:20:07 rl-000db948364a systemd-udevd[244]: Could not set speed or duplex of eth2 to 100 Mbps (full): Invalid argument
Dec 26 23:20:07 rl-000db948364a systemd-udevd[232]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
我的网络接口 .link 文件如下所示:
[Match]
MACAddress=00:0d:b9:48:36:4a
[Link]
AutoNegotiation=false
Duplex=full
BitsPerSecond=100M
我想也许自动协商需要一些其他的价值,比如离开或者残疾人,但这些似乎并没有改变任何东西,也没有改变0。使用我预计会失败的东西,比如弗拉伊,当我使用时给我一个关于该词非法的错误消息udevadm 测试内置...。跑步乌德瓦德信息...显示我的 .link 文件已被使用,并且我可以将 LAN 唤醒设置为接口支持的值。
如果在启动后我设置双工和速度以太网工具,它工作得很好。
我正在处理 Intel Corp. I211 设备。
有人对我还可以尝试什么有建议吗?谢谢!
答案1
在用尽所有其他选项后,我查看了 systemd-udevd 源代码,发现至少在 v236 的 systemd 中存在一个错误,该错误阻止它从 .link 文件的内容设置双工或速度。我已经向开发人员提交了补丁,但 v237 里程碑的补丁尚未被接受。
这是一个深奥的问题,不会影响大多数人,但如果您从源代码构建 systemd 并且绝对积极地想要自己修复它,则可以在以下位置找到更改Github 拉取请求。