I have the Flyvideo 3000 card working (for TV) successfully on Redhat
7.3. I used the archives for this list to assist in getting this far, so
thanks to all who have contibuted. The biggest problem I found was that
there wasn't a step by step instuction for getting it going. So here's a
doco that does just that. If there is a FAQ in the making, maybe it this
could be added to it if it is found useful and correct.
This is how I got the Flyvideo 3000 working, in the hope it will help
someone else. Note, this is based on a clean kernel source install.
Download Kernel 2.4.19 and uncompress it in /usr/src
Make a link to the kernel source in /usr/src (This is needed for the patch)
ln -s /usr/src/linux-2.4.19 linux-2.4.19-rc3
Download patch http://bytesex.org/patches/v4l2-api-2.4.19.diff
Apply patch
patch -p0 < v4l2-api-2.4.19.diff
There should be no errors.
I cheated a bit as I had a bit of problem getting the right options
selected during the kernel config stage. The standard Redhat 7.3 .config
has all I need (and more) so I used it.
cp /boot/config-2.4.18-3 /usr/src/linux-2.4.19/.config
You may want to configure some extras like processor type etc before you
compile. Use one of the kernel config tools to do this. I used xconfig.
The next steps involve compiling the kernel. The method I use is
basically the same as the INSTALL readme in the kernel source directory.
make dep
make bzImage
make modules
Not sure why, but I had to make the directory /lib/modules/2.4.19 (as
root) before the make install.
As root
mkdir /lib/modules/2.4.19
make install
make modules_install
The make install also updates the grub.conf. Not sure if it does lilo.conf.
If there were no errors it is time to reboot onto the new kernel. If
there were errors you will need to work them out before going any
further. I found it was easier to delete every thing related to the new
kernel if there were problems and start again. (Very frustrating as the
kernel build does take a while). During the install process files are
added to the /boot and /lib/modules/2.4.19 directories.
WARNING WARNING WARNING - If you are going to delete files, make sure
you know what you are deleting.
Once you have rebooted onto the new kernel, check you system logs to
make sure there are no problems. Does everything still work?
The check which kernel is running use the following.
uname -a
Linux baz 2.4.19 #4 Sat Sep 21 07:56:04 EST 2002 i586 unknown
It should show the kernel version (2.4.19) and the date it was built
(Sat Sep 21 07:56:04).
Now it is time to build the saa7134 module. Note, you need to running
the patched kernel before compiling the module.
Download the module source
http://bytesex.org/saa7134/saa7134-0.1.10.tar.gz
Uncompress the source in /usr/src
To compile the module, I followed the instructions in the README in the
source directory.
make
As root
make install
Resoleve any errors before going any further. Mine compiled with no
errors. I needed to copy the modules into the
/lib/modules/2.4.19/kernel/drivers/media/video directory. Not sure why,
but I read somewhere in the list.
Save the original tuner module
As root
cd /lib/modules/2.4.19/kernel/drivers/media/video/
cp tuner.o tuner.o.orig
Copy the modules
As root
cp /lib/modules/2.4.19/v4l2/*.o
/lib/modules/2.4.19/kernel/drivers/media/video/
You will need to check module dependencies. There should be no errors.
If there are, you will need to resolve them.
depmod -a
If all is well, the last step involves testing the setup.
I added the following to my /etc/modules.conf
pre-install saa7134 modprobe -k tuner;modprobe -k tda9887
post-remove saa7134 modprobe -r tuner;modprobe -r tda9887
options saa7134 card=2 mixer_nr=2
You might need to play around with the options a bit. I needed to set
the card (2 = Flyvideo 3000) and mixer options to get it going. I'm not
sure what the other options are. Maybe someone could add them to this
doco.
Now a modprobe -k saa7134
modprobe -k saa7134
A lsmod should show the following as well as your other loaded modules.
lsmod
saa7134 56492 0 (autoclean)
tda9887 2656 0 (autoclean) (unused)
tuner 10468 1 (autoclean)
video-buf 12172 0 (autoclean) [saa7134]
i2c-core 18752 0 (autoclean) [saa7134 tda9887 tuner]
videodev 7712 3 (autoclean) [saa7134]
v4l1-compat 11588 0 (autoclean) [saa7134]
v4l2-common 7936 0 (autoclean) [saa7134 v4l1-compat]
If you look in /var/log/messages you should see somethimg similar to this.
Sep 22 08:05:06 baz kernel: Linux video capture interface: v1.00
Sep 22 08:05:06 baz kernel: i2c-core.o: i2c core module
Sep 22 08:05:07 baz kernel: i2c-core.o: driver i2c TV tuner driver
registered.
Sep 22 08:05:07 baz kernel: i2c-core.o: driver i2c tda9887 driver
registered.
Sep 22 08:05:07 baz kernel: saa7130/34: v4l2 driver version 0.1.9 loaded
Sep 22 08:05:07 baz kernel: PCI: Assigned IRQ 10 for device 00:08.0
Sep 22 08:05:07 baz kernel: saa7134[0]: found at 00:08.0, rev: 1, irq:
10, latency: 32, mmio: 0xd5400000
Sep 22 08:05:07 baz kernel: saa7134[0]: subsystem: 1131:0000, board:
LifeView FlyVIDEO3000 [card=2,insmod option]
Sep 22 08:05:07 baz kernel: tuner: probing saa7134[0] i2c adapter
[id=0x90000]
Sep 22 08:05:07 baz kernel: saa7134[0]/irq: looping -- clearing enable bits
Sep 22 08:05:07 baz kernel: tuner: chip found @ 0xc2
Sep 22 08:05:07 baz kernel: i2c-core.o: client [Philips PAL_BG (FI1216
and compa] registered to adapter [saa7134[0]](pos. 0).
Sep 22 08:05:07 baz kernel: tda9887: probing saa7134[0] i2c adapter
[id=0x90000]
Sep 22 08:05:07 baz kernel: i2c-core.o: adapter saa7134[0] registered as
adapter 0.
Sep 22 08:05:07 baz kernel: saa7134[0]: Huh, no eeprom present (err=-5)?
Sep 22 08:05:07 baz sa7134:
Sep 22 08:05:07 baz kernel: saa7134[0]: registered device video0 [v4l2]
Sep 22 08:05:07 baz kernel: saa7134[0]: registered device vbi0
Sep 22 08:05:07 baz kernel: saa7134[0]: registered device radio0
Sep 22 08:05:07 baz kernel: saa7134[0]: registered device dsp1
Sep 22 08:05:07 baz kernel: saa7134[0]: registered device mixer2
I have put the following script into /etc/init.d
#!/bin/sh
# Startup script for saa7134 tv card (Flyvideo 3000)
#
# description:
# Source function library.
. /etc/rc.d/init.d/functions
prog="Flyvideo 3000 Driver"
start() {
echo -n $"Starting $prog ....... "
/sbin/modprobe -k saa7134 card=2 mixer_nr=2
echo
}
stop() {
echo -n $"Stopping $prog ....... "
/sbin/modprobe -r saa7134
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
esac
exit 0
You will need to set up the symbolic links in the various rc directories
to load this driver on boot. I used ksysv to do this. There might be a
better way to do load this module on boot but I don't know how.
Try it out using xawtv, I use xawtv and the tv works very well. I have
been playing with the FM radio, but although I've had it working, it's
not easily repeatable. More work needed there.
Hopefully I haven't missed anything. I trust this may be of some use to
someone.
Cheers,
Barrie