Next Previous Contents

22. Troubleshooting.

22.1 Compiling

Compile errors

Some compile errors are worse than others. If you get an error that doesn't abort the compilation, and says something like:

cc1plus: warning: changing search order for system directory
"/usr/local/include"
cc1plus: warning:   as it has already been specified as a non-system
directory
then it shouldn't be a problem.

If you get an error like /usr/bin/ld: cannot find -lXext, the compiler is telling you that you don't have XFree86-devel installed, or that your distribution hasn't set it up correctly. This needs to be fixed before MythTV will compile.

make: *** No rule to make target /usr/lib/qt3/mkspecs/default/qmake.conf', needed by Makefile'. Stop.

This error happens when there's a missing link in the /usr/lib/qt3/mkspecs directory. There are two ways to fix this error:

1. Create the link manually:

$ su
# cd /usr/lib/qt3/mkspecs
# ln -sf linux-g++ default
and then restart the compile,

or

2. Run qmake mythtv.pro in the mythtv directory. Rerunning qmake will create a new Makefile for you, however this still doesn't fix the root cause of the issue, which is that your distribution didn't create the symlink for you when the qt3 package was installed. The first choice is the better solution.

make: *** No rule to make target /mkspecs/default/qmake.conf', needed by Makefile'. Stop.

You didn't set your QTDIR. Re-read the section on Setting up paths.

Internal Segmentation Fault.

This is most likely to be caused by an overheating processor rather than an actual programming fault within gcc.

22.2 Debugging

MythTV segfaults

MythTV isn't doing anything

Debugging with GDB

Without details, the developers will not be able to determine if you have discovered a genuine code-bug, or if the problem is with your system. In order to determine what's going on, you must recompile MythTV with debugging support and run MythTV within gdb, the GNU debugger. Note that, on OS X, some data is provided without going through these steps. See  /Library/Logs/CrashReporter/MythFrontend.crash.log

Re-run the configure script and add --compile-type=debug to any previous configuration options you may have used. Check the config.log file if you have forgotten.

Now, you need to clear out the old versions of the software to ensure that you're running with the debugging code, then compile and install.

$ make distclean
$ ./configure --compile-type=debug
$ make
$ su
# make install
# exit

At this point, you now have debug-enabled software ready. To make sure that you don't forget to type a command required for debugging, it's best to setup a gdbcommands file. This will be read by gdb when it's started. Put the following into gdbcommands in your home directory:

handle SIGPIPE nostop noprint
handle SIG33 nostop noprint
set logging on
set pagination off
set breakpoint pending on
break qFatal
set args -l myth.log -v record,channel,siparser
run
thread apply all bt full
set logging off

Let's assume that the problem you're having is in mythbackend.

$ gdb mythbackend -x gdbcommands
GNU gdb 6.3-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-linux".Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]

gdb will automatically read the commands that you've placed in the gdbcommands file and begin running the program you specified on the command line.

If the program appears to be locked up, press CTRL-C to create the backtrace file.

All of the output from gdb.txt should be posted to the mythtv-dev mailing list, along with the steps you followed to get the program to crash.

NOTE: If you're trimming the gdb.txt file to remove extraneous information from the beginning of the file, make sure you include at least 10 lines prior to the point where the backtrace actually begins. This ensures that there is some context to the backtrace, and so that it's possible to see what exactly caused the segfault.

gdb has a number of options, read the man page for more information.

Using the gdbcommands file in conjunction with a while loop will ensure that gdb creates a trace file and then restarts:

$ while true; do date >> gdb.txt; gdb mythbackend -x gdbcommands; done;

NOTE: To exit this loop you will need to kill the while loop.

If you're trying to troubleshoot and you can't get back to the gdb window for some reason, it may be easier to use two systems or to start mythfrontend from the text console.

If you're going to troubleshoot from a remote system, connect to the machine that you're going to test using ssh or telnet. Next, type $ export DISPLAY=localhost:0.0. This will allow the graphics to be displayed on the X console (usually ALT-F6 or ALT-F7) and still give you output and control of mythfrontend, either from the ssh session, or by switching back to the text console by pressing CTRL-ALT-F1. You can now continue troubleshooting using gdb as detailed in the instructions.

MythTV is crashing your system

When run as a non-privileged user, MythTV can not crash your system. If your system is crashing when you run MythTV, then you have some issue with the drivers for your capture card or other hardware, or the CPU fan has fallen off/broken and your system is overheating when asked to perform a CPU intensive task like encoding video.

If you are running as root, which is strongly discouraged, it is possible that your system may crash due to the real-time thread using all available CPU. You will not be able to interrupt the process, so for all intents and purposes your computer will have crashed.

22.3 Installing

When trying to run mythtv-setup, you get an error like this: "mythtv-setup: error while loading shared libraries:"

You didn't add /usr/local/lib to /etc/ld.so.conf. See the section on modifying /etc/ld.so.conf.

22.4 Using

No programs are displayed in "Watch Recordings"

This situation occurs most often with a system that acts as a frontend and a slave backend. MythTV supports system-global and user-specific configuration files, with user-configuration files taking precedence. 99% of the configuration for MythTV is in the MySQL database, but MythTV still needs to know where the MySQL server is running. This information is in the mysql.txt file. By default, it will be installed to /usr/local/share/mythtv, but a copy placed into ~/.mythtv will over-ride the global configuration.

You must ensure that there aren't multiple, conflicting versions of this file on your system!

$ locate mysql.txt
/usr/local/share/mythtv/mysql.txt
/home/mythtv/.mythtv/mysql.txt
$

As you can see, in this example there are two mysql.txt files. If they are not identical, then there may be unintended consequences.

You may also see this error if you completely fill the /var partition. The most likely mythtv-related reason for this is an overly large mythbackend or mythfrontend log file in /var/log. If you have logging enabled for the backend, and myth runs for weeks at a time, this may creep up and surprise you. Note that many system processes also write to /var and the system may not boot if it is unable to write to /var due to a full partition.

MySQL not connecting correctly

Your MySQL installation may have networking turned off. Check that /etc/mysql/my.cnf does not contain skip-networking. If it does, remove it. Also verify that bind-address is set to your IP address instead of 127.0.0.1. If you change either of these items, restart MySQL.

MySQL database is corrupt

If you have reason to believe that your MySQL database is corrupt, execute the following commands to attempt to repair it.

NOTE: Ensure that there are no programs accessing the database while you attempt to repair it. Make sure that all backend and frontend programs have exited.

mysqlcheck -r -umythtv -p<password> mythconverg

Using a MPEG-2 encoder card and the video appears "jittery"

Using a MPEG-2 encoder card and the video is jumping up and down

This is a different problem than the one discussed in the previous section. Currently, the ivtv driver or firmware appear to have some issues if the vertical capture resolution is not the full screen height. If you are having a jitter problem then ensure that you are capturing either 480 lines (for NTSC) or 576 lines (for PAL). The default capture profiles may need to be edited for your setup. Go to Settings->TV Settings->Recording Profiles and adjust the Default and Live TV options to 480 or 576 from their defaults.

Screen goes blank but returns when mouse is moved or keyboard is used

This is due to DPMS, the Display Power Management System, which is used to save power by turning off your monitor when the system decides that it's not being used or due to a screensaver that has defaulted to a blank screen. MythTV now has DPMS support built-in, and should intelligently handle the screen. Continue reading if you wish to override DPMS and force it off.

Since it's likely that watching TV will not generate keyboard or mouse events for a time, you need to turn off DPMS and the screensaver. There are a few ways to do this. You may also need to check your BIOS for power saving modes and disable screen blanking there as well.

Edit your /etc/X11/XF86Config-4 or /etc/X11/xorg.conf file, and look for:

Section "ServerFlags"
    #DontZap # disable <Ctrl><Alt><BS> (server abort)
    #DontZoom # disable <Ctrl><Alt><KP_+>/<KP_-> (resolution switching)
    AllowMouseOpenFail # allows the server to start up even if the mouse doesn't work

    Option "blank time" "0"
    Option "standby time" "0"
    Option "suspend time" "0"
    Option "off time" "0"
    Option "NoPM" "1"
EndSection

Also, look for:

Section "Device"
    Identifier "device1"
    VendorName "nVidia Corporation"
    BoardName "NVIDIA GeForce 256 (generic)"
    Driver "nv"
    Option "DPMS"
EndSection

In this case, you would need to either delete the Option "DPMS" line, or change it to # Option "DPMS" to comment it out. The next time you start XFree this change will take effect.

Finally, check:

Section "Monitor"
    Identifier "monitor1"
    VendorName "Plug'n Play"
    HorizSync 30-85
    VertRefresh 50-160

    # Sony Vaio C1(X,XS,VE,VN)?
    # 1024x480 @ 85.6 Hz, 48 kHz hsync
    ModeLine "1024x480"    65.00 1024 1032 1176 1344   480  488  494  563 -hsync -vsync

    # TV fullscreen mode or DVD fullscreen output.
    # 768x576 @ 79 Hz, 50 kHz hsync
    ModeLine "768x576"     50.00  768  832  846 1000   576  590  595  630

    # 768x576 @ 100 Hz, 61.6 kHz hsync
    ModeLine "768x576"     63.07  768  800  960 1024   576  578  590  616
EndSection

Ensure that there isn't an Option "DPMS" in the Monitor configuration.

You can also turn off DPMS from the Command Line, but this will not survive a reboot.

$ xset -dpms

Using xset +dpms will turn it back on.

Another technique to try, which will turn off the screensaver:

$ xset s off
You may also combine the command to turn off DPMS and the screensaver:
$ xset -dpms s off

Finally, depending on your distribution, you may be able to turn it off from within the control panel.

22.5 Miscellaneous

mythfilldatabase failing

If mythfilldatabase suddenly appears to be failing, there are at least two things to check.

First, if you are in North America, ensure that your DataDirect subscription is still valid, otherwise, check to see what version of XMLTV you're running and that it's the latest version.

NOTE: It is highly recommended that you run the latest version of XMLTV available. Your listings provider may have made changes which negatively impact XMLTV.

Fast CPU, choppy or jittery video

First, you should check that your kernel has been enabled for DMA:

[mythtv@pvr mythtv]$ dmesg |grep DMA
    ide0: BM-DMA at 0xd800-0xd807, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0xd808-0xd80f, BIOS settings: hdc:DMA, hdd:pio
hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=9729/255/63, UDMA(33)
hdb: 80043264 sectors (40982 MB) w/2048KiB Cache, CHS=4982/255/63, UDMA(33)

From the listing above, you can see that hda, hdb and hdc are set for DMA, and hdd is set for pio. If your kernel is not reporting DMA being enabled, you may need to recompile your kernel. Check your motherboard's chipset (look in the "ATA/IDE/MFM/RLL support" section in "make menuconfig") for more information.

Next, check that the hard drive has DMA enabled. Use the hdparm program to check and enable DMA.

# hdparm -d /dev/hd?
will tell you the DMA status for your hard drives. If you run hdparm with the -d1 parameter, it will turn DMA on.

You may also setup your PC to do this at boot time, either by adding the command to your /etc/rc.local file, or by adding files to /etc/sysconfig.

On Mandriva and other distributions, if you install hdparm from an RPM you will most likely get a /etc/sysconfig/harddisks file installed. This file will be parsed by the /etc/rc.sysinit script. If you use the default harddisks file, your changes will affect all IDE devices (including CD ROMs). If you wish to use different parameters for various devices, rename and/or copy the file to harddiskhda, harddiskhdb, etc. Edit the file to your liking and on the next reboot your setting will be preserved.

Frontend appears to be slow at jumping / seeking.

On-screen Display shows incorrect program length.

This may occur when MythTV doesn't have an accurate seek table. Run mythcommflag --rebuild

Troubleshooting audio

NOTE: the following instructions do not apply to PVR-250/350 encoders; the MPEG-2 file will have the audio embedded in the stream so it is not accessible using /dev/dsp.

Audio appears to be one of the bigger issues that users run into on the mailing list. If the audio isn't configured correctly, then MythTV will often appear to hang, when in fact it is trying to manipulate the audio subsystem and failing. You may or may not receive error messages indicating that the source of the error is the audio subsystem.

You can not use xawtv to determine if your audio is working correctly, since xawtv is simply using the analog sound patched through line-in to line-out. It doesn't need to digitize the sound unless you are using the recording function.

A better test to verify that sound will work for MythTV (and recording with xawtv for that matter) is to startup xawtv, mute the line-in then run aplay /dev/dsp. You should hear the recorded audio slightly delayed behind the real-time video. You should see messages about "underrun". These can be ignored but they do confirm that the driver is loaded and there is an active device. Once this test succeeds, MythTV should work correctly because it writes to and read from /dev/dsp in the same way that aplay does.

To record audio along with video the audio signal must be digitized by a DSP so that the audio data can be stored in a file. On playback, the audio data is written to /dev/dsp and converted back to an analog signal. This analog signal should then be sent to your speakers. Here is what is needed in alsamixer. If you are using an ALSA version after 1.0.6, use alsamixer -V all:

CAPTUR source - the analog source to be sent to the DSP. This should be set to the input source from the tuner card to the sound card. In most cases this is Line but this could also be Aux, CD, Mic, etc., depending on how you connect the input cable. This source should be muted to prevent patching through the analog sound. The volume of this source will not affect the record level.

Capture mixer - this sets the level for the analog to digital recording. While a volume of 100% is recommended for testing, distortion may occur. Lowering this level to 75% to 85% may result in better audio quality. "Capture" should be marked as the CAPTUR destination.

PCM mixer - this sets the level for the digital to analog playback. While a volume of 100% is recommended for testing, distortion may occur. Lowering this level to 75% to 85% may result in better audio quality.

Master mixer - sets the level for the analog signal sent to line-out or the speakers.

You may also want to ensure that /dev/dsp , or whatever device file is being used, hasn't already been grabbed by another process, like esd or artsd. If the device file isn't available, then MythTV won't work. You may wish to run configure and enable support for these.

If you wish to see what application is grabbing a resource, you can use the fuser command:

# fuser -v /dev/dsp

To disable aRts in KDE, go to KDE->Control Center->Sound->Sound System and uncheck the "Start aRts soundserver on KDE startup" box. Run # killall artsd from the command line to stop the artsd program.

If you're using multiple sound cards and multiple tuners, use alsamixer -c 1 to work with the second sound card. The first card is #0, the second card is #1, etc.

Mythbackend reports that your card is not reporting full duplex capabilities

The mythbackend program told me to look at this section

mythbackend does a check to see if your sound device is capable of full duplex operation. If it's not, it's most likely that you're going to run into issues when you try to record and play sound at the same time. If your backend is a separate machine than your frontend, then there's no problem, since you're only going to be doing one thing at a time with the card. Likewise, if you're running the frontend and backend on the same machine, but you're using btaudio or a hardware encoder card such as the Hauppauge PVR-250, DVB cards or HDTV capture cards as your recording source and you're only using the playback function of your sound card, then you also shouldn't have an issue, since the sound card isn't being asked to perform two functions at once.

If you can't get your sound card to go full-duplex and need it to, then check your distribution for updated sound drivers. If your sound card is not capable of full-duplex operation, either because the drivers don't support it, or it has been designed that way, then you're pretty much out of luck and will either need to purchase a new sound card, or will need to get btaudio operational.

My remote doesn't work / works sometimes and not others / "ghost" keypresses

This can be due to a number of factors. The simplest case is the "ghost" keypresses. For me, it was due to compact fluorescent lights in the same room as the IR receiver, which the receiver was picking up as keypresses. Once the lights were switched to incandescent bulbs, the ghost went away.

You may have an issue with lirc misinterpreting IR commands from a different remote. I also have an issue where the TiVo "Peanut" remote will eventually cause lircd to stop responding; even though lircd is configured for the Pinnacle Systems remote, the TiVo remote IR patterns are being seen by the IR receiver.

If your remote has been properly configured, and irw and irxevent are working correctly, then it's highly likely that your window manager is not giving focus correctly to the various Myth programs as they run. The following window managers are known to work correctly:

  • fvwm
  • blackbox (using "Sloppy Focus" and "Focus New Windows")

NOTE: You do not need to use irxevent if you are using MythTV's native LIRC support, so the window manager focus issue does not apply in that case.

Where's "canada-cable"?

Channels are off by one

There is no such thing as "Canada Cable"; Canada uses the same frequencies as the United States. "Canada Cable" was a hack that some people used when they would discover that their channels were off-by-one, i.e. when tuning to channel 42, they might get channel 41 or 43. This is actually due to the tuner on the video capture device being mis-detected. You must manually specify the tuner type in your /etc/modules.conf. See the video4linux mailing list ( https://listman.redhat.com/mailman/listinfo/video4linux-list) for more information.

Mythweb is showing a db_open error when I connect to it

Find your php.ini file. Make sure you've got a line in it like this:

extension=mysql.so

Restart apache for it to take effect.

Mouse pointer disappears when placed over the MythTV windows

This is the intended behavior. The MythTV interface is meant for use with a remote control or a keyboard.

What does "strange error flushing buffer" mean on the console?

Nothing, really. It's just lame (the mp3 encoder) complaining for some obscure reason. This seems to be fixed in more recent versions of the libmp3lame library.

Can't change the channel when watching Live TV.

Something's wrong with your program database. Did mythfilldatabase run with no major errors? Or, MythTV may not have permissions to the appropriate video4linux devices. See the section titled Device Permissions for an example.

Screen goes black when you try to play something

MythTV prints error and status messages to the shell that was used to start the application. If nothing seems to be happening when you try to view a program, try switching back to the shell and look for error messages there, or, if you're running from a startup script, check the log file.

Poor performance with NVidia cards and XvMC

XvMC is a NVidia driver feature which is supposed to help with decoding video. Users have reported that rather than speeding up their video it appears to be doing the opposite. You may want to check that your color depth is set for 24bpp.

Computer is loading a media player application when you insert a CD or DVD

You need to disable any sort of auto-running media player in your environment, otherwise MythDVD or MythMusic will not be able to work properly.

In KDE, you may want to perform the following:

$ rm ~/.kde/Autostart/Autorun.desktop


Next Previous Contents