Running MythTV on independent X-server
This HOWTO will guide you in setting up your ordinary desktop system with an extra, 100% independent and separate, X-server for MythTV. Thus you will have one PC serving you with both desktop services by keyboard and mouse simultaneously with HTPC/PVR services by IR-remote on your television/flatscreen/projector (from now on refered to as TV).
Contents
Requirements
This HOWTO only focuses on the special steps in setting up this "dual screen" scenario. For all other aspects of configuring MythTV or X you should search the Internet for other ressources.
You will need:
- Running Linux desktop system on primary graphics adapter
- Configured MythTV with remote control
- An additional secondary graphics adapter
This guide will not cover:
- Configuring Xorg device settings for additional graphics adapter
- Configuring LIRC
Secondary graphics adapter
First make sure you have both graphics adapters and monitors configured in your Xorg.conf. This includes two pairs of Device and Monitor sections. Your primary pair should be included in your Default Screen and working with your desktop. The secondary pair should be configured and working with correct module,modelines, required TV-out setting etc., but should be left unused. To check if the secondary pair is working well, edit the following in the Screen section:
- Comment out the existing Device line
- Add a new Device line with the Identifier of your secondary card
- Restart X and confirm your desktop is running on your TV.
- Change things back and restart X once more
Make sure Xinerame is disabled:
Section "ServerFlags" Option "Xinerama" "false" EndSection
Dummy input
The additional X-server will have no keyboard and mouse available and we want to keep our existing keyboard and mouse on the desktop. To achieve this we will need to configure the additional X-server with a set of dummy devices by utilizing the Xorg "void input driver".
First, check if you have the driver available:
ls /usr/lib/xorg/modules/input/void_drv.so
If it's not available, you should install the driver, preferably through your distributions package system. On my Kubuntu:
apt-get install xserver-xorg-input-void
Add the dummy devices to your Xorg.conf:
Section "InputDevice" Identifier "Dummy Keyboard" Driver "void" Option "CoreKeyboard" EndSection Section "InputDevice" Identifier "Dummy Mouse" Driver "void" Option "CorePointer" EndSection
Configuring Xorg
You should now add an additional Screen and ServerLayout section to your Xorg, including your secondary pair of graphics adapter and monitor and your dummy input devices:
Section "Screen" Identifier "Myth Screen" Device "VideoCard1" Monitor "Monitor1" EndSection Section "ServerLayout" Identifier "Myth Layout" Screen 0 "Myth Screen" 0 0 Inputdevice "Dummy Keyboard" Inputdevice "Dummy Mouse" EndSection
If your graphics adapter or monitor needs any additional settings in the Screen section, you should add them. You should leave your Default Screen and Default Layout untouched. Now restart your X and check that it's still working on your desktop. Don't expect anything on your TV just yet.
Starting secondary X-server
Normally, only root is allowed to start a new X-server, but as you are probally running MythTV as yourself or a dedicated user you will need to allow anybody to start an X-server.
Edit /etc/X11/Xwrapper.config
#allowed_users=console allowed_users=anybody
Now, you are ready to start your secondary X-server. From a console or xterm:
xinit mythfrontend -- :1 -sharevts -layout "Myth Layout" -br -dpms
Now you should see MythTV running on your TV. Grab your remote and play.
Starting at boot
You would probally want your MythTV to be available at all times, so I suggest you add it to your systems startup scripts. On my Kubuntu which utilizes Upstart i added a service named Xmyth by creating the file /etc/event.d/Xmyth:
# X server for MythTV # Replace MY-USER with the user running MythTV on your system start on runlevel 2 start on runlevel 3 start on runlevel 4 start on runlevel 5 stop on runlevel 0 stop on runlevel 1 stop on runlevel 6 respawn exec /usr/bin/sudo -H -u MY-USER /usr/bin/xinit mythfrontend -- :1 -sharevts -layout "Myth Layout" -br -dpms
Start the service by running
start Xmyth