An Xbox makes a wonderful standard definition MythTV front end due to its reasonably powerful CPU and graphics subsystem. The menus within MythTV aren't exactly snappy but it's good for the price. Sadly, the Xbox cannot handle decoding HDTV resolution (the CPU isn't that powerful).
Running Mythfrontend on Linux
Install a Linux distribution
MythTV can be installed on an Xbox by installing a Linux distribution on a modded/softmodded Xbox. One distribution that works well is Xebian - see the .
For the purposes of this HOWTO, follow the Xebian HOWTO but ignore the sections on digital audio output and Compiling the ALSA kernel-module.
Installing the MythTV front end
There are several options to install the MythTV front end:
- Install MythTV on Xebian stable (sarge) with pre-compiled binaries - see the Xbox_Frontend_on_Xebian_stable for more information.
- Install MythTV on Xebian unstable (sid) with pre-compiled binaries - see the MythTV on Xebian HOWTO for more information.
- Compile MythTV using the released source code
- Compile MythTV using the latest SVN snapshot
- Xbox Install using E Images - Theory is that you can ftp these files to the E: Drive on the xbox and just boot directly into a mythfrontend ready xebian environment.
Configuring the MythTV front end
Section for Configure the Xbox MythTV to talk to the MythTV Backend
Other configuration issues/notes
Section for other Xbox configuration issues eg. Digital sound eg. Video quality eg. Overscan
- Had some audio sync issues with MythVideo so I forced mplayer to use alsa. It seemed to do the trick.
- To enable mplayer to use lirc be sure to link ~/.mythtv/lircrc to ~/.lircrc. Also you have to add "lirc=yes" to your ~/.mplayer/config file.
- To get the pause button to work in MythVideo aka mplayer create a file in ~/.mplayer/ called input.conf. It will let you map out certain keys. A small sample file might look like:
RIGHT seek +30 LEFT seek -15 PGUP seek -600 PGDWN seek 600 ESC quit p pause i osd [ volume -2 ] volume 2
- If you run Hauppage cards or record to mpeg2 don't try picture in picture. The XBox is just too slow.
- The XBox is incapable of doing high definition due to lack of processing power and XvMC.
- When using the sample startup scripts on the howto's above it seems to startup two mythfrontends which brings the xbox to a halt.
- The ALSA driver has no access to hardware volume controls. You can get around this by following the directions at Xbox Sound
Running XBMC MythTV Frontend
The XBMC (XBox Media Center) is an Open Source project (nothing to do with Microsoft!) that is based on MPlayer.
The XBMC MythTV frontend is a Python Script that works in a similar fashion to the original Mythfrontend without the overhead of running Linux or XWindows on your xbox.
There are CD Images (somewhere on the net - due to legal reasons) that will boot in a modded xbox and install XBMC. Or you can use Xebian to transfer the XBMC files onto the C:\ and E:\ drives.
Install XBMC MythTV
Download and install as per the XBMC MythTV readme.txt instructions.
1. Xbmcmythtv requires that you share your mythtvbackend video recording via Samba.
If Samba is not set up properly and xbmc can not connect to the Samba share you have shared out the xbmcmythtv will fail. From xbmcmythtv forum: ...I can't say for sure what the problem is except that maybe your samba share requires a username and password as part of the path. Make your prefix something like smb://usersword@host_or_ip/service. Also, I would test this with XBMC first and then try to get xbmcmythtv working. Don't forget to check the permissions of the directories as well... One setting that I have in smb.conf that is different than the default is in the global section. Keep in mind this is not considered very secure: Edit /etc/smb.conf and add [global] security = share Here is the definition of my mythtv share: [mythtv] comment = Television browseable = yes path = /var/video public = yes read only = yes writable = no My file prefix is: smb://%h/mythtv My live prefix is: smb://%h/mythtv This means that the ring buffer files are created in the same directory as the recorded show .nuv files (i.e. /var/video). Also, the myth database populates the host field in various tables so that %h expands correctly. Some people have had problems with this so I sometimes suggest that they just replace it with the IP of the back end server...Gimblefoot Restart samba.
2. Upload the xbmcmythtv directory and everything below it to your XBMC/scripts directory on your xbox. So after you have done this, you should have a XBMC/scripts/xbmcmythtv/ dir on your xbox.
3. Run the mythtvmain.py script and go into the Settings screen to specify your connection details and paths.
Mythtv host: Enter the hostname / ip-address of your mythtv backend Mythtv port: Use default setting value Mythtv statusport: Use default setting value Mythtv protocol: Edit to correct Mythtv Protocol Version mythProtocolVersion = "8" # 0.15.1 mythProtocolVersion = "13" # 0.16 mythProtocolVersion = "14" # 0.17 mythProtocolVersion = "15" # 0.18 mythProtocolVersion = "17" # ??? mythProtocolVersion = "19" # ??? mythProtocolVersion = "26" # 0.19 mythProtocolVersion = "27" # 0.19 SVN Mythtv minlivebufsize: Use default setting value Set the XBMC LAN video cache size (Settings -> System -> Cache -> Video Cache - Local Network) to 1024 (not higher than 1536). Xbmcmythtv use this cache setting when the LiveTV start. From xbmcmythtv forum: ...you know you don't need to set any cache settings as xbmcmythtv will just grab the settings straight from XBMC and use that. The one set in xbmcmythtv is redundant. Frooby ...your live TV issue has to do with your buffer settings in XBMC and xbmcmythtv. You need to lower your Video/LAN buffer XBMC setting down to around 1MB and set the xbmcmythtv min ring buffer size to 700000 bytes. The default Video/LAN buffer setting is 4MB so XBMC tries to read 4MB right away from the ring buffer. However, the ring buffer doesn't have 4MB to start with so XBMC thinks it has reached the end of file after 2 seconds of playback. You can fix this in two ways: lower the Video/LAN buffer size or increase the minimum ring buffer size before playback is started. The issue with the first option is that your video playback might be choppy if the value is set too low. The issue with the second option is that the larger the minimum ring buffer size, the longer before playback will start. The values I suggested above are what I personally use. They seem to be a fairly good compromise but you can fiddle with the values if you want to experiment...Gimblefoot Mythtv tunewait: Use default setting value Time to wait while mythtvbackend tune to channel and record the livetv .mpg file Mythtv startpage: Change to the prefered default start page [0,"Main" [1,"LiveTV" [2,"Recorded Shows" [3,"Program Guide" [4,"Schedules" [5,"Upcoming Shows" [6,"Settings" Mysql host: Edit to mythtv backend ip-adresse Mysql port: Use default setting value Mysql database: Use default setting value Mysql user: Use default setting value From http://mahune.org/archive/2005/05/07/mythtv-and-xbox/ You also need to grant xbmcmythtv access to your MythTV MySQL database. shell> mysql --user=root mysql mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON mythconverg.* -> TO 'mythtv'@'xbox_ip' -> IDENTIFIED BY 'mythtv'; AND make sure that mysql is accessible on the network: comment out skip-networking in /etc/mysql/my.cnf (add a # before it so it looks like: #skip-networking) Mysql password: Use default setting value Paths recordedprefix: Change to mythbackend recordings SMB path smb://h%/mythtv/recordings (smb://h%/SMB_share_name/recording_catalog) One of the things I have noticed with xbmcmythtv is that you may have to use an ip-address instead of the variable /%h/ in the recordings and the buffer path in the xbmcmythtv settings screen. From xbmcmythtv forum: The usual reason this does not work is if Myth TV does not populate a fully qualified domain name. XBMC cannot resolve simple host names but it can resolve fully qualified domain names (Gimblefoot). Paths livetvprefix: Change to mythbackend buffer SMB path With Mythtv 0.19 mythtv recordings and buffer path are the same Paths localcopypath: Use default setting value The catalog E:\videos must exist on the xbox
4. On the settings screen, make sure that the connections test successfully then save your settings.
5. You should now be able to use the rest of the buttons on the main menu displayed by mythtvmain.py.
- mysql database/table permissions - mythbackend on visible ip - not having a recent build of XBMC - not using a version of XMBC MythTV that matches the MythTV backend - not having samba shared recordings/livetv directory
Optional installation includes adding a shortcut to the popup menu on the main XBMC screen:
1. Edit the XBMC/skin/Project Mayhem III/pal/DialogSubMenu.xml skin file (this is a XBMC skin file - not one included with these scripts). 2. Look for a "SubMenu button" that has the visible attribute set to "no". 3. Edit the control as follows:
- set the visible attribute to "yes". - set the label attribute to "My TV". - set the execute attribute "q:\scripts\xbmcmythtv\mythtvmain.py".
4. Reboot xbox or reload skin to show the skin change.
Broken Link -> An excellent article on this can be found here: http://mahune.org/archive/2005/05/07/mythtv-and-xbox/
Xbmcmythtv forum can you find here: http://sourceforge.net/forum/?group_id=128346
Other guides and sources of information
Installing MythTV with MythTV-Xbox (MXB) Installer by Dennis Cartier - 0.4.5 seems to be for MythTV 0.18 only (Good reference, but out of date and the install script is not maintained anymore, which means it doesn't work.)