Linux deaktiviert die automatische Ethernet-Aushandlung beim Einstecken des Kabels?

7

Ich habe kürzlich festgestellt, dass ich in meinem Gigabit-Heimnetzwerk nur 100 Mbit / s Througput erhalte.

Als ethtoolich es mit betrachtete, stellte ich fest, dass meine ArchLinux-Box 100baseT/Halfals Verbindungsgeschwindigkeit verwendet wurde, anstatt 1000baseT/Fulldass ihre Netzwerkkarte und der damit verbundene Switch dies unterstützen. Ich bin mir nicht sicher, warum, aber die Netzwerkkarte scheint ihre Verbindungsmodi nicht wie folgt zu bewerben ethtool:

Settings for enp0s31f6:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes:  Not reported
    Advertised pause frame use: No
    Advertised auto-negotiation: No
    Speed: 100Mb/s
    Duplex: Half
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: off
    MDI-X: on (auto)
    Supports Wake-on: pumbg
    Wake-on: g
    Current message level: 0x00000007 (7)
                           drv probe link
    Link detected: yes

Wenn die automatische Aushandlung explizit durch Ausführen aktiviert wird, werden ethtool --change enp0s31f6 autoneg onanscheinend alle Modi für den Switch und die Verwendungszwecke angekündigt 1000baseT/Full.

Das funktioniert aber meistens nur für eine Weile. Wenn ich das Kabel abziehe und wieder einstecke, schaltet sich die automatische Abschaltung die meiste Zeit aus , aber nicht immer. Wenn Sie autoneg manchmal auf on setzen, wird es sofort wieder deaktiviert. Durch einen Neustart wird es auch wieder deaktiviert.

Beachten Sie, dass die automatische Aushandlung beim Trennen, aber beim erneuten Ziehen nicht deaktiviert wird. dsmegProtokolliert dies, wenn Autoneg aktiviert war und ich ein Kabel einstecke:

[153692.029252] e1000e: enp0s31f6 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[153699.577779] e1000e: enp0s31f6 NIC Link is Up 100 Mbps Half Duplex, Flow Control: None
[153699.577782] e1000e 0000:00:1f.6 enp0s31f6: 10/100 speed: disabling TSO

Ich verwende die Intel-Netzwerkkarte meines Asrock-Motherboards (ab ~ 2015) und einen nicht verwalteten Switch (Netgear GS208).

BMicraft
quelle
Das ist einfach komisch. Es ist auch nicht so, dass Sie einen seltenen NIC-Chip auf einer ungewöhnlichen Softwareplattform verwenden, sodass es sich wahrscheinlich nicht um einen Treiberfehler handelt. Ich würde vermuten, dass es sich um ein zeitweise auftretendes Hardwareproblem handelt. Haben Sie andere RJ45-Anschlüsse auf demselben Motherboard, das Sie ausprobieren können? Vielleicht sogar noch ein Kabel? Öffnen Sie die Box und stellen Sie sicher, dass alles richtig sitzt? Ja, es ist eine integrierte Netzwerkkarte, die wahrscheinlich nichts bewirkt, aber vielleicht ist der RJ45-Anschluss lose?
Andrew Henle
Das Motherboard sieht in Ordnung aus, aber es gibt eine Plastikabdeckung über dem gesamten Heck. Ich weiß nicht, wie ich aussteigen soll. Ich habe verschiedene Kabel und sogar einen anderen Schalter ausprobiert.
BMicraft
IIRC gab es einige lustige Fehler und Probleme mit den Intel NIC-Treibern. Könnte einer von denen sein oder ein neuer.
Dirkt
@dirkt Mein Notizbuch hat das gleiche Problem, verwendet aber ein atheros nic
BMicraft
Hm. Unter welchen Bedingungen tritt das Problem auf? Wenn die Intel-Netzwerkkarte oder die Atheros-Netzwerkkarte auf der anderen Seite mit demselben Gerät verbunden sind? Was ist, wenn sie mit etwas anderem verbunden sind?
Dirkt

Antworten:

8

Nach stundenlangem Suchen fand ich die Lösung an der naheliegendsten Stelle:

NetworkManager scheint die automatische Aushandlung direkt in den Einstellungen für meinen Ethernet-Port deaktiviert zu haben:

Verbindungen - KDE-Systemeinstellungen

Der seltsame Teil ist, dass ich selbst nachdem ich weiß, dass NetworkManager den Ethernet-Link-Modus ändern kann, nicht einmal eine einzige Quelle online finden kann, die diese Funktionalität detailliert beschreibt. Laut den Google-Suchergebnissen, die ich gefunden habe, kann ich sie nur über einstellen ethtool.

BMicraft
quelle