我有一台连接到戴尔 WD19TB 坞站的戴尔笔记本电脑。它被设置为能够双重启动 Windows 10 和 Kubuntu 22.04(20.04 也存在该问题)。
当我从 Windows 中关闭笔记本电脑时,我可以将 WOL 数据包发送到扩展坞 NIC 的 MAC 地址。当我从 Kubuntu 中关闭笔记本电脑时,这不起作用。
当我将网络电缆直接连接到笔记本电脑而不是扩展坞时,当我将 WOL 数据包发送到笔记本电脑的网卡时,我可以在 Kubuntu 内关闭笔记本电脑后唤醒笔记本电脑。
这里可能出现什么问题?
ethtool
表明 NIC 设置正确且 WOL 处于活动状态。
ethtool enx<mac-address>
Settings for enx<mac-address>:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
Port: MII
PHYAD: 32
Transceiver: internal
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00007fff (32767)
drv probe link timer ifdown ifup
rx_err tx_err tx_queued intr
tx_done rx_status pktdata hw wol
Link detected: yes
lshw -class network
印刷
description: Ethernet interface
physical id: 14
bus info: usb@4:2.4
logical name: enx<mac-address>
serial: <mac-address>
size: 1Gbit/s
capacity: 1Gbit/s
capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8152 driverversion=v1.12.13 duplex=full firmware=rtl8153b-2 v1 10/23/19 link=yes multicast=yes port=MII speed=1Gbit/s
扩展坞通过 Thunderbolt 连接。也许 Windows 正在将扩展坞置于某种待机模式,而 Kubuntu 正在关闭它的电源?
将笔记本电脑置于睡眠状态时也会出现同样的问题,它不会通过 WOL 唤醒。
答案1
默认情况下,某些网络接口没有设置 WOL 标志。您可以使用更改此设置ethtool
(可以使用安装apt install ethtool
)。
要检查 WOL 标志是否已设置,请使用:
ethtool <nic> | grep Wake
输出应该是这样的:
Supports Wake-on: pumbg
Wake-on: g
如果它显示Wake-on: d
,则表示 LAN 唤醒已禁用。 g
已启用。您可以通过键入以下内容手动设置此标志:
ethtool -s <nic> wol g
您可以设置网络接口,以便在每次系统启动时通过编辑启用此功能/etc/network/interfaces
auto <nic>
iface <nic> ...
...
up ethtool -s <nic> wol g
可能有一种更现代的方法可以做到这一点,但我已经使用这种设置多年了。 包含更多信息的 Debian 文章。