Tag Archives: XBMC

Moar XBMC Awesome

Been playing around a bit more with XBMC and came across a few noteworthy add-ons I thought worth sharing.

First off, is BlueCop’s most excellent Hulu plugin. I was familiar with it’s basic usage and commercial skipping abilities, but discovered library integration had been added at some point. Enabling that for my TV show subscriptions (or favorites as Hulu likes to call em now) integrates em into the normal TV library interface within XBMC. There’s also a service plugin that will automatically check for any updates/changes on hulu and update XBMC accordingly.

The other discovery was actually an updated skin. Been using Aeon Nox for quite some time and yesterday they released a massive update to version 3.0. There’s the usual collection of eye candy updates, but the killer new feature for me is the new custom home screen shortcuts. I’ve mapped my most used add-ons already, but almost anything can be added and you can add sub menus for quick access to specific areas (favorites in the Amazon add-on for instance). The flexibility there is awesome, and they succeeded in making it very easy to use which is a big bonus. Till now I’ve viewed skins as simply a way to change the look of XBMC, but this also adds a high level of customization I’ve not seen seen before. Big kudos to the team behind this release.

Geeky weekend projects

Had some time on my hands this weekend, so decided to get a few small projects worked out.

  • IPv6 – Since TWC doesn’t provide native support, got my tunnel setup on my router and using rtadvd to hand out addresses with wide-dhcpv6 providing various dhcp options. I’m just assigning addresses manually for any host I want in DNS for now, might end up attempting some ddns magic at some point if I care enough.
  • 802.11n – Enabling it has been problematic in the past with the default WRT160N firmware. I’d always end up with dropped packets or random ap reboots once I put it under a sustained heavy load. After attempting all the linksys recommended nudges, I replaced their firmware with TomatoUSB. Still had some dropped packets but after switching wifi from 40MHz to 20MHz I’m getting very smooth 80-90Mbps speeds through most of my house.
  • No Cable! – Dropped Uverse due to their bandwidth capping and moved over to TWC’s DOCSIS for a whopping 30/5Mbps pipe. Decided not to keep cable tv and instead bought a Roku for the streaming stuff I can’t get easily via XBMC or PS3. Nice thing is, since I’m a TWC subscriber, all the base unencrypted channels are still available so we don’t have to put in an antenna for the normal networks and locals. Ended up picking up an HDHomerun box and setting up MythTV along with the XBMC MythBox plugin so we have proper timeshift/PVR as well. Gotta tweak Myth a bit still since playback of higher bitrate stuff is a bit jittery.
  • Media Hub – Had my old media box sitting unused so decided to put that in our living room primarily for syncing media to/from our various portable devices. Bonus – due to the wireless and Myth changes (and a nice 23″ LCD/LED monitor), I was able to install XBMC on that box and have a perfectly suitable casual viewing spot. And yes, that does include full HD over wireless.

XBMC suspend/resume in Maverick

Few updates to my previous post:

  1. The format for the proc interface changed slightly (but significantly) from “disabled” to “*disabled”, scripts must be updated accordingly.
  2. One more step is required, details are in this post, but the short version is that you’ll need to enable wakup for the device at the sysfs level in addition to proc. I used the simple udev rule posted there and all works.

Enabling suspend/resume with XBMC in Ubuntu 9.10

Had issues after upgrading to Karmic with suspend/resume on my media box (Shuttle SN78S) where the system would suspend and then immediately resume (xbmc forum thread). After ruling out the nvidia blob as the culprit (my usual suspect), I did a bit more digging and found people able to make it work by disabling usb autosuspend but that didn’t make a difference at all for me. I did find some older documentation pointing to an oddity with the ehci driver and acpi wakeup causing this issue so I disabled it (via /proc/acpi/wakeup) and was able to suspend successfully. Wakeup via WOL succeeded as well, but not being able to resume via remote is a showstopper for me so I poked a bit more and enabled wakeup only for the USB device my remote sensor was attached to and voila!

To determine the USB device:

root@host:~#lsusb
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 1784:0008 TopSeed Technology Corp.
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

In this case it’s easy as my remote sensor is the only device attached and it’s on bus 004.


root@host:~#cat /proc/acpi/wakeup |grep ^USB
USB0 S3 disabled pci:0000:00:02.0
USB1 S3 enabled pci:0000:00:04.0
USBB S3 disabled pci:0000:00:04.1
USB2 S3 disabled pci:0000:00:02.1

Now I have both the USB1 and USBB devices that show up on 04, but USB1 is the first so that was the one I enabled via:
echo "USB1" > /proc/acpi/wakeup

To make it persistent I added the following to /etc/rc.local (the ethtool command enables WOL and isn’t needed unless you want to wake your machine over the network):

# Enable wakeup for the remote
status=`cat /proc/acpi/wakeup | grep "USB1" | awk {'print $3}'`
if [ "$status" = "disabled" ]; then
echo "USB1" > /proc/acpi/wakeup
fi

/usr/sbin/ethtool -s eth0 wol g > /dev/null

The only other step I took was to work around the standard lirc borkage by disabling lirc and unloading the modules. This requires two files:
/etc/pm/config.d/01lirc_module

SUSPEND_MODULES="lirc_mceusb lirc_dev"

/etc/pm/sleep.d/10-lirc (must be executable, requires installing curl – apt-get install curl)

#!/bin/sh
# Disconnect XBMC from lirc and stop the daemon

case "$1" in
hibernate|suspend)
service lirc stop
;;
thaw|resume)
service lirc start
;;
*) exit $NA
;;
esac

As of 9.11 alpha 2, XBMC uses ConsoleKit in the Karmic packages so you need to make sure your session gets auth’d properly or you’ll end up with permission denied messages in the xbmc logs when it tries to suspend. If you’re using GDM or KDM it should Just Work. In my case I’m just starting x on tty1 for my xbmc user so I had to update my .xsession file to launch xbmc like so:
ck-launch-session /usr/bin/xbmc --standalone

Edit: As of 9.11 alpha2, XBMC takes care of connecting/disconnecting from the LIRC daemon so no need to do it in the lirc script. Also added info about the new ConsoleKit integration in alpha2.
Edit2: Maverick requires a few other tweaks to work properly, updates are here.

Switch to our mobile site