Wake-On-LAN 13.04 problems

5,197

So, after fiddling some more, I discovered that when I hibernate Ubuntu via

sudo pm-hibernate

the NIC lights stay on and I am able to WOL. However, that is no good for me since I have LVM encryption so it requires entering the passkey onsite and I can't do that via remote-in. On comparison of the hibernation and suspend routines I noticed that on suspend within

/usr/lib/pm-utils/sleep.d/50unload_alx

it has the line:

'modunload alx'

which I found is what is unloading the drivers for the atheros NIC. Commenting it out did the trick and the lights stayed on when I suspend and now I can WOL.

HOWEVER, I discovered the reason for the modunload alx is due to a bug that prevents the machine from suspending properly, hence it was probably added in.

SO, the new situation I am in now is that I am able to WOL from suspend but I can't suspend the machine after the first time. Interestingly enough, hibernation works fine and WOL from hibernation works every time.

I just can't suspend and WOL and repeat over and over again. First suspend works with

sudo pm-suspend

but after that, it does not anymore.

HOWEVER, I found that I can suspend fine through the desktop (and then WOL), which I find strange....

So the new question is (perhaps I should create a new thread):

What is the difference between

sudo pm-suspend

versus suspending through the desktop??

Also, if I do

sudo pm-suspend-hybrid

It suspends and I can also WOL. If I set the timer on the desktop to suspend after XX minutes, it also suspends fine and I can WOL.

So what is the difference between all these routines versus what sudo pm-suspend does??

Share:
5,197

Related videos on Youtube

user198220
Author by

user198220

Updated on September 18, 2022

Comments

  • user198220
    user198220 over 1 year

    I've been trying to get WOL to work for weeks on my Ubuntu server 13.04 install but it just doesn't seem to work.

    I notice when I suspend the server with "sudo pm-suspend" or via the desktop gui, the NIC card turns off. I.e., there is no blinking lights on the network port. I don't know if that's the issue but in my /var/log/syslog, I also saw that my ethernet was not one of the PCIs that had "system wakeup enabled by ACPI":

        Oct  2 16:46:10 JAMFS1 kernel: [26462.745615] PM: suspend of devices complete after 519.955 msecs
        Oct  2 16:46:10 JAMFS1 kernel: [26462.745743] PM: late suspend of devices complete after 0.126 msecs
        Oct  2 16:46:10 JAMFS1 kernel: [26462.745953] ehci-pci 0000:00:1d.0: System wakeup enabled by ACPI
        Oct  2 16:46:10 JAMFS1 kernel: [26462.761576] ehci-pci 0000:00:1a.0: System wakeup enabled by ACPI
        Oct  2 16:46:10 JAMFS1 kernel: [26462.793491] xhci_hcd 0000:00:14.0: System wakeup enabled by ACPI
        Oct  2 16:46:10 JAMFS1 kernel: [26462.809491] PM: noirq suspend of devices complete after 63.784 msecs
        Oct  2 16:46:10 JAMFS1 kernel: [26462.809695] ACPI: Preparing to enter system sleep state S3
    .......
        Oct  2 16:46:10 JAMFS1 kernel: [26463.464575] ACPI: Waking up from system sleep state S3
        Oct  2 16:46:10 JAMFS1 kernel: [26463.510511] xhci_hcd 0000:00:14.0: System wakeup disabled by ACPI
        Oct  2 16:46:10 JAMFS1 kernel: [26463.542498] ehci-pci 0000:00:1a.0: System wakeup disabled by ACPI
        Oct  2 16:46:10 JAMFS1 kernel: [26463.574474] ehci-pci 0000:00:1d.0: System wakeup disabled by ACPI
        Oct  2 16:46:10 JAMFS1 kernel: [26463.590562] PM: noirq resume of devices complete after 125.527 msecs
        Oct  2 16:46:10 JAMFS1 kernel: [26463.590650] PM: early resume of devices complete after 0.071 msecs
    

    But according to "cat /proc/acpi/wakeup" my ethernet card IS supposed be to enabled:

    Device  S-state   Status   Sysfs node
    USB1      S3    *disabled
    RP01      S4    *enabled   pci:0000:00:1c.0
    RP03      S4    *enabled   pci:0000:00:1c.2
    GLAN      S4    *disabled
    EHC1      S4    *enabled   pci:0000:00:1d.0
    EHC2      S4    *enabled   pci:0000:00:1a.0
    XHC       S4    *enabled   pci:0000:00:14.0
    HDEF      S4    *enabled   pci:0000:00:1b.0
    PEG0      S4    *disabled
    PEGP      S4    *disabled
    

    From my "lspci -tv", you can see that "pci:0000:00:1c.2" is the Atheros ethernet card:

           +-14.0  Intel Corporation Lynx Point USB xHCI Host Controller
           +-16.0  Intel Corporation Lynx Point MEI Controller #1
           +-1a.0  Intel Corporation Lynx Point USB Enhanced Host Controller #2
           +-1b.0  Intel Corporation Lynx Point High Definition Audio Controller
           +-1c.0-[01]--
           +-1c.2-[02]----00.0  Qualcomm Atheros QCA8171 Gigabit Ethernet
           +-1d.0  Intel Corporation Lynx Point USB Enhanced Host Controller #1
           +-1f.0  Intel Corporation Lynx Point LPC Controller
    

    I also set /sys/class/net/p2p1/device/power/wakeup to 'enabled'. As well as ran sudo ethtool -s p2p1 wol g and inserted that into my /etc/rc.local

    I have enabled the equivalent wake on LAN/PCI in my ASRock Bios.

    ethtool p2p1 (p2p1 is my Qualcomm Atheros QCA8171 Gigabit Ethernet name) shows this:

    Supports Wake-on: pg
    Wake-on: g
    

    So what do I do?? I followed every guide and suggestion I found. Do you think it's a driver issue? Is there a way to update the Atheros driver? Has anyone been able to wake on lan if the NIC card has no blinking lights? With the system up, I used wireshark and was able to detect the WOL packets sent from my local dd-wrt via the command /usr/sbin/wol -i 192.168.1.254 -v bc:5f:f4:be:38:e4 -p 9. I also was able to receive the packets from a windows machine with a WOL generator. Anyone has any suggestions as I'm just out of ideas.... Thanks in advance for reading.

    Lastly, my lspci -vv is as such if that helps anyone:

    02:00.0 Ethernet controller: Qualcomm Atheros QCA8171 Gigabit Ethernet (rev 10)
            Subsystem: ASRock Incorporation Device 10a1
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
            Latency: 0, Cache Line Size: 64 bytes
            Interrupt: pin A routed to IRQ 18
            Region 0: Memory at f0400000 (64-bit, non-prefetchable) [size=256K]
            Region 2: I/O ports at e000 [size=128]
            Capabilities: [40] Power Management version 3
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                    Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
            Capabilities: [58] Express (v1) Endpoint, MSI 00
                    DevCap: MaxPayload 4096 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                            ExtTag- AttnBtn+ AttnInd+ PwrInd+ RBE+ FLReset-
                    DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
                            RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                            MaxPayload 128 bytes, MaxReadReq 512 bytes
                    DevSta: CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr+ TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
                            ClockPM+ Surprise- LLActRep- BwNot-
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
            Capabilities: [c0] MSI: Enable- Count=1/16 Maskable+ 64bit+
                    Address: 0000000000000000  Data: 0000
                    Masking: 00000000  Pending: 00000000
            Capabilities: [d8] MSI-X: Enable+ Count=16 Masked-
                    Vector table: BAR=0 offset=00002000
                    PBA: BAR=0 offset=00003000
            Capabilities: [100 v1] Advanced Error Reporting
                    UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
                    UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                    UESvrt: DLP- SDES+ TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                    CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                    CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                    AERCap: First Error Pointer: 14, GenCap+ CGenEn- ChkCap+ ChkEn-
            Capabilities: [180 v1] Device Serial Number ff-be-38-f4-bc-ef-f4-df
            Kernel driver in use: alx