Вопрос или проблема
После выхода из гибернации на сервере Ubuntu беспроводной сетевой интерфейс отключен. Ethernet-интерфейс продолжает работать как ожидалось. Оба интерфейса имеют включенные WoLan/WoWLan.
Это рабочая станция Dell Precision 3630 с двойной загрузкой Windows 11 и Ubuntu Server 24. Wi-Fi интерфейс — это PCI Intel Wireless 8265/8275.
Ethernet и беспроводные интерфейсы находятся в разных сетях и настроены на Ubuntu через netplan
с статическими IP-адресами. На этом сервере (по умолчанию) сетевой сервис — это systemd-networkd
; NetworkManager
, сетевой сервис по умолчанию для ноутбуков/GUI окружений, не установлен.
Я использую rtcwake
, чтобы перевести систему либо в режим сна (состояние в RAM; S3), либо в режим гибернации (состояние на диск; S4). S3 — это тот режим, который я использую чаще всего; выход из S3 работает как ожидалось, и я могу запустить его через магический пакет, используя приложение Wake-On-LAN. S4 можно использовать только в связи с ИБП и apcupsd
, чтобы сохранить память системы на SSD перед выключением при сбое питания.
Проблема в том, что Wi-Fi интерфейс не обнаруживается/не активируется должным образом при выходе из гибернации: ifconfig
/ip addr
больше не отображают его. Wi-Fi интерфейс все еще отображается при выполнении lspci -c network
, но это все. Кроме того, при перезагрузке текст цвет консоли Ubuntu становится желтым вместо стандартного белого, что, как я предполагаю, указывает на сбой.
Перезапуск сетевого сервиса не помогает. Отключение управления питанием на Wi-Fi интерфейсе не помогает.
Единственный обходной путь, который я нашел, — перезагрузиться в Windows, открыть Wi-Fi подключение, затем перезагрузиться в Ubuntu. Следует отметить, что в Windows установлено, чтобы этот Wi-Fi интерфейс не отключался для экономии энергии. На Ubuntu Wi-Fi интерфейс возвращается и снова отображается при выполнении ip addr
. Цвет текста консоли Ubuntu возвращается к белому. Ниже представлен вывод из iwconfig
.
$ iwconfig
lo no wireless extensions.
eno1 no wireless extensions.
wlp4s0 IEEE 802.11 ESSID:"xxxxxx"
Mode:Managed Frequency:5.745 GHz Access Point: D8:EC:5E:49:4E:33
Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=46/70 Signal level=-64 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:102 Missed beacon:0
По всей видимости, выход из гибернации на Ubuntu не удается включить Wi-Fi интерфейс. Мне не удалось найти команду, которая его реактирует. Я пробовал: перезапуск сетевого сервиса с помощью systemctl
; удаление и повторная вставка модулей с modprobe
; управление радиомодулем с помощью nmcli
. Утилита rfkill
не показывает никаких блокировок. Очевидно, что реактивация Wi-Fi интерфейса возможна в Windows.
Есть какие-нибудь подсказки?
Ответ или решение
Проблема неактивности Wi-Fi NIC (PCI) после возобновления из гибернации в Ubuntu Server может быть довольно многогранной. Ниже приводится подробный анализ возможных причин и рекомендаций по их устранению.
1. Описание проблемы
Ваша система, работающая на Ubuntu Server 24 на рабочих станциях Dell Precision 3630 с двойной загрузкой и сетевым адаптером Intel Wireless 8265/8275, сталкивается с тем, что Wi-Fi NIC не распознается после выхода из режима гибернации (S4). Сетевая служба systemd-networkd используется для управления сетевыми интерфейсами, в то время как NetworkManager не установлен.
Наиболее вероятные причины происходящего могут быть связаны с неправильной инициализацией устройства после выхода из гибернации или конфликтами с параметрами управления энергией.
2. Решение проблемы
Проверка настроек BIOS и энергопотребления
-
Обновление BIOS: Убедитесь, что у вас установлена последняя версия BIOS для вашего устройства. Это может устранить конфликты, которые возникают в результате устаревших прошивок.
-
Настройки BIOS: Проверьте, включена ли функция Wake-on-WLAN и т. д. в настройках BIOS. Возможно, оборудование неправильно конфигурировано для работы с Wi-Fi во время режимов энергосбережения.
Настройка параметров ядра и сетевых интерфейсов
-
Параметры загрузки ядра: Попробуйте добавить в параметры загрузки ядра (в файле
/etc/default/grub
) следующие опции:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=noaer"
Это может помочь в подавлении ошибок PCI, которые могут вызывать проблемы с обнаружением сетевых интерфейсов.
Затем выполните обновление конфигурации GRUB:
sudo update-grub
-
Настройка сетевых интерфейсов: Убедитесь, что ваш Wi-Fi интерфейс правильно настроен в конфигурации Netplan. Проверьте файл конфигурации в
/etc/netplan/
и убедитесь, что там указаны корректные параметры для вашего Wi-Fi интерфейса.
Управление модулями и сетевыми службами
-
Перезагрузка модулей: Попробуйте использовать команду
modprobe
для повторной загрузки драйвера Wi-Fi:sudo modprobe -r iwlwifi sudo modprobe iwlwifi
-
Параметры управления питанием: Попробуйте отключить управление энергией на уровне ядра и модуля:
sudo iwconfig wlp4s0 power off
-
Проверка блокировок: Убедитесь, что
rfkill
не блокирует ваш Wi-Fi адаптер:rfkill list all
Если вы увидите какие-либо блокировки, их можно снять с помощью:
sudo rfkill unblock wifi
3. Альтернативные решения
Если вышеупомянутые методы не помогли:
-
Использование скриптов: Попробуйте создать скрипт, который будет автоматически выполняться при возобновлении из гибернации и перезагрузить модуль или включать интерфейс. Добавьте свой скрипт в
/lib/systemd/system-sleep/
. -
Использование Wake-on-LAN: Поскольку вы уже используете WOL для Ethernet, попробуйте использовать его и для Wi-Fi адаптера, чтобы инициировать его после возобновления.
-
Переход на NetworkManager: Хотя это не самый желаемый вариант, установка NetworkManager может упростить управление интерфейсами и устранить проблемы с настройками.
Заключение
Проблема с неактивным Wi-Fi NIC после выхода из гибернации на Ubuntu Server может стать настоящим вызовом. Однако, с применением вышеуказанных мер, вы получите возможность вернуть контроль над сетевыми интерфейсами. Обязательно следите за обновлениями как для операционной системы, так и для аппаратных драйверов, чтобы избежать подобных ситуаций в будущем.