Preface to the LinuxMCE 704 video

Note: this is an older version of LinuxMCE, but it is a good introductory video for seeing the capabilities of the system.

Caveats

Not much. So far most users have reported it works as expected on the first try so long as the video card is compatible. The Quick install DVD I used in the video is more foolproof than the CD, however, you have to watch out for the network connection as mentioned below under the "The setup wizard". If you don't have gallery art or the list of optional software under 'add software' is empty, you probably don't have a network connection. If you can't play commercial dvd's, you don't have libdvdcss installed; be sure it's legal in your area and install it on the 'add software' tab in the setup wizard.

Purpose of the video

The original LinuxMCE 1.0 demo video was done in only a couple hours and just shows some of the software's capabilities. Much more effort was put into this new video which is intended to be a complete walk-through and tutorial that you can follow along, as much as a demo. Together with this document, which explains all the steps in more detail, it should be a getting started guide for LinuxMCE. Some things in this document are technical and intended for seasoned Linux users who want to get under the hood, but the goal is that newbie's can get LinuxMCE up and running quickly. While there are still missing pieces in LinuxMCE, the features shown in the video are stable and the steps shown work every time if you have known-compatible hardware, so anybody should be able to follow the video and get the same result.

Getting the video in high-def

It's easy to watch the video on Google Video since you don't need to download anything. But, the quality is pretty bad so if you're interested in LinuxMCE it's recommended you download the original version, which is in 720p high-def from one of the Mirrors. In it you can read everything on the screen clearly, even the small text on the web pages. All the screen captures and footage were done in HD. It's available in 2 formats: To watch it on a Windows PC, the Windows Media Video (wmv) format is easiest since you don't need any codecs and it's widely supported. It's also in Ogg Theora format (.ogm), which is supported by most Linux distros and can be played using the Kubuntu Live CD. The quality is about the same between the 2 formats, and they're 400MB and 24 minutes long. It's been reported that some Windows Media Players don't properly sync the audio and video. This is a Windows Media bug and pausing the video and repositioning it by sliding the 'current position' scroll bar cause Windows to re-sync. Under Linux most video drivers don't offer hardware acceleration so playing back HD content can be choppy if you don't have a fast enough system.

Stability of the software

The actual architecture in the original LinuxMCE 1.0, which was inherited from Pluto, was already stable. However, the integration with Ubuntu was very incomplete, the setup was pre-alpha at best, and a lot of the features didn't work. In the online survey which asks users if their installation was successful only 23% said 'yes'. With the RC1 for this version it is now 86%, which is quite good considering only 93% reported they were able to get through the Kubuntu installation. Every feature in the demo video should be stable now, with a few exceptions noted below. Basic media playback is now rock solid. A stress-test demo script hammers the system constantly, changing content, playback speed, skipping chapters, etc., several times a seconds, while in parallel forcing the GUI's screens to change, flip through cover art, etc. I've left it running for days, simulating hundreds of thousands of media cycles, without any crashes. There are still missing features, but what you see in the demo video works well.

Equipment used in the demo

In the detailed info for the video I reference the equipment used by number in parenthesis: e.g. boot the computer (1) and insert the IR receiver (2). Here is the equipment and, when available, the manufacturers page or a source page. I tried to use only widely available, off-the-shelf components when possible to remain vendor neutral and non-commercial.

Fiire Chief Gyro Remote This is a possible exception to the rule that I use only "widely available" components, as there is only one source for this remote to my knowledge. The one used in the video was donated to me by Fiire, who provided the code that was added into LinuxMCE 0704 to make it work. They also donated the thin clients and their LinuxMCE PC (called the Fiire Engine) and the HD camcorder for the new demo video. I didn't show the Fiire Engine in the video because you can do the same thing with a generic PC. I have no ownership or financial ties to Fiire, and encourage alternative solutions be added to this wiki. Fiire's remote itself is a custom OEM development, based off of the Gyration GYR3101US. Most features are available on both remotes with a proper event map, with exception of the "Follow Me" feature. A regular Windows MCE infrared remote is a less expensive solution. Please read about the long list of issues with Fiire hardware before purchasing.

The thin clients were also donated by Fiire, coined the Fiire Station. Since the filming of this video the unit has been discontinued and replaced with the Fiire Invisible. Please see a list of issues before purchasing. My unit was a pre-production prototype and final pricing wasn't available, but I was warned that they will be very expensive because they're custom and the components are specialized to get it down to 9 watts so it can be put in a 1" case with no ventilation. You can also use a laptop as a thin-client. I have a Dell laptop with an nVidia graphics card. When it boots you can press F12 to make it boot off the LAN, and then it becomes a LinuxMCE media director automatically, exactly as shown in the video. However, sometimes the nVidia driver doesn't properly handle the laptops internal vs. external monitor setting, and the nVidia card still has the video tearing issue I mentioned. There are small form-factor thin clients made using off-the-shelf components that should be cheaper than the one in my video. I don't have any to test, but I would encourage users to add notes to this wiki pointing out low-cost options. DevonIT specializes in Thin Client sales. Also, if some volunteers could figure out how to get cheap, subsidized hardware, like XBox, to work as a LinuxMCE media director that would make LinuxMCE more accessible.

Generic e-sata controller and sata drives in e-sata enclosures were used for the RAID

Detailed info on the video

Before each stage is an elapsed time in brackets showing how long it took in real life to get to that step. In other words, the installation took 19 minutes + 3 minutes to boot so it took 22 minutes to get to the video wizard.

PC Preparation

I had to upgrade the BIOS on my PC (1) and in the BIOS under Advanced, Chipset increase the frame buffer size to 128MB RAM. That is the amount of memory given to the video card. You need 128MB of RAM to use UI2 because of the OpenGL effects. A lack of Linux video drivers is, I feel, the #1 problem facing LinuxMCE and any Linux-based media application that doesn't use proprietary platforms (ie like TiVo and cable boxes). The only free drivers for PC hardware that seem to support compositing, masking and opengl in Linux are nVidia's closed-source proprietary drivers; the nv open source drivers for nVidia can't do this. The nVidia closed-source drivers are pretty stable, however, when you turn on alpha blending in UI2 the video quality is not great; there is some video tearing and the de-interlacing is pretty poor. If you use the nVidia closed-source drivers with UI2 with masking (ie turn off alpha blending) the video quality is fine but the GUI is not as pretty without the alpha blending. See the notes above about the proprietary, licensed drivers in the thin-clients shown in the demo video. ATI's Linux drivers are not stable, and do not support alpha blending. It seems there is a renewed interest in the Intel graphics chipsets since Intel released the drivers under the GPL. However, they're still not at the same level as nVidia's and can't do alpha blending. I believe that Via's drivers don't yet work with the 2.6.20 kernel in Kubuntu. So for now the solution seems to be to use nVidia 6000, 7000 or 8000 cards with nVidia's closed source drivers. LinuxMCE will automatically install the nVidia closed source drivers if it detects an nVidia card.

[0:00] Install LinuxMCE

Typically you only install LinuxMCE on one PC in the house, called the Core, and in any other rooms where you want media you use network boot or thin clients, which are called Media directors. You can also install just the Media director part of LinuxMCE on another Linux PC to use it as a media director and not use network boot. Even so there must be one Core which has the full LinuxMCE software as media directors cannot run without a Core somewhere on the network since the Core is responsible for maintaining the central directory of all media and other devices scattered around the home. If you install the full LinuxMCE Core on multple PC's, they will all act indepently and not share media and devices between them. If you just want a stand-alone media PC, just 1 pc by itself like a "normal" htpc, then install the full LinuxMCE software on that Kubuntu PC. You don't have to use the whole-house features. When you install LinuxMCE with the normal Kubuntu Live CD and 2 LinuxMCE CD's you're asked lots of questions about your region, networking, etc. But that installation takes a long time. The DVD installer is very fast and uses all defaults, you only pick the hard drive to install onto. LinuxMCE will use an IP locator service to figure out what city you're in and set your timezone, longitude and latitude, calculate your sunrise and sunset, and so on. Later LinuxMCE will confirm the location so you can change it if it's not right. The DVD installer will turn on LinuxMCE's DHCP server by default and serve addresses in the 192.168.80.x range. Change this in the admin panel under Advanced, Networking. Because it's running a DHCP server it's usually best that this main LinuxMCE box has dual network cards. The 'external' one connects to the internet, and the 'internal' one to your LAN and the other devices in your home. LinuxMCE has a configurable firewall in the admin panel. During the installation it will attempt to acquire an IP address and access the internet on all your network cards. Whichever succeeds is considered the 'external' network that will GET an IP address from DHCP, and the other one is the internal one that GIVES out IP addresses with its own DHCP server. If you have only 1 network card, it will use 2 aliases for the card. In this case, it's best to disable any other DHCP server on the network and go into the admin panel under Advanced, Network settings and give the LinuxMCE PC a static ip addess for your internet connection, and let it continue to serve IP addresses with it's own DHCP server. Or on that page you can just shut off LinuxMCE's DHCP server altogether, but then you won't be able to thin clients in other rooms and the plug and play engine won't automatically detect and configure IP devices. After installation hit enter to boot up the first time, which will start the video resolution/audio setup wizard.

[0:22] Run the Video Resolution/Audio Setup Wizard

When the video resolution/audio setup wizard starts you'll hear a series of beeps. Because consumer TV's do not usually report their resolution correctly with EDID like a PC Monitor, and LinuxMCE is designed to be used with a TV, this wizard bypasses the usual EDID exchange between the PC and the monitor to auto-detect the resolution and connector used. Instead it just outputs whatever resolution you choose on whatever connector you pick like consumer a/v gear does. When the wizard starts it will ouptut 640x480 on the VGA port. If you can't see it because you're using another connector or your TV doesn't display this resolution, see AVWizard for keyboard shortcuts you can press when you hear the sequence of beeps to directly choose the connector, and then the resolution. The wizard only starts on the first boot. On future boots you will hear a series of descending beeps. When you do, you can press the AV Menu button on the Gyro remote, or hold down SHIFT on the keyboard, to restart the wizard. Again, you'll hear a alternating series of beeps to let you know when it's running so you can press those keyboard shortcuts if you don't have a picture, and again it will default to 640x480 on VGA. When you hear the ascending beeps during the bootup, that means it's too late in the boot process to start the AV Wizard and it has stopped monitoring SHIFT and the AV Menu buttons because it's already starting the GUI with the current video settings. In the TV UI, you can also choose Advanced, Video Res & Audio Setup to restart the computer and the wizard. Many consumer TV's have overscan, meaning they chop off the edges of the picture. So most media center PC's put the UI only in the middle with a lot of dead space around the edges. But this is inefficient for browsing media because you lose a lot of screen space. So, LinuxMCE uses the whole screen edge-to-edge, and in this wizard shows arrows pointing at the edges of the screen. If the arrows run off the edge of your screen, then you have overscan, and you should choose the +/- and arrow buttons to reduce the UI and fit it within your screen. LinuxMCE will scale it's UI to fit this space. Media playback will still be edge-to-edge, and you can rescale that while the media is playing with the zoom & aspect ratio button. If you choose a digital audio connector (spdif) you'll be asked to confirm that you can hear the Dolby Digital and DTS samples. There is no DTS sample clip, so just say 'yes' if your receiver supports DTS.

See Screenshots to see the difference between the UI options you can pick in this wizard. UI1 runs on most any video card. UI2 is more demanding since it uses OpenGL and requires a lot of video memory. UI2 with masking is more widely supported than UI2 with alpha blending. Also, with the nVidia card I have there is noticeable video tearing when watching movies with alpha blending turned on. The video quality is fine when using UI2 with masking, but the UI doesn't look as nice.

[0:27] The setup wizard

Check your internet connection You won't have gallery art or a list of software to add, like libdvdcss for playing commercial dvd's, if you don't have an internet connection. The Quick Install DVD I used in the demo video uses all default network settings. I had a non-standard network setup because I have multiple LinuxMCE systems with multiple DHCP servers for testing, so I didn't show my network setup in the video. But, after you type in your name and click ok to confirm your admin login, I suggest choosing 'kde desktop', and when kde starts up, choose 'launch admin web site', which starts firefox. Open a tab and confirm you can browse the web. If so, close Firefox and click 'Activate Orbiter' to continue the setup wizard. If not, go into the admin site and choose Advanced, Network, Network Settings and confirm the settings are ok. If they look alright but you still don't have networking, click on 'update' to stop/restart the networking. If it's getting an IP from DHCP you should see it at the top of the page. If you don't have a dual NIC system where 1 of the cards is able to get an IP address from DHCP, then you probably won't have internet connectivity until you assign a static IP. If you have dual nic's then perhaps the default settings for which one is which is wrong, and you can click 'swap interfaces'. If you didn't have an internet connection already when you started the web browser, but do now, it's recommended to do 2 things.

1) If there was no internet connection at install time it won't have a current list of software packages you can add that don't come with LinuxMCE (like libdvdcss). This process involves a google search to look for 3rd party add-in software for LinuxMCE, and can take several minutes. To update this list, click the kde button in the lower left, and choose 'System', 'Konsole'. Close any tips popups and enter this line in the console:

sudo /usr/pluto/bin/getxmls

2) When it's done, reboot the system by choosing Wizard, Restart, Reboot in the admin panel. Since it won't have been able to auto-determine your location with an ip lookup during installation, now when it boots again with an internet connection it will try again. The setup wizard will start again since you didn't finish it.

In the house setup you can skip to 'done' and continue to Media Player Setup after specifying the number of rooms in the house, confirming the names of the rooms and that it got your location correctly. Then in Media Player Wizard, you only need to choose the room this is in and click next. If you live in an area where DVD CSS decryption is legal, the add software screen will let you add it to watch commcerical dvd's. When you choose software to add, wait a few minutes for the screen to refresh and the hourglass to go away. You'll see a check mark next to all the software you added successfully.

Note the Quick Install DVD creates 1 Linux O/S user: linuxmce, password: linuxmce. Any users for the Linux O/S have no correlation to the family members, aka LinuxMCE Users, you specify in the setup wizard. They are 2 different concepts. The Linux O/S users are just for this Linux PC, and are only used by the Linux O/S, and not by LinuxMCE. You won't need them if you only use LinuxMCE and don't log in to the Linux O/S itself. The family members you create in LinuxMCE are global for the whole house and shared amongst all LinuxMCE media directors in the home. Each family member has his own private collection of media, his own voicemail, LinuxMCE admin web site, and so on. "Activate Orbiter" in Launch Manager on the KDE desktop switches back to LinuxMCE's desktop, and is only available when LinuxMCE is running. You can start and stop LinuxMCE in Launch Manager.

[0:30] Watch a DVD

Whenever LinuxMCE starts, the first time you click the screen or choose a button it is ignored because LinuxMCE assumes it starts with the TV off, so the first button you press re-sends an 'On' command to the TV. So if LinuxMCE controls your TV, the Power button on the remote stops media, and then will turn the TV off, and any of the menu buttons turn it on again. Insert a DVD, plug-in the usb uirt, wait about 10 seconds after you see the "Installing software finished" for the device to startup, then start using the windows remote. Note the Zoom & Aspect ratio are often incorrect. The media player in LinuxMCE doesn't get it right all the time. This should be fixed. For now you can choose Menu, Zoom & Aspect to manually change it.

[0:33] Connect the Gyro Remote

Plug-in the usb dongle for the gyro remote. After it says "Installation finished", press "Connect" on the gyro remote. This time you get a message that the device won't be active until you reload the router, which will stop the movie. A reload, which takes about 15 seconds, is when the main message router DCERouter reloads and re-builds the list of all the devices in the home, and announces them to all the other devices. Some devices require a reload and some don't. It depends on whether other devices need to be aware of this device or not. You should be notified whenever you add devices that require a reload. If you're going to be adding lots of devices, don't bother doing a reload between each one. Just add them all and do a reload at the end.

[0:35] Navigate the media

Press menu, choose 'Media', 'manage drives', then 'play' next to the 'dvd'. That re-starts playback of whatever disk is in the drive so you don't need to eject and re-insert it. Most DVD's have chapter names in the database so you'll see a description of the chapter. This particular DVD doesn't, so you just see Chapter 1, Chapter 2, etc. Note that the chapters are arranged in a DVD according to "Titles". Most Titles on a DVD have chapters, and there is no 100% sure way of determining which Title has the main movie, and which Titles have bonus material, menus, etc. To my knowledge no other DVD player tries to figure out which Title contains the actual movie, to let you jump straight into the movie. Most commercial DVD players make you wait through the copyright messages and use the DVD menu, while some, like VideoLan/VLC show all the titles and chapters, but leave it up to you to guess which Title has the actual movie. LinuxMCE tries to do this automatically and gets it right about 90% of the time. So normally, as soon as the disc starts you can bring up the chapter list, click the first chapter, and the movie starts. If it doesn't, you either need to jump to the chapter using the DVD menu like a normal DVD player, or scroll down through all the chapters with the gyro where you can find at the bottom all the Titles and chapters on the disc like VLC. Since we haven't added another output device for audio, when we adjust the volume, it's going to be setting the audio output on the PC's sound card. Once we add a tv or receiver, then the volume commands will go there

[0:38] Rip the disc

[1:08] Install the TV Tuner

Install the TV Tuner and choose my provider. If the selection of a provider is interrupted by a screen that pops up, you have to go back to the provider tab and start again to specify the provider information. If the TV Tuner was already in the PC when the video wizard ran for the first time it won't interrupt you to say you added a TV Tuner. The card will be shown in the setup wizard and you can pick your provider then. You can also get back to the setup wizard at any time by choosing Advanced, Setup Wizard from the main menu.

[1:13] Wait for the guide data

Wait for mythfilldatabase to finish. When you see the first message 'MythTV is ready however it may take several more minutes to retrieve the guide data' that means mythfilldatabase finished retrieving the list of channels, but it's still retrieving the guide data. At this point you can do a 'reload router' and LinuxMCE will have the channels in the guide, and the guide data will be filled in as mythfilldatabase gets it. However, unfortunately it seems that mythfilldatabase uses 100% cpu, particularly since it hammers mysql. This means everything else in the system grinds to a halt. mythfilldatabase should support an option for 'low priority' which includes sleeps so that it can run in the background. For now, the best thing is just to wait 15 minutes after you see that message to let mythfilldatabase finish before continuing. Also, if you find you have no guide data, that probably means mythfilldatabase crashed while retrieving the guide. This happens about 10% of the time. Then you should run mythfilldatabase by hand, which you can do from a console. To monitor the progress of mythfilldatabase from a console, go to the /var/log/pluto directory. Look for the Spawn_* files, which log the output from all external apps LinuxMCE spawns. You'll see a Spawn_filldb_[pid].log which you can tail.

[1:28] Wait for OrbiterGen

When you click 'start using the system' it can take a couple minutes for OrbiterGen to run, which is what checks all the screens in the UI to see if there are changes. Most of the graphical elements in LinuxMCE's UI are pre-rendered by OrbiterGen, except for data grids with live data. This is to make the UI more responsive and allow it to run on low-power devices like pda's that can't scale graphics in real time. Since there are thousands of graphical elements in LinuxMCE this can take a long time. LinuxMCE's UI is object-oriented and defined in the database. There are, it seems, still hundreds of legacy screens that aren't in use anymore, and this process could be optimized to reduce the generation time. Eliminating the wait time for OrbiterGen to run would be really nice, although, in practice, it only happens when you're setting things up and once the system is going you don't need to regen the UI anymore.

[1:31] Start MythTV

Choose Media, TV to start MythTV. Both MythTV's UI and LinuxMCE's are usable at the same time so you can use whichever you like. The Start/Menu button brings up LinuxMCE's UI on top of MythTV, and on the 'Now Playing' menu pad are options to bring up MythTV's guide menu, scheduled recordings, etc. The traditional navigation buttons on the Windows remote and Gyro remote work Myth as expected. To access the mythweb site you can either open up a browser on another PC in the home, choose Advanced, KDE desktop and start a web browser there, or choose Advanced, Computing pick Pluto Admin, and then change the pluto-admin in the URL to mythweb. I downloaded the icons for Fox and the Simpsons from the web, and then copied them to the home directory on the LinuxMCE core. Then in mythweb at the bottom of the channel and show pages there is a place where you can upload the icons. If you want to put the icons in the /home directory like I did, you can do this from windows too. Choose Start, Run and then enter: \\192.168.80.1 (or whatever the ip of the core is). Login with the username you created at the "What's your name" screen. Your password is the same. Copy the files to the home folder. You can also right click on a picture on some web page (like the Simpsons), click copy link, and then paste that in mythweb too.

Sometimes when starting the KDE Desktop I get a 'Sound server fatal error' dialog. I'm not sure what causes this, but it's a message from a KDE process. When it happens it seems sometimes Myth and Xine aren't working and you need to reboot before media playback works again.

From the KDE Desktop you can get back to LinuxMCE's desktop by clicking 'Activate Orbiter' in the LinuxMCE Launch Manager. Or if you do a 'Reload router' like I did in the video that will cause the Orbiter GUI in LinuxMCE to reload, and when it does, it automatically switches to the LinuxMCE desktop.

[1:36] Schedule shows to record

There are still things that aren't well integrated with MythTV. For example, under the media options menu is a 'thumbnail' option. This is supposed to retrieve the current frame of the TV and allow you to save it as an icon for the channel or show so you don't need to upload it in mythweb. This works for Xine, but the 'frame grabber' isn't working in Myth. Also, when you click 'More' next to the record buttons it's supposed to take you to MythTV's recording options screen so you can specify advanced options. And MythTV is crashing a lot. I tried running it in a stress test simulator like with Xine that simulates constant activity every 250ms, like change channels, pause, play, rewind, etc., but Myth always crashes right away like this. About half the time the problem is that the capture card driver has locked up. I've tried the PVR USB2 (v4l) as well as the internal PVR-150 cards (ivtv), and while I have better results with the latter, there are still frequent crashes. And Mythfrontend gets into a deadlock fairly often. However it was pretty reliable if I scheduled the shows to record, let the back end do the recording, and then watched them under Media, Videos, which uses Xine for playback. Xine never crashed. The MythTV problems seem unrelated to LinuxMCE since I had the same issues using MythTV on a clean Kubuntu 0704 without LinuxMCE. Also Myth front end doesn't run at all on the thin clients shown in the video, so you have to watch the tv show after it's recorded. Also sometimes when using the 'record all episodes' LinuxMCE doesn't show the record icon next to all the shows like it should. You can choose Media, TV and then Menu, recordings to view an accurate recording schedule in Myth's UI, or use MythWeb.

[1:38] Wait for MythTV to record some TV shows

In the demo video I wanted to have a couple days worth of recordings in MythTV so that the Media, Video option had several recordings and I could demonstrate how they appear in LinuxMCE. To follow the video and get the same results you will need to leave the computer for a couple days to do recording. The way I simulated this so I could keep the demo going was to let it record one show which I used in the demo, and then keep moving my system date forward to trick myth into recording snippets from several shows. The Myth Plugin should pick up any new recordings MythTV makes and import the attributes, and assign a picture from the show, or channel if available. I stopped the counter here because in the real world you won't sit and wait a couple days for MythTV to record a bunch of shows before continuing. The utility UpdateMedia constantly scans for new media and adds it to LinuxMCE's database, which is what you see when you choose Media, Videos. When you add media to the PC's internal drives or internal RAID, UpdateMedia immediately updates the database. When you add NAS devices with Windows shares, it can take quite a while to scan them and catalog the media. So if a TV show finishes recording in MythTV, but UpdateMedia is still busy scanning a new NAS, it may be some time before that TV show appears in LinuxMCE's database under Media, Videos.

[1:38] Connect a NAS

There are 2 plug and play mechanisms in LinuxMCE. First, when it finds a device it requests an ip address from the dhcp server it checks the mac address to see if it's a known-manufacturer, and then runs some detection scripts to see what model it is.

This Buffalo NAS is a known device like that, and so when it's connected, LinuxMCE should set everything up for you using the Buffalo's configuration script. However even if your NAS isn't known, there's another pnp mechanism called the 'Samba Scanner', which constantly scans the network for file shares. When it finds one it asks you if you want to use it, and prompts for a username and password if required. So for all but a couple NAS's, Samba Scanner will find your device.

You will be asked if you want to use LinuxMCE's directory structure. If so, folders will be created on the share for /public/data/videos, /public/data/audio, etc., and also /user_xxx/data/videos, /user_xxx/data/audio, etc., where xxx is the user number. One will be created for each user. Then this drive will be mounted as /mnt/device/xxx where xxx is the device id in LinuxMCE's database. Symlinc's in /home/public... and /home/user_x will point to the mounted drive. All media directors use the same mount points, so the file paths to media, like /home/public/data/videos/Generic Windows Share[54]/Shrek.mpg are the same whether you're using the main Core PC, or a media director. With this structure you can place public content under the /public folders, and private content in each users /user_ folder.

By default the media browser shows only public content, but under Source you can add private content. There needs to be a PIN or some other protection added to the media browser; this isn't done yet. So the option 'Use LinuxMCE's directory structure' won't pick up existing media on the device unless you copy the files into the /public and /user private folders, but it gives you the flexibility of having both public and private media on the same share. You can also choose the option to make all the media public or private, in which it just mounts the whole share under either /home/public or /home/user_x. Pictures on storage devices may not appear if you don't use LinuxMCE's directory structure because unlike video & audio files which have id3 tags that LinuxMCE uses by default, pictures usually don't and LinuxMCE organizes them by directory/folder names, starting with those under /home/public/data/pictures. This is fine if you use LinuxMCE's directory structure since it will create a pictures folder.

What I typically do is, even if I have a device that I want to make all media public, I still choose the option to use LinuxMCE's directory structure and create symlincs. Since LinuxMCE uses the same points mounts on all media directors, symlincs work fine. The drive will be mounted as /mnt/device/[LinuxMCE device id]. Here is how I do this with my buffalo: Go into the admin panel, under Advanced, Configuration, Devices, find the Buffalo device. Under it is the device 'Windows Share: share'. This is what's shared. The device id is 40. So in a console I type: ln -sf /mnt/device/40/MyDocs/Pictures/ /home/public/data/pictures/BuffaloPics. This is actually better than just saying to 'make it all public' because when you do that LinuxMCE's UpdateMedia daemon, which is what catalogs all the media, needs to continuously scan the NAS device over and over looking for new or modified content to catalog. Now, it's only scanning /MyDocs/Pictures/ on the NAS to get the picture and when you choose Media Pictures you'll see a folder "BuffaloPics" that has the Pictures on this NAS.

The easiest solution, however, is to just to let LinuxMCE be your central media file server and store all your media internally on the main LinuxMCE box. LinuxMCE has built in software RAID, including RAID 5. So you can attach a mix of internal drives, external E-sata drives, etc., and group them all into a fault-tolerant RAID under Advanced, Configuration, RAID. The advantage of doing it this way is that the Linux O/S supports iNotify, which allows the UpdateMedia daemon to directly hook into the file system and monitor every single change as it happens. So as soon as you rename or add a file it's immediately cataloged.

Windows shares don't work like this since Windows doesn't have the concept of a central database cataloging all media in the home, it just shows you drives and directories, and you cannot hook in to receive notifications. Therefore when LinuxMCE mounts external NAS devices, like the Buffalo, that make Windows-compatible shares, there's no way for LinuxMCE to know instantly every time you make a change to your media. It just has to constantly keep re-scanning the device in the background hunting for changes. It works, and it's transparent to the user, and the end result is still that you get a central catalog of all the media in the home. But it's more efficient to let the LinuxMCE box be your main file server, and, if you use the RAID 5 functions, you won't have to worry about ever losing data when a hard drive crashes.

LinuxMCE automatically manages the RAID, handles rebuilding it, when drives fail, etc. Plus LinuxMCE makes a nice file server, even if you don't know anything about Linux. It shows up in Windows network neighborhood, automatically has a public share for everyone in home and private shares for each family member, manages all the passwords, and aggregates all content under the one share. So even if you're a Windows user, you can still play and manage all your media just the same. Remember that most of the NAS/Storage/Media Server devices which are sold by the big PC companies for use with Windows computers actually run Linux inside and do pretty much the same thing that LinuxMCE does. You can build a LinuxMCE PC that does everything in this video including the functions of an HP Media Vault that just stores media, for about the same prices as the Media Vault by itself, and for a Windows user the usability of a LinuxMCE PC is not that much different from a Media Vault. LinuxMCE is missing printer sharing though.

If you tell LinuxMCE to always ignore a device you later want added, go into the admin panel under Advanced, Configuration, Unknown Devices, and delete the device. If you want the device to be redetected so you can specify different options, go under Advanced, Configuration, Devices, locate the device in the tree and delete it. Either way do a reload router under Wizard, Restart afterwards.

[1:40] Browse the media on the NAS

I had over 1,000 music files on the NAS too, so I left it about 20 minutes to finish scanning and cataloging. Mp3 files and others that support id3 tags can have attributes in there that get imported, as well as URL's for cover art, and the cover art itself embedded as a tag. For iles that don't support id3 tagging LinuxMCE will create a separate .id3 file with the same base name as the media file to store the tags. In the Admin site under Files & Media, Media Files Sync you can browse all the media files, add attributes and cover art. These changes are sync'd back into the .id3 tags. There's also a cover art utility under Files & Media, Cover art, that takes the filenames and tags from your files and looks them up on amazon.com and presents a grid of possible matches for each file so you can match the cover art, and also import the attributes from Amazon's database. Once you do the id3 tags are updated so even if you reinstall LinuxMCE it will still have the cover art and attributes. What is missing is audio fingerprinting, where it "listens" to the music file and figures out what song it is based on the sound of the file, rather than relying on id3 tags. MusicBrainz supports this. This functionality should be added to LinuxMCE's UpdateMedia utility.

[2:00] Connect the TV and Receiver

I connected the TV using a USB->RS232 cable, and the Receiver the same way. Since there's no reliable way of determining a serial device, LinuxMCE uses brute force to figure it out. You can also add the devices manually. Note that when you pick the com port, it uses the actual usb bus id, not the usual ttyUSB0, ttyUSB1, etc. This is because the com port assignments change with each reboot. Whenever a serial device starts up, like the TV, there's an initialization sequence that confirms the device really is attached, and if not, disables it. If it gets disabled, the plug and play mechanism will try again with the brute force method to figure out what's attached, and re-assign devices accordingly. So, I can swap the serial cables for the tv and receiver, and LinuxMCE will figure this out and swap the serial ports in the device's attributes too. If you remove a tv and move it to another media director, LinuxMCE handles this too. You actually don't need to attach the serial control to the same media director the a/v is on. For example, if you have a projector that is on the opposite side of the room from your receiver, but there is another media director on the other side of the wall, you could actually connect the projector's serial cable to the media director in the other room. If you do something like this, go into the admin panel under Wizard, Devices, AV Equipment and Wizard, Devices, Media Directors and set this up manually since the setup wizard doesn't account for sophisticated setups like this, or if you use specialty equipment like video processors and pre-amps. These are supported, and LinuxMCE will still control them and has a concept of "audio/video paths" so you can specify the audio & video split and pass through an unlimited number of devices, but to do this you must use the admin site. I was told the newer low-end models no longer have serial control. Unfortunately these days most of the cheap TV's don't have serial control. Serial control is much, much better than I/R, since it's very reliable and works every time. If you do get an I/R TV be sure it supports discrete codes. Many TV's, like Sony, may only have a single toggle power and toggle input select on the remote, but they recognize discrete codes for on, off and each input. This way universal remote controls like Harmony can specifically tell the TV to go on and go to an input. TV's that don't have discrete codes are a nightmare since, neither LinuxMCE nor any universal remote, has any way of knowing if it's already on or not when the system first starts, and if so, what input it's on. LinuxMCE tries to handle this by keeping track of the last state. For example, if your 'input select' button toggles through 6 inputs, it will remember that it was last on input 2, and so if you need to go to input 5, it will send 3 input selects. But this is very unreliable and frustrating. The Fiire gyro remotes have press & hold shortcuts on the red, green, yellow and blue buttons to handle situations where a TV or Receiver that only does toggle codes gets out of sync, but it's still a pain and toggle-only-analog-devices (TOAD's) should be avoided if you want to use a universal remote or a home control system. It's best to connect the TV first, pick the input, and then connect the receiver so the steps all appear in order.

[2:03] Add my cable box

Choose Advanced, Setup Wizard, A/V devices, scroll down to PVR, Motorola, DCT-6412. It automatically adds this as a child of any available I/R transmitter in the same PC. Just like you can plug a serial control device into a different media director from the one where its actually used, you can do the same with i/r devices. In the Admin site, you could specify another I/R transmitter as the controlling device. By default LinuxMCE will turn off all a/v gear that's not in use. For example, when you stop watching the TV, and don't hit any buttons on the remote control, keyboard or mouse for 15 minutes, it will shut the tv off. The turning off of the TV can be changed in the admin site by going to wizard, devices, orbiters and changing the value for "Seconds before power off". However, for the cable box, we actually don't want LinuxMCE to ever send it any on or off because this should be left on all the time so that it can do recordings, and also because it only has a toggle power i/r code, so it easily gets out of sync. So I went into Wizard, Devices, A/V Equipment, and under the advanced settings for the cable box set the 'Ignore On/Off' to 'on/enabled'. Now even if I directly tell LinuxMCE to turn the device on or off, LinuxMCE won't do anything.

[2:06] Use the cable box

When browsing the guide in MythTV you will see channels from both the built-in tv tuner, as well as the listings in the cable box which are tuned on the cable box and received over the a/v inputs on the tv tuner. All the channels have unique channel ID's, so MythTV should be able to tell which channel ID goes with the tv tuner vs. the composite/s-video port. And it appears that LinuxMCE does correctly setup MythTV with both sources, and send MythTV the correct channel ID. But, MythTV isn't switching to the correct input on the capture card automatically. You have to manually switch to the 'composite' input by either hitting menu and choosing Change Inputs, or hitting the 'input' button on the gyro remote, which is what I did. Watching video by choosing the Media, Live TV DCT 6412 option doesn't use MythTV. It's using Xine to play and stream directly from the card. This seemed reasonably stable, though I still found the capture card could get into a weird state at times requiring a reboot. The only caveat is if you're using MythTV and switch to LiveTV be sure to wait a few seconds otherwise MythTV will still be holding the capture card device and Xine won't be able to open it.

[2:08] Connect the Jukebox

Choose Media, Manage Drives to any drives, NAS or jukeboxes. These Sony jukeboxes are rebranded Powerfile R200's. However Sony only did a limited run, and has discontinued them, so once inventory has dried up you will need to buy the Powerfile-branded versions which, although identical, are sold to the IT, not consumer, channel and cost several thousands of dollars. To my knowledge all the other consumer DVD jukebox don't have firewire/usb ports. They only have a/v outputs, so they won't be that useful. Rumor has it Sony decided to sell these with their VAIO Windows Media Centers, but they were a flop since having a jukebox attached to a Windows PC that cannot share the content throughout the home kind of defeats the whole purpose. You have to run Sony's software to unload discs every time you want to watch them in another room, and you have to put that big jukebox in the living room. So grab them up while you can. Note that the disc drive in there isn't particularly fast, so ripping each dvd can take an hour. And identifying each one takes about 1 minute. So either way, if you have lots of discs, plan on starting the job and then just leaving it and coming back later. You can monitor the progress by choosing Advanced, Advanced, Pending Tasks on the LinuxMCE menu. Also the jukebox seems really sensitive and if jarred can get misaligned and have trouble loading and unloading discs. Also, the kernel drivers, or mtx utilities or jukebox itself aren't totally stable and sometimes you need to cycle power on the jukebox. If you insert a disk the wrong way or there's a slot containing something that doesn't seem to be a disk, the Powerfile_C200 device will mark itself offline and unavailable until you do a reload router. See the Powerfile's log in /var/log/pluto to see more.

[2:17] Connect the ZWave Lighting Control

Zwave is a problem right now because the Zwave USB adapters shown in the video are not in production anymore. There is a new model from Intermatic, but there are no Linux drivers for the USB-to-RS232 chip on it. I heard that someone has sponsored the driver development so hopefully it will be added shortly. Although I used a ZWave motion detector for the demo it's not really a reliable security system, and the motion detector I used reports false motion events often. You should get a LinuxMCE-compatible alarm panel that hooks up with a serial port to a LinuxMCE PC. You need to specify which lights are in which rooms and what types of lights they are. The Zwave network doesn't report this info, only the given node id's. This makes it much easier to create scenarios and layout your floorplan lighter. The setup wizard will flash each light/blind/other device and ask you which one it is. Because communication over the ZWave network is slow, the lights don't always respond right away and you can waste time hunting for which light is which. The easiest solution is to write down the lights in the order you pair them because when the setup wizard tries asks you to identify them it uses the same order. The UpdateEntArea utility is run at every router reload and creates lots of default, canned scenarios. In any room that has lights, it creates an 'on' and an 'off' scenario which turns those lights on/off. And in any room with a TV it creates a Showtime scenario which dims the light. It creates an event handler for 'watching media' for each room that automatically runs the Showtime scenario when the tv's are in use. You can change these defaults in Wizard, Scenarios, Lighting Scenarios and Wizard, Events, Respond to Events. If you don't ever modify a default scenario by selecting the hyperlink and changing something, it will be kept current and as you add/remove lights the scenario will change. Once you manually change the canned scenario, or uncheck it so it's not included anymore, then it won't be updated again; LinuxMCE won't override your manual changes. You can also create your own scenarios, and uncheck the default canned scenarios to not use them. If you don't like what LinuxMCE does to the lights when you start watching TV, either change the Showtime scenario, or just disable the Event handlers for 'Watching media in a room' and 'Stopped watching media in a room' and LinuxMCE won't run the Showtime scenario automatically.

[2:25] Using scenarios and floorplans explained

There are 2 ways to do things in LinuxMCE; either by choosing a Scenario (aka a Command Group or Scene), or by directly controlling a device. Both scenarios and devices are grouped into Lights, Media, Climate, Telecom and Security, and also they are both organized by room. A scenario is just a group of commands that will be sent to a device. Create scenarios in the Admin site under Wizard, Scenarios. Dircectly control a device by choosing the 'Floorplan' button which is in each of those 5 sub-menus. So, for example, a scenario might be 'go to bed', and this can turn off a bunch of lights, set the phones to bypass, dim the thermostat, etc.

To create this scenario you would go to Wizard, Scenarios, Lighting Scenarios, create a new scenario called 'go to bed'. Choose to first add commands with the "Lighting Wizard", and check all the devices to 'off'. Then instead of 'Lighting Wizard' in the pull-down choose 'Advanced Wizard', send to the telecom plugin. 'set user status' command (note there's a command scenario 'sleep' that does this same sequence already). If you put the scenario in the room 'Living Room', then when any orbiter is in the living room, you will see the option 'go to bed' under lighting and it will send those commands to the devices. Note that when you put a scenario in a room that doesn't necessarily mean you are only controlling devices in that room. You can put a scenario in the 'Living Room' that turns off a light in the 'Bedroom'.

The purpose of organizing scenarios by room is to eliminate the clutter that would be caused by showing you all the scenarios at once. For example, you may create a scenario 'Garage Light Off'. If your garage is adjacent to the Kitchen, you are likely going to want that scenario only when you're in the Kitchen. You don't want it to appear on the remote control in Johnny's bedroom because he'll never use it.

Orbiter is the name of the GUI app in LinuxMCE. And an Orbiter refers both to the on-screen UI, as well as to the UI on a mobile phone, web pad, desktop phone, etc. Any Orbiter can be 'put' in any room, and then it will have the scenarios from that room. Mobile Orbiters, like webpads and pda's, typically are carried around the house. So, when you take an Orbiter into the kitchen you touch the room button and tell it it's in the kitchen, and you'll see the activities for the kitchen. And if you start a movie with the scenario Media, Videos, that movie will start in the kitchen. You can carry the Orbiter to the bedroom, change the room to control the scenarios in the bedroom, and then carry it back to the kitchen. You can also change the Orbiters on the on-screen UI of the TV to be in a different room than the one it's in, and then, just like any other orbiter, you'll see the scenarios in that room. So, if you're in the bedroom and want to turn the garage light off, but the 'Garage Light Off' scenario is only in the kitchen, with your remote you can change the room to be 'Kitchen' and then run that scenario. Just remember to change the room back to the because otherwise when you choose Media, Videos you're going to be starting media in the kitchen.

All Orbiters have the same scenarios. So if you have a web pad or a mobile phone and they're in bedroom, you'll have the same scenarios as the on-screen UI in the bedroom. Some scenarios may not seem like scenarios, like Media, Videos. But that is a scenario too. In this case it's just a single command telling whatever Orbiter you're using to show the user the list of videos. All the options under Lights, Media, Climate, Telecom and Security, except Floorplan, are scenarios and you can change them in the admin panel. Also the categorization is free-form, so you could create a lighting scenario called "Call John" that dials John and it will appear under "Lights" on the Orbiters. It would be more logical to categorize it as telecom, but it's free form and you can put it under any category. The floorplan button that appears in each of the Lights, Media, Climate, Telecom and Security menus is not a scenario, and does not appear under Wizard, Scenarios in the admin panel. Rather this is a button that gives you device-level control, instead of a list of scenarios. By default it lists all the devices in a grid, but you can upload a floorplan of your home in the Admin site and position the devices. In UI1 the floorplan button is the icon on the left side of the screen. The lighting floorplan let's you turn on/off lights individually. The media floorplan lists all the media zones (ie rooms), what's playing in each, and let's you move media between zones. The climate floorplan let's you control the thermostats, view the temperature in each room, as well as adjust sprinklers and pool controls. The telecom floorplan shows all phones and active phone calls so you can interactively transfer and conference. The security floorplan shows the current state of all sensors (ie tripped sensors are in red), and shows all your surveillance cameras, which you can select to view.

[2:26] Connect the thin client in the kitchen

See the notes above regarding equipment item #12. As I mention there, I used those specialized thin clients in the demo video since I got them for free, but you can do the same thing with a normal PC or a laptop.

[3:05] Connect the thin client in the bedroom

I used the same USB UIRT to control the TV in the bedroom. Note that because my TV does not support discrete codes, it is a nightmare to use with any universal remote control or any type of smarthome system. The better TV's, like Sony's, recognize discrete codes. This means that although the original remote control may only have 1 button to toggle the power on and off, the TV actually does recognize 3 separate i/r codes: The toggle power that's on the remote, as well as an explicit/discrete 'turn power on' and a discrete 'turn power off'. They just don't put all 3 buttons on the original remote to save space, but the TV does recognize them. Sites like remotecentral.com let you find discrete codes. Then LinuxMCE can control your TV reliably. When it's time to turn it on, the i/r transmitter sends the 'power on' button, and even if the TV is already on, it still stays on. The TV I used doesn't have discrete codes. It only recognizes the 1 button 'toggle power'. So LinuxMCE may think the TV is off, and send the 'toggle power' command to turn it on, when in fact the TV was already on and LinuxMCE inadvertently turned it off. Toggle codes are a nightmare for anybody that has ever tried to use any sort of universal remote, like a Logitech/Harmony because the remote never really knows what state the TV is in. Also, since infrared codes are inherently unreliable and don't always get through, if your TV supports discrete codes, like the Sony's do, LinuxMCE can just send the 'ON' 3 times to be 100% sure the TV got the command and goes on. But with toggle devices like the one I have it can't do that since sending the command 3 times would just turn it on, then off, then back on again. My TV has the same problem with inputs. It only recognizes a single 'toggle input' which just cycles through inputs. LinuxMCE remember what was the last input the TV was on, and how many times it needs to toggle to get to the next input. But this is very unreliable. Sometimes when the TV doesn't get a signal while hitting input select it 'freezes' for a couple seconds, and then LinuxMCE will get out of step, thinking it's on, say input 5, when it's really only on input 4. Again the better TV's, like Sony's, have discrete codes or buttons for each input. So LinuxMCE can just send the button 'input 4' and can re-transmit it 3 times to be sure it gets through, and not worry about trying to toggle. If you do have a toggle device like mine, and LinuxMCE ever gets out of sync, you can press and hold the red, green, yellow and blue buttons to get it back in sync. Holding the red button causes LinuxMCE to retransmit the 'power' command so if the TV went off instead of ON, it goes back ON. The green button retransmits the 'input select' button. The yellow retransmits the 'power on' to the receiver, and the blue retransmits the 'input select' to the receiver. Bottom line: if possible get TV's and Receivers with discrete codes and avoid TOAD's (toggle only analog devices). Nearly all the decent receivers actually do have discrete codes, so one possible solution at least to the input select problem with toggle-only TV's is to hook all the video sources to the receiver and let it do the switching, and leave the TV on 1 input. LinuxMCE automatically will setup your A/V gear like this. In the setup wizard it asks if you're using a receiver, and if you connected the video cable to it, and makes all the correct settings. You can view a graphical diagram of your a/v gear's connections in the admin site under Wizard, Devices, A/V Equipment, and click on the Connection Wizard.