The LinuxMCE Project is a work in progress, promising finally to bring us the Home of the Future.
What started out as an article on the Ultimate Linux Multimedia System ended up being one on the Ultimate Linux Home—coming soon to a home near you, thanks to a project called LinuxMCE. What brought about this change of heart? When I was growing up, I was a big fan of magazines like Popular Mechanics and Popular Science that constantly talked about the Home of the Future. Such a home would manage lights, turning them on and off as you went from room to room. It also would control heating, automatically adjusting a room's temperature according to whether you were going to sleep, about to wake up or leaving for work.
The Home of the Future appeared even more frequently in science-fiction books—the home would wrap its arms around you and take care of your every need. It would read books to you and let you answer the telephone without needing to hold a receiver. These services would be available throughout the house, tailored to the occupants' needs.
During the years, such Home-of-the-Future qualities appeared again and again, mostly in concept homes. Small improvements came about through the use of interfaces, such as X10 for remote control of lights and heat, but the promise of anything like the true Home of the Future still seemed far away, except for some with very expensive systems.
About a year ago, I became aware of a project called Pluto (www.plutohome.com), which seemed to pull together elements of other projects, such as:
MythTV for recording TV programs, photos and music.
Xine for watching movies.
Asterisk for handling telephone calls.
It also added security cameras and lighting control, and it tied them all together, controlling them from a variety of hardware, including Bluetooth-enabled phones. Not only that, but it also could “track” you as you walked from room to room and make sure the media playing in the room you were entering was the same as the media playing in the room you just left. You also could access the output of your security cameras from your cell phone and talk through the speakers of your sound system if you wanted to scare a burglar. The Pluto people made a very nice animated video showing how the system would work if it was completely implemented and installed correctly (plutohome.com/index.php?). They also gave a complete listing of all things it could do. It was awesome.
Most important, Plutohome was FOSS! The people working on it encouraged others to join the project and take the code and put it on their own hardware or even to sell systems and services with Pluto software on them. They correctly pointed out that although there were people who would put their software onto “commodity” hardware, there were other people who wanted a complete and tested system, and they were happy to cater mostly to the second group while allowing the do-it-yourself people to use the software and help extend it. Although the functionality was interesting, I did not have the time to look at Pluto further, so I filed it away for future reference.
Then, in March 2007, I heard about LinuxMCE and saw the video on Google Video (video.google.com/videoplay?docid=-4422887272477313460&hl=en).
At www.linuxmce.com, I read that Paul Webber, the founder of LinuxMCE, had been to CEDIA 2006, a consumer audio/video/home-automation tradeshow. There, he had seen a demonstration of Pluto, which by that time had been licensed to Monster. Paul was hooked, but when he was told that Pluto had all it could do to bring this technology to its own customers, Paul decided to work to make it more visible and more flexible for the Free Software community. The interesting part is that he did this with Pluto's blessing and support.
At the time of this writing, it is June 2007, and the project Paul thought “would take me a week” has been going on for five months, with Paul and another programmer “working on it almost full time”, but they are approaching a usable version. They have done a lot of work to make it operate on “generic” PCs on top of a “generic” distribution and to make sure users would continue to receive all the device support they needed. Closed, single-purpose systems are not their target.
Today, LinuxMCE is based on the Kubuntu distribution, with Aaron Seigo of KDE pledging to integrate it even better. The goal of the LinuxMCE team is to have additional distributions integrate and ship LinuxMCE. Imagine having a multimedia powerhouse as an option on every Linux desktop and notebook, and that every Linux desktop and notebook could optionally provide distributed, integrated multimedia capabilities.
LinuxMCE and Pluto are both frameworks that allow various components to be integrated together. Both projects utilize other major components along with a set of libraries called DCERouter (DCE stands for Data, Commands and Events), a general-purpose message router. It can send messages to applications that are “wrapped” in code and receive commands from those applications when they need something done.
As an example of how this works, say a call comes into Asterisk while you are watching TV. The Asterisk program could send a message to MythTV to mute the show or even halt the show until the call is finished.
Of course, it is one thing when you think about programs controlling other programs, but if you apply almost the same logic to hardware devices, you more easily can map the functions of many home automation products into the framework of the system relatively effortlessly.
The framework also manages plugins, like a lot of other flexible FOSS code (GIMP comes to mind), allowing more modules to be added for new functionality.
Now, let's look at the different components that make up the system hardware.
The core is a server that can sit in an out-of-the-way place, such as your cellar or garage. The core is the place where the software and data are stored. It should have two NIC cards: one for the internal network (recommended as at least 1GB) and one to go to the outside Internet (could be 10/100Mb). The core also should have an interface card for any existing telephone lines that you have (if you have any), for this also is the place where the Asterisk PBX is going to be managing your VoIP telephone calls. Alternatively, you could have a VoIP gateway at some other place in your network.
The core should be a machine where you easily can add disk drives and probably have larger amounts of memory, depending on the load.
The media director hooks up to your TV and audio/visual equipment. It can have inputs from your cable boxes or over-the-air connections, CD and DVD drives, audio input, digital “film” and other connections to amplifiers, TVs, recorders and so forth. There should be one media director for every room where you would consider having an “entertainment area”.
These media directors typically do not have any local storage. They boot PXE over the network. This allows you to use a PC for the media director and have an operating system stored on the local disk. Boot off the disk, and the operating system comes up. Boot over the network, and it becomes a media director.
However, you also can install both the core and the media director software on your hard disk and start that software at any time. This hybrid allows you to boot into LinuxMCE, then stop the MCE software and use Kubuntu. You also could choose to boot Kubuntu, use it, and then start and stop the MCE software as you desire—very flexible.
The orbiter is a separate system that is just used to control the LinuxMCE system. It can have a touchscreen or use a keyboard and mouse. Orbiters can be a tablet system or even a regular PC, but the function is to control the various parts of the system.
Symbian Bluetooth-enabled cell phones as well as some Linux, Windows and Windows CE Webpads (such as the Nokia 770), PDAs, Web browsers or even the CISCO 7970 phone can act as control interfaces for the system. As the documentation says, “You can use it [the CISCO 7970] to make calls and control your home as well.”
Symbian-based Bluetooth phones use Bluetooth for communication whenever they can and switch to the cellular data network when users are not close enough to use Bluetooth. If every media director has a Bluetooth connection, you probably will be within Bluetooth range in most parts of your house.
The most amazing part is that the Bluetooth signal also allows the music or video that you select to follow you as you move from room to room. If two people with Bluetooth phones are in the same room, the choice of media stays with the first person who was in the room. If that person leaves, it switches to what the second person had chosen before entering the room. It also can set the lighting in that room, adjust the volume and other functions.
The controls that show up on the various screens are tuned to individual people's tastes. “maddog” would have a different set of settings, music and preferences than “shedog” (if there were a “shedog”). And, when “maddog” goes to make a telephone call, it shows his own list of contacts. When controlling the system from a cell phone, it shows only the cell-phone owner's information.
Home security also is managed by this system. You can integrate your video cameras into the system, and if someone breaks in to your house, a live feed sends an image to your cell phone and alerts you. You then can call 911 and make sure the authorities are headed toward your house or business. You also can speak to an intruder through your speaker systems—much better than a monitored alarm system.
Finally, the core and the media directors actually are general-purpose computers and diskless clients. The core and media directors in your home are joined together as a network, but you also can combine multiple homes with an encrypted VPN. As you go house to house (or across the world), you can access your files and media. Imagine being in your hotel room with high-speed Internet and have access to all your home (or office) data.
Well, let's just say that “Mom & Pop”, my world-famous technophobic parents, probably will never set up a LinuxMCE system themselves.
Even if they do manage to get the components out of the boxes, wired and set up, a lot of tailoring still has to be done for the whole system to run correctly. Floor plans have to be inserted, lighting fixtures have to be located, and a lot of data has to be imported or entered to make the whole thing work together.
Fortunately, a very complete and systematic Web server also is built in to the system that lets you set and change almost any facility of the system remotely. In the case of Mom & Pop, once I visited their house, plugged in all of the systems and noted the MAC addresses of all the components, I actually could “tune” the system from my house in New Hampshire (and this is a blessing, believe me). Or, if I were a professional installer of this type of system, I could help customers by tuning their systems remotely.
Now that you are all drooling and asking, “Where can I get it?”, we continue with the rest of the story.
Coming up with the right hardware definitely is half the issue. Building one of these systems from cast-off hardware probably will be less than satisfying.
The CPU probably will be used mainly for encoding and decoding video, particularly if you are interested in high-definition TV. If you have hardware encoders for this, a lot of the work is taken off the main CPU, but if you are using software encoders, you can expect to need about 1GHz of processing power (whatever that means these days) for every stream of video.
Hardware encoders, such as the Hauppauge PVR series, unload quite a bit of CPU utilization and allow a single CPU to encode multiple streams at once. This would be useful if you wanted to record one program while watching another or record two programs at one time. On my system, it recognized my Hauppauge PVR-150 with no problems.
If you are building the system yourself, be sure to study the LinuxMCE Project's documentation and the pages of MythTV's documentation that discuss hardware.
Pluto, as I stated previously, is aimed more at pre-packaged boxes with specialized hardware. The LinuxMCE Project is aimed more toward generalized hardware, with free and open-source software, and it uses no licensed, proprietary software at all.
As such, a goal of LinuxMCE is to be as portable across all distributions as possible, so all distributions can include it. Therefore, a significant amount of work had to be done by the development team, even if the Pluto people helped out a lot (which they did).
The software is now going through testing to put it into V1.1 status, and even though it is only V1.1, the amount of functionality is staggering.
In the beginning, it is prudent to understand that not every peripheral or video card will be supported and to try using only the hardware the testers in the forums have tested and found compatible. However, because the system is using major subsystems that have been around for a while, these projects do support a fairly well-known set of peripherals.
Likewise, some of the installation and integration is not intuitive, even in the second beta test of version 1.1. On the other hand, if you purchase a box pre-installed, this won't be an issue, and at least one company is planning to offer pre-installed and supported systems (the support will be available by e-mail and phone).
LinuxMCE is a large and complex project, but with a reasonable architecture to allow it to become a staple in the Free Software world. There are still a couple of rough edges, such as a missing editor to allow room diagrams to be inserted into the system easily, and (of course) the ever-necessary step-by-step documentation, but it has huge potential to help make free software more prevalent in the homes of average people.
In my own LUG, we normally have 15 to 20 people show up at a meeting. When we recently had a MythTV meeting, 55 people showed up. LinuxMCE and similar projects move free software and Linux from computers to consumer appliances and make people more familiar with it.
Although LinuxMCE still may not be “baked” enough for most people, I encourage the developers and the readers of this magazine to help move it forward.