Aussi longtemps que je me souvienne, la connexion Ethernet de ma carte mère a mal fonctionné. Elle est censée atteindre 1 Gb/s, mais quel que soit l'appareil auquel je l'ai connectée, c'est à 100 Mb/s. J'ai aussi essayé divers câbles Cat 5e et Cat 6, sans succès. En fait, si je débranche le câble de ma carte mère et le branche à un autre appareil, alors cet autre appareil établit une connexion à 1 Gb/s. Le problème ne réside donc ni dans le câble ni dans le switch en face.
La commande dmidecode -t baseboard
(ou dmidecode -t 2
)
affiche le modèle de ma carte mère (sous Arch Linux) :
# dmidecode 3.4 Getting SMBIOS data from sysfs. SMBIOS 2.4 present. Handle 0x0002, DMI type 2, 8 bytes Base Board Information Manufacturer: Gigabyte Technology Co., Ltd. Product Name: P55-UD3R Version: x.x Serial Number:
La documentation du constructeur indique que La carte mère Gigabyte P55-UD3R est équipée d'une puce RTL8111D de Realtek. Cela semble à peu près compatible avec les messages de log du démarrage :
[ 8.014252] r8169 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control [ 8.036186] r8169 0000:03:00.0 eth0: RTL8168d/8111d, 00:24:1d:d3:70:8b, XID 283, IRQ 31 [ 8.036192] r8169 0000:03:00.0 eth0: jumbo features [frames: 9194 bytes, tx checksumming: ko] [ 8.263601] r8169 0000:03:00.0 enp3s0: renamed from eth0 [ 8.778105] RTL8211B Gigabit Ethernet r8169-0-300:00: attached PHY driver (mii_bus:phy_addr=r8169-0-300:00, irq=MAC) [ 8.957806] r8169 0000:03:00.0 enp3s0: Link is Down [ 21.764722] r8169 0000:03:00.0 enp3s0: Link is Up - 100Mbps/Full - flow control rx/tx
On voit que la connexion Ethernet met un temps considérable à s'établir (Link is up). En fait, la connexion s'établit quand le PC est allumé (déjà à 100 Mb/s d'après les leds), puis elle est réinitialisée par Linux. C'est très ennuyeux car c'est si lent que ça fait fréquemment échouer des scripts de démarrage, notamment DHCP.
La commande lshw -c network
donne aussi des indications
proches concernant le matériel réseau :
*-network description: Ethernet interface product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller vendor: Realtek Semiconductor Co., Ltd. physical id: 0 bus info: pci@0000:03:00.0 logical name: enp3s0 version: 03 serial: 00:24:1d:d3:70:8b size: 100Mbit/s capacity: 1Gbit/s width: 64 bits clock: 33MHz capabilities: pm msi pciexpress msix vpd bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.15.91-4-lts duplex=full firmware=rtl_nic/rtl8168d-2.fw latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s resources: irq:17 ioport:ce00(size=256) memory:fbdff000-fbdfffff memory:fbdf8000-fbdfbfff memory:fbe00000-fbe1ffff
Dans la ligne configuration
on voit le pilote (driver=r8169
)
et le firmware (firmware=rtl_nic/rtl8168d-2.fw
) qui sont chargés.
Le firmware se trouve dans /usr/lib/firmware/rtl_nic/rtl8168d-2.fw.xz
fournit par le paquet linux-firmware
. À noter que La ligne
configuration
contiendrait aussi l'adresse IP si elle
était configurée au moment de la commande.
Le pilote de l'interface Ethernet (r8169
) et le firmware chargé
(rtl_nic/rtl8168d-2.fw
) peuvent aussi être retrouvés avec la commande
ethtool -i enp3s0
qui affiche :
driver: r8169 version: 5.15.91-4-lts firmware-version: rtl_nic/rtl8168d-2.fw expansion-rom-version: bus-info: 0000:03:00.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no
La configuration courante de l'Ethernet, elle est affichée par la commande
ethtool enp3s0
:
Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised pause frame use: Symmetric Receive-only Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Link partner advertised pause frame use: Symmetric Link partner advertised auto-negotiation: Yes Link partner advertised FEC modes: Not reported Speed: 100Mb/s Duplex: Full Auto-negotiation: on master-slave cfg: preferred slave master-slave status: slave Port: Twisted Pair PHYAD: 0 Transceiver: external MDI-X: Unknown Supports Wake-on: pumbg Wake-on: d Link detected: yes
Je suis étonné de voir les Link partner advertised link modes culminer à 100baseT/Half 100baseT/Full. C'est un peu le nœud du problème ; la carte mère ne détecterait pas correctement les vitesses proposées par le partenaire.
r8168
J'ai également essayé le pilote 8168
de Realtek,
disponible à https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software
mais plus simplement fourni par le paquet Arch Linux r8168-lts
.
Pas mieux. Voici le log de démarrage :
[ 8.143714] r8168: loading out-of-tree module taints kernel. [ 8.143838] r8168: module verification failed: signature and/or required key missing - tainting kernel [ 8.185713] r8168 Gigabit Ethernet driver 8.051.02-NAPI loaded [ 8.201920] r8168: This product is covered by one or more of the following patents: US6,570,884, US6,115,776, and US6,327,625. [ 8.203359] r8168 Copyright (C) 2022 Realtek NIC software team <nicfae@realtek.com> This program comes with ABSOLUTELY NO WARRANTY; for details, please see <http://www.gnu.org/licenses/>. This is free software, and you are welcome to redistribute it under certain conditions; see <http://www.gnu.org/licenses/>. [ 8.492918] r8168 0000:03:00.0 enp3s0: renamed from eth0 [ 9.205282] enp3s0: 0xffff9bb0c0241000, 00:24:1d:d3:70:8b, IRQ 31 [ 23.846574] r8168: enp3s0: link up
La connexion Ethernet met toujours beaucoup trop de temps à s'établir.
La commande ethtool -i enp3s0
affiche :
driver: r8168 version: 8.051.02-NAPI firmware-version: rtl_nic/rtl8168d-2.fw expansion-rom-version: bus-info: 0000:03:00.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no
La commande ethtool enp3s0
affiche :
Settings for enp3s0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: Symmetric Receive-only Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Link partner advertised pause frame use: Symmetric Link partner advertised auto-negotiation: Yes Link partner advertised FEC modes: Not reported Speed: 100Mb/s Duplex: Full Auto-negotiation: on Port: Twisted Pair PHYAD: 0 Transceiver: internal MDI-X: Unknown Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000033 (51) drv probe ifdown ifup Link detected: yes
Toujours 100 Mb/s, ça revient au même.
J'ai également essayé sur Windows 10, et la connexion est aussi à 100 Mb/s. Et dès l'allumage du PC, avant le chargement du système, je vois aux leds que la vitesse est 100 Mb/s.
© 2023 Marc Mongenet
Ce document est disponible selon les termes de la
Creative Commons Attribution 2.5 License.
Dernière mise à jour et
validation le 12 février 2023.