O tratamento de auto-negociação do systemd.link está quebrado?

2

Estou tentando configurar uma caixa de Mecanismos para PC para executar uma compilação OpenEmbedded com uma ou mais interfaces de rede com a negociação automática desativada e pareço estar faltando alguma coisa no meu arquivo .link. No momento da inicialização, recebo estas mensagens:

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.

Meu arquivo .link para a interface de rede é assim:

[Match]
MACAddress=00:0d:b9:48:36:4a

[Link]
AutoNegotiation=false
Duplex=full
BitsPerSecond=100M

Eu pensei que talvez a AutoNegotiation precisasse de algum outro valor, como off ou desativado , mas eles não parecem mudar nada, nem 0 . Usando algo que eu espero falhar, como vrai , me dá uma mensagem de erro sobre a ilegalidade da palavra quando eu uso udevadm test-builtin ... . A execução de informações do udevadm ... mostra que meu arquivo .link foi usado e eu posso definir o wake-on-lan para valores suportados pela interface.

Se, após a inicialização, eu definir o duplex e acelerar com ethtool , ele funcionará bem.

Estou lidando com um dispositivo Intel Corp. I211.

Alguém tem uma sugestão sobre o que mais eu poderia tentar? Obrigado!

    
por ichabod 27.12.2017 / 00:39

1 resposta

4

Depois de esgotar todas as outras opções, eu olhei para o código-fonte systemd-udevd, e há um bug no systemd através de pelo menos v236 que o impede de configurar o duplex ou a velocidade do conteúdo dos arquivos .link. Eu enviei um patch para os desenvolvedores, mas ainda não foi aceito para o marco v237.

Este é um problema esotérico que não afeta a maioria das pessoas, mas se você está construindo seu sistema a partir da fonte e absolutamente, positivamente quer consertá-lo, as mudanças são encontradas em o pedido de pull do Github .

    
por 04.01.2018 / 22:58