Difference between revisions of "Video"

From LinuxMCE
Jump to: navigation, search
(Detailed info on the video)
(Detailed info on the video)
Line 39: Line 39:
 
==[0:22] Run 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 http://wiki.linuxmce.com/index.php/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 ascending 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 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 descending 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.  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.
 
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 http://wiki.linuxmce.com/index.php/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 ascending 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 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 descending 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.  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.
==0:27 The setup wizard==
+
==[0:27] The setup wizard==
 
Complete the setup wizard, which is divided in 2 parts: House Setup (global options for the home), and Media Player Setup (just for this particular PC).  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 that 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.  That means it won't get your location right or show the software you can add to the system.  In this case, just answer the 1 question about your name which will create a user for the admin site.  Select KDE Desktop, and in the LinuxMCE Launch Manager choose 'Open admin website', login, and under Advanced, Network, Network settings put in your network information.  Do it here, rather than in the usual KDE network page.  Go to a web page to be sure you have networking now.  Then under Advanced, Software, Add Software select ‘Update Software List’ to re-attempt retrieval of 3rd party software add-ons.  It does this with a google search, and can take several minutes.  Then under Wizard, Restart choose 'Reboot'.  During bootup it will re-attempt to determine your location with the IP locator since it didn't get it the first time.  The setup wizard will resume since you didn't finish it the first time.  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 totally 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 switches back to LinuxMCE's desktop, and is only available when LinuxMCE is running.  You can start and stop LinuxMCE in Launch Manager.
 
Complete the setup wizard, which is divided in 2 parts: House Setup (global options for the home), and Media Player Setup (just for this particular PC).  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 that 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.  That means it won't get your location right or show the software you can add to the system.  In this case, just answer the 1 question about your name which will create a user for the admin site.  Select KDE Desktop, and in the LinuxMCE Launch Manager choose 'Open admin website', login, and under Advanced, Network, Network settings put in your network information.  Do it here, rather than in the usual KDE network page.  Go to a web page to be sure you have networking now.  Then under Advanced, Software, Add Software select ‘Update Software List’ to re-attempt retrieval of 3rd party software add-ons.  It does this with a google search, and can take several minutes.  Then under Wizard, Restart choose 'Reboot'.  During bootup it will re-attempt to determine your location with the IP locator since it didn't get it the first time.  The setup wizard will resume since you didn't finish it the first time.  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 totally 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 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==
+
==[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.
 
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==
+
==[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 devicesneed 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.
 
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 devicesneed 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==
+
==[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
 
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==
+
==[0:38] Rip the disc==
 
Copy disc takes about 30 minutes depending on the speed of your DVD drive
 
Copy disc takes about 30 minutes depending on the speed of your DVD drive
==1:08 Install the TV Tuner==
+
==[1:08] Install the TV Tuner==
 
Install the TV Tuner and choose my provder.  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.
 
Install the TV Tuner and choose my provder.  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==
+
==[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.
 
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==
+
==[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.
 
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==
+
==[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.
 
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.
==1:36 Schedule shows to record==
+
==[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.
 
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.
==1:38 Wait for MythTV to record some TV shows==
+
==[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.
 
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.
==1:38 Connect a NAS==
+
==[1:38] Connect a NAS==
 
There are 2 plug and play mechanisms in LinuxMCE.  First, when it finds a device 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, this is what 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.
 
There are 2 plug and play mechanisms in LinuxMCE.  First, when it finds a device 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, this is what 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.
==1:40 Browse the media on the NAS==
+
==[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.
 
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==
+
==[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.
 
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==
+
==[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.
 
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==
+
==[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.
 
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==
+
==[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.
 
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.
==2:17 Connect the ZWave Lighting Control==
+
==[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
 
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

Revision as of 02:31, 30 July 2007

Preface to the video

Purpose of the video

The original LinuxMCE 1.0 demo video was 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 walk-through and tutorial 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.

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, if you're interested in LinuxMCE it's recommended you download the original version, which is in 720p high-def. 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.

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 i/r 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. I allowed an exception with the gyro remote because it is the only remote made for LinuxMCE that uses the 3 button navigation concept native to LinuxMCE's UI. Hopefully LinuxMCE will become popular enough that there will be more choices in the near future.

1. The computer consisted of an ASUS m2npv-vm motherboard BIOS version 0901, AMD Athlon 64 X2 3600+ CPU, 80GB hard drive, Realtek 8139 as the 2nd network card, 1GB RAM, generic CD/DVD, keyboard used only to to install

2. USB UIRT I/R Receiver Transmitter IRTrans and Tira supposedly are also fully supported, and some of the Windows ones work, but for receiving i/r only, not for transmitting i/r codes to other devices.

3. Standard Windows MCE remote Found some on Ebay for $7 without the receiver.

4. LinuxMCE Gyro Remote This looks very similar to a Windows remote also made by Gyration, which also works with LinuxMCE. But the insides are different and the Windows remote works only as a normal air mouse, the same way it does in Windows, and doesn't have the 3 button control or Follow-me, etc.

5. Hauppauge WinTV-PVR-150 MCE

6. Buffalo Link Station, model HD-HG300LAN

7. Sharp Acquos LCD TV, model LC-26D6U

8. Yamaha Receiver, model RXV-1500

9. Motorola Dual-Tuner HD PVR from the cable company, model DCT-6412

10. Sony VAIO VGP-XL1B3 These Sony's are going out of production. You can also use the Powerfile R200, which is otherwise identical, but more expensive.

11. ZWave lamp module, ZWave motion detector, ZWave Master Controller. The Zwave USB dongle I showed in the video is out of production. I'm not sure which dongles currently in production will work.

Detailed info on the video

Before each stage is an elapsed time showing how long it took in real life to get to that step. In other words, the installation took 19 minutes, and the whole sequence about 4 hours.

BIOS Settings

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.

[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 http://wiki.linuxmce.com/index.php/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 ascending 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 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 descending 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. 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.

[0:27] The setup wizard

Complete the setup wizard, which is divided in 2 parts: House Setup (global options for the home), and Media Player Setup (just for this particular PC). 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 that 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. That means it won't get your location right or show the software you can add to the system. In this case, just answer the 1 question about your name which will create a user for the admin site. Select KDE Desktop, and in the LinuxMCE Launch Manager choose 'Open admin website', login, and under Advanced, Network, Network settings put in your network information. Do it here, rather than in the usual KDE network page. Go to a web page to be sure you have networking now. Then under Advanced, Software, Add Software select ‘Update Software List’ to re-attempt retrieval of 3rd party software add-ons. It does this with a google search, and can take several minutes. Then under Wizard, Restart choose 'Reboot'. During bootup it will re-attempt to determine your location with the IP locator since it didn't get it the first time. The setup wizard will resume since you didn't finish it the first time. 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 totally 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 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 devicesneed 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

Copy disc takes about 30 minutes depending on the speed of your DVD drive

[1:08] Install the TV Tuner

Install the TV Tuner and choose my provder. 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.

[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.

[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.

[1:38] Connect a NAS

There are 2 plug and play mechanisms in LinuxMCE. First, when it finds a device 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, this is what 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.

[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.

[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