Archive:HOW-TO:Enable Wake-On-Device for Ubuntu: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>NedBot
m (Robot: Cosmetic changes)
(because some people don't understand what "outdated" means)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This Article discusses enabling wake-up from your remote device under Ubuntu. In order to perform the following tasks you must be [[root]].
{{outdated}}
 
Note: This article contains examples of what you should see. Examples, marked with eg. will be different then your computer. Please follow the instructions and do not copy and paste examples or undesired results may occour.
 
 
 
== Identification of resume devices ==
This section discusses identification of the resume devices. You must be root for all following steps.
 
* Become root
sudo su root
 
 
=== Authorized resume devices ===
* From your terminal type the following to gain a list of all authorized resume devices
cat /proc/acpi/wakeup
You will see a list of authorized resume devices
 
EG.
root@XBMCLive:~# cat /proc/acpi/wakeup
Device  S-state  Status  Sysfs node
HUB0      S5    disabled  pci:0000:00:04.0
XVR0      S5    disabled  pci:0000:00:09.0
XVR1      S5    disabled  pci:0000:00:0b.0
XVR2      S5    disabled  pci:0000:00:0c.0
PS2M      S4    disabled  pnp:00:08
PS2K      S4    disabled  pnp:00:09
USB0      S3    disabled  pci:0000:00:02.0
USB2      S3    disabled  pci:0000:00:02.1
AZAD      S5    disabled  pci:0000:00:05.0
MMAC      S5    disabled  pci:0000:00:07.0
 
Note:
PS2M = Mouse
PS2K = Keyboard
USBX = USB where X = bus number
USXX = USB where X = double digit bus numbers
=== more information on devices ===
* You can get more information on wakeup devices by typing the following in a console
lspci
 
You will see a list of PCI devices. The first coloumn in lspci will match the Sysfs node coloumn in /proc/acpi/wakeup
 
EG.
root@XBMCLive:~# lspci
00:00.0 RAM memory: nVidia Corporation MCP61 Memory Controller (rev a1)
00:01.0 ISA bridge: nVidia Corporation MCP61 LPC Bridge (rev a2)
00:01.1 SMBus: nVidia Corporation MCP61 SMBus (rev a2)
00:01.2 RAM memory: nVidia Corporation MCP61 Memory Controller (rev a2)
00:02.0 USB Controller: nVidia Corporation MCP61 USB Controller (rev a3)
00:02.1 USB Controller: nVidia Corporation MCP61 USB Controller (rev a3)
00:04.0 PCI bridge: nVidia Corporation MCP61 PCI bridge (rev a1)
00:05.0 Audio device: nVidia Corporation MCP61 High Definition Audio (rev a2)
00:06.0 IDE interface: nVidia Corporation MCP61 IDE (rev a2)
00:07.0 Bridge: nVidia Corporation MCP61 Ethernet (rev a2)
00:08.0 IDE interface: nVidia Corporation MCP61 SATA Controller (rev a2)
00:08.1 IDE interface: nVidia Corporation MCP61 SATA Controller (rev a2)
00:09.0 PCI bridge: nVidia Corporation MCP61 PCI Express bridge (rev a2)
00:0b.0 PCI bridge: nVidia Corporation MCP61 PCI Express bridge (rev a2)
00:0c.0 PCI bridge: nVidia Corporation MCP61 PCI Express bridge (rev a2)
00:0d.0 VGA compatible controller: nVidia Corporation C61 [GeForce 6150SE nForce 430] (rev a2)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
 
 
 
== Enabling wakeup status for devices ==
This section discusses enabling wakeup status for your device.
 
* enable wakeup devices to resume the computer by typing the following where **** is replaced with the corresponding device
echo **** > /proc/acpi/wakeup
 
EG.
root@XBMCLive:~# echo USB0 > /proc/acpi/wakeup
root@XBMCLive:~# echo USB2 > /proc/acpi/wakeup
 
 
=== Verifying enabled devices ===
* Type the following to verify proper wakeup device status
cat /proc/acpi/wakeup
EG.
root@XBMCLive:~# cat /proc/acpi/wakeup
Device  S-state  Status  Sysfs node
HUB0      S5    disabled  pci:0000:00:04.0
XVR0      S5    disabled  pci:0000:00:09.0
XVR1      S5    disabled  pci:0000:00:0b.0
XVR2      S5    disabled  pci:0000:00:0c.0
PS2M      S4    disabled  pnp:00:08
PS2K      S4    disabled  pnp:00:09
USB0      S3    enabled  pci:0000:00:02.0
USB2      S3    enabled  pci:0000:00:02.1
AZAD      S5    disabled  pci:0000:00:05.0
MMAC      S5    disabled  pci:0000:00:07.0
 
 
 
 
You should now see that your devices are enabled. Test your resume function at this time and verify proper operation.
 
=== Troubleshooting auto-resume ===
If an enabled device resumes the computer from standby at an undesired time, you may choose to disable it by using the following command where **** is the device you wish to disable
echo **** > /proc/acpi/wakeup
 
EG.
enabling USB2 as an enabled wakeup device causes the computer to resume immediately..
root@XBMCLive:~# echo USB2 > /proc/acpi/wakeup
 
If that doesn't fix the auto-resume issue (meaning your setup still auto-resumes almost immediately after going to sleep), there may be an ACPI conflict that we can fix in GRUB.
 
There is also a conflict on these ion boards between nvidia SMbus and acpi and we want to fix that so we will do that now as well. This is only a workaround for now, though it may be fixed in later kernels. You can find the bug reports on Google and track them to know when you'll want to remove this line. Here is a link to one https://bugs.launchpad.net/ubuntu/+source/linux/+bug/440780 of the active tickets.
 
We need to edit our grub boot line in order to accomplish this fix. Since 9.10 and newer uses GRUB2, things are a little different so first lets get out of root by typing
 
exit
 
at the command prompt and you should be back at your regular command prompt which will look something like this
 
xbmc@zotac-ion:~$
 
We are going to edit out default grub boot line, so paste this into your terminal window
 
sudo nano /etc/default/grub
 
The file will now open and the line we want to fix is
 
GRUB_COMMAND_LINE_DEFAULT="quiet splash"
 
Cursor down until you find the above line in the file, and now paste the following into that line '''BETWEEN THE QUOTES''', leaving a space after the h in splash.
 
usbcore.autosuspend=-1 acpi_enforce_resources=lax
 
Now the line should look like this after editing
 
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1 acpi_enforce_resources=lax"
 
OK that's done, press CTRL+X and then ENTER to exit editing mode and save the file.
 
Now we need to update grub let's do that by pasting this
 
sudo update-grub
 
You should now be able to reboot, and successfully suspend and resume from the remote without issue.
 
If your device refuses to resume from standby even while the correct wakeup devices are set in /proc/acpi/wakeup. It could be caused because of a bug in the current Ubuntu kernel. Kernel versions starting from 2.6.32-23 are affected by this bug. A possible solution is to downgrade your kernel to 2.6.32-22.
 
More information about this: http://forum.xbmc.org/showthread.php?t=76944
 
== Committing to rc.local ==
 
* Edit /etc/rc.local and add the echo commands required to enable authorized devices
sudo gedit /etc/rc.local
EG.
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo USB0>/proc/acpi/wakeup
echo "rc.local has completed sucessfully." >> /tmp/resume.log
exit 0
 
 
Your Wake-On-Device setup is now complete.

Latest revision as of 07:02, 4 April 2015

Time.png THIS PAGE IS OUTDATED:

This page or section has not been updated in a long time, no longer applies, refers to features that have been replaced/removed, and/or may not be reliable.

This page is only kept for historical reasons, or in case someone wants to try updating it.