@Berni341
Du suchst die Datei nic-speed-fix.service in /etc/systemd/ (kann in network oder system oder user sein) und postest es hier.

Was auch funktionieren sollte ist:
systemctl cat nic-speed-fix.service
Falls in dem Service bei ExecStart ein Skript gestartet wird dann dieses Skript ebenfalls posten.

@brikler
Diese "Umbenennung" von systemd paßt AFAIK, Nics mit Intel(e100xxx) Treiber heißen dann enoX.
Die richtige Nic wird ja auch behandelt. Paßt also schon.
//Edit: OK, du hast ja auch den Treiber... Kommt wohl auf den verwendeten Chipsatz an. Dürfte aber keine Ursache sein...

    GerBra
    systemctl cat nic-speed-fix.service:

    [Unit]
    Description=NIC speed fix service
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/ethtool -K eno1 tso off gso off
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target

    Es ist richtig, 10MBit sind wegen der Leitung fix eingestellt. Sowohl der Rechner als auch der Router haben keine Ausweichmöglichkeit (nur mit grösseren Umständen) über eine andere, besser Leitung, die Geschwindigkeit wäre jedoch ausreichend, sollte aber nicht noch weniger werden.

    Bitte auch nochmal dein aktuelles Network-Manager Konfig für "Kabellose Verbindung" posten. Nutzt du eine statische IP oder eine per DHCP zugeteilte?

    Die IP für den Rechner wird vom Router fest zugeteilt. Wie lautet der Befehl der Network-Managerkonfig für die (nicht vorhandene) kabellose Verbindung (der Rechner hängt am Kabel am Router)?
    Die lspci -vv Ausgabe ist hier auf pastebin.
    (Nächstes Mal bei sowas wie curl -F 'file=@-' 0x0.st bitte vorwarnen, wenn das automatisch für ein ganzes Jahr ins Netz kommt, würde das gern selbst kontrollieren, was wo wie lange erscheint.)

    Hier ein aktuelles log, erstellt mit
    journalctl --boot 0 --unit NetworkManager --no-hostname --no-pager
    Man beachte die Zeit 16:04:33 und 16:07:02:

    Aug 27 16:04:21 systemd[1]: Starting Network Manager...
    Aug 27 16:04:21 NetworkManager[317]: <info>  [1693145061.8829] NetworkManager (version 1.42.6-1) is starting... (boot:3cd81084-7576-4a55-9b96-ddf42fb4abb2)
    Aug 27 16:04:21 NetworkManager[317]: <info>  [1693145061.8830] Read config: /etc/NetworkManager/NetworkManager.conf (lib: 20-connectivity.conf)
    Aug 27 16:04:21 systemd[1]: Started Network Manager.
    Aug 27 16:04:21 NetworkManager[317]: <info>  [1693145061.8863] bus-manager: acquired D-Bus service "org.freedesktop.NetworkManager"
    Aug 27 16:04:21 NetworkManager[317]: <info>  [1693145061.8935] manager[0x56303f3fb310]: monitoring kernel firmware directory '/lib/firmware'.
    Aug 27 16:04:21 NetworkManager[317]: <info>  [1693145061.9722] hostname: hostname: using hostnamed
    Aug 27 16:04:21 NetworkManager[317]: <info>  [1693145061.9722] hostname: static hostname changed from (none) to "archlinux"
    Aug 27 16:04:21 NetworkManager[317]: <info>  [1693145061.9725] dns-mgr: init: dns=default,systemd-resolved rc-manager=symlink
    Aug 27 16:04:21 NetworkManager[317]: <info>  [1693145061.9737] manager[0x56303f3fb310]: rfkill: Wi-Fi hardware radio set enabled
    Aug 27 16:04:21 NetworkManager[317]: <info>  [1693145061.9737] manager[0x56303f3fb310]: rfkill: WWAN hardware radio set enabled
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0015] Loaded device plugin: NMAtmManager (/usr/lib/NetworkManager/1.42.6-1/libnm-device-plugin-adsl.so)
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0288] Loaded device plugin: NMTeamFactory (/usr/lib/NetworkManager/1.42.6-1/libnm-device-plugin-team.so)
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0314] Loaded device plugin: NMOvsFactory (/usr/lib/NetworkManager/1.42.6-1/libnm-device-plugin-ovs.so)
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0409] Loaded device plugin: NMWwanFactory (/usr/lib/NetworkManager/1.42.6-1/libnm-device-plugin-wwan.so)
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0452] Loaded device plugin: NMWifiFactory (/usr/lib/NetworkManager/1.42.6-1/libnm-device-plugin-wifi.so)
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0542] Loaded device plugin: NMBluezManager (/usr/lib/NetworkManager/1.42.6-1/libnm-device-plugin-bluetooth.so)
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0545] manager: rfkill: Wi-Fi enabled by radio killswitch; enabled by state file
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0546] manager: rfkill: WWAN enabled by radio killswitch; enabled by state file
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0546] manager: Networking is enabled by state file
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0552] settings: Loaded settings plugin: keyfile (internal)
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0597] dhcp: init: Using DHCP client 'internal'
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0599] manager: (lo): new Loopback device (/org/freedesktop/NetworkManager/Devices/1)
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0608] device (lo): state change: unmanaged -> unavailable (reason 'connection-assumed', sys-iface-state: 'external')
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0612] device (lo): state change: unavailable -> disconnected (reason 'connection-assumed', sys-iface-state: 'external')
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0617] device (lo): Activation: starting connection 'lo' (a9f8a9f9-e6d9-407f-b287-ed2541d56259)
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0625] manager: (eno1): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2)
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.0627] device (eno1): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.2567] ovsdb: disconnected from ovsdb
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.2574] device (lo): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'external')
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.2579] device (lo): state change: prepare -> config (reason 'none', sys-iface-state: 'external')
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.2583] device (lo): state change: config -> ip-config (reason 'none', sys-iface-state: 'external')
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.2595] device (lo): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'external')
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.2630] device (lo): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'external')
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.2634] device (lo): state change: secondaries -> activated (reason 'none', sys-iface-state: 'external')
    Aug 27 16:04:22 NetworkManager[317]: <info>  [1693145062.2643] device (lo): Activation: successful, device activated.
    Aug 27 16:04:28 NetworkManager[317]: <info>  [1693145068.2505] manager: startup complete
    Aug 27 16:04:33 NetworkManager[317]: <info>  [1693145073.5319] agent-manager: agent[51c800adb0033f78,:1.34/org.kde.plasma.networkmanagement/1000]: agent registered
    Aug 27 16:07:02 NetworkManager[317]: <info>  [1693145222.9516] device (eno1): carrier: link connected
    Aug 27 16:07:02 NetworkManager[317]: <info>  [1693145222.9521] device (eno1): state change: unavailable -> disconnected (reason 'carrier-changed', sys-iface-state: 'managed')
    Aug 27 16:07:02 NetworkManager[317]: <info>  [1693145222.9535] policy: auto-activating connection 'Kabelgebundene Verbindung 1' (f26fb504-bd87-3b83-af2a-6a89ef8d623e)
    Aug 27 16:07:02 NetworkManager[317]: <info>  [1693145222.9544] device (eno1): Activation: starting connection 'Kabelgebundene Verbindung 1' (f26fb504-bd87-3b83-af2a-6a89ef8d623e)
    Aug 27 16:07:02 NetworkManager[317]: <info>  [1693145222.9546] device (eno1): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
    Aug 27 16:07:02 NetworkManager[317]: <info>  [1693145222.9552] manager: NetworkManager state is now CONNECTING
    Aug 27 16:07:03 NetworkManager[317]: <info>  [1693145223.0488] device (eno1): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
    Aug 27 16:07:03 NetworkManager[317]: <info>  [1693145223.0514] device (eno1): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
    Aug 27 16:07:03 NetworkManager[317]: <info>  [1693145223.0537] dhcp4 (eno1): activation: beginning transaction (timeout in 45 seconds)
    Aug 27 16:07:05 NetworkManager[317]: <info>  [1693145225.3480] device (eno1): carrier: link connected

    Das Log zeigt wohl das bekannte Verhalten. eno1 wird vom Networkmanager/dbus zeitnah erkannt, hat aber carrier Probleme. Nach ~ 3min klappt der Carrier dann.

    Dein nic-speed Service: Hier stellst du ja nur das Fragmentieren von TCP und anderen Paketen ab, was bei langsamen Verbindungen ggf. einen Vorteil bringt. Die Geschwindigkeit setzt du aber nicht.

    Vorschlag: Versuche es mal mit einem eigenen Netzwerk-Setup-Skript anstatt NetworkManager.
    Dazu stellst du den NM-Service ab:
    systemctl disable NetworkManager
    //Edit: deinen nic-speed Service auch abschalten:
    systemctl disable nic-speed-fix
    Nach einem Reboot hast du dann kein Netzwerk, der Befehl:
    ip link show dev eno1
    sollte state DOWN anzeigen.

    Einschalten kannst du den NM (wenn nötig) wieder mit:

    systemctl enable NetworkManager
    systemctl enable nic-speed-fix
    reboot

    Ich habe auf die Schnelle mal das zusammengezimmert:

    #!/usr/bin/sh
    
    DEV=eno1
    
    echo "Start"
    date +%X
    #
    echo "UP"
    date +%X
    ip link set $DEV up
    #
    echo "Speed"
    date +%X
    # ethtool -s $DEV advertise 0x002 autoneg on
    ethtool -s $DEV speed 10 duplex full autoneg off
    ethtool -K $DEV tso off gso off
    #
    echo "Get IP"
    date +%X
    dhcpcd $DEV
    #
    echo "Ping"
    date +%X
    ping -c 5 8.8.8.8
    ping -c 1 google.de

    Das Skript speicherst du z.B. unter /usr/local/bin/nic-up.sh
    Starten kannst du es als root oder per sudo:

    sh /usr/local/bin/nic-up.sh
    sudo sh /usr/local/bin/nic-up.sh

    Das Skript setzt die Nic UP, stellt per ethtool (hoffentlich!) eine 10baseT/FULL Verbindung ein und bezieht dann per dhcp die IP-Adresse. Versucht dann 5 Pings an einen Google-Nameserver und einen (wegen der DNS-Namensauflösung) direkt zu google.de.
    Zwischendrin sind ein paar echo's und Zeitausgaben eingestreut um ggf. Zeitprobleme zu erkennen.

    Poste doch bitte dann mal:
    a) die komplette Ausgabe des Skripts
    b) journalctl -S HH:MM --no-hostname --no-pager
    (Für HH:MM setzt du die erste Zeit ein, die das Skript dir anzeigt)
    Das ist dann ein kleiner Journal-Auszug, den kannst du sicher hier einstellen.

    Es kann sein, daß der letzte Ping nach google.de einen Fehler wirft, dann klappt die Namensauflösung nicht aufgrund dem, wie NM diese handhabt. Das kann aber leicht geändert werden.

    Falls die Namensauflösung funktioniert, dann kannst du ja mal eine Zeitlang unter der Konstellation testen, ob es bzgl. der Probleme (Geschwindigkeit, evtl. Abbrüche) beim "normalen Browsen, Netzwerken" einen Unterschied gibt.

    Ziel des ganzen wäre:
    a) Gibt es damit auch Verzögerungen beim Aufbau des Links und/oder IP-Bezug?
    b) Es ist ein zusammenhängender Vorgang, der sich ggf. leichter diagnostizieren läßt.
    c) Sorgt diese händische Methode ggf. für eine stabilere Verbindung bzgl. deiner "Gegebenheiten"

    Evtl. wäre das eine Grundlage für einen eigenen Service (davon ist das Skript momentan weit entfernt), dann könntest du auf NM o.ä. verzichten.
    Momentan - wenn du etwas ändern wolltest - bedarf es eines Reboots und erneuten Starten des Skripts.

    Bei groben Problemen helfe ich dir gerne jetzt noch weiter, ich hoffe keine Fehler ins Skript eingebaut zu haben (nur in einer virtuellen Maschine getestet).

    • Berni341 hat auf diesen Beitrag geantwortet.

      GerBra
      Danke erstmal für die Hilfe. Ich werde wohl etwas Zeit benötigen, das alles entsprechend einzustellen und auszutesten. Habe ich Resultate, melde ich mich wieder.

      GerBra
      Was soll ich sagen? Das Script läuft, die Verbindung ist in 1-2 Sekunden da ☺️. Hier die Ausgabe von
      sudo sh /usr/local/bin/nic-up.sh:

      Start
      21:16:36
      UP
      21:16:36
      Speed
      21:16:36
      Get IP
      21:16:36
      dhcpcd-10.0.2 starting
      DUID 00:01:00:01:2c:7b:34:18:10:e7:c6:00:ed:0b
      eno1: waiting for carrier
      eno1: carrier acquired
      eno1: IAID c6:00:ed:0b
      eno1: adding address fe80::a1cd:b41b:1565:3609
      eno1: soliciting an IPv6 router
      eno1: rebinding lease of 192.168.178.35
      eno1: probing address 192.168.178.35/24
      eno1: leased 192.168.178.35 for 864000 seconds
      eno1: adding route to 192.168.178.0/24
      eno1: adding default route via 192.168.178.1
      forked to background, child pid 1367
      Ping
      21:16:44
      PING 8.8.8.8 (8.8.8.8) 56(84) Bytes an Daten.
      64 Bytes von 8.8.8.8: icmp_seq=1 ttl=116 Zeit=21.3 ms
      64 Bytes von 8.8.8.8: icmp_seq=2 ttl=116 Zeit=19.7 ms
      64 Bytes von 8.8.8.8: icmp_seq=3 ttl=116 Zeit=19.9 ms
      64 Bytes von 8.8.8.8: icmp_seq=4 ttl=116 Zeit=19.7 ms
      64 Bytes von 8.8.8.8: icmp_seq=5 ttl=116 Zeit=19.7 ms
      
      --- 8.8.8.8 ping-Statistik ---
      5 Pakete übertragen, 5 empfangen, 0% packet loss, time 4007ms
      rtt min/avg/max/mdev = 19.697/20.070/21.284/0.612 ms
      PING google.de (142.250.186.67) 56(84) Bytes an Daten.
      64 Bytes von fra24s05-in-f3.1e100.net (142.250.186.67): icmp_seq=1 ttl=57 Zeit=19.6 ms
      
      --- google.de ping-Statistik ---
      1 Pakete übertragen, 1 empfangen, 0% packet loss, time 0ms
      rtt min/avg/max/mdev = 19.576/19.576/19.576/0.000 ms

      Ein Icon in der Taskbar wäre auch nicht schlecht. Leider funktioniert das hier nicht und bricht bei Installation mit einer Fehlermeldung ab (wird auch von anderen Nutzern auf der Seite hingewiesen). Gibt es eine Alternative dazu?

      Das Problem kann als gelöst betrachtet werden. Aufgrund des sehr gut funktionierenden Scripts von GerBra war es mir möglich, den Fehler zu lokalisieren, in dem nacheinander der ein oder andere Befehl im Script weggelassen und die Funktion geprüft wurde. Am Ende stellte sich heraus, dass die Eingabe des Befehles ethtool -s eno1 speed 10 duplex full autoneg off für eine sofortige Netzwerverbindung sorgt. Diesen habe ich dann als systemd-service-Datei unter etc/systems/system angelegt. Und so sieht er aus:

      [Unit]
      Description=ethtool configuration to enable 10mbps speed for the specified adapter
      After=network-online.target
      Wants=network-online.target
      
      [Service]
      ExecStart=/usr/bin/ethtool -s eno1 speed 10 duplex full autoneg off
      Type=oneshot
      
      [Install]
      WantedBy=multi-user.target

      Danach noch sudo systemctl enable [name]@[servicename].service und schon verbindet sich nach Boot das Netzwerk unverzüglich beim Laden des Desktops.
      Bleibt nur die Frage, warum dafür ein Extra-Service notwendig ist, wenn genau die gleichen Angaben bereits im NetworkManager und auch im NetworkManager-Connection-Editor eingegeben sind.
      Ich bedanke mich für die Hilfe im allgemeinen und bei GerBra im speziellen für das Script, ohne das sich die Suche wohl noch weiter hingezogen hätte.
      PS: Ich werde den Strang mit überflüssigen log-Angaben meinerseits aufräumen, damit bei evtl. späterem Nachlesen möglichst keine Verwirrung auftritt.

      • GerBra hat auf diesen Beitrag geantwortet.

        Freut mich, das es nun zufriedenstellend funktioniert, ich hatte eher nicht damit gerechnet...

        Berni341 Bleibt nur die Frage, warum dafür ein Extra-Service notwendig ist, wenn genau die gleichen Angaben bereits im NetworkManager und auch im NetworkManager-Connection-Editor eingegeben sind.

        Evtl. funktioniert dieser Teil im NM nicht richtig, eine Verbindung zu drosseln auf Client-Seite ist ja auch eher "unüblich" im "Normalbetrieb" (wobei das ja ggf. bei Fibre->Kupfer wieder eine Rolle spielen kann). Ich kenne NM nicht sehr intensiv, aber ich glaube das man diesen auch zum Debugging zwingen kann mit dann erheblichen Ausgabenmengen.
        Aber eigentlich ist ja der NM für eine feste Kabelverbindung ja auch eher Overkill, das Handling/Feeling ist halt das was User heute gewöhnt sind.

        Zum Skript bzw. dem Runterdrosseln mit ethtool: Ich war mir unsicher, ob das UP-Setzen des Devices mit ip am Besten vor oder nach ethtool passieren soll. Gerade weil die Ursache IMHO ja im Carrier-Bereich zu liegen schien. Momentan kannst du wahrscheinlich froh sein, daß der NM die Einstellungen von ethtool nicht einfach wieder "resettet" ;-)

        Einen Gefallen könntest du mir noch mal tun, aus Interesse meinerseits:
        Im Skript habe ich eine auskommentierte Zeile um ggf. auf eine andere Art eine 10baseT/Full Verbindung herzustellen, nämlich:
        ethtool -s $DEV advertise 0x002 autoneg on
        Da ja jetzt sicher ist, daß ethtool mit dem anderen Befehl die Ursache beseitigt würde ich ich bitten, diese Zeile z.B. in deinem Service oder im Skript mal alternativ zu testen.
        Diese Optionen veranlassen, daß Nic<->Switch die Geschwindigkeit wieder untereinander aushandeln (Autonegotation), die Nic bietet dabei aber nur 10baseT/Full (0x002) an.
        Würde mich interessieren, ob das bei deinen "Zuständen"<g> ebenfalls funktioniert.

        War für dich mit Sicherheit auch hilfreich/interessant etwas über Logfiles, Netzwerk-Tools etc. kennen und verstehen zu lernen, die nächsten (Netzwerk)probleme sind dann meist einfacher zu handhaben mit mehr Wissen über die Abläufe.

        //Edit: du kannst auch mittels ethtool -S mal nach einiger Zeit nachprüfen, ob deine weiter oben festgestellten Empfangs-Checksummen-Fehler immer noch so hoch sind, bei einer sauberen Verkabelung/Verbindung sollte bei keinem der *_errors etwas anderes als Null stehen.

        • Berni341 hat auf diesen Beitrag geantwortet.

          GerBra

          //Edit: du kannst auch mittels ethtool -S mal nach einiger Zeit nachprüfen, ob deine weiter oben festgestellten Empfangs-Checksummen-Fehler immer noch so hoch sind, bei einer sauberen Verkabelung/Verbindung sollte bei keinem der *_errors etwas anderes als Null stehen.

          Die Errors sind immer noch da, auch in der Anzahl kaum verändert. Hier macht sich die Qualität der Leitung bemerkbar. Was das betrifft:

          ethtool -s $DEV advertise 0x002 autoneg on

          Hier zeigt sich auch ganz klar die schlechte Leitungsqualität, die Verbindung baut sich auf und bricht nach unterschiedlich kurzen Zeiträumen von wenigen bis einigen mehr Sekunden zusammen, um sich danach wieder neu aufzubauen und danach wieder der Abbruch usw. usf. Das heisst, die Autonegotiation versucht wohl auf 100MBit-Basis die Leitung zu etablieren, erkennt aber nicht, das 10MBit hier angemessener wäre. Das gleiche Verhalten zeigt sich übrigens auch unter Windows11. Der Router selbst hängt an einer Leitung mit 16MBit und liefert die Daten wohl schneller als 10MBit weiter und vermutlich ist das auch das Erkennungssignal für den NIC/Autonegotiation und weniger die Leitungsqualität. Wenn man die Leitung jemand zeigen würde (und die zwischen 2 Leitungsabschnitten auch noch vorhandene Lüsterklemme(!!!) in einer Wanddose), gäbe es vermutlich zunächst ein Schmunzeln und danach ein Staunen, dass überhaupt etwas durchkommt. Aber, wie gesagt, für den Zweck dieses Rechners sind die 10MBit ausreichend, da werden keine HD-Videos gestreamt oder Gaming betrieben, daher sollte es nur stabil laufen und schnell connecten.

          GerBra Treiber heißen dann enoX.

          gut, dann glaube ich dir das 🙂
          … aber warum eno1, und nicht eno0? wir beginnen schließlich bei 0 zu zählen.

          • GerBra hat auf diesen Beitrag geantwortet.

            @Berni341
            Danke fürs Testen, dann ist wohl generell speed x duplex y und autoneg off bei sowas die "sichere" Variante.

            brikler … aber warum eno1, und nicht eno0? wir beginnen schließlich bei 0 zu zählen.

            Muß ich passen, ich bin durch diese neue Namensvergabe bei Nic's noch nicht durchgestiegen und habe auch kein Interesse, mich näher damit zu beschäftigen. Auf Systemen, bei denen ich sicher sein will/muß mit dem "richtigen" Netzdevice zu agieren vergebe ich seit jeher eigene, aussagekräftige Namen.