Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have an Aopen i945GMM-HL motherboard. It still works fine, and the BIOS is set to allow WakeOnLAN to power up the machine but since a recent OS update those magic packets just don't work anymore.

Here's the output of lspci -v for the NIC:

03:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 22)
    Subsystem: AOPEN Inc. Device 0607
    Flags: bus master, fast devsel, latency 0, IRQ 43
    Memory at fdefc000 (64-bit, non-prefetchable) [size=16K]
    I/O ports at ce00 [size=256]
    [virtual] Expansion ROM at fdd00000 [disabled] [size=128K]
    Capabilities: [48] Power Management version 2
    Capabilities: [50] Vital Product Data
    Capabilities: [5c] MSI: Enable+ Count=1/2 Maskable- 64bit+
    Capabilities: [e0] Express Legacy Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Kernel driver in use: sky2

running ver. 3.4.6-1 of the kernel.

share|improve this question

2 Answers 2

The below information is from the OP, as he can't answer his own question for 7 more hours.

The solution for this problem was quite simple. Apparently back when the kernel I used to use was made, power management options were never read from the BIOS. All that changed, but some BIOSes report their data incorrectly resulting in breakage of some power management features for some users. Workarounds were posted to the Linux Kernel Mailing List as patches but it was decided to add a module option instead.

So. If you're having a hard time getting wakeonlan to work with your system despite what ethtool & your BIOS settings say, try putting this into a .conf file (e.g. sky2.conf) in /etc/modprobe.d/

options sky2 legacy_pme=1

FYI, if unloading the sky2 module to try it with the legacy_pme option yourself, be sure to set wakeonlan back on with

sudo ethtool -s eth0 wol g

before powering the system down

share|improve this answer

I wanted to share some information - this may help with your wakeonlan (WOL) issue with the Marvell device.

I have a Shuttle device with Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (rev 12). I have been running Ubuntu 10.04 LTS and XBMC, with the Sky2 driver v1.25. WOL running just fine in this setup.

I recently had to upgrade to 12.04 LTS as part of another story, and run into the WOL problem not working anymore with Sky2 v1.30

The Sky2 driver fails because of parameter handling of Y2_HW_WOL_ON and Y2_HW_WOL_OFF and the register writes, during the sky2_wol_init function.

I am by no means a Linux developer, but using a combination of lspci and setpci commands, I sniffed out the registers in the Marvell device that were set by the driver v1.25 and the driver v1.30, and now set the register manually with setpci when running the v1.30 driver. Wakeonlan works again with 12.04 LTS and v1.30 driver without any recompiling!

The register (in my system) is at 0x41, and needs its value setting to 0x80. My Marvell chip is on the PCI bus at 02:00.0, found using lspci.

I added this command in the same startup script used to run the ethtool sequence:

setpci -s 02:00 41.b=80

So, a nasty hack, but works fine. I would fix the sky2.c driver if I knew how to build a kernel driver on my system…

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.