Saturday, February 18, 2006

Compiling MythTV 0.19 With Firewire enabled

I had trouble compiling a version of MythTV 0.19 with Firewire enabled. I downloaded the source and invoked the configure script with the following command line:

./configure --disable-distcc --enable-xvmc --enable-dvb --dvb-path=/usr/src/kernels/2.6.15-1.1831_FC4-i686/include/ --enable-opengl-vsync --enable-proc-opt --enable-firewire --enable-dvd --libdir=/usr/lib

This should have enabled firewire, but no dice. Looking in the script, I found that it was using pkg-config to determine the version of three libraries: libraw1394, libiec61883, and libavc1394. The strange thing was that I appeared to have recent versions of all these libraries installed, yet pkg-config didn't think they were recent enough.

A large amount of googling and thinking later, I realized that pkg-config relies upon rpm installers placing ".pc" files into the /usr/lib/pkgconfig/ directory, and I had no ".pc" files for any of the three critical libraries. I downloaded the source trees for each library and discovered that libiec61883.pc, libavc1394.pc, and libraw1394.pc were located in their respective packages. So I copied them into /usr/lib/pkgconfig, and now mythtv configured properly. I was able to make and install a version with Firewire enabled.

We'll see how that turns out.

Friday, February 17, 2006

Linux - Problems updating NVidia driver

So I decided to up grade to 0.19 of MythTV. I downloaded the source, configured and discovered I couldn't compile with firewire cable box support without libavc1394 greater than or equal to version 0.5.0. And of course, I couldn't easily find this particular libary. And I decided it might be easier if I was running an updated my system, so I went with the notorious yum update which updated my kernel to 2.6.15-1.1831_FC4 which, of course, killed my nvidia driver setup because nvidia refuses to open source their drivers which requires barely Linux literate geeks like myself to run their installer every time we bump our kernel up.

So I downloaded and installed my kernel sources and ran:

./ --kernel-source-path=/usr/src/kernels/2.6.15-1.1831_FC4-i686

And rebooted, and it didn't work. /var/log/Xorg.0.log says that it "Failed to load the NVIDIA kernel module". modprobe didn't know what nvidia was. lsmod didn't know either. dmesg showed nothing about it. I did a lot of googling and came across this message which indicated someone with a similar problem had noticed there were multiple copies of nvidia related object files in his /usr/X11R6/lib/modules/drivers/ directory and that removing them and re-running the installer and editing my /etc/modprobe.conf to the following:

alias eth0 e100
alias snd-card-0 snd-ice1724
options snd-card-0 index=0
options snd-ice1724 index=0
remove snd-ice1724 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modpro
be -r --ignore-remove snd-ice1724
alias char-major-81 cx8800
alias usb-controller ehci-hcd
alias usb-controller1 uhci-hcd
alias ieee1394-controller ohci1394
install ohci1394 /sbin/modprobe --ignore-install ohci1394; /sbin/modprobe raw1394

# all wonder remote

alias char-major-61 lirc_atiusb
alias lirc_dev lirc_atiusb
# nvidia kernel module
alias char-major-195 nvidia
#alias nvidia nvidia-1_0-7676

solved my problem. Your mileage will probably vary, but its something to try.

Oh, and I still haven't gotten firewire working with MythTV.