Ответы:
Основная ошибка Ubuntu, отслеживающая эту проблему, по крайней мере для модуля сетевого ядра r8169, выглядит так:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1752772
Я бы посоветовал всем, кто затронут этой проблемой, пойти туда и отметить, что она затрагивает вас, чтобы сопровождающие лучше поняли, насколько она серьезна.
Я запускаю свежую установку Xubuntu 18.04, и мой интерфейс Ethernet использует модуль ядра r8169 , который я обнаружил работающим:
sudo lshw -C network
Там будет 2 группы информации, одна из которых начинается с description: Ethernet interface
, а другая с description: Wireless interface
. В разделе description: Ethernet interface
найдите строку, начинающуюся с configuration:
:
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=rtl_nic/rtl8105e-1.fw ip=192.168.100.6 latency=0 link=yes multicast=yes port=MII speed=100Mbit/s
Водитель будет здесь: driver=
.
Systemd запускает все исполняемые скрипты под /lib/systemd/system-sleep
до и после приостановки, проходя 2 параметра, $1
это состояние ( pre
до приостановки или post
после приостановки), и $2
это действие ( suspend
, hibernate
, hybrid-state
или suspend-then-hibernate
). Это описано в справочной странице для systemd-suspend.service
.
Нам необходимо перезагрузить модуль для интерфейса Ethernet при выходе из режима приостановки, после приостановки. Итак, я создал скрипт /lib/systemd/system-sleep/r8169-refresh
:
#!/bin/bash
PROGNAME=$(basename "$0")
state=$1
action=$2
function log {
logger -i -t "$PROGNAME" "$*"
}
log "Running $action $state"
if [[ $state == post ]]; then
modprobe -r r8169 \
&& log "Removed r8169" \
&& modprobe -i r8169 \
&& log "Inserted r8169"
fi
и сделал его исполняемым:
chmod +x /lib/systemd/system-sleep/r8169-refresh
Сообщения, зарегистрированные в скрипте, будут /var/log/syslog
помечены именем скрипта и его PID. Таким образом, вы можете проверить, перезагрузил ли скрипт модуль ядра:
grep r8169-refresh /var/log/syslog
Вот еще одно простое (r?) Решение: создайте сервис systemd, единственной задачей которого является выгрузка / перезагрузка модуля после цикла приостановки (я назвал его /etc/systemd/system/fix-r8169.service ):
[Unit]
Description=Fix RTL-8169 Driver on resume from suspend
After=suspend.target
[Service]
User=root
Type=oneshot
ExecStartPre=/sbin/modprobe -r r8169
ExecStart=/sbin/modprobe r8169
TimeoutSec=0
StandardOutput=syslog
[Install]
WantedBy=suspend.target
Тогда просто выполните systemctl enable fix-r8169.service
, и вы должны быть установлены! Systemd теперь автоматически выгружает и перезагружает ваш модуль после выхода из режима ожидания.
Ура!
Это случилось со мной тоже.
Выгрузка / перезагрузка сетевых модулей ядра / драйверов работает.
Мой r8169, поэтому (как root): (Я набрал вручную, поэтому была задержка)
sudo modprobe -r r8169
sudo modprobe -i r8169
Я также удалил mii во время первой попытки. Не обязательно, хотя.
У меня была такая же проблема, и я нашел это решение.
запустить: sudo lshw -C network
найти модуль ядра вашей сетевой карты
В * -сети, описание: интерфейс Ethernet, в найденном
driver=sky2
для меня поле конфигурации . sky2 - модуль ядра сети Ethernet для моего ноутбука.
Я создаю файл sky2.sh в /lib/systemd/system-sleep/
папку с
#!/bin/bash
modprobe -r sky2 # unload sky2 kernel module
modprobe -i sky2 # reload sky2 kernel module
и измените разрешения с помощью:
sudo chmod a+x sky2.sh
После этого проблема решена.
Он обнаруживает соединение Ethernet?
тогда
открыто NetworkManager.conf
sudo nano /etc/NetworkManager/NetworkManager.conf
Комментарий (Добавить #) dns=dnsmasq
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
[ifupdown]
managed=true
Перезагрузите сетевой менеджер
sudo service network-manager restart
systemctl status NetworkManager.service
чтобы проверить ошибку
я решил эту проблему на своем Ubuntu 18.04 Bionic, обновив ядро с 4.15 до 4.20 (самое позднее 16.01.2019), используя UKUU
установить последнее ядро установить Ubuntu Kernel Update Utility
sudo add-apt-repository ppa:teejee2008/ppa
sudo apt-get install ukuu
отключите контроль доступа с помощью следующей команды:
sudo xhost +
затем установить с помощью уку
sudo ukuu
sudo ukuu --install-latest
и перезагрузка
sudo reboot
Нажмите Ctrl+ Alt+, Tчтобы перейти к терминалу и введите:
sudo apt-get purge tlp
или
редактировать /etc/default/tlp
и изменять:
WOL_DISABLE = NO
в
WOL_DISABLE = YES
У меня недостаточно репутации, чтобы комментировать или оценивать принятый ответ (который сейчас устарел)
Если вы запустили lsmod | grep r8169
и показали, что у вас загружен модуль ядра r8169, а ваше ядро старше 4.15.0-24-generic, то вы, скорее всего, затронуты ошибкой, указанной в принятом ответе
https: //bugs.launchpad. сеть / Ubuntu / + источника / Linux / + ошибка / 1752772
Кстати, я испытал эту ошибку и для меня lspci | grep 'Gigabit Ethernet'
показывает
RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
Эта ошибка была исправлена.
Если ваше ядро старше 4.15.0-24-generic, просто запустите
apt-get update
apt-get upgrade
apt-get dist-upgrade
reboot
У меня была та же самая проблема, но решения здесь не работали для меня. Я провел дни, просматривая несколько форумов на эту тему, и попробовал почти все. Упоминаются два альтернативных решения: обновить ядро или установить предыдущий драйвер модуля. Я выбрал последнее и установил драйвер r8168. Первоначально это также не удалось. Тем не менее, я обнаружил кое-что, что работает и адаптировал его к решению от Пауло.
Я использую (K) Ubuntu 18.04 с ядром 4.15.0-24.
Вывод из сети lshw -C включает это ...
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:05:00.0
logical name: enp5s0
version: 0c
serial: 80:fa:5b:49:69:b3
size: 1Gbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8168 driverversion=8.045.08-NAPI duplex=full ip=192.168.10.213 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:133 ioport:e000(size=256) memory:df000000-df000fff memory:d0000000-d0003fff
Я установил пакет r8168-dkms , однако этого было недостаточно. Требовались еще два шага.
Шаг 1) Отредактируйте файл /etc/modprobe.d/r8168-dkms.conf и включите строку (т.е. удалите комментарий) в черный список r8169
Шаг 2) На основе решения от Paulo я создал следующий скрипт / lib / systemd / system-sleep / r8168-refresh
#! / Bin / Баш PROGNAME = $ (базовое имя "$ 0") состояние = $ 1 Действие = $ 2 журнал функций { logger -i -t "$ PROGNAME" "$ *" } журнал "Запуск $ action $ state" if [[$ state == post]]; тогда войти "ifconfig down enp5s0" ifconfig enp5s0 down журнал "ifconfig up enp5s0" ifconfig enp5s0 192.168.10.213 фи
Этот код, конечно, специфичен для моей машины (имя устройства и IP-адрес). Конечно, это можно улучшить, но на данный момент это отвечает моим потребностям.
Это будет работать с NetworkManager.
Это также произошло со мной с материнской платой Gigabyte-B250M-DS3H после обновления с Ubuntu 16.04 до 18.04 28 июля 2018 года. Ядро имеет родную версию 4.15.0-29.
Результат sudo lshw -C network
показал RTL8111 / 8168/8411 PCI Express Gigabit Ethernet Controller, в то время как он показал, что драйвером является r8169.
В итоге работала установка драйвера для контроллера Ethernet (большой сюрприз):
sudo apt install r8168-dkms
а затем перезагрузите компьютер (спасибо andypotter). Мне не нужно было заносить в черный список r8169, но мне все равно нужно было создать скрипт, /lib/systemd/system-sleep/
который я назвал r8168-refresh-after-suspend
(совет Ла Паулу), который удалял бы и заново вставлял r8168:
#!/bin/bash
# $1 is the state (pre or post)
# $2 is the action (suspend)
case $1/$2 in
pre/suspend)
modprobe -r r8168
;;
post/suspend)
modprobe -i r8168
;;
esac
и, конечно, сделать его исполняемым с помощью:
sudo chmod +x /lib/systemd/system-sleep/r8168-refresh-after-suspend
Это работает как шарм. Таким образом, это все еще проблема в ядре 4.15.0-29, но исправление лейкопластыря все еще работает.
У меня та же проблема (driver = r8169), Ethernet не работает после возобновления из режима ожидания.
Отлично работает с ядром 4.13.0-31. Другими словами, Ethernet продолжает работать после выхода из режима ожидания.
Но с ядром 4.15.0-32 Ethernet не работает после выхода из режима ожидания. Я пробовал исправить
modprobe -r r8169
modprobe -i r8169
но это не имеет никакого эффекта.
Я сообщил об этом на https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1752772
Я отмечаю, что несколько сценариев файлов Fix (модифицированные для моего адаптера Ethernet) /lib/systemd/system-sleep/
работают на каждом!
Тем не менее, если кабельное модемное устройство выключено после приостановки, и оно возвращается после включения системы возобновления, система на основе Ubuntu не может повторно подключиться к Интернету, несмотря на то, что значок сети (в области уведомлений) показывает, что соединение включено.
Чтобы исправить это снова, я должен нажать на значок сети »Ethernet соединение. Таким образом, он успешно обновляет соединение. Икс-
Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S [Rhine-III]
Subsystem: D-Link System Inc DFE-520TX Fast Ethernet PCI Adapter
Kernel driver in use: via-rhine
Kernel modules: via_rhine
PS Похоже, что некоторые CLI vpn перестают работать после возвращения из Suspension.
Были те же проблемы с моим Dell Inspiron 15: нет проводной сети после перезагрузки или приостановки.
Я, кажется, исправил это, изменив настройку в BIOS:
Дополнительно -> Технология Intel (R) Smart Connect -> Отключено
(по умолчанию включено)
Как побочный эффект, пункт меню исчез, чтобы появиться снова после сброса всех настроек к значениям по умолчанию.