Using OpenSolaris As A TiVo Backup Device

OpenSolaris logo TiVo logo
I'm trying to get the open source Java application Galleon to work on the OpenSolaris operating system. I'm writing this to describe what I did to get it working. First, a brief explanation of what Galleon is.

Galleon is an open source application written in the Java programming language that knows how to talk to a TiVo digital video recorder (DVR). The main two things that Galleon can do, from my perspective are:
  1. let you transfer video content between the TiVo and a computer
  2. let you write new TiVo interactive applications, in Java
Here is a video demo showing what Galleon applications look like on your TiVo.

There are two parts to Galleon: the Galleon server connects to your TiVo, and the Galleon GUI lets you configure the apps that show up on the TiVo.

My interest in Galleon is to use my OpenSolaris home media server as a TiVo backup device. I don't know if you have this problem, but every once in a while, the TiVo will crash and sometimes it loses some of the shows I've recorded. Most of the shows, I'm okay if they're lost. But there are always a few shows that I really didn't want to lose; those shows, I'd like to back up on a more reliable storage platform than TiVo. Now that my OpenSolaris home media server with ZFS is running and stable, I'd like to use it to backup my most critical content (if you can call TV "critical", but that's a separate issue).

I spent some time getting the Java app to build and run; I decided to run as an unprivileged user (i.e., don't need root privileges to run the app), so I made some configuration changes to make it work. Here's what I did.

First, I got the source via the project's CVS repository.

Next, I configured the "unix.properties" file in the top-level directory to change where it tries to install Galleon. By default, the app goes into /usr/share/galleon but I wanted to try it from my home directory first, so I changed those entries appropriately (i.e., change /usr/share to /export/home/me). Also, I changed the log entries from /var/log/galleon and /var/cache/galleon to /export/home/me/var/... while I was testing.

Next, I went into the "galleon" directory and typed "ant" to build the app from source code.

(didn't yet worry about how to install and package it in /usr/local, where I'd want it (override default settings for linux)

I got pretty excited at this point, a little too soon. I tried to launch Galleon from build/bin (you launch by running a shell script called "run.sh", which starts the Galleon server). This didn't quite work: Galleon uses something called the Java Service Wrapper, but the wrapper executable in my download was not for OpenSolaris. Luckily, the web site had a binary for Solaris 10 x86 (here's a link to the Community edition, version 3.3.5), which worked fine with my OpenSolaris 2008.11 release.

(There's also a SourceForge project here but I haven't yet tried to compile it from source. I'd love to hear from somebody who tries it to see if it works for them.)

I tried again to launch the Galleon server (./run.sh), but it failed on launch: Galloen couldn't write to /var/log/galleon/{gui.txt, log.txt}. Galleon uses Log4J for logging; to fix this, I modified build/conf/log4j.xml to point to my area to which I have write permissions.

I launched again but it failed to start after a couple of minutes. I looked at the log.txt file to see why; turns out, Galleon uses the Derby Java database, which wouldn't start. Why? Because the hostname of my machine wasn't found. I have issues with my home network's hostname lookup with OpenSolaris (my other machines don't have this problem, only the OpenSolaris box), so I fixed that by putting the hostname into /etc/hosts for now. I should check /etc/nsswitch.conf, but this worked for the time being.

I launched the Galleon server one more time; it spewed a bunch of INFO messages, then said "Galleon is ready." That looked like good news; time to try the GUI and see if it's for real.

To run the GUI and configure Galleon, I typed "./gui.sh", which brings up a Java application that lets you configure the Galleon server. You tell it the Media Access Key (MAK) of your TiVo, which is a simple credential used to connect to the TiVo. You can also configure Galleon by telling it which add-on apps to push to the TiVo. There are a handful of these, including local weather, a music player (the TiVo can play music stored on my OpenSolaris box), photos, RSS reader, and a few other goodies. The app I was really interested in was the "ToGo" app, as in TiVo To Go. That's the feature that lets me specify which shows I want to transfer from the TiVo to my backup server in case the TiVo crashes.

I did the configuration for the ToGo app, then went to my TiVo and went into the "Music, Photos, Products and More" menu to see the list of apps. Galleon showed up on that list; I clicked on it and went into the ToGo app. From there, I could choose shows to send from my TiVo to the computer.

I did the same thing on my OpenSolaris box with the Galleon GUI: there is a panel you can use to tell it which shows to download (e.g., all episodes of "House"). It worked just fine.

I let it do its work overnight; the next day, I found a pool of TiVo shows nicely backed up on the OpenSolaris media server. Next time we lose power and the TiVo gets confused, I can upload those shows back onto the TiVo and I'm back in business.

Powered by ScribeFire.



Comments

Nice work

Nice and interesting work has done by an admin.Keep up the good work.

very nice

Pretty nice post. I just stumbled upon your blog and wished to say that I've really enjoyed browsing your blog posts. In any case I will be subscribing to your feed and I hope you write again very soon!

Thanks for such an

Thanks for such an informative post! I was trying to find out to achieve all that for such a long time cause Galleon is a really good and helpful program.

learning more and more.

Real good articles here mate, I will be back again as im learning so much about this topic lately and I just want to keep learning more and more.

Compliment

Great website and a lot of useful information. I've bookmarked this site.

best news

I’m still learning from you, but I’m trying to reach my goals. I absolutely enjoy reading everything that is written on your site.Keep the stories coming. I loved it!

I used to own a product by

I used to own a product by TiVo's primary competitor, ReplayTV. ReplayTV supported streaming of video from other RTV boxes; there is a Java app that lets you stream movies from your computer to the RTV box. I wish the TiVo would support that.

nice blog

TiVo. Now that my OpenSolaris home media server with ZFS is running and stable, I'd like to use it to backup my most critical content (if you can call TV "critical", but that's a separate issue).

TiVo's primary competitor,

TiVo's primary competitor, ReplayTV. ReplayTV supported streaming of video from other RTV boxes; there is a Java app that lets you stream movies from your computer to the RTV box. I wish the TiVo would support that.

this is best works

Very informative, thank you. I’ve been blogging on and off for almost 3 years, but have never had much of a focus – I tend to just write about whatever is on my mind when I feel like writing. Cheers!

Thank you for the help you

Thank you for the help you have been, you are awesome, keep coming with more.. Chris Harris

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Post new comment

The content of this field is kept private and will not be shown publicly.