NOTICE: Account creation on the wiki has been temporarily disabled until the wiki is moved to OpenID. If you need an account before then, please request one here: http://forum.xbmc.org/showthread.php?tid=165868

HOW-TO:Create a resume script

From XBMC
Jump to: navigation, search

This guide assumes that you have installed XBMC Live or have at least performed all steps outlined in one of the articles listed here Installing XBMC for Linux and here HOW-TO setup Lirc to talk to XBMC. This guide assumes that your remote works well upon startup. If it does not, then do not proceed with this article.

You will also need a SFTP client and a terminal emulator like WinSCP and Putty.

To enable resume from your remote see the following article Enable Wake-On-Device

You will need root access for the following commands.

Contents

1 Setting up the basics

This section discusses installation and use of curl

1.1 Installing curl

apt-get install curl

1.2 Using Curl

The following command will disable XBMC's ability to turn your remote's commands into usable input.

curl "http://127.0.0.1:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn&parameter=LIRC.Stop"

The following command will enable XBMC's ability to turn your remote's commands into usable input.

curl "http://127.0.0.1:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn&parameter=LIRC.Start"

The following command will stop and then restart XBMC's ability to turn your remote's commands into usable input.

curl "http://127.0.0.1:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn&parameter=LIRC.restart"

2 Designing your resume script

This section discusses creating a basic lirc resume script. You will now go through each one of the sections and design your custom restart script. It is recommended that you create a wiki article like this one, Snapstream Firefly when you are finished. When you add to the wiki, it is documented so people who are not as good with scripting may follow behind your work.

2.1 Create your basic script outline

#!/bin/sh

# This script uses curl. Install curl using the following command from your terminal apt-get install curl
# This script will restart (ADD YOUR DEVICE NAME HERE WHEN FINISHED), Lirc, and XBMC upon resume.
case "$1" in 
	resume)
		curl "http://127.0.0.1:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn&parameter=LIRC.Stop"


		/etc/init.d/lirc restart 
		curl "http://127.0.0.1:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn&parameter=LIRC.Start" 
		echo "lirc resume script completed!!!" >>/tmp/script.log
	;;
esac

This is the basic resume script outline. The two blank lines under curl "http://127.0.0.1:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn&parameter=LIRC.Stop" will be for restarting your drivers.

2.2 checking remote output

curl "http://127.0.0.1:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn&parameter=LIRC.Stop"
/etc/init.d/lirc restart
curl "http://127.0.0.1:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn&parameter=LIRC.Start
irw

If your remote works, then skip to the creating a resume file section.

3 Finding the offending device

This section will cover locating the driver and restarting. The computer should be in a resumed state after completion of standby.

3.1 Ensuring physical device connectivity after standby

lsusb

EG.

(T: XBMCLive)root@XBMCLive:~# lsusb
Bus 001 Device 003: ID 0bda:0151 Realtek Semiconductor Corp. Mass Stroage Device 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0bc7:0008 X10 Wireless Technology, Inc. Wireless Transceiver (ACPI-compliant)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
(T: XBMCLive)root@XBMCLive:~#

08 X10 Wireless Technology, Inc. Wireless Transceiver (ACPI-compliant) is the remote device. You can verify this by unplugging the device and running lsusb again

/etc/init.d/udev restart

3.2 Locating and restarting drivers

sudo modprobe -l |grep lirc

EG.

(T: XBMCLive)root@XBMCLive:~# sudo modprobe -l |grep lirc
kernel/ubuntu/lirc/lirc_dev/lirc_dev.ko
kernel/ubuntu/lirc/lirc_atiusb/lirc_atiusb.ko
kernel/ubuntu/lirc/lirc_bt829/lirc_bt829.ko
kernel/ubuntu/lirc/lirc_cmdir/lirc_cmdir.ko
kernel/ubuntu/lirc/lirc_cmdir/commandir.ko
kernel/ubuntu/lirc/lirc_i2c/lirc_i2c.ko
kernel/ubuntu/lirc/lirc_igorplugusb/lirc_igorplugusb.ko
kernel/ubuntu/lirc/lirc_imon/lirc_imon.ko
kernel/ubuntu/lirc/lirc_it87/lirc_it87.ko
kernel/ubuntu/lirc/lirc_mceusb/lirc_mceusb.ko
kernel/ubuntu/lirc/lirc_mceusb2/lirc_mceusb2.ko
kernel/ubuntu/lirc/lirc_pvr150/lirc_pvr150.ko
kernel/ubuntu/lirc/lirc_sasem/lirc_sasem.ko
kernel/ubuntu/lirc/lirc_serial/lirc_serial.ko
kernel/ubuntu/lirc/lirc_serial_igor/lirc_serial_igor.ko
kernel/ubuntu/lirc/lirc_sir/lirc_sir.ko
kernel/ubuntu/lirc/lirc_streamzap/lirc_streamzap.ko
kernel/ubuntu/lirc/lirc_ttusbir/lirc_ttusbir.ko
kernel/ubuntu/lirc/lirc_gpio/lirc_gpio.ko

in this case lirc_atiusb happens to be the driver

curl "http://127.0.0.1:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn&parameter=LIRC.Stop"
rmmod lirc_atiusb
modprobe lirc_atiusb
/etc/init.d/lirc restart
irw

eg.

(T: XBMCLive)root@XBMCLive:~# curl "http://127.0.0.1:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn&parameter=LIRC.Stop"
html
li OK /html
(T: XBMCLive)root@XBMCLive:~# rmmod lirc_atiusb
(T: XBMCLive)root@XBMCLive:~# modprobe lirc_atiusb
(T: XBMCLive)root@XBMCLive:~# /etc/init.d/lirc restart
 * Stopping remote control daemon(s): LIRC                               [ OK ]
 * Loading LIRC modules                                                  [ OK ]
 * Starting remote control daemon(s) : LIRC                              [ OK ]
(T: XBMCLive)root@XBMCLive:~# irw
000000146f9a0000 00 up Snapstream
000000146f9a0000 01 up Snapstream

EG.

#!/bin/sh

# This script uses curl. Install curl using the following command from your terminal apt-get install curl
# This script will restart ATIUSB, Lirc, and XBMC upon resume.

case "$1" in  
	resume)
 		curl "http://127.0.0.1:8080/xbmcCmds /xbmcHttp?command=ExecBuilt&Inparameter=LIRC.Stop"
		rmmod lirc_atiusb
		modprobe lirc_atiusb
		/etc/init.d/lirc restart 
		irw & sleep 1; killall irw
		curl "http://127.0.0.1:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn& parameter=LIRC.Start" 
		echo "lirc resume script completed!!!" >>/tmp/script.log
	;;
esac


4 Creating a resume file

This section discusses creating your resume script after you have collected the required data.

4.1 Add your script to sleep.d

chmod +x /etc/pm/sleep.d/99lirc-resume.sh

You are now done.

Personal tools
Namespaces
Variants
Actions
Navigation
Wiki help
Google Search
Toolbox