22.04 更新后局域网唤醒功能损坏

22.04 更新后局域网唤醒功能损坏

我最近将我的一台机器从 Ubuntu 21.10 更新到了 22.04,没有出现任何重大问题。但是,我的局域网唤醒配置似乎出了问题。

WoL 在 BIOS/UEFI 级别启用,并systemd在启动期间运行一项服务:

[Unit]
Description=Enable Wake-up on LAN

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s %i wol g

[Install]
WantedBy=basic.target

但是现在,该命令只产生:

netlink error: Operation not supported

即使ethtool通过运行手动检查:

sudo ethtool enp4s0

再也没有提到了Wake-On:。22.04 中的网络堆栈是否发生了一些变化,从而禁用了 WoL 支持?或者我可以做些什么来进一步调试这个问题?

答案1

我解决了 Qualcomm Atheros AR816x/AR817x 适配器上的问题。使用风险自负!

我已经在受影响的机器上成功完成了完全远程操作。

sudo dmesg  | grep -i ethernet
[    7.494311] alx 0000:05:00.0 eth0: Qualcomm Atheros AR816x/AR817x Ethernet […]

添加主线存储库

此步骤是安装较新的内核所必需的。截至撰写本文时,Ubuntu 22.04 LTS 的最新内核版本是5.15.0,但补丁仅适用于某些版本。我无法在上应用补丁5.15.0。我太懒了,不想从源代码编译和构建内核。

正如所述Ubuntu 主线内核安装程序

sudo add-apt-repository ppa:cappelikan/ppa
sudo apt update
sudo apt install mainline

安装内核 5.16.xx

添加主线存储库后,您可以轻松安装其他内核版本:

sudo mainline --install 5.16.20
sudo systemctl reboot

注意:可以通过以下方式收集可用版本的列表:mainline --list

修补模块

在应用补丁之前,请检查当前运行的内核版本:

uname -r
5.16.20-051620-generic

应用补丁:

git clone https://github.com/haojunyu/alx_dkms_installer
cd alx_dkms_installer
./setup

注意此存储库是上游 / 起源,因为拉取请求:功能:添加 5.16,支持 ubuntu22.04仍然开放。(截至撰写本文时)。

再次重启:sudo systemctl reboot

检查 WOL 功能

sudo ethtool enp5s0 | grep -i wake
        Supports Wake-on: pg
        Wake-on: pg

我现在可以通过 WoL 启动机器了。关闭电源后,可以通过 WoL 再次启动。

最后说明

我也尝试了6.0.9没有打补丁的内核。仍然没有 WoL。我猜不会有修复。这个硬件有点过时了。

答案2

看起来较新的内核禁用了某些适配器上的 WoL。具体情况取决于您的适配器。请参阅:

我有一台 AR8161 (Qualcomm Atheros AR816x/AR817x),在将 Ubuntu 从 20.04 升级到 22.04 后也出现了同样的问题。您可以使用 检查您的适配器sudo dmesg | grep -i ethernet

也许较新的内核可以修复此问题或有可行的补丁。

答案3

从 20.04 升级到 22.04 后,WOL 停止工作,以下解决方案对我有用

/etc/tlp.conf集合中:

WOL_DISABLE=N 

我认为导致我出现此问题的原因是,在更新至 22.04 版时,先前存在的/etc/tlp.conf文件被替换为默认版本,该版本具有#WOL_DISABLE=Y

原解来源: https://ubuntu-mate.community/t/wake-on-lan-persistance-issues-22-04/25600/4

其他参考:

Ubuntu 20.04 的 wakeonlan 问题

Ubuntu 20.10 的 wakeonlan 停止工作

相关内容