更换 Realtek r8168 网卡以启用网络唤醒?

更换 Realtek r8168 网卡以启用网络唤醒?

近一周以来,我一直在为板载 Realtek RTL8111/8168B 以太网控制器 (MB: Gigabyte Z68AP-D3) 的局域网唤醒 (WoL) 功能而苦恼。主要问题似乎是网卡在关机期间完全关闭(即,链接和 (活动) LED 灯都熄灭)。

我对类似问题进行了广泛的审查,并尝试了以下方法(其中包括):

  • 存入ethtool -s eth0 wol g文件rc.local
  • 从 Realtek 安装最新的 r8168 驱动程序。
  • 存入echo -n "my_lan_id" >> /proc/acpi/wakeup文件rc.local
  • 在 BIOS 中打开或关闭 WOL 选项。

我找不到任何方法让网卡正常工作,所以我决定尝试使用外部 PCI 网卡。请建议我应该尝试使用哪张网卡来启用 WoL?(也许英特尔® PRO/1000 GT 台式机适配器?)

答案1

我找到了一个解决方案,它适用于我的系统(RTL8111/8168B PCI Express 千兆以太网 + Ubuntu 12.04 AMD64)。这错误报告描述了这个问题,有人建议使用 r8168 模块而不是 r8169 模块就可以解决问题。我还在其他地方看到可以通过 dkms 完成此操作,但我今天早上很着急,所以没有机会查看,这可能会有帮助

wget http://r8168.googlecode.com/files/r8168-8.030.00.tar.bz2
tar xjf r8168-8.030.00.tar.bz2
cd r8168-8.030.00
./autorun.sh

尽管我是通过 ssh 执行此操作的,但它确实有效,连接只是锁定了一会儿,但在安装新模块后再次恢复。

答案2

LED 不一定非要亮才能表示 NIC 正在监听 WOL,这是一个常见的误解。这取决于 NIC。我有一台 Windows PC,即使 WOL 可以工作,LAN LED 也会熄灭。此外,在路由器的 i/f 中查找连接的设备可能无法如实显示 NIC 是否正在监听 WOL。我有一台 PC,在睡眠状态下在路由器的 i/f 中不可见,但 WOL 可以工作。所以总而言之,我认为没有什么好方法可以检查 NIC 是否正在监听或完全关闭。

我在这里发布了我的问题和调查,可能是同样的问题: 局域网唤醒成功了 3 次,然后就不行了

我现在主要怀疑这个问题发生在使用 Ubuntu 12.04 的 RTL8111 用户身上。

实际上,RTL8111 也有不同版本,谁知道它是否适用于所有版本,我不知道 8111C、8168B、8169 等之间有什么区别,它们在 Linux 上使用相同的驱动程序。在 Realtek 的网站上,以下 NIC 使用相同的驱动程序:

RTL8111B/RTL8168B/RTL8111/RTL8168 -- RTL8111C/RTL8111CP/RTL8111D(L) -- RTL8168C/RTL8111DP/RTL8111E -- RTL8168E/RTL8111F/RTL8411

以及针对以下 NIC 的不同驱动程序:

RTL8110SC(L) (RTL8110S/RTL8110SB(L)/RTL8169SB(L)/RTL8169S(L)/RTL8169)

不允许发布更多链接.. :-/

如果您想购买不同的 NIC,我建议非 Realtek 即任何英特尔芯片。

更新:我进行了更多测试以了解问题所在。我目前的主要理论是:Ubuntu 系统在待机模式下关闭 NIC 电源,和/或 64 位机器的 Realtek RTL8111 驱动程序不起作用。有关详细信息,请参阅我的帖子链接。

顺便说一句,我不明白这个论坛。我是不是发了个答案,其他人却在讨论,虽然这是不允许的?!我可以修改原始帖子,但不能添加评论!

答案3

除了在 BIOS 中打开网络唤醒支持外,我还必须进行另一项 BIOS 更改。

在 BIOS 中的“电源管理”下,我将“深度睡眠控制”设置为禁用。

这样,即使 PC 关闭时,NIC 也能保持开启状态并显示链接灯。

相关内容