I'm trying to configure a PC Engines box to run an OpenEmbedded build with one or more network interfaces with auto-negotiation turned off, and I seem to be missing something in my .link file. At boot time, I get these messages:
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.
My .link file for the network interface looks like this:
[Match]
MACAddress=00:0d:b9:48:36:4a
[Link]
AutoNegotiation=false
Duplex=full
BitsPerSecond=100M
I thought perhaps that AutoNegotiation needed some other value, like off or disabled, but those don't seem to change anything, nor does 0. Using something I expect to fail, like vrai, gives me an error message about the illegality of the word when I use udevadm test-builtin.... Running udevadm info... shows that my .link file was used, and I am able to set wake-on-lan to values supported by the interface.
If, after boot-up, I set the duplex and speed with ethtool, it works just fine.
I'm dealing with an Intel Corp. I211 device.
Does anyone have a suggestion as to what else I might try? Thanks!