MythTV/Troubleshooting

MythTV
Introduction | Getting Started | Installing | Extras | Troubleshooting | Conclusion

Trouble installing MythTV RPM for Mandrake

edit

You may encounter errors after trying to "urpmi mythtv-suite". If during the MythTV package installation you receive errors like "bad signatures" try entering 'y' to continue, and see if the packages work anyway. If you get errors like "installation failed", it may be because you're running Mandrake version 10.1 Community. To figure out your Mandrake version:

$ cat /etc/mandrake-release
$ Mandrakelinux release 10.1 (Community) for i586

This apparently has to do with conflicting files in different packages. Let the install attempt complete, then run "urpmi mythtv-suite" again and see what happens. You can look through the error message to isolate which packages are having problems. Try installing these packages separately (urpmi package_name) and then install MythTV again (urpmi mythtv-suite). You can also try to force the install to finish:

# urpmi --allow-force mythtv-suite

There's no guarantee this will work, however.

Error during make of ivtv

edit

There are many reasons why an ivtv compilation might fail. You can try different versions of the driver. If you are receiving missing directory errors, you might be missing a symbolic link. Check that it is correct:

$ cd /usr/src
$ ls -lF
lrwxrwxrwx   1 root root   19 May 28 20:50 linux -> linux-2.6.8.1-12mdk/
drwxr-xr-x  21 root root 4096 May 28 20:50 linux-2.6.8.1-12mdk/
drwxr-xr-x   3 root root 4096 May 21 13:09 RPM/

If the symbolic link is missing or not pointing to the right place, fix it:

# ln -s /usr/src/linux-2.6.8.1-12mdk /usr/src/linux

Then check this other symbolic link:

$ cd /lib/modules/2.6.8.1-12mdk
$ ls -lF
lrwxrwxrwx   1 root root     15 May 28 20:07 build -> /usr/src/linux/
...

If this one is missing, add it:

# ln -s /usr/src/linux /lib/modules/2.6.8.1-12mdk/build

In many cases, a make error is due to your kernel source version being wrong. Obviously the installed version must match the kernel you are using. If this is the problem, while trying to make ivtv, you may see errors like:

make[2]: *** No rule to make target `modules'.  Stop.

Or, the make might work properly, but when trying to load modules, you'll get:

ivtv FATAL: Error inserting tuner (/lib/modules/2.6.8.1-12mdk/misc/tuner.ko): Invalid module format

So first check your kernel version:

$ uname -r
2.6.8.1-12mdk

And see what you have installed:

$ rpm -qa | grep kernel
kernel-source-2.6-2.6.8.1-12mdk
kernel-2.6.8.1.12mdk-1-1mdk

Make sure the source matches your current kernel version. If it doesn't, then you should uninstall the old source:

# urpme kernel-source-2.4.27

Obviously replace "2.4.27" with whatever your "not right source" happens to be! Now add the source you really want:

# urpmi kernel-source-2.6-2.6.8.1-12mdk

Again, modify the syntax to match your current kernel. You may have to use urpmq to query the available rpms until you find the one that matches. You may also need to configure urpmi to use online media repositories of rpms to give you access to the rpm you need (see elsewhere in this doc or refer to the Easy urpmi website). Don't simply use "urpmi kernel-source" or even "urpmi kernel-source-2.6" since these won't necessarily give you the exact source you want.

Double check that your source now matches your kernel version (otherwise nothing will compile properly!), and ivtv should now compile.

If ivtv still won't compile, try other versions or look up the error messages on the various ivtv forums and mailing list archives.

Time in program guide off by one hour

edit

This is a well-known bug in MythTV caused by QT. It seems to only manifest itself half of the year (due to daylight savings time). Setting a one-hour offset inside MythTV does not solve this. If this is indeed your problem, then change your current timezone to be one hour ahead of where you are actually located. Then run "mythfilldatabase" again (you might also have to delete the channel listing in mythtvsetup and recreate it after filling the database). With your timezone setting off by one hour, everything should look normal in MythTV.

mplayer won't output to my TV-out

edit

If you have MythTV outputting to the TV properly, but mplayer isn't (i.e.: videos and DVDs are not sent to the TV-out), then try changing the driver that mplayer uses. Inside the MythTV settings for MythDVD and MythVideo, there is a line that allows you to call an external program, that probably looks like this:

mplayer -fs -zoom -quiet -vo xv %s

What you need to do is find out what driver to use. The "-vo xv" is trying to use the xv driver, but there are many others (xv, x11, fbdev, fbdev2, etc.). The complete list can be obtained by typing "mplayer -vo help":

       xv      X11/Xv
       x11     X11 ( XImage/Shm )
       xover   General X11 driver for overlay capable video output drivers
       xmga    Matrox G200/G4x0/G550 overlay in X11 window (using /dev/mga_vid)
       mga     Matrox G200/G4x0/G550 overlay (/dev/mga_vid)
       gl      X11 (OpenGL)
       gl2     X11 (OpenGL) - multiple textures version
       dga     DGA ( Direct Graphic Access V2.0 )
       sdl     SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)
       ggi     General Graphics Interface (GGI) output
       fbdev   Framebuffer Device
       fbdev2  Framebuffer Device
       aa      AAlib
       caca    libcaca
       dxr3    DXR3/H+ video out
       zr      Zoran ZR360[56]7/ZR36060 Driver (DC10(+)/buz/lml33/MatroxRR)
       zr2     Zoran ZR360[56]7/ZR36060 Driver (DC10(+)/buz/lml33/MatroxRR)
       vesa    VESA VBE 2.0 video output
       xvidix  X11 (VIDIX)
       cvidix  console VIDIX
       null    Null video output
       mpegpes Mpeg-PES to DVB card
       yuv4mpeg        yuv4mpeg output for mjpegtools
       png     PNG file
       jpeg    JPEG file
       gif89a  animated GIF output
       tga     Targa output
       pnm     PPM/PGM/PGMYUV file
       md5sum  md5sum of each frame

For the Hauppauge WinTV PVR-350, using "-vo x11" seems to work fine (although it is a frame-buffer device, so perhaps fbdev could be made to work). Try different settings and see what works for your TV-out. You can always do "man mplayer" for help from the manual page.

No volume control with Hauppauge WinTV PVR-350

edit

If you're using the TV-out on your Hauppauge 350 to run MythTV, you'll quickly discover that the volume and mute functions don't do anything. You can hear sound, but not modify it. As of the writing of this document, the ivtv driver does not support control of volume. This leaves you with two options. You can control the volume using a different remote control (use the one for your TV, for instance). You may even be able to configure your IR blaster, via LIRC, to control your TV properly. Alternately, you can feed the audio output from your capture card into your sound card, and then send the output from your sound card into the TV. That way, volume control (via the sound card) is under control of the OS. Hence when MythTV tries to change volume, it will indeed affect what you hear.

No sound in mplayer when using Hauppauge WinTV PVR-350

edit

If you've followed the instructions above to get mplayer to work with the TV-out on your capture card, you may discover that no audio is being played through your capture card's TV-out. By default, mplayer will be sending audio to your computer's sound card. The simple fix is to feed your audio out from your capture card into your sound card, and use the output from the sound card for the TV. That way, mplayer can play sound to the TV, and so can MythTV when it is buffering video through the Hauppauge capture card TV-out.

Can't boot cleanly into TV-out

edit

If you're using a startup script (as shown elsewhere in this guide), you may find that you can't boot cleanly into your TV-out. That is, you may be able to get the TV out to work once your window manager is up and running (you can switch graphics mode into the TV output), but that you can't simply boot into the TV-out video mode. The ServerLayout you have defined in your /etc/X11/xorg.conf file for your TV-out works properly, but the problem appears to be that the required modules are not loaded when X tries to use the TV-out drivers.

First off, using a startup script (like the /usr/local/bin/start-ivtv suggested elsewhere in this document) is not as good as using modprobe properly. That is, you should be loading modules by adding appropriate lines to your /etc/modprobe.conf file. Some users have found that this doesn't work, however, and that they must use a script that is called from /etc/rc.d/rc.local during startup.

A workaround to boot into the TV-out anyway is to let your computer boot into a normal window session (into GNOME, KDE, or whatever you're using) and then have that window session launch a new X window session onto your TV-out, and use that new X session to run mythfrontend. To implement this, first edit your /etc/X11/xorg.conf file to have at least two different "ServerLayout" sections. Make sure that each of these layouts work properly and independently before you try to make this trick work.

 Section "ServerLayout"
     Identifier "layout1"
     InputDevice "Keyboard1" "CoreKeyboard"
     InputDevice "Mouse1" "CorePointer"
     Screen "screen1"
 EndSection
 Section "ServerLayout"
     Identifier "TVlayout"
     Screen "Hauppauge Screen"
     InputDevice "Keyboard1" "CoreKeyboard"
     InputDevice "Mouse1" "CorePointer"
 EndSection

It's very important that the Identifier contains no spaces. If the identifier contains spaces in the name, then it will cause a bug with the startx function (which we'll use later). So don't call your layout "TV layout", use "TVlayout" instead. Again make sure that the two layouts both work for their respective output sources (monitor or TV) before going to the next step. Now we can make a little script that, during the startup of KDE, will either launch our new instance, or launch mythfrontend, depending on the situation.

 #!/bin/bash
 if [ "$DISPLAY"  = ":1" ]
 then
     # We are in the second KDE instance
     # Launch mythTV
     echo "Launching MythTV..."
     mythfrontend &
 else
     # We are in the first KDE instance
     # Launch a new KDE on the Hauppauge card
     echo "Launching new KDE instance on Hauppauge 350..."
     startx -- :1 -layout "TVlayout"
 fi

Save this script as /home/mythtv/.kde/Autostart/mythscript.sh (or whatever). As usual, make it executable:

$ chmod +x mythscript.sh

If it's not obvious, this is what the script does: First, it checks the current $DISPLAY environment variable (you can use "set" to play with environment variables). This variable specifies the display in our current context. Normally, $DISPLAY is something like ":0.0" which means screen 0. In our script, however, we start the TV-out on screen 1 explicitly. So if the script finds that it's running on screen 1, then it launches mythTV. Alternately, if it's not being launched on screen 1, then it must be running on the default screen 0, which means that it's the first instance of KDE, and it should start a new instance of KDE, and send it to screen 1.

The startx command launches a new X session (and runs the default window manager, which is KDE in this example). The ":1" says to explicitly run this on "screen 1". The "-layout" option lets us pick exactly which ServerLayout to use. Obviously replace this with the ServerLayout that you have working for your TV-out.

With this script in the /home/mythtv/.kde/Autostart/ directory, it will run automatically when a new KDE session starts. Thus, when the computer boots, it will start KDE (on the default screen 0), and run the script. This script will not be on screen 1, so it will run startx to generate a new instance of KDE on screen 1, using the "TVlayout" ServerLayout. This new KDE session will start, and it will also automatically run the script. This time, the script will see that it is running on screen 1, so it will just launch mythfrontend.

This little work-around should get your MythTV booting into your TV-out transparently (although somewhat slowly).

Blue lines during playback

edit

If you're seeing "faint blue lines" across the screen, you should use the "xvattr" command to fix this (according to Maiku's guide). Try this:

# urpmi xvattr
$ xvattr -a XV_COLORKEY -v 0

If that fixes it, then you should run the command every time X starts. Reportedly, adding the command to ".xinirc" conflicts with X. Instead, you could add the command to a script and then put the script in "/home/mythtv/.kde/Autostart/"

I forgot to add a channel to zap2it

edit

If you forgot to add a channel when you initially signed up for your zap2it (DataDirect) account, or want to otherwise modify your channel listing, here's what you have to do. Unfortunately, it appears that the only way for the changes to "take" is to completely erase the old channel listing and then download the listing again. First, log into your zap2it account, make your changes and save them. Then, you should run "mythtvsetup" and copy down the info you have entered under "3. video sources" and "4. Input connections."

Now, exit setup and shutdown the backend for now, and re-enter setup:

# /etc/init.d/mythbackend stop
# mythtvsetup

This time, say "yes, delete my channel settings" and then re-configure it like you had it before. Be sure to select "download listing" to get the new channel listings. Then exit mythtvsetup and re-fill the database:

# mythfilldatabase
# /etc/init.d/mythbackend start
$ mythfrontend

Now your modifications to the channel listings should have taken effect.

MythWeb isn't accessible outside my local network

edit

If you can get to your MythWeb by using "http://localhost/mythweb/" on your MythTV machine (and perhaps even get to it by using "http://internal.ip/mythweb/" but can't access your MythWeb from anywhere else, then perhaps your ISP is blocking port 80. Some ISPs do this to protect you from viruses and such, whereas others block it to prevent you from running a web server. In any case, you can work around this by using a port number greater than 1024. To do this, you'll need to edit your apache2 configuration file, which serves up the MythWeb files. So edit "/etc/httpd/conf/httpd2.conf" and add a line like:

Listen 8050

You can use whatever port you like (8050 is just an example). Note that older versions of apache would use a command like "Port 8050" but "Listen" is the new version (refer to core features documentation). Now you should be able to access your MythWeb from anywhere by using "http://your.ip.address:8050/mythweb/" or "http://your.domain.name:8050/mythweb/".

Remember to update your router settings (if applicable). Log into your router (most have a web-page on some pre-defined IP address; check your documents), and enable port forwarding for port 8050 to the IP address of your MythTV box inside your local network.

I can't log into KDE anymore: dcopserver error!

edit

At some point in your fiddling with MythTV, it may crash and take KDE with it. Afterwards you won't be able to get back into KDE (much less run MythTV). You may get an error message like this:

 There was an error setting up inter-process communications for KDE.
 The message returned by the system was:
 Could not read network connection list
 /home/mythtv/.DCOPserver_localhost__0
 Please check that the "dcopserver" program is running!

You may also notice other errors when trying to run X from a command line:

 usr/X11R6/bin/iceauth:
 timeout in locking authority file /home/mythtv/.ICEauthority
 Failed to load module "usr/X11R6/lib/modules/extensions/libglx.a
 FBIOPAN_DISPLAY: invalid argument

This problem is easy to fix. Just delete any files to do with ICE and DCOP:

$ cd /home/mythtv
$ rm .ICEauthority*
$ rm .DCOPserver*
# reboot

The deleted files will be re-created by KDE during logon, and everything should work after that.

I lost my MySQL password

edit

If you have lost (i.e. you forgot) the root password for the MySQL database system, then you cannot retrieve it, but you can reset it. First, stop the mysql daemon that is running:

$ su
# service mysql stop

Then start the daemon again, but this time without access control:

mysqld_safe --skip-grant-tables &

(Remember, the & at the end is important: it puts the process in the background.) Now enter the "mysql" database and set a new password for the root user:

# mysql -uroot mysql 
> UPDATE user SET password=PASSWORD("abcdef") WHERE user="root"; 
> FLUSH PRIVILEGES;
> exit

Where (obviously) "abcdef" is the password you want to set. Now restart the server, just to be safe:

# service mysql restart

You can test that the new password works:

$ mysql -u root -p

(and then enter the password), or simply:

$ mysql -u root -pabcdef