Відповіді:
Основна помилка 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
). Це задокументовано на сторінці man для 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?) Рішення: створити системну службу, єдине завдання якої - вивантажити / перезавантажити модуль після призупинення циклу (я назвав його /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
Я також видалив міі під час моєї першої спроби. Не потрібно, хоча.
У мене була така ж проблема, і я знайшов це рішення.
запустити: 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 +
потім встановити з ukuu
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. net / ubuntu / + source / linux / + bug / 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-generic.
Вихід з мережі 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
#! / бін / баш PROGNAME = $ (базове ім'я "$ 0") стан = 1 дол дія = 2 дол журнал функцій { logger -i -t "$ PROGNAME" "$ *" } журнал "Запуск $ action $ state" if [[$ state == post]]; потім журнал "ifconfig down enp5s0" ifconfig enp5s0 вниз журнал "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, але виправлення смуги допомоги все ще працює.
У мене така ж проблема (драйвер = 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
Я позначаю, що кілька скриптів файлів виправлень (модифікованих на мій адаптер Ethernet) на /lib/systemd/system-sleep/
кожному працює!
Тим не менш, якщо пристрій кабельного модему вимкнено після призупинення, і це повернуто увімкнено після відновлення системи, система на базі Ubuntu не зможе знову підключитися до Інтернету, незважаючи на піктограму мережі (в області повідомлень), підключення увімкнено.
Щоб виправити це ще раз, я повинен натиснути піктограму мережі »Ethernet з'єднання. Таким чином, він успішно оновлює з'єднання. x-¿
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 припиняють свою роботу після повернення з підвіски.
Були ті самі проблеми з моїм Dell Inspiron 15: відсутня провідна мережа після перезавантаження або призупинення роботи.
Здається, виправили це, змінивши налаштування в BIOS:
Додатково -> Технологія Smart Connect Intel (R) -> Відключена
(за замовчуванням увімкнено)
Як побічний ефект, пункт меню зник, щоб з’явитися знову після скидання всіх параметрів до значень за замовчуванням.