From LinuxMCE
Revision as of 23:25, 14 March 2007 by Webpaul1 (Talk | contribs)

Jump to: navigation, search

History of LinuxMCE, why I started this project, and the goals

By: Paul Webber

At Cedia 2006, the biggest event in the U.S.A. for home audio/video/automation, I saw an incredible demo of Monster Cable's new Einstein product suite. Cedia's Technology Council wrote that out of the tens of thousands products at the show, this was the "the most important product" there, and "the most exciting thing to hit home automation" link

I learned the best part was that the company that developed it and licensed it to Monster, Pluto (plutohome.com), released virtually all the source code for free as open source. They only held back modules for DRM and some patented or licensed stuff. Yet even though it had a gorgeous user interface, tons of cool features, and even the industry experts I talked to said it kicked ass over Windows Vista and was the most promising thing to help Linux grab the market for living room media pc's, almost nobody knows about it, and very, very few Linux users have ever tried it.

As I started to to use it, the reason was clear. The software was very tightly intertwined with Pluto's own custom distro which is single-purpose and designed to only run on a dedicated box, kind of like a Tivo. Thus it was almost impossible to make it work on a 'normal' Linux PC. Pluto said this wasn't the intent, but that it had to be that way because their paying customers demanded closed-down black-box solutions which had to comply with rules regarding DRM. And, they said they were too busy taking care of their commercial clients to put much effort into the open source community.

Fair enough, I guess. They already contributed over 3 million lines of code and this media platform. So I figured I'd branch off and work on building an open source community to take it from here. The folks at Pluto were helpful and supportive, and welcomed this fork, and even allowed me to use their build servers and svn to get it going.

The first task was porting Pluto to run on a standard Linux Distro, Ubuntu, instead of their proprietary one. This, I thought, would take me a week. Five months later with two of us working almost full-time, <sigh> it's finally done. It's still not perfect because there remain some Pluto stuff that was written for their black-box system and "take over" more than it should. However, I have rewritten them enough that it's quite usable for a Ubuntu user, and pretty non-intrusive.

My goals are:

  • I want to continue stripping out any of the Pluto stuff that is at all invasive or non-conforming with what is expected of a Linux desktop so that this can be a standard desktop option distributed as part of Ubuntu that runs beside Gnome or KDE, and allow easy switching between the two. The challenge is to do this while still preserving the appliance-like, self-configuring, black-box nature that makes this non-computer-ish and easy for novices with no Linux experience. This is a bit tricky since in general standard Linux desktops expect users to be fairly technical, and the black-box appliances like TiVo, are totally closed and take over the system, like Pluto currently does.
  • To build an active community that can continue to expand LinuxMCE. Fortunately, the architecture is extremely modular; every function is basically a separate module that runs in it's own memory space and talks to all the other modules through a socket-based messaging layer. This means there are many existing open source projects that could be seamlessly added-on to provide cool functionality, like speech recognition, internet radio, and so on. In fact, most of the modules Pluto wrote are already like this, basically thin wrappers around existing open source projects like Xine and Asterisk that allow them to all work together. So there's lots of room for integrating more open source projects like this.
  • To rewrite the Orbiter GUI Pluto developed so it's more general-purpose for any developer that wants to add a suitable UI for displaying on TV and controlling with a remote (aka the 10' UI). Ideally I would like to make it easy for existing developers to target both the traditional desktop UI, and the 10' UI, since the nature of home pc's is moving in that direction. In other words, the same XCalc calculator could be launched on the Gnome desktop for use with a mouse, or on the 10' UI for use with a remote control.
  • Most of all, I want to get LinuxMCE accepted into other Distro's as a standard desktop option. I humbly think this is important for Linux to be a viable option for home pc users, like it already is for commercial servers because, in the home, everyone is starting to expect their pc's to be media hubs. Windows Vista even includes the media center edition standard on every version now. Ultimately it would be nice if a home user could to a retail store to buy a big-name home PC, like a Dell or an HP, and have the option of choosing Windows or Linux, just like somebody shopping for a server does today.