I've got a Zogis Real Angel 220 RA220 TV-Tuner card.
http://www.zogis.com/main_products_s..._PCI_RA220.htm
In spite of what the box says, the card doesn't do all three analog TV standards: NTSC/PAL/SECAM. Zogis sells different versions for various parts of the world and uses the same box. I've got the NTSC version.
Unfortunately, it's not recognized by V4L. I get this message in dmesg:
# dmesg
Code:
Linux video capture interface: v2.00
phy0: hwaddr 00:40:f4:f8:83:e4, RTL8185vD + rtl8225z2
saa7130/34: v4l2 driver version 0.2.14 loaded
ACPI: PCI Interrupt 0000:00:09.0[A] -> GSI 17 (level, low) -> IRQ 17
saa7130[0]: found at 0000:00:09.0, rev: 1, irq: 17, latency: 32, mmio: 0xe2000000
saa7134: <rant>
saa7134: Congratulations! Your TV card vendor saved a few
saa7134: cents for a eeprom, thus your pci board has no
saa7134: subsystem ID and I can't identify it automatically
saa7134: </rant>
saa7134: I feel better now. Ok, here are the good news:
saa7134: You can use the card=<nr> insmod option to specify
saa7134: which board do you have. The list:
saa7134: card=0 -> UNKNOWN/GENERIC
saa7134: card=1 -> Proteus Pro [philips reference design] 1131:2001 1131:2001
saa7134: card=2 -> LifeView FlyVIDEO3000 5168:0138 4e42:0138
saa7134: card=3 -> LifeView/Typhoon FlyVIDEO2000 5168:0138 4e42:0138
((( blah, blah, blah,... )))
saa7134: card=144 -> Beholder BeholdTV M6 Extra 5ace:6193
saa7130[0]: subsystem: 1131:0000, board: UNKNOWN/GENERIC [card=0,autodetected]
saa7130[0]: board init: gpio is 80c008
saa7130[0]: Huh, no eeprom present (err=-5)?
saa7130[0]: i2c scan: found device @ 0xc0 [tuner (analog)]
saa7130[0]: i2c scan: found device @ 0xc2 [???]
saa7130[0]: registered device video0 [v4l2]
saa7130[0]: registered device vbi0
# lspci -vv
Code:
00:09.0 Multimedia controller: Philips Semiconductors SAA7130 Video Broadcast Decoder (rev 01)
Subsystem: Philips Semiconductors Unknown device 0000
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR+ INTx-
Latency: 32 (3750ns min, 9500ns max)
Interrupt: pin A routed to IRQ 17
Region 0: Memory at e2000000 (32-bit, non-prefetchable) [size=1K]
Capabilities: [40] Power Management version 1
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: saa7134
Kernel modules: saa7134
Ran a script to test all the possible combos. Apparently it's necessary to cycle through rmmod/modprobe/watchTV to see if it works. Is there an easier way to find out? Here's the script:
test_all_saa7134_card_combos.sh
Code:
#/bin/sh
MAXCARD=144
MAXTUNER=69
for i in $(seq 0 $MAXCARD);
do
for j in $(seq 0 $MAXTUNER);
do
rmmod tuner saa7134
modprobe saa7134 card=$i tuner=$j
echo "Is TVtime working with card=" $i " and tuner=" $j " ? "
sleep 1 # make sure /dev/video is registered when tvtime starts
tvtime
done
done
I got lucky, after only doing a few hundred tests, "modprobe saa7134 card=3 tuner=0" worked. Many other tuner numbers worked too with card=3. Video and audio quality is good.
This is strange -- the video output doesn't appear on the 'Television' output -- but instead appears on 'Composite2' output. You can only tune channels by using 'Input Configuration', switching to a blue-screen 'Television' and then switching back to 'Composite' to view it.
There is no /dev/tuner. Should there be?
These messages appeared at each loop when doing the modprobe:
# tail -f /var/log/messages
Code:
kernel: tuner-simple 1-0060: destroying instance
kernel: saa7130/34: v4l2 driver version 0.2.14 loaded
kernel: saa7130[0]: found at 0000:00:09.0, rev: 1, irq: 17, latency: 32, mmio: 0xe2000000
kernel: saa7130[0]: subsystem: 1131:0000, board: LifeView/Typhoon FlyVIDEO2000 [card=3,insmod option]
kernel: saa7130[0]: board init: gpio is 808008
kernel: saa7130[0]: there are different flyvideo cards with different tuners
kernel: saa7130[0]: out there, you might have to use the tuner=<nr> insmod
kernel: saa7130[0]: option to override the default value.
kernel: input: saa7134 IR (LifeView/Typhoon Fl as /class/input/input80
kernel: saa7130[0]: Huh, no eeprom present (err=-5)?
kernel: saa7130[0]: i2c scan: found device @ 0xc0 [tuner (analog)]
kernel: saa7130[0]: i2c scan: found device @ 0xc2 [???]
kernel: All bytes are equal. It is not a TEA5767
kernel: tuner' 1-0060: chip found @ 0xc0 (saa7130[0])
kernel: tuner' 1-0061: chip found @ 0xc2 (saa7130[0])
kernel: tuner-simple 1-0060: creating new instance
kernel: tuner-simple 1-0060: type set to 37 (LG PAL (newer TAPC series))
kernel: saa7130[0]: registered device video0 [v4l2]
kernel: saa7130[0]: registered device vbi0
kernel: saa7130[0]: registered device radio0
kernel: saa7130[0]/irq: looping -- clearing PE (parity error!) enable bit