OpenELEC / OpenELEC.tv

OpenELEC - The living room PC for everyone
http://openelec.tv
1.61k stars 883 forks source link

Intel-build can't wake from suspend/sleep on USB #2487

Closed sirholm closed 10 years ago

sirholm commented 11 years ago

Hi

I've been using fusion build wirh pulse-eight's hdmi-cec usb adapter for 1 year and worked flawlessly.

Now I've upgraded my system to a Asus H87i-PLUS with 4570S and I can still put my system to sleep, but I can't wale it up again.

I was told to see which usb port there were set to wake-on-lan, but I don't know how to do so. And afterwards open more usb ports to wake on lan or find the one that is currenty activated.

Running latest stable build.

Thanks in advance.

stefansaraev commented 11 years ago

please follow https://github.com/OpenELEC/OpenELEC.tv/blob/master/CONTRIBUTING.md this bugtracker is for reporting bugs, + as much info as possible. questions should be asked in forum or irc.

closing this as it is not an accurate bug report

sraue commented 11 years ago

reopened...

@sirholm please paste udevadm info --attribute-walk --name=/dev/ttyACM0 | paste and cat /proc/acpi/wakeup | paste

sirholm commented 11 years ago

OpenELEC:~ # udevadm info --attribute-walk --name=/dev/ttyACM0 device node not found OpenELEC:~ # cat /proc/acpi/wakeup Device S-state Status Sysfs node GLAN S4 enabled pci:0000:00:19.0 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 disabled pci:0000:00:1b.0 PEG0 S4 disabled PEGP S4 disabled PEG1 S4 disabled PEG2 S4 *disabled

opperpanter commented 11 years ago

I have the same/similar problem. I tried to get some help in the forum, but no result there (http://openelec.tv/forum/107-suspend-and-wakeup/66591-suspend-doesn-t-work-on-zbox-id83-usb2)

I have a zbox id83 (Intel HM76, i3-3225, Intel HD4000). A) When I use the usb port on the side of the box, suspend works, but waking up is impossible. B) When I use any other usb port, suspend works for 2 seconds, but after that the box wakes up by itself. (would be nice to have CONFIG_ACPI_DEBUG=y).

Tested with usb ir receiver and (wireless bluetooth) keyboard.

Same results in Intel x64 build and generic x86 build, logs below are for intel x64:

Output for A) openelec:~ # udevadm info --attribute-walk --name=/dev/ttyACM0 device node not found

Device  S-state   Status   Sysfs node
P0P1      S4    *disabled
USB1      S3    *disabled
USB2      S3    *disabled
USB3      S3    *disabled
USB4      S3    *disabled
USB5      S3    *disabled
USB6      S3    *disabled
USB7      S3    *disabled
RP01      S4    *disabled  pci:0000:00:1c.0
PXSX      S4    *enabled   pci:0000:01:00.0
RP02      S4    *disabled
PXSX      S4    *disabled
RP03      S4    *disabled
PXSX      S4    *disabled
RP04      S4    *disabled  pci:0000:00:1c.3
PXSX      S4    *disabled  pci:0000:02:00.0
RP05      S4    *disabled
PXSX      S4    *disabled
RP06      S4    *disabled
PXSX      S4    *disabled
RP07      S4    *disabled
PXSX      S4    *disabled
RP08      S4    *disabled
PXSX      S4    *disabled
PEG0      S4    *disabled
PEGP      S4    *disabled
PEG1      S4    *disabled
PEG2      S4    *disabled
PEG3      S4    *disabled
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    *disabled  pci:0000:00:1b.0
PWRB      S3    *disabled

device info:

I: Bus=0003 Vendor=045e Product=0745 Version=0111
N: Name="Microsoft Microsoft® 2.4GHz Transceiver v7.0"
P: Phys=usb-0000:00:14.0-3/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3:1.0/input/input10
U: Uniq=
H: Handlers=sysrq kbd event3
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff800000000007ff febeffdff3cfffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=045e Product=0745 Version=0111
N: Name="Microsoft Microsoft® 2.4GHz Transceiver v7.0"
P: Phys=usb-0000:00:14.0-3/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3:1.1/input/input11
U: Uniq=
H: Handlers=kbd mouse0 event4
B: PROP=0
B: EV=1f
B: KEY=4837fff072ff32d bf54444600000000 1f0001 20f908b17c000 677bfad9415fed 9ed68000004400 10000002
B: REL=3c3
B: ABS=100000000
B: MSC=10

I: Bus=0003 Vendor=045e Product=0745 Version=0111
N: Name="Microsoft Microsoft® 2.4GHz Transceiver v7.0"
P: Phys=usb-0000:00:14.0-3/input2
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3:1.2/input/input12
U: Uniq=
H: Handlers=sysrq kbd js0 event5
B: PROP=0
B: EV=10001f
B: KEY=4c37fff072ff32d bf54445600000000 c00000000000001 30f908b17c007 ffff7bfad951dfff febeffdfffefffff fffffffffffffffe
B: REL=40
B: ABS=ffffff01000701ff
B: MSC=10

Output for B) openelec:~ # udevadm info --attribute-walk --name=/dev/ttyACM0 device node not found

openelec:~ # cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
P0P1      S4    *disabled
USB1      S3    *disabled
USB2      S3    *disabled
USB3      S3    *disabled
USB4      S3    *disabled
USB5      S3    *disabled
USB6      S3    *disabled
USB7      S3    *disabled
RP01      S4    *disabled  pci:0000:00:1c.0
PXSX      S4    *enabled   pci:0000:01:00.0
RP02      S4    *disabled
PXSX      S4    *disabled
RP03      S4    *disabled
PXSX      S4    *disabled
RP04      S4    *disabled  pci:0000:00:1c.3
PXSX      S4    *disabled  pci:0000:02:00.0
RP05      S4    *disabled
PXSX      S4    *disabled
RP06      S4    *disabled
PXSX      S4    *disabled
RP07      S4    *disabled
PXSX      S4    *disabled
RP08      S4    *disabled
PXSX      S4    *disabled
PEG0      S4    *disabled
PEGP      S4    *disabled
PEG1      S4    *disabled
PEG2      S4    *disabled
PEG3      S4    *disabled
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    *disabled  pci:0000:00:1b.0
PWRB      S3    *disabled

device info:

I: Bus=0003 Vendor=045e Product=0745 Version=0111
N: Name="Microsoft Microsoft® 2.4GHz Transceiver v7.0"
P: Phys=usb-0000:00:1a.0-1.2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input3
U: Uniq=
H: Handlers=sysrq kbd event3
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff800000000007ff febeffdff3cfffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=045e Product=0745 Version=0111
N: Name="Microsoft Microsoft® 2.4GHz Transceiver v7.0"
P: Phys=usb-0000:00:1a.0-1.2/input1
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.1/input/input4
U: Uniq=
H: Handlers=kbd mouse0 event4
B: PROP=0
B: EV=1f
B: KEY=4837fff072ff32d bf54444600000000 1f0001 20f908b17c000 677bfad9415fed 9ed68000004400 10000002
B: REL=3c3
B: ABS=100000000
B: MSC=10

I: Bus=0003 Vendor=045e Product=0745 Version=0111
N: Name="Microsoft Microsoft® 2.4GHz Transceiver v7.0"
P: Phys=usb-0000:00:1a.0-1.2/input2
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.2/input/input5
U: Uniq=
H: Handlers=sysrq kbd js0 event5
B: PROP=0
B: EV=10001f
B: KEY=4c37fff072ff32d bf54445600000000 c00000000000001 30f908b17c007 ffff7bfad951dfff febeffdfffefffff fffffffffffffffe
B: REL=40
B: ABS=ffffff01000701ff
B: MSC=10
opperpanter commented 11 years ago

BTW More people with similar issues are on the forum: http://openelec.tv/forum/107-suspend-and-wakeup/63257-standby-zbox-id-82. Also zbox, but the suspend/resume works fine under windows 7 & 8.

opperpanter commented 11 years ago

More info: To verify sleep and resume under general/other linux I tried both Ubuntu 13.04 and xbmcbuntu 12. In both cases suspend/resume works normally.

fritsch commented 11 years ago

Not really relevant. Ubuntu 13.04 uses kernel 3.8 and xbmcbuntu 12 uses 3.2 or 3.5 - we are currently shipping 3.10.10 - can you please post the output of dmesg?

opperpanter commented 11 years ago

Kernel.log: http://pastebin.com/dGyDVEkP hardware.log: http://pastebin.com/Kc5mh0x4 varlog: http://pastebin.com/JagVaXxv inputlog: http://pastebin.com/3PGefV8a

stefansaraev commented 11 years ago

we need a dmesg | pastebinit AFTER unsuccessful suspend/resume cycle ( case "B" ?)

opperpanter commented 11 years ago

The 4 pastebins are from that case. Logfiles retrieved from the zip autogenerated by OE. Here's output from manual dmesg: http://pastebin.com/uJUmCbKP I have awoken the box by using the powerbutton on the box.

stefansaraev commented 11 years ago

I see no attempt to suspend / resume at all there.

fritsch commented 11 years ago

Same for me - looks like a dmesg directly after boot up.

opperpanter commented 11 years ago

You're right, forgot that I switched the shutdown function back to shutdown. sorry guys (too many things at once), thanks for looking into this!

Here's the dmesg for option B, verified to contain sleep/resume cycle. http://pastebin.com/wMgLgL0x

stefansaraev commented 11 years ago

thanks. insane guess. can you please check in your bios if "usb legacy support" is enabled ? if not - please enable it and retry

opperpanter commented 11 years ago

Tried that already :-) There also 4 other options for usb in the BIOS:

USB3.0 support XHCI hand-off EHCI hand-off Port 60/64 emulation

By default all of them are 'enabled'. When set to 'disabled', I get the same result regarding suspend/resume.

stefansaraev commented 11 years ago

and there is no "legacy usb support" option ?

opperpanter commented 11 years ago

There is. I tried that already with enabled/disabled. No difference.

stefansaraev commented 11 years ago

what about "case A)" with legacy support enabled.

do this (only ONCE) before you try

for i in `seq 1 7` ; do echo USB$i > /proc/acpi/wakeup ; done

confirm USB* is enabled by /proc/acpi/wakeup

EDIT: nevermind, no need to try. not related to legacy mode. sorry for wasting your time.

sraue commented 11 years ago

@opperpanter could you test please with OpenELEC 3.1.7 again?

jenkins101 commented 11 years ago

a wild guess, but try:

for i in /sys/bus/usb/devices/*/power/autosuspend; do echo -1 > $i; done
opperpanter commented 11 years ago

Switched to 3.1.7, same results.

for i in `seq 1 7` ; do echo USB$i > /proc/acpi/wakeup ; done\

I tried this, but the USB devices just stay at disabled in /proc/acpi/wakeup. even with

echo "USB1" > /proc/acpi/wakeup
opperpanter commented 11 years ago

Tried (with 3.1.7) as well:

for i in /sys/bus/usb/devices/*/power/autosuspend; do echo -1 > $i; done

No luck.

opperpanter commented 11 years ago

Just tried with openelec 2.0.0, same results :-( (scenario A and B).

jenkins101 commented 11 years ago

try: for i in /sys/bus/usb/devices/*/power/wakeup ;do echo enabled > $i ;done

also make sure the wakeup devices are inserted in a USB2 port...

opperpanter commented 11 years ago

thanks @jenkins101. With

for i in /sys/bus/usb/devices/*/power/wakeup ;do echo enabled > $i ;done

Scenario A turns into scenario B. So the box is waking up without touching the (wired) keyboard. No other devices attached.

stefansaraev commented 11 years ago

not sure if this could be in help. but on my board (asrock ion 330) there is a jumper called PS2_USB_PWR1 (+5V +5VSB) . if NOT set to +5VSB - I have exactly the same issue - immediate wakeup after resume. you said it works under ubuntu but imo it's worth checking ;)

opperpanter commented 11 years ago

Thanks. Turns out the id83 only has 1 jumper: clear cmos.

opperpanter commented 11 years ago

BTW To be sure, be aware this not only happens on the Intel build, but on the generic build as well.

fritsch commented 11 years ago

I think we need a build with every acpi debug option enabled as possible. We don't have that hardware and therefore can only step through the fog :-)

fritsch commented 11 years ago

Those two links could help: https://www.kernel.org/doc/Documentation/acpi/debug.txt (that one we have to enable) https://wiki.ubuntu.com/DebuggingKernelSuspend

opperpanter commented 11 years ago

Interestings links (first one I've read before). Seems like at build time only the CONFIG_ACPI_DEBUG=y is needed. Option B might be debuggable. Option A looks difficult because the box doesn't react to anything but the power button. Having said that, when only Option B is solved, I am happy.

jenkins101 commented 11 years ago

I think it is a bug in the USB driver... have you checked USB2 vs USB3 @opperpanter ?

opperpanter commented 11 years ago

I did, no difference. Disabled usb3 in BIOS, etc.

jenkins101 commented 11 years ago

thats not the same... you need to use a pure USB2 port to test. and no usb hub :-)

opperpanter commented 11 years ago

That's what I did. I have 4 USB2 ports and 2 USB3 ports. Tried them both. Also tried disabling the USB3 ports in the BIOS as suggested elsewhere.

mitchds commented 11 years ago

I've got the same problem, but i believe this is not an openelec issue per-se, but the h/w itself. Some motherboards do not provide power in s3 to the USB bus. My GIGABYTE GA-B75TN is one of these boards. 2 things to check/test:

  1. Boot of any other Linux distro (Ubuntu, Windows, etc from a stick/cdrom etc) and suspend the OS. Then try to resume using your CEC adapter.
  2. Plug in a keyboard. Does it wake up from suspend with that using the keyboard power key ?

If both of these fail, i believe there is no standby power in S3. You will notice it easily in sleep if your ethernet lights are blinking. For me both the above fail, so either a BIOS/FW upgrade for your MB will fix it, or replacing the MB itself.

opperpanter commented 11 years ago

read above, it's not the hardware. both linux and win8 work.

mitchds commented 11 years ago

Ok, sorry missed that line. So may not necessarily be the case for you, but surely it is for me and possibly others. As mentioned even with booted off a ubuntu install disk, i can suspend to s3 and wakeup from power button, but no power to USB to wake up from my remote control (with USB ir dongle). Seems here S3 doesn't give me power to USB bus.

jenkins101 commented 11 years ago

then it is probably something driver related... we have to wait for a kernel update...

jenkins101 commented 10 years ago

please test 3.2.1

mitchds commented 10 years ago

Doesn't work for me (my hardware that is). Also no luck with the more recent 3.2.2

shortskoolbus commented 10 years ago

Have same problem with Gigabyte Brix. Only have USB 3.0 ports, no USB 2.0.

/sys/bus/usb/devices/.../power/wakeup is enabled

there is nothing under sysfs node for all USB devices (1-7) when i look in /proc/acpi/wakeup, but controllers ECH1 and ECH2 are enabled for wake from S4.

harryharry commented 10 years ago

I have the same problem with Zotac id83. I have tried the latest Openelec Intel and Generic builds, also nightly builds. I have tested with most settings in bios without success. In Xbmcbuntu suspend and hibernate works fine.

shortskoolbus commented 10 years ago

Yup.. works fine with XBMCbuntu... (at least suspend does)

guyhth commented 10 years ago

Hello, I'm new to GitHub (and bug reporting in general), so apologies if I miss any points of etiquette.

I believe I have the same issue as sirholm; I have an Asus H81i-Plus (not the H87) paired with a 4130T CPU. Using an R6 USB receiver I can suspend the computer, but not wake it. Neither the USB keyboard or mouse are able to wake the computer either. Only the power button works.

Waking with IR/keyboard/mouse does work under Windows, so it does appear to be a software issue, not hardware.

The IR receiver has an LED that flashes when a command is received. When OpenELEC is suspended, this does not flash. Does this imply that USB devices are being powered-down?

lsusb

Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 003 Device 002: ID 147a:e03e Formosa Industrial Computing, Inc. Infrared Receiver [IR605A/Q]
Bus 003 Device 003: ID 0603:00f2 Novatek Microelectronics Corp. 
Bus 005 Device 002: ID 046d:c521 Logitech, Inc. Cordless Mouse Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

cat /proc/acpi/wakeup

Device  S-state   Status   Sysfs node
RP01      S4    *disabled  pci:0000:00:1c.0
PXSX      S4    *disabled
RP02      S4    *enabled   pci:0000:00:1c.1
PXSX      S4    *enabled   pci:0000:03:00.0
RP03      S4    *disabled  pci:0000:00:1c.2
PXSX      S4    *enabled   pci:0000:04:00.0
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    *disabled  pci:0000:00:1b.0
PEG0      S4    *disabled  pci:0000:00:01.0
PEGP      S4    *disabled
PEG1      S4    *disabled
PEG2      S4    *disabled

Neither of the solutions suggested by stefansaraev or jenkins101 have an effect. I'm happy to provide any extra information I can if it will help.

dat0ad commented 10 years ago

I have the same mobo and cpu setup as Tinlad and I too am experiencing a wake up on USB problem. I have tried two different USB K/B's

lsusb

Bus 001 Device 002: ID 8087:8000 Intel Corp. Bus 004 Device 002: ID 05c7:2024 Qtronix Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

cat /proc/acpi/wakeup

Device S-state Status Sysfs node RP01 S4 disabled pci:0000:00:1c.0 PXSX S4 disabled RP02 S4 enabled pci:0000:00:1c.1 PXSX S4 enabled pci:0000:03:00.0 RP03 S4 disabled pci:0000:00:1c.2 PXSX S4 enabled pci:0000:04:00.0 GLAN S4 disabled EHC1 S4 enabled pci:0000:00:1d.0 EHC2 S4 disabled XHC S4 enabled pci:0000:00:14.0 HDEF S4 disabled pci:0000:00:1b.0 PEG0 S4 disabled pci:0000:00:01.0 PEGP S4 disabled PEG1 S4 disabled PEG2 S4 *disabled

grep 2024 /sys/bus/usb/devices/*/idProduct

/sys/bus/usb/devices/4-2/idProduct:2024

cat /sys/bus/usb/devices/4-2/power/wakeup

enabled

As far as openelec is concerned the K/B USB port is "enabled" for wakeup yet no wake up event occurs.

The info above was utilised from here: http://forum.xbmc.org/showthread.php?tid=104541&pid=835642#pid835642

Using OPENELEC 64bit 3.2.4

It does appear to me that the USB port(s) are receiving no power..no caps/scroll/num lock lights

guyhth commented 10 years ago

An update on this issue: I've fixed the problem by disabling Intel xHCI in the UEFI BIOS. There are four options: "Smart Auto", "Auto", "Enabled" and "Disabled". Only with it set to "Disabled" can I wake OpenELEC from suspend mode with a USB device.

I'm guessing that this is something to do with how the system handles the mix of USB 2.0 and 3.0 ports? (The remote receiver is plugged into a 2.0 port, however)

Before trying this, I updated to the Gotham beta (3.95.1), so unfortunately I can't tell whether changing the BIOS setting would work on 3.2.4 as well. All I can say is that the problem wasn't fixed solely by 3.95.1.

(EDIT: final paragraph for clarity)

dat0ad commented 10 years ago

Tinlad Thanks for the update. I still have this problem running 3.2.4. I will give this a crack when I have a chance and will report back.

guyhth commented 10 years ago

Thinking back, once I upgraded to 3.95.1 I did notice that the IR receiver LED was blinking whilst the PC was suspended (even if it wasn't waking it up) - this wasn't happening in 3.2.4.

So I think it must be a combination of 3.95.1 and the BIOS setting that enables this to work.

dat0ad - good luck!

Keysersose12 commented 10 years ago

I'm experiencing this issue with a new zotac ID91. No usb device i've tried is able to wake it. It is supplying power though in suspend mode as a usb infrared receiver I connect to it, lights up when remote buttons are pressed.

Zotac support say the device does support wake from usb (they have nothing though in the bios giving an option to enable/disable it).

Disabling Intel xHC in the bios makes no difference unfortunately.

I'm using OpenELEC Beta - Generic x86_64 Version:3.95.5