[mythtv-users] Solution: frontend crash on playback
mikemurphy
mike at halfmytime.com
Thu Dec 30 08:00:07 UTC 2004
Hey all,
My appollogies if this has already been covered, but I just worked
around a nasty hangup and I'm pretty excited about it, so I thought I'd
share in case anyone else is where I was for about the last 4 days.
Symptom:
Mythfrontend would crash at the start of playback if I selected a
recording for a second time (play, back to menu, play again, boom).
Changing whether the position was saved on exit didn't help. If I
selected one video and then another, it would work, but it would
eventually crash when it started to play about the 4th or 5th
recording. It would also crash at other times and was unstable in
general, but the times I just mentioned were very predicatble. My
backend was also very unstable. There was nothing unusal in
mythfrontend's output except "Killed" at the end. What especially
perplexed me was that I didn't change the configuration at all when the
instability developed. It was solid for the first 5 or so days after I
set it up.
System:
AMD Athlon XP 2400, NForce2 Motherboard, 2x Hauppauge 250, Samsung 160GB HD
MythTV .016, Gentoo with vanilla 2.6.9 kernel, NVidia Drivers 1.0.6629
Solution:
After a few days of dead ends (I thought the HD was dying, but cloning
it to another drive made no difference - helloooo 320GB once I get LVM
working:) I found help with this list post:
http://www.gossamer-threads.com/lists/mythtv/users/96713?search_string=%2Fdev%2Fdri%2Fcard0;#96713
I never realized mythfrontend's --verbose option took arguments.
# mythfrontend --verbose playback
--- SNIP ---
2004-12-29 23:06:58 Changing from None to WatchingPreRecorded
2004-12-29 23:06:58 nVidiaVideoSync: VBlank ioctl did not work,
unimplemented in this driver?
2004-12-29 23:06:58 DRMVideoSync: Could not open device /dev/dri/card0,
No such file or directory
Killed
Exactly the output in the post. Apparently the problem is with OpenGL
vsync and NVidia drivers.
Elsewhere in the thread someone mentioned that you can disable OpenGL
VSYNC in Myth by commenting out the OpenGL VSYNC block in the
settings.pro file in the Myth source directory and recompiling from scratch
settings.pro:
# OpenGL support for vertical retrace sync
#DEFINES += USING_OPENGL_VSYNC
#EXTRA_LIBS += -lGL -lGLU
#CONFIG += using_opengl
shell:
make clean distclean && ./configure && make && make install
Now that I'm looking around I little more I see that for Gentooers,
adding "-opengl" to your use flags and re-emerging MythTV will
accomplish the same thing with less keyboard on your hands. Also, I
don't know if it's necessary to comment-out the "EXTRA_LIBS" and
"unsing_opengl" lines too. I'm guessing it's not, but I don't want to
experiment with it just yet.
This has completely cleared up the problem for me, and even the backend
instability has gone away. I've been abusing it for about an hour and a
half (starting playback, stopping, rewinding, Live TV, recording,
program guide, aggressive editing of recording schedules), and
everything looks great. I am STOKED! I suppose I'm not using OpenGL
anymore, but this is a fast system with hardware encoding, so I have a
few cycles to spare, and I don't feel like worrying about it right now.
I've got time-shifted Aquateens to watch once I finish this email. But
first...
My Uneducated Theory:
Backtrace on the same crash shows that it's crashing inside the OpenGL
library provided by NVidia
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 196616 (LWP 1055)]
0xb64ec226 in _nv000833gl () from /usr/lib/libGLcore.so.1
(gdb) bt
#0 0xb64ec226 in _nv000833gl () from /usr/lib/libGLcore.so.1
#1 0xb73d4210 in _nv000030gl () from /usr/lib/libGL.so.1
#2 0x00030008 in ?? ()
#3 0x0000041f in ?? ()
#4 0xb7f2dda8 in ?? () from /usr/lib/libmythtv-0.16.so.0
(gdb) kill
If it's crashing because it can't open /dev/dri/card0, thien it makes
sense, because there's no such file in my /dev filesystem. Now, I'm not
particularly familiar with udev, but from what I understand that kind of
heirarchical /dev structure is a udev thing. So maybe the whole problem
is that NVidia's OpenGL is expecting a system that's running 2.6 to be
running udev and have a /dev/dri/card0, but Gentoo hasn't graduated to
udev yet, so there is none. Somebody let me know if I'm on the right
track here.
Oh hell yes it's a Moononites episode!
Good Luck Everybody,
Mike
More information about the mythtv-users
mailing list