Depuis la mise à niveau vers Ubuntu 18.04 à partir de 17h10, mon adaptateur Ethernet USB continue de se déconnecter. Cela fonctionnait parfaitement avec 17.10.
dmesg affiche la sortie suivante lors d’une chute de connexion:
[ 273.462732] usb 4-1.4: usb_reset_and_verify_device Failed to disable LTM
.
[ 273.643622] usb 4-1.4: USB disconnect, device number 11
[ 273.795468] usb 4-1.4: new SuperSpeed USB device number 12 using xhci_hcd
[ 273.816520] usb 4-1.4: New USB device found, idVendor=0bda, idProduct=8153
[ 273.816522] usb 4-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[ 273.816523] usb 4-1.4: Product: USB 10/100/1000 LAN
[ 273.816524] usb 4-1.4: Manufacturer: Realtek
[ 273.816525] usb 4-1.4: SerialNumber: 0000A5
[ 273.896167] usb 4-1.4: reset SuperSpeed USB device number 12 using xhci_hcd
[ 273.948778] r8152 4-1.4:1.0 eth0: v1.09.9
[ 274.503001] r8152 4-1.4:1.0 enx144fd7d04a3c: renamed from eth0
[ 274.539481] IPv6: ADDRCONF(NETDEV_UP): enx144fd7d04a3c: link is not ready
[ 274.543857] IPv6: ADDRCONF(NETDEV_UP): enx144fd7d04a3c: link is not ready
[ 276.431243] r8152 4-1.4:1.0 enx144fd7d04a3c: carrier on
[ 276.431258] IPv6: ADDRCONF(NETDEV_CHANGE): enx144fd7d04a3c: link becomes ready
En écrivant la question, j'ai trouvé la source du bogue sur la liste de diffusion du noyau. Le pilote r8152 responsable de la gestion de mon adaptateur r8153 ne peut pas gérer la suspension automatique usb (pour des raisons d'économie d'énergie). Mettre en liste noire le périphérique pour usb autosuspend résout les déconnexions et se fait comme suit:
Découvrez l'identifiant USB de votre appareil (0bda: 8153 dans mon cas) en utilisant lsusb, ce qui me donne:
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp.
Maintenant, vous ouvrez/etc/default/tlp, recherchez USB_BLACKLIST et ajoutez une entrée pour votre appareil:
USB_BLACKLIST="0bda:8153"
Vous devrez peut-être redémarrer, après quoi votre connexion Ethernet devrait être à nouveau stable.
Vous pouvez également le faire en utilisant les règles du noyau udev. J'ai créé les règles udev pour désactiver la suspension automatique USB pour le périphérique et également pour désactiver le mode Turbo du processeur (ce qui peut également aider):
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8153", TEST=="power/control", ATTR{power/control}="on"
KERNEL=="cpu",RUN+="/bin/sh -c 'echo -n 1 > /sys/devices/system/cpu/intel_pstate/no_turbo'"
Placez ce qui précède dans un fichier: /etc/udev/rules.d/50-cpu-custom.rules
Je suis tombé sur cette question également, mais pour moi, le problème était que la capacité défectueuse du pilote du réseau local r1852 à se suspendre automatiquement était à l'origine de mes blocages aléatoires.
Je l'ai résolu en utilisant powertop, ce qui est bien car il n'est pas nécessaire de connaître l'identifiant USB de l'appareil.