使用 Ubuntu 18.04 的 LAN 唤醒问题

使用 Ubuntu 18.04 的 LAN 唤醒问题

我有两台机器,都运行 Ubuntu 18.04。我的目标是让 WOL 在两台机器上都能正常工作。

在一台机器(PC1)上,WOL 运行正常,但在另一台机器(PC2)上,WOL 却无法运行。

我的设置(在两台电脑上)是:

我已禁用网络管理器,如下所示:

sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
sudo systemctl mask NetworkManager

我已启用网络,如下所示:

sudo systemctl unmask systemd-networkd.service
sudo systemctl enable systemd-networkd.service
sudo systemctl start systemd-networkd.service

我修改了目录中的唯一文件/etc/netplan,即/etc/netplan/01-网络管理器-all.yaml因此它看起来像这样(PC1):

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      addresses:
        - 192.168.1.113/24
      gateway4: 192.168.1.1
      wakeonlan: true
      nameservers:
        addresses: [103.86.96.100, 103.86.99.100]

PC2 完全相同,只是eno1enp1s0并且IP地址也不同(当然)。

两台机器均启动正常,以太网连接正常,我可以从两台机器正常访问互联网。

如果我输入

sudo ethtool enp1s0

在 PC2 上我得到了这个(摘录):

Supports Wake-on: pumbg
Wake-on: d

在 PC1(eno1)上我得到(提取)

Supports Wake-on: pumbg
Wake-on: g

如果我输入(在 PC2 上):

sudo ethtool -s enp1s0 wol g 

进而

sudo ethtool enp1s0

我明白了

Supports Wake-on: pumbg
Wake-on: g

如果我关闭 PC2,WOL 将按预期工作(但这当然只是“一次性”)。

如果我把sudo ethtool -s enp1s0 wol g在一个启动脚本或关闭我在 PC2 上安装的脚本(均以 sudo 权限运行)导致 WOL 不起作用。

我认为 PC1 和 PC2 之间的唯一区别是主板;PC2 有 Gigabyte GA-H110M-S2H;PC1 有 ASUS SABERTOOTH X79)

如果任何人提出任何建议或见解,我将不胜感激。

提前致谢。

答案1

固定的。

事实证明这是驱动程序问题。 Gigabyte GA-H110M-S2H 上的 NIC 是 Realtek 8168 设备;Ubuntu 使用的是 8169 驱动程序。为了解决这个问题,我做了以下操作:

sudo apt-get install r8168-dkms

该过程需要一点时间,因为新驱动程序已构建并安装到我的内核中。(dkms 确保如果发生任何内核更新,则会自动重新构建新内核)。

我必须重新启动才能使 WOL 正常工作。

相关内容