This is a home-built machine with:
- Hauppauge PVR-150
- Antec Overture Media Center case, Piano Black (fairly quiet)
- AMD Athlon 64 3500+ Manchester 2.2GHz Socket 939 67W Single-Core Processor
- MSI K8N Neo4-F 939 NVIDIA nForce4 ATX AMD Motherboard
- ASUS EN7100GS512/TD/128M GeForce 7100GS 512MB (128MB onboard) 64-bit GDDR2 PCI Express x16 Video Card
- X-Gene 01027 Black 86 Normal Keys USB RF Wireless Mini Keyboard with Optical Trackball Mouse
- TP-Link TL-WN550G 802.11g/b wifi card (Atheros chipset)
- Fedora 8, using KDE (rather than Gnome, but I'm now willing to reconsider). If I had to do this over now I would probably choose Ubuntu instead, but I was already familiar with Fedora.
- MythTV 0.22 from the SVN HEAD (and remember, the cutting edge is the bleeding edge)
Database connection: I followed the directions on the page Installing_MythTV_SVN_on_Fedora with little difficulty and was able to get mythtv to build and install. (I did tweak the mythweb instructions slightly, to make it the only thing installed on the web server, and as a result to make it install without need of extra configuration). I used qmake-qt4 in place of just qmake, as instructed.
But when it got time to run mythweb-setup I had a problem. At startup I got a menu page asking me for database host, username, password, port, etc, but even though these were correct, it continued to tell me that it could not connect to the database, even though I verified that I could connect to the database "by hand" with those parameters. The error output in the shell window included:
QSqlDatabase warning: QMYSQL3 driver not loaded QSqlDatabase: available drivers: QSQLLITE Unable to connect to database! No error type from QSqlError? Strange... couldn't open db
Searching the web gave some hints about the problem, but no firm answer. But it lead me to figure out the solution: I needed the qt4-mysql package:
# yum install qt4-mysql
and then mythtv-setup worked just fine.
Livna ffmpeg-libs problem
In mid-October Livna released an updated version of the ffmpeg package, along with ffmpeg-libs, and after the update transcoding wouldn't work. I traced this to mis-matched links to the libraries. Saying ls -l /usr/lib/libav* results in (amongst a longer list):
lrwxrwxrwx 1 root root 21 2008-10-25 14:32 libavcodec.so.51 -> libavcodec.so.51.50.1 -rwxr-xr-x 1 root root 3679984 2008-06-25 09:25 libavcodec.so.51.48.0* lrwxrwxrwx 1 root root 22 2008-10-25 14:32 libavformat.so.51 -> libavformat.so.51.19.0* -rwxr-xr-x 1 root root 638064 2008-06-25 09:25 libavformat.so.51.19.0* lrwxrwxrwx 1 root root 19 2008-10-25 14:32 libavutil.so.49 -> libavutil.so.49.6.0 -rwxr-xr-x 1 root root 32324 2008-06-25 09:25 libavutil.so.49.5.0*
Notice how the links point to libraries which do not exist. The solution was to delete the link and re-link to the real library, like so:
rosebud:lib# rm libavutil.so.49 rm: remove symbolic link `libavutil.so.49'? y rosebud:lib# ln -s libavutil.so.49.5.0 libavutil.so.49 rosebud:lib# rm libavcodec.so.51 rm: remove symbolic link `libavcodec.so.51'? y rosebud:lib# ln -s libavcodec.so.51.48.0 libavcodec.so.51
After this dvdauthor is hanging, so I still cannot burn DVD's. I don't know yet if this is related or a separate issue.
The mythtv-setup program could not connect to the video card, with dmesg giving
ivtv0: Unable to open firmware v4l-cx2341x-enc.fw (must be 376836 bytes) ivtv0: Did you put the firmware in the hotplug firmware directory?
The firmware can be obtained from the IVTV wiki here, along with instructions on how to deploy it. The hotplug firmware directory for Fedora 8 is /lib/firmware
- Hardware status: an easy way to see the status of the hardware after reboot is
$ dmesg | grep tv
When running mythtv-setup I noticed that some of the text of messages was not showing on the screen. But it didn't seem like a big problem -- I could still get around.
But after going through all 5 steps, it kept warning me that I had not set up Storage Groups. Did I want to go back and fix the problem? Yes, I did, but there was no 6th step for setting Storage Groups.
It turns out that the 6th step was there, just not being shown. When I scrolled down past step 5 and hit Enter I was able to go through step 6 and define Storage Groups.
- After an SVN update this has been fixed. You can now see the 6th step. --Wormholio 00:28, 16 October 2008 (UTC)
When I first ran mythfrontend it bombed with a problem with the X server. I was able to fix this by installing the nVidia drivers
# yum install nvidia-graphics
After that I was able to use mythfrontend to watch live TV (sans sound -- see below). But this was on the VGA monitor I had attached, not TV-out.
It turns out the video card only produces output on the composite video output at certain resolutions. On top of that, the card needed to be configured to "clone" the output from VGA to composite video. Both of these things are the default behaviour for the VESA driver, but the VESA driver won't work for video playback.
I solved this by running
This launches a graphical tool for configuring the card. I went to the X-Server display settings, turned on "TwinView", and set the position of the TV display to "Clones". Then "save X configuration" and told it to merge with my previous settings. This resulted in modifications to xorg.conf file, including this Screen section:
Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 24 Option "TwinView" "1" Option "TwinViewXineramaInfoOrder" "CRT-0" Option "metamodes" "CRT: 1024x768 +0+0, TV: nvidia-auto-select +0+0; CRT: 800x600 +0+0, TV: nvidia-auto-select +0+0; CRT: 640x480 +0+0, TV: nvidia-auto-select +0+0" SubSection "Display" Depth 24 EndSubSection EndSection
Whew, I'm glad I didn't have to figure out all that on my own.
Initially, when the machine booted sound did not work, not even the basic sound test. I could get it to work by reloading the drivers from the Sound Card Detection control. It looked like the OSS modules were being loaded instead of ALSA, but in fact I think that's just the OSS module for ALSA.
But getting sound to work in KDE still did not help sound in MythTV. Setting the audio device to ALSA:default didn't work.
I know that sound should be recorded because the PVR-150 encodes to MPEG-2, which includes the audio channel(s).
I finally got sound playback to work by setting the audio output device in MythTV to /dev/dsp, which goes directly to the output device.
Just testing sound by trying to play a sound file would fail:
$aplay burp.au *** PULSEAUDIO: Unable to connect: Connection refused aplay: main:564: audio open error: Connection refused
I wasn't using pulseaudio, as far as I knew. I was able to fix this by removing the ALSA plugin (and KDE control):
# rpm -e alsa-plugins-pulseaudio kde-settings-pulseaudio
After this I ran alsamixer, which had the Line level at zero. I raised it to 100%. I then found that audio worked with ALSA:default, but not the volume and mute controls. With /dev/dsp the mute and volume up/down controls work, so I'm sticking with that.
MythArchive - burning DVDs
MythArchive is a plug-in which allows one to burn recorded programs to DVD. When I tried this, after wending my way through the menus and launching the burn, it hung at the log viewer, with no messages displayed. The solution, as documented here, was to install the MySQL-python and python-imaging packages:
yum install MySQL-python python-imaging
After that, I was able to get log output when trying to burn, but I kept running up against dependencies. Each time I got an error it was because some tool was not installed, so I had to find out which Fedora package contains that tool and install that package. Here is the result:
application Fedora package jpeg2yuv mjpegtools spumux dvdauthor tcrequant transcode growisofs dvd+rw-tools
Also, while there is a checkbox when setting up a recording which implies that you can overwrite a DVD-RW disk while recording, that has not worked for me. If I don't blank out the disk first I get an error in the growisofs step. The message suggests looking at the README file, which suggests that the problem is lack of proper file permissions. But it's not. I have to blank the disk manually before recording, using
- Database Initialization: An observation about the initialization of the database: Running the file mythtv/database/mc.sql through MySQL only sets up the mythtv database user and user permissions, it does not create the database tables or populate them. That is done later, by mythtv-setup. So there is no one file containing the database schema that you can look at (or at least I didn't find one).
- PVR-150 Firmware: the video capture card firmware is not loaded once and stored in ROM, it has to be loaded each time the computer is booted. This is easily arranged by putting the firmware files in the hotplug directory for your system. See above.