Я недавно купил новый адаптер Ethernet для своего ноутбука, но ему всегда не удается соединиться с Интернетом. Я не коснулся своих параметров сети (все установлено на автоматический), я знаю работы USB-порта (и 3.0), я выключил кабель Ethernet, и я перезагрузил, и проблема остается. Я посмотрел на несколько подобных вопросов и не видел ответ. Вот выводы нескольких соответствующих команд:
~$ ifconfig
enx00e04c680050: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::660a:4122:589c:5867 prefixlen 64 scopeid 0x20<link>
ether 00:e0:4c:68:00:50 txqueuelen 1000 (Ethernet)
RX packets 13613 bytes 2126629 (2.1 MB)
RX errors 0 dropped 5 overruns 0 frame 0
TX packets 539 bytes 529852 (529.8 KB)
TX errors 247 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 3817 bytes 240361 (240.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3817 bytes 240361 (240.3 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.43.207 netmask 255.255.255.0 broadcast 192.168.43.255
inet6 fe80::c550:81b5:cbfc:9922 prefixlen 64 scopeid 0x20<link>
ether 9c:b6:d0:d0:ab:35 txqueuelen 1000 (Ethernet)
RX packets 3473 bytes 4532992 (4.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2303 bytes 369202 (369.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Интерфейс адаптера является первым, enx00e04c6880050
.
~$ lsusb
Bus 002 Device 004: ID 0bda:8153 Realtek Semiconductor Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0cf3:e301 Atheros Communications, Inc.
Bus 001 Device 004: ID 0c45:6713 Microdia
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Адаптер является устройством Realtek. Вот часть вывода dmesg
; был намного больше, но это было все точно то же.
~$ dmesg | grep enx00e04c680050
[ 3.145962] r8152 1-2:1.0 enx00e04c680050: renamed from eth0
[ 4.594647] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[ 4.599211] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[ 4.748235] r8152 1-2:1.0 enx00e04c680050: carrier on
[ 5.407467] IPv6: ADDRCONF(NETDEV_CHANGE): enx00e04c680050: link becomes ready
[ 100.932975] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[ 100.933018] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[ 100.933057] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[ 100.933095] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[ 100.933135] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[ 100.933183] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[ 100.933342] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[ 100.933379] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[ 106.567052] r8152 2-1:1.0 enx00e04c680050: renamed from eth0
[ 106.598088] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[ 106.601933] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[ 108.156517] r8152 2-1:1.0 enx00e04c680050: carrier on
[ 108.156551] IPv6: ADDRCONF(NETDEV_CHANGE): enx00e04c680050: link becomes ready
[ 217.647356] r8152 2-1:1.0 enx00e04c680050: Stop submitting intr, status -71
[ 306.017018] r8152 2-2:1.0 enx00e04c680050: renamed from eth0
[ 306.045732] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[ 306.049858] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[ 307.612495] r8152 2-2:1.0 enx00e04c680050: carrier on
[ 307.612522] IPv6: ADDRCONF(NETDEV_CHANGE): enx00e04c680050: link becomes ready
[ 321.228465] r8152 2-2:1.0 enx00e04c680050: Tx status -71
[ 321.231900] r8152 2-2:1.0 enx00e04c680050: Tx status -71
Я также работал dmesg
для драйвера; это эти только две строки, не уже показанные выше:
~$ dmesg | grep r8152
[ 2.833638] usbcore: registered new interface driver r8152
[ 3.144927] r8152 1-2:1.0 eth0: v1.09.9
Править: Я пытался гуглить "Состояние Tx-71", и у меня есть чувство, что это — который, кажется, неразрешенная ошибка — релевантно, хотя я не совсем уверен, как реализовать обеспеченный патч, или если это решило бы проблему.
Этот параметр ядра решил ту же проблему для меня (с прикреплением Dell DA200 USB3):
usbcore.quirks=0bda:8153:k
который отключает Управление питанием Ссылки для устройства. См. также этот отчет об ошибках и эту проблему GitHub (для других аппаратных средств с той же микросхемой драйвера/NIC).
Это работало в Ubuntu 18.04.4. Службу можно создать в
/etc/systemd/system/dell-quirks.service
со следующим содержимым:
[Unit]
Description=Install quirks for DELL TypeC ethernet/VGA/ DA 200 adapter
Documentation=https://askubuntu.com/questions/1081128/usb-3-0-ethernet-adapter-not-working-ubuntu-18-04
[Service]
Type=oneshot
RemainAfterExit=true
#ExecStart=/usr/bin/echo 0bda:8153:k > /sys/module/usbcore/parameters/quirks
ExecStart=/bin/bash -c "echo 0bda:8153:k > /sys/module/usbcore/parameters/quirks"
[Install]
WantedBy=multi-user.target
Перезагрузить демон
systemctl daemon-reload
Включить службу, чтобы он запускается при каждой перезагрузке
systemctl enable dell-quirks.service
Запуск службы
systemctl start dell-quirks.service
Должна быть создана конфигурация интерфейса. Перед созданием конфигурации интерфейса интерфейсу Ethernet можно присвоить имя в
/etc/udev/rules.d/70-persistent-net.rules
со следующим содержанием:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",ATTR{address}=="<MAC address of the ethernet interface>",ATTR{dev_id}=="0x0",ATTR{type}=="1",KERNEL=="eth*",NAME="eth0"
После настройки сети Ethernet можно выполнить с помощью netplan, создав файл yaml
/etc/netplan/01-network-card.yaml
со следующим содержимым:
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
dhcp4: true
Когда ноутбук загружается, отключите USB-устройство, подключите его после загрузки и он должен работать через пару минут. При необходимости перезапустите NetworkManager и подождите пару минут.
systemctl перезапустить NetworkManager
Это сработало для меня:
sudo touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
sudo systemctl restart NetworkManager