Intel I219 V2 (if_em) Wake on LAN not working
Eric van Gyzen
vangyzen at FreeBSD.org
Fri Mar 25 00:44:40 UTC 2016
On 03/23/16 06:57 AM, Guido Falsi wrote:
> Hi,
>
> I have a new machine with the I219 ethernet adapter. (PCI deviceID: 0x15b8).
>
> It works fine on the OS, but I cannot enable wake on lan on it in any way:
>
> # ifconfig em0
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>
> options=4019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO>
> ether XXX
> inet XXX netmask 0xffffff00 broadcast XXX
> nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> media: Ethernet autoselect (100baseTX <full-duplex>)
> status: active
> # ifconfig em0 wol
> # ifconfig em0
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>
> options=4019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO>
> ether XXX
> inet XXX netmask 0xffffff00 broadcast XXX
> nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> media: Ethernet autoselect (100baseTX <full-duplex>)
> status: active
> # sysctl dev.em.0.wake=1
> dev.em.0.wake: 0 -> 1
> # ifconfig em0
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>
> options=4019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO>
> ether XXX
> inet XXX netmask 0xffffff00 broadcast XXX
> nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> media: Ethernet autoselect (100baseTX <full-duplex>)
> status: active
> # ifconfig em0 wol
> # ifconfig em0
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>
> options=4019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO>
> ether XXX
> inet XXX netmask 0xffffff00 broadcast XXX
> nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> media: Ethernet autoselect (100baseTX <full-duplex>)
> status: active
> #
>
>
>
> Sending the WOL packet does not work after shutdown, while it works if
> turning off the machine from the BIOS (obviously appropriate flags in
> the BIOS are turned on) with the power button.
I have a new Dell XPS 8900 with the same NIC and the same problem. I'm running
head (r297219). I made the following two changes:
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index 6f7458c..16c7495 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -5275,7 +5275,8 @@ em_get_wakeup(device_t dev)
NVM_INIT_CONTROL3_PORT_A, 1, &eeprom_data);
break;
}
- if (eeprom_data & apme_mask)
+ device_printf(dev, "em_get_wakeup: eeprom_data %hu\n", eeprom_data);
+ //if (eeprom_data & apme_mask)
adapter->wol = (E1000_WUFC_MAG | E1000_WUFC_MC);
/*
* We have the eeprom settings, now apply the special cases
>From that, I see that eeprom_data is 0, so adapter->wol stays zero, so ifconfig
doesn't show any WOL capabilities. When I ignore the eeprom_data by commenting
out the "if" condition, WOL capabilities appear in ifconfig. However, even when
I enable WOL with ifconfig, WOL still doesn't work after a "shutdown -p now".
WOL only works after I power off using the power button before the kernel boots.
Eric
More information about the freebsd-net
mailing list