saa7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述...

23
SAA7134 原文地址:http://gentoo-wiki.com/HARDWARE_saa7134 目录 概述  模块设置  硬件检测      3.1 i2c   扫描      3.2 card     tuner          3.2.1 card          3.2.2 tuner      3.3 更多模块选项      3.4 dmesg   输出结果  音频设定  录制电视节目      5.1 用不到的模块      5.2 v4lctl   设置      5.3 Mplayer     Mencoder       5.4 MythTV  使用   DVB-T   7 Card   配置  故障排除  其他相关网址  

Upload: others

Post on 26-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

SAA7134原文地址:http://gentoo­wiki.com/HARDWARE_saa7134

目录• 1    概述   • 2    模块设置   • 3    硬件检测    •     3.1 i2c       扫描    •     3.2 card       和      tuner   •         3.2.1 card •         3.2.2 tuner •     3.3    更多模块选项    •     3.4 dmesg       输出结果    • 4    音频设定    • 5    录制电视节目    •     5.1    用不到的模块    •     5.2 v4lctl       设置    •     5.3 Mplayer       和      Mencoder    •     5.4 MythTV • 6    使用      DVB­T    • 7 Card       配置    • 8    故障排除    • 9    其他相关网址   

Page 2: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

译者的话

想知道/dev目录下的 dsp,mixer,video是干什么用的吗?想知道/etc/modprobe.conf中install saa7134 /sbin/modprobe --first-time --ignore-install saa7134 oss=1,1 && { /sbin/modprobe saa7134_oss dsp_nr=1,2 mixer_nr=1,2;/bin/true; } 这句话代表的意思吗?相信你看完本文后肯定会得到满意的答案。

这篇文档涉及的方面很广,从硬件检测到模块设置,从收看电视到录制电视,从模拟信号到数字信号,几乎全部包括。根据我个人的体会,建议大家着重看 2,3,4,5四部分,并且结合我们实际工作中的体会,相信肯定大家肯定会对 saa7134有更深入的理解。

还有一篇文章 Saa7134­alsa(http://www.linuxtv.org/v4lwiki/index.php/Saa7134­alsa),应该算是这篇的姐妹篇,如果有兴趣可以参考阅读。

由于译者水平有限,肯定会存在某些地方理解不正确,误译,漏译等情况,还请大家见谅。另外,对于文章中的有些词语,比如 card,tuner,tuning,mixer等,由于目前尚无较好的译文, 因此对这些词语采用了保留英语原文的方法,如果大伙有更好的对应中译,请及时告知,谢谢。

Page 3: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

1. 概述saa7134作为 Linux内核中的 video4linux模块,支持特定的 PCI接口的 TV tuner card。

本文介绍了如何检测 card,如何加载正确的模块等基本知识,让你能够观看、录制电视节目。

读者也可参考 saa7134 快速指南

如果想了解该驱动支持的所有 card列表,请详见/usr/src/linux/Documentation/video4linux/CARDLIST.saa7134

实际支持的电视卡远比文档中列出的多(可能是故意露掉了,也可能是本文太陈旧了)。想了解完整的列表,请参考/usr/src/linux/drivers/media/video/saa7134/saa7134.h 和相关信息。

根据 http://linuxtv.org/v4lwiki/index.php/CARDLIST.saa7134,下表所列设备目前都支持:

0 -> UNKNOWN/GENERIC 1 -> Proteus Pro [philips reference design] [1131:2001,1131:2001] 2 -> LifeView FlyVIDEO3000 [5168:0138,4e42:0138] 3 -> LifeView/Typhoon FlyVIDEO2000 [5168:0138,4e42:0138] 4 -> EMPRESS [1131:6752] 5 -> SKNet Monster TV [1131:4e85] 6 -> Tevion MD 9717 7 -> KNC One TV-Station RDS / Typhoon TV Tuner RDS [1131:fe01,1894:fe01] 8 -> Terratec Cinergy 400 TV [153b:1142] 9 -> Medion 504410 -> Kworld/KuroutoShikou SAA7130-TVPCI11 -> Terratec Cinergy 600 TV [153b:1143]12 -> Medion 7134 [16be:0003]13 -> Typhoon TV+Radio 9003114 -> ELSA EX-VISION 300TV [1048:226b]15 -> ELSA EX-VISION 500TV [1048:226a]16 -> ASUS TV-FM 7134 [1043:4842,1043:4830,1043:4840]17 -> AOPEN VA1000 POWER [1131:7133]18 -> BMK MPEX No Tuner19 -> Compro VideoMate TV [185b:c100]20 -> Matrox CronosPlus [102B:48d0]21 -> 10MOONS PCI TV CAPTURE CARD [1131:2001]22 -> AverMedia M156 / Medion 2819 [1461:a70b]23 -> BMK MPEX Tuner24 -> KNC One TV-Station DVR [1894:a006]25 -> ASUS TV-FM 7133 [1043:4843]26 -> Pinnacle PCTV Stereo (saa7134) [11bd:002b]27 -> Manli MuchTV M-TV002/Behold TV 403 FM28 -> Manli MuchTV M-TV001/Behold TV 40129 -> Nagase Sangyo TransGear 3000TV [1461:050c]30 -> Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) [1019:4cb4]31 -> Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM) [1019:4cb5]32 -> AVACS SmartTV33 -> AVerMedia DVD EZMaker [1461:10ff]34 -> Noval Prime TV 713335 -> AverMedia AverTV Studio 305 [1461:2115]36 -> UPMOST PURPLE TV [12ab:0800]37 -> Items MuchTV Plus / IT-005

Page 4: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

38 -> Terratec Cinergy 200 TV [153b:1152]39 -> LifeView FlyTV Platinum Mini [5168:0212,4e42:0212]40 -> Compro VideoMate TV PVR/FM [185b:c100]41 -> Compro VideoMate TV Gold+ [185b:c100]42 -> Sabrent SBT-TVFM (saa7130)43 -> Zolid Xpert TV713444 -> Empire PCI TV-Radio LE45 -> Avermedia AVerTV Studio 307 [1461:9715]46 -> AVerMedia Cardbus TV/Radio (E500) [1461:d6ee]47 -> Terratec Cinergy 400 mobile [153b:1162]48 -> Terratec Cinergy 600 TV MK3 [153b:1158]49 -> Compro VideoMate Gold+ Pal [185b:c200]50 -> Pinnacle PCTV 300i DVB-T + PAL [11bd:002d]51 -> ProVideo PV952 [1540:9524]52 -> AverMedia AverTV/305 [1461:2108]53 -> ASUS TV-FM 7135 [1043:4845]54 -> LifeView FlyTV Platinum FM / Gold [5168:0214,1489:0214,5168:0304]55 -> LifeView FlyDVB-T DUO [5168:0306]56 -> Avermedia AVerTV 307 [1461:a70a]57 -> Avermedia AVerTV GO 007 FM [1461:f31f]58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0351,1421:0370,1421:1370]59 -> Kworld/Tevion V-Stream Xpert TV PVR713460 -> LifeView/Typhoon/Genius FlyDVB-T Duo Cardbus [5168:0502,4e42:0502,1489:0502]61 -> Philips TOUGH DVB-T reference design [1131:2004]62 -> Compro VideoMate TV Gold+II63 -> Kworld Xpert TV PVR713464 -> FlyTV mini Asus Digimatrix [1043:0210]65 -> V-Stream Studio TV Terminator66 -> Yuan TUN-900 (saa7135)67 -> Beholder BeholdTV 409 FM [0000:4091]68 -> GoTView 7135 PCI [5456:7135]69 -> Philips EUROPA V3 reference design [1131:2004]70 -> Compro Videomate DVB-T300 [185b:c900]71 -> Compro Videomate DVB-T200 [185b:c901]72 -> RTD Embedded Technologies VFG7350 [1435:7350]73 -> RTD Embedded Technologies VFG7330 [1435:7330]74 -> LifeView FlyTV Platinum Mini2 [14c0:1212]75 -> AVerMedia AVerTVHD MCE A180 [1461:1044]76 -> SKNet MonsterTV Mobile [1131:4ee9]77 -> Pinnacle PCTV 40i/50i/110i (saa7133) [11bd:002e]78 -> ASUSTeK P7131 Dual [1043:4862,1043:4876]79 -> Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)80 -> ASUS Digimatrix TV [1043:0210]81 -> Philips Tiger reference design [1131:2018]82 -> MSI TV@Anywhere plus [1462:6231]83 -> Terratec Cinergy 250 PCI TV [153b:1160]84 -> LifeView FlyDVB Trio [5168:0319]85 -> AverTV DVB-T 777 [1461:2c05,1461:2c05]86 -> LifeView FlyDVB-T / Genius VideoWonder DVB-T [5168:0301,1489:0301]87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421]88 -> Tevion/KWorld DVB-T 220RF [17de:7201]89 -> ELSA EX-VISION 700TV [1048:226c]90 -> Kworld ATSC110 [17de:7350]91 -> AVerMedia A169 B [1461:7360]92 -> AVerMedia A169 B1 [1461:6360]93 -> Medion 7134 Bridge #2 [16be:0005]94 -> LifeView FlyDVB-T Hybrid Cardbus [5168:3306,5168:3502]

Page 5: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

95 -> LifeView FlyVIDEO3000 (NTSC) [5169:0138]96 -> Medion Md8800 Quadro [16be:0007,16be:0008]97 -> LifeView FlyDVB-S /Acorp TV134DS [5168:0300,4e42:0300]98 -> Proteus Pro 2309 [0919:2003]99 -> AVerMedia TV Hybrid A16AR [1461:2c00]100 -> Asus Europa2 OEM [1043:4860]101 -> Pinnacle PCTV 310i [11bd:002f]102 -> Avermedia AVerTV Studio 507 [1461:9715]103 -> Compro Videomate DVB-T200A104 -> Hauppauge WinTV-HVR1110 DVB-T/Hybrid [0070:6701]105 -> Terratec Cinergy HT PCMCIA [153b:1172]106 -> Encore ENLTV [1131:2342,1131:2341,3016:2344]107 -> Encore ENLTV-FM [1131:230f]108 -> Terratec Cinergy HT PCI [153b:1175]

更多文档,请参考/usr/src/linux/Documentation/video4linux/README.saa7134 和/usr/src/linux/Documentation/video4linux/CARDLIST.tuner

后面的内容会用到 card号(card)和 tuner型号(tuner type)。一般来说,编译完模块并加载到内核之后,可以通过 dmesg命令查看,结果显示为:

...saa7134[0] subsystem: xxxx:xxxx board: xxxxxxxxxx (saa7134) [card=yy, insmod option]...tuner: type set to zz (xxxxxxxx) by saa7134[0]...

其中,yy表示 card号(card number),zz表示 tuner型号(tuner type)。

2. 模块设置若想硬件正常运行,需要调整内核,并加载正确的模块。

# cd /usr/src/linux# make menuconfig

可将Video For Linux 编译到内核(这样做需重启机器);或者将其做为模块加载。不过saa7134模块必须作为模块加载,因为加载驱动时,需要传递一系列参数给它。

注:必须首先添加 I2C support,才能在V4L列表中看到 SAA7134模块。

Linux Kernel Configuration: Device Drivers  Multimedia devices ---> <M> Video For Linux (config: CONFIG_VIDEO_DEV, module: videodev) Video For Linux ---> <M> Philips SAA7134 support (config: CONFIG_VIDEO_SAA7134, module: saa7134)

还要把 i2c_core模块加载到内核。

Linux Kernel Configuration: Device Drivers  I2C support ---> <M> I2C support (config: CONFIG_I2C, module: i2c_core)

Page 6: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

< > I2C device interface

对于 2.6.18内核来说:

Linux Kernel Configuration: Device Drivers  Multimedia devices ---> <M> Video For Linux Video Capture Adapters ---> <M> Philips SAA7134 support <M> Philips SAA7134 DMA audio support

2.6.18内核中的 i2c_core模块如下

Linux Kernel Configuration: Device Drivers  I2C support ---> <M> I2C support

保存 kernel设置,编译并安装内核模块

# make modules modules_install

Genkernel 用户执行以下命令

# genkernel --menuconfig all

以下各部分,需根据你所使用的内核版本做适当调整。

警告:切记不要将 saa7134 support编译进内核; 必须以模块形式加载!

3. 硬件检测注:有些情况下,让 TV tuner正常工作并不像加载模块一样简单,也不像启动收视软件一样容易。在能正常收看电视节目之前,需首先进行一下硬件检测。

要检测到正确的 card和 tuner型号有两种方法:一种是使用 I2C来扫描总线(bus),这种方法可能起作用,也可能不起作用; 另一种方法是手动指定 card号和 tuner号。

3.1 i2c扫描

如果你系统使用的是新版内核,可以使用新的方法:用 i2c来扫描 card和 tuner型号。理想情况下,你只需在加载内核时使用 i2c_scan=1这个参数,系统会自动检测。

modprobe saa7134 i2c_scan=1

还是那句话,对你的机器来说,这个方法可能管用,也可能不管用。如果管用,将这个参数加入默认设置里。

echo "options saa7134 i2c_scan=1" > /etc/modules.d/saa7134modules-updatemodprobe saa7134

如果此方法对你的机器不管用,可以自己添加 card和 tuner参数,手动选择合适的型号。

Page 7: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

注:本文不只针对Gentoo这个发行版,也适用于众多其他的发行版本。对于Debian/Ubuntu来讲,上面的内容应该改为:

echo "options saa7134 i2c_scan=1" > /etc/modprobe.d/saa7134modprobe saa7134

3.2 card和 tuner

加载模块时,需要传递两个参数:card和 tuner。

即使传递了错误的参数,模块也能顺利加载,但是不报错并不等于能够正常运行。你需要费点周折,找到最适合的参数,不过这么做绝对值得,因为如果配置的正确,tuner会为您带来绚丽的画面。

摘自 v4l2 driver FAQ

“不过,运气不佳得话,可能很难直接检测到正确的 tuner型号。对于某些 TV card来说,已经有办法可以间接的找到合适的 tuner型号,例如,分析保存在 card内 eeprom中的配置信息。对大多数 card来说,其驱动仅包含 hardcoded 默认值(hardcoded default value)。这些驱动能适应大多数情况,不过,也有不少例外,有的生产厂家根据产品所售地区不同,而将 TV card搭配不同的 tuner销售(向欧洲销售 PAL tuner,向美国销售NTSC tuner),目前还无法了解每块卡配备的具体 tuner类型。

3.2.1 card

可以运行 pciutils包中的 lspci命令检测 card类型。

Code: lspci  # lspci ... 0000:01:07.0 Multimedia controller: Philips Semiconductors SAA7133 Audio+video broadcast decoder (rev 10) ...

参见/usr/src/linux/Documentation/video4linux/CARDLIST.saa7134 来查找card号(或查看上文中的列表)。找到之后,加载模块时,加入参数 card=x,x代表 card号。

在下例中,通过上文中的列表可知,LifeView FlyVIDEO3000对应的 card号是 2:

# modprobe saa7134 card=2

可以运行上文中提到的 dmesg命令来查看。

3.2.2 tuner

还需要从 tuner列表中选择 tuner号,可参考/usr/src/linux/Documentation/video4linux/CARDLIST.tuner 或下表:

tuner=0 - Temic PAL (4002 FH5)tuner=1 - Philips PAL_I (FI1246 and compatibles)tuner=2 - Philips NTSC (FI1236,FM1236 and compatibles)tuner=3 - Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)

Page 8: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

tuner=4 - NoTunertuner=5 - Philips PAL_BG (FI1216 and compatibles)tuner=6 - Temic NTSC (4032 FY5)tuner=7 - Temic PAL_I (4062 FY5)tuner=8 - Temic NTSC (4036 FY5)tuner=9 - Alps HSBH1tuner=10 - Alps TSBE1tuner=11 - Alps TSBB5tuner=12 - Alps TSBE5tuner=13 - Alps TSBC5tuner=14 - Temic PAL_BG (4006FH5)tuner=15 - Alps TSCH6tuner=16 - Temic PAL_DK (4016 FY5)tuner=17 - Philips NTSC_M (MK2)tuner=18 - Temic PAL_I (4066 FY5)tuner=19 - Temic PAL* auto (4006 FN5)tuner=20 - Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)tuner=21 - Temic NTSC (4039 FR5)tuner=22 - Temic PAL/SECAM multi (4046 FM5)tuner=23 - Philips PAL_DK (FI1256 and compatibles)tuner=24 - Philips PAL/SECAM multi (FQ1216ME)tuner=25 - LG PAL_I+FM (TAPC-I001D)tuner=26 - LG PAL_I (TAPC-I701D)tuner=27 - LG NTSC+FM (TPI8NSR01F)tuner=28 - LG PAL_BG+FM (TPI8PSB01D)tuner=29 - LG PAL_BG (TPI8PSB11D)tuner=30 - Temic PAL* auto + FM (4009 FN5)tuner=31 - SHARP NTSC_JP (2U5JF5540)tuner=32 - Samsung PAL TCPM9091PD27tuner=33 - MT20xx universaltuner=34 - Temic PAL_BG (4106 FH5)tuner=35 - Temic PAL_DK/SECAM_L (4012 FY5)tuner=36 - Temic NTSC (4136 FY5)tuner=37 - LG PAL (newer TAPC series)tuner=38 - Philips PAL/SECAM multi (FM1216ME MK3)tuner=39 - LG NTSC (newer TAPC series)tuner=40 - HITACHI V7-J180ATtuner=41 - Philips PAL_MK (FI1216 MK)tuner=42 - Philips 1236D ATSC/NTSC daul intuner=43 - Philips NTSC MK3 (FM1236MK3 or FM1236/F)tuner=44 - Philips 4 in 1 (ATI TV Wonder Pro/Conexant)tuner=45 - Microtune 4049 FM5tuner=46 - Panasonic VP27s/ENGE4324Dtuner=47 - LG NTSC (TAPE series)tuner=48 - Tenna TNF 8831 BGFF)tuner=49 - Microtune 4042 FI5 ATSC/NTSC dual intuner=50 - TCL 2002Ntuner=51 - Philips PAL/SECAM_D (FM 1256 I-H3)tuner=52 - Thomson DDT 7610 (ATSC/NTSC)tuner=53 - Philips FQ1286tuner=54 - tda8290+75tuner=55 - TCL 2002MBtuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4)tuner=57 - Philips FQ1236A MK4tuner=58 - Ymec TVision TVF-8531MF/8831MF/8731MFtuner=59 - Ymec TVision TVF-5533MFtuner=60 - Thomson DDT 7611 (ATSC/NTSC)tuner=61 - Tena TNF9533-D/IF/TNF9533-B/DF

Page 9: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

tuner=62 - Philips TEA5767HN FM Radiotuner=63 - Philips FMD1216ME MK3 Hybrid Tunertuner=64 - LG TDVS-H062F/TUA6034tuner=65 - Ymec TVF66T5-B/DFFtuner=66 - LG NTSC (TALN mini series)tuner=67 - Philips TD1316 Hybrid Tunertuner=68 - Philips TUV1236D ATSC/NTSC dual intuner=69 - Tena TNF 5335 MF

如果在表中没发现你所使用的 tuner号,可以反复测试,找到最适合的;或者用上文提到的dmesg命令。

# modprobe saa7134 card=2 tuner=1# tvtime# rmmod saa7134# modprobe saa7134 card=2 tuner=2# tvtime...

也可以用其他方法:

#/bin/shMAXTUNER=69for i in $(seq 0 $MAXTUNER);do rmmod tuner saa7134 modprobe saa7134 card=25 tuner=$i echo "Actual tuner is:" $i sleep 1 # this is to make sure /dev/video is registered when tvtime starts tvtimedone

把上面的代码写到 probe_tuner.sh中,以 root身份运行。

如果当地电视采用的是NTSC格式,就要使用NESC tuner。若使用 PAL格式,则使用 PAL tuner。

要明白,不止一种 tuner类型适合你的 card,有的 tuner能和 card配合得较好,有的则配合得较差。所以找到第一个合适的 tuner之后,应该再去找下一个。检查 tuner型号是否工作正常的时候,也最好多查几个频段。

有了 card号和 tuner号之后,就可以加载模块了。

# modprobe saa7134 card=2 tuner=2

注意:有需要的话,可以根据每个人的 card以及设置不同,分别加载 tuner。对于我用的卡来说,加载 tuner后,一切运转正常。

# modprobe tuner模块加载后,会在/dev/v4l/目录下生成 radio0, vbi0 和 video0。像freevo,kdetv,mythtv,tvtime这些程序会用到这些 video4linux设备。

如果想删除该模块,改用别的参数的话,可以使用 rmmod这个命令。要想实现这个功能,编译内核时必须激活module unload这个选项。

# rmmod saa7134

Page 10: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

让系统启动时加载模块:

# echo "saa7134" >> /etc/modules.autoload.d/kernel-2.6

或者 emerge clodplug, 并加入到启动初始化教本中

# emerge coldplug# rc-update add coldplug boot

3.3 更多模块选项

警告:强烈建议大家不要参考这部分内容,因为该部分内容需要更新。对于 2.16.x内核来说,DMA sound(直接从 PCI总线上抓取的声音)已经从 saa7134模块中分离出去,分成了两个部分,saa7134-alsa和 saa1734-oss。因此下文的大部分内容已经过时了。

加载模块时,可以传递更多参数,包括:oss,oss_rate,radio_nr,mixer_nr,vbi_nr和video_nr。

以_nr结尾的参数在设备发生冲突时,允许你指定在/dev目录下注册 card的设备编号。默认情况下,无须使用这些参数,因为模块会在编号列表中选择下一个未使用的编号自动注册。

例如:加载 card并注册该设备为/dev/video2。

# modprobe saa7134 video_nr=2

The oss option will enable both a dsp and mixer device in /dev/sound so that you can record audio using the tuner's audio. Just pass a 1 to enable it. 

oss参数会激活/dev/sound中的 dsp和mixer设备,以便能够使用 tuner的音频设备录制声音。将 oss的值设为 1即可激活。

# modprobe saa7134 oss=1

除了 oss参数之外,新增加的 saa4134-alsa模块(好像从 2.6.15内核开始增加的该模块,之前的版本不知是否由有此模块)在功能上和上面说的 oss参数大致相同(oss参数无法在2.6.15内核下使用)。对于我的 card (Medion 5044, card=9, tuner=38, audio_clock_override=0x200000)来说,声道 2(line,2 channel )有声音,并会生成/dev/sound/dsp1设备。如果上面讲的 oss=1不管用的话,可以试试以下方法。

# modprobe saa7134# modprobe saa7134-alsa

找到了适合你的模块配置,将其添加到 /etc/modules.d/saa7134中,这样就不用每次都设置该参数了

# echo "options saa7134 card=2 tuner=2 oss=1" > /etc/modules.d/saa7134# update-modules# modprobe saa7134

3.4 dmesg输出结果

假设一切加载正常的话,会看到类似的 dmesg输出结果:

Page 11: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

# modprobe saa7134 card=2 tuner=2 oss=1 dsp_nr=1 mixer_nr=1 video_nr=0# dmesg

saa7133[0]: found at 0000:02:0c.0, rev: 16, irq: 5, latency: 32, mmio: 0xda800000saa7133[0]: subsystem: 5169:0138, board: LifeView FlyVIDEO3000 [card=2,insmod option]saa7133[0]: board init: gpio is 39800saa7133[0]: there are different flyvideo cards with different tunerssaa7133[0]: out there, you might have to use the tuner=<nr> insmodsaa7133[0]: option to override the default value.saa7133[0]: registered input device for IRsaa7133[0]: dsp access wait timeout [bit=WRR]saa7133[0]: dsp access wait timeout [bit=WRR]saa7133[0]: dsp access wait timeout [bit=WRR]tuner 1-0061: chip found @ 0xc2 (saa7133[0])tuner 1-0061: type set to 2 (Philips NTSC (FI1236,FM1236 and compatibles))saa7133[0]: i2c eeprom 00: 69 51 38 01 10 28 ff ff ff ff ff ff ff ff ff ffsaa7133[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffsaa7133[0]: i2c eeprom 20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffsaa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffsaa7133[0]: registered device video0 [v4l2]saa7133[0]: registered device vbi0saa7133[0]: registered device radio0saa7133[0]: registered device dsp1saa7133[0]: registered device mixer1

4. 音频设置警告:强烈建议大家不要参考这部分内容,因为其内容需要更新。要使声卡正常运行,基本方法是:1) 编译并加载 saa7134-alsa模块,card取消静音后,MythTV可正常录制节目;'v4lctl volume mute off' (emerge xawtv for v4lctl)。

译者注:强烈建议大家仔细看看该部分内容,对于我们日常的工作很有用。

使用 TV card录制声音,有两种方法:一则,使用音频线,一端连接 card 音频输出口,一端连接电脑音频输入口(line 或者mic);其二,使用 card板载的mixer设备录制声音。

有些 card尽管有 composite video输入口和 S-video输入口,但并没有音频输入口,只能通过 TV天线。至少有一些 card,能够通过 TV输入口录制声音,同时通过 s-video输入口录制图像。如果你用的内核版本 saa173x模块与ALSA冲突,造成系统死机的话,可以照以上方法做(TV输入口录制声音,s-video输入口录制图像)。

比如,假设你有一台模拟摄像机,想录制声音和图像。接线方法如下:

摄像机 ­­> S­Video ­­> card

摄像机 ­­> Composite audio ­­> RF 转接设备,VCR 等 ­­> Tv 信号 ­­> card如果想使用 card板载的mixer设备的话,加载模块时需要加上 oss=1这个参数。这样会注册/dev/dsp1和//dev/mixer1两个设备。也可以在加载内核时加上 dsp_nr=x和mixer_nr=x这两个参数,来修改 dsp号和mixer号。

注:说的更具体些,模块加载时,传递 oss参数,模块会为/dev下的 dsp和mixer生成设备编号。记住,设备节点从数字 0开始而非从 1开始.

Page 12: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

如果您使用的是ALSA+OSS模拟声卡或OSS模拟声卡的话,则已经占用了/dev/dsp和/dev/mixer设备。如果这两个设备未被占用,则模块会生成/dev/dsp和/dev/mixer设备。如果有多块ALSA+OSS声卡或OSS声卡的话,则系统会注册尚未占用的设备节点。

如果不太确定的话,你可能使用的是OSS (through ALSA or not),dsp1和mixer1将成为新的设备节点。

模块加载后,需要使用mixer来更改设置,然后就可以录制声音了。默认情况下,录制设备的设置并不正确,录制的东西没有声音。

Aumix是少数 portage包(emerge: aumix)中能够控制多个mixer设备,编辑mixer设置 的软件之一。 安装 aumix之后,运行以下带参数的命令,来编辑/dev/mixer1。

$ aumix -d /dev/mixer1 -I

参数-d 告诉 aumix开启哪个mixer设备。默认情况下,会开启/dev/mixer或/dev/mixer0。参数-I表示互动模式,会打开 console模式或X window程序。

“默认情况下, R”(录制)设备会被设置成Video。将它改为其他参数(比如 Line1 或Line2),来录制 card上的声音。Aumix在 console模式下,用箭头键选择 Line1 或Line2,空格键选择某一设备为录制设备。在X window下,用鼠标选择某一设备,便会在其旁边出现红色小框。保存设置,退出。

你不用操心如何对 tuner的mixe设置音量。

如果不想每次系统启动后都要手动设置mixer,aumix仅用一个简单的命令就能实现。

下例中,将/dev/mixer1的录制设备设置成 Line1:

$ aumix -d /dev/mixer1 -1 R

可以在/etc/conf.d/local.start中添加这行,以便能够在系统启动时自动运行。

# echo "aumix -d /dev/mixer1 -1 R" >> /etc/conf.d/local.start

注:启动时运行 aumix初始化脚本 (/etc/init.d/aumix) 并不能设置 TV tuner。Runlevel脚本只能对默认设备/dev/mixer进行mixing设置。

注 :对 2.6.16 内核来说,已经把声音变为两个独立的模块: saa7134-oss和 saa7134-alsa。希望自己编译安装 saa7134-oss模块的话(比如,使用借助 sox功能的混合DVB card “收看模拟电视时,希望听到声音), 必须先激活 Open Sound System (DEPRECATED)”

Tvtime和声音

若想使用 card上的 dma输出口录制声音,可以借助 sox。我用的是 tvtime和 sox。在tvtime里,我用 pcm控制声音,不过关闭 tvtime后 pcm会被静音。经过一番周折,我写了如下 bash脚本:

#!/bin/shsox -c 2 -s -w -r 32000 -t ossdsp /dev/dsp2 -t ossdsp -w -r 32000 /dev/dsp &tvtime --mixer=/dev/mixer:pcmwait tvtimet=`pidof sox`;

Page 13: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

kill $t;amixer -c 0 sset PCM 80%,80% unmute

希望对大伙有用。

就算你的系统只有 alsa,我也建议你使用基于 oss模拟的 sox方法,因为声音时滞方法比下面介绍的单纯 alsa方法控制更好用。上在上例中,sox仅仅从一个 dsp设备复制原始声音数据到另一个 dsp设备,没有太多的缓冲,从而在 arecord|aplay样本中减少了时滞。最后,我对上面的脚本稍事修改,以便在杀掉 sox进程时更加的安全,也避免了 tvtime启动时模拟 tuner同步产生的噪音。

#!/bin/sh(sleep 5; amixer -q -c 0 sset PCM 80%,80% unmute; exec sox -q -c 2 -s -w -r 32000 -t ossdsp /dev/dsp2 -t ossdsp -w -r 32000 /dev/dsp) &tvtime --mixer=/dev/mixer:pcmkill `ps | awk '/sox/ && !/awk/ {print $1}'`amixer -q -c 0 sset PCM 80%,80% unmute

If you don't want bother with sox and OSS emulation, a better way to start tvtime with DMA sound would be: 

如果不想这么麻烦用 sox和OSS模拟的话,更好的办法就是打开 tvtime时配合使用DMA声音:

tvtime | arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | aplay -

根据大家的实际情况,更改 hw:1,0。

5. 录制电视节目有许多软件可以利用 tuner card录制电视节目。本文仅简要介绍如何配置mencoder(emerge: mplayer). 至于如何设置mplayer以及如何使用mencoder,请参考mencoder howto。

本文还将介绍如何利用 card上的音频处理器来录制声音,而不用从 tuner连线到声卡上录制声音。

5.1 用不到的模块

对于那些喜欢钻研的家伙,会尝试修改不同的参数。不过我可以保证,以下模块你根本用不到,帮你节省点时间吧。:)

• bt878模块• bttv声音模块• 所有OSS声音模块(当然,除非你的声卡需要这些模块)

5.2 v4lctl设置

If you haven't already, you will need to emerge media­tv/xawtv so that you can have access to the v4lctl program. 

Page 14: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

需要安装 xawtv(emerge media­tv/xawtv),才能使用 v4lctl程序

注:使用MPlayer或 Tvtime 收看电视时并不需要装 xawtv。

通过 tuner card来录制电视节目(或收看电视节目),有时需要设置许多地方。进行配置的时候随时做好记录,记下哪些配置起作用,哪些不起作用。

装好 xawtv之后,接下来,配置 v4lctl,之后便能正常收看电视。

运行以下命令,查看当前设置:

# v4lctl list

默认配置(第四列)可能不适用于你的系统。可以使用 v4lctl命令来修改设置,将其变回应该的状态。请参考 man v4lctl

设置 v4lctl 有两种方法:运行 "v4lctl <setcommand> <value>" 或 "v4lctl setattr <attrname> <value>"。可以运行"v4lctl show <attrname>"来查看每项设置。

若想让你的 TV card正常工作,正常录制,能够使用 card上的音频设备的话,最关键的两个设置是:制式类型(norm)和输入类型(input)。调整音大小或静音对于能否录制声音并无太大作用。

以下举例说明如何设置 v4lctl。如果已经在"v4lctl list"中显示正确的话,则不必做任何修改。

将 TV 制式类型(TV norm)设置为NTSC:

# v4lctl setnorm NTSC

将 TV 输入类型(TV input)设置为 Television:

# v4lctl setinput Television

注: 据我所知, Lifeview FlyVideo 3000 电视卡自带一个 S-Video输入口。从逻辑上来说, 只要把 v4lctl输入类型设为 S-Video,该卡就应该能正常工作,虽然我自己从来没试过。

将 TV的声音模式(audio mode )设为 stereo:

# v4lctl audio stereo

5.3 Mplayer与Mencoder

既然 v4lctl已经设置好了,下一步就要实际看看到底能不能正常收看电视了。我个人建议安装和使用 tvtime(emerge: media-tv/tvtime),因为该软件的设置界面非常好用。将有线电视线缆连接到 TV card,打开 tvtime,就可以正常收看电视节目了。

mplayer和mencoder收看和录制电视节目时,使用各自的配置文件,在~/.mplayer/目录下。可以修改配置文件并保存(mplayer的配置文件是~/.mplayer/config,mencoder的是~/mplayer/mencoder),这样就不必每次输入命令时再添加参数。

Page 15: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

下面的~/.mplayer/config范例用来设置电视。很抱歉,我只能按照美国的标准设置,因为我只能收到美国的信号:

mplayer tv:// -tv driver=v4l2:device=/dev/video0:fps=29.97:chanlist=us-cable:audiorate=32000: adevice=/dev/dsp1:input=0:amode=1:normid=4

以下是欧洲国家的设置,包括未安装 xawtv时 norm/input/audio的设置。这对于手动搜索频道 以及查看每个部分是否运行正常 ( 在 Mplayer里,h和 k是变换频道的默认键) 来讲十分有用。

mplayer tv:// -tv driver=v4l2:norm=PAL:input=0:amode=1:width=384:height=288 :outfmt=yuy2:device=/dev/video0:chanlist=europe-west:channel=E2

找到每个频道播放的节目之后,可以定制自己的频道列表,下面是我的:

mplayer tv:// -tv driver=v4l2:norm=PAL:input=0:amode=1:width=768:height=576:outfmt=yuy2 :device=/dev/video0:chanlist=europe-west:channels=E5-SVT1,E7-SVT2,E10-TV3,E8-TV4,SE18-Kanal_5 ,SE14-TV4plus,SE12-Discovery_Mix,E11-Eurosport,SE8-SVT24,E9-ZTV,SE15-MTV,SE11-LokalTV

如想查看所有频率和频道列表,请参考这个网址

我来解释一下包含的参数:

• driver=v4l2 ­  使用 video4linux驱动第二版(都要设成这个)

• device=/dev/video0 ­ /dev下 TV tuner card设备

• fps=29.97 ­ 电视显示帧率(可选)• chanlist=us­cable ­  可选择范围: europe-east, europe-west, us-bcast, us-cable等(必选一个)

• audiorate=32000 ­ 仅针对mencoder,设置音频抓取 bit 率(必选!! saa7134仅录制该 bit率的声音)

• adevice=/dev/dsp1 ­  加载 saa7134 模块时,如果选择 oss=1参数时,系统生成的设备。(DMA音频必选项!!如果使用音频线将 TV卡和声卡相连,则不须设置该项)

• input ­ 指定输入设备(默认:0(TV),从 consle输出中查看可选择的输入设备列表)( 参见 man mencoder)

• amode ­ 声音模式 0: mono, 1: stereo, 2: language 1, 3: language 2( 参见 man mencoder)

• normid ­ 设置 TV制式(TV norm )到给定数字代码。 TV 制式根据 capture card的 不同而有差异。 从 consle输出中查看可选择的 TV制式列表( 参见 man mencoder)

注:在mplaer手册中会常常看到"从 consle输出中查看某某列表(see the console output for a list of <whatever> list of values.)"。可运行"mplayer ( 或 mencoder) -v ..."查看实际数值。例如:

# mencoder tv:// -endpos 1 -ovc copy -oac copy -v .... TV detected!;-) Selected driver: v4l2 name: Video 4 Linux 2 input author: Martin Olschewski <[email protected]>

Page 16: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

comment: first try, more to come;-) Selected device: LifeView FlyVIDEO3000 Tuner cap: STEREO LANG1 LANG2 Tuner rxs: MONO STEREO Capabilites: video capture video overlay VBI capture device tuner read/write streaming supported norms: 0 = PAL; 1 = PAL-BG; 2 = PAL-I; 3 = PAL-DK; 4 = NTSC; 5 = SECAM; 6 = PAL-M; 7 = PAL-Nc; inputs: 0 = Television; 1 = TV (mono only); 2 = Composite1; 3 = Composite2; 4 = S-Video; Current input: 0 .... v4l2: set input: 0 Selected norm: ntsc v4l2: set norm: NTSC v4l2: set width: 640 v4l2: set height: 480 Selected channel list: us-cable (including 133 channels) Current frequency: 0 (0.000) ==> Found video stream: 0 v4l2: get format: YUV420 v4l2: get fps: 29.000000 v4l2: get width: 640 v4l2: get height: 480 v4l2: set audio samplerate: 32000 v4l2: get audio format: 16 ==> Found audio stream: 0 v4l2: get audio samplerate: 32000 v4l2: get audio samplesize: 2 v4l2: get audio channels: 2 TV audio: 2 channels, 16 bits, 32000 Hz

运行命令时加上-v,可以获得mplayer/mencoder运行时的详细信息,如果设置不正确时,可以看到详细内容。

想看某一频道的话,使用参数 tv://。如果不指定频道,则默认情况下,转到上一次最后收看的频道。

看 39频道

$ mplayer tv://39

若想了解更多可选参数,请查阅 man mencoder。以下仅介绍几个最有用的:

• forcechan=<1­2> ­ 默认情况下,录制声道的数量会通过查询 TV card的音频模式来自动识别。这个参数可以强制以 stereo/mono模式录制,不管 amode参数如何设置,也不管 v4l返回的数值是多少。该参数在 TVcard无法报告当前音频模式时,用于故障排错。( 参见 man mencoder)

• channel=<value> ­ 设置 tuner 到某一频道(参见 man mencoder)

使用mencoder录制节目时,可以输入:

mencoder tv:// -tv driver=v4l2:norm=PAL:fps=25:outfmt=yuy2:quality=0:input=0:width=720:height=578:cha

Page 17: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

nlist=europe-west:volume=80:amode=1:normid=0:audiorate=32000:adevice=/dev/sound/dsp2:channel=SE13 \ -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1500:keyint=25 \ -oac mp3lame -lameopts cbr:br=128:mode=0 \ -endpos 01:00:00 \ -vf pp=hb/vb/dr/al/lb,denoise3d \ -o videocap.avi

我来解释一下传递的参数(其他参数,见上文):

• width=720 and height=578 ­ 设置录制屏幕大小• volume=80 ­ 设置 tvcard mixer声音大小

• ­ovc lavc ­ 选择 lavc作为视频编码

• vcodec=mpeg4 ­ 设置编码为mpeg4

• vbitrate=1500 ­ 设置视频 bit率为可变 bit率,值为 1500

• keyint=25 ­ 每分钟设置一个关键帧• ­oac mp3lame ­ 选择mp3lame作为音频编码

• cbr:br=128:mode=0 ­ 设置音频 bit率为 128kbps,模式为 stero

• ­endpos 01:00:00 ­  每小时录制一段流媒体 (格式: HH:MM:SS)

• ­vf pp=hb/vb/dr/al/lb,denoise3d ­  设置过滤 (详见 "man mencoder" )

• ­o videocap.avi ­ 设置输出文件名 这些参数应该能够保证录制正常。当然,你也可以把录制屏幕大小设为 640x480,后期再

做剪裁。好玩儿吧。

5.4 MythTV

设置 MythTV很简单, 只需运行 mythtv-setup,添加 card,设置视频设备,就能够正常收看了。

不过,记得把声音频率调成 32000,不然什么声音都听不到哦。

如果使用独立的声音设备,记得也要做相应设置。

关于MythTV的使用方法,请参考HOWTO Use MythTV.

6. 使用 DVB-T如果您的 card支持DVB-T,编译内核时需要做以下设置:

Symbol: VIDEO_SAA7134_DVB [=m]Prompt: DVB Support for saa7134 based TV cards Defined at drivers/media/video/Kconfig:250 Depends on: VIDEO_DEV && VIDEO_SAA7134 && DVB_CORE

Location: -> Device Drivers -> Multimedia devices

Page 18: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

-> Video For Linux (VIDEO_DEV [=m]) -> Video For Linux -> Philips SAA7134 support (VIDEO_SAA7134 [=m])Selects: VIDEO_BUF_DVB && DVB_MT352

然后加载编译好的 saa7134-dvb模块。

另外,还需要找到与您的 card相对应的 tuner。通过 saa7134-dvb.c,可以查看所支持的配置。该 tuner需要加载固件。

使用/usr/src/linux/Documentation/dvb/get_dvb_firmware 脚本找出合适的 firmware。 根据你系统的热插拔设置,将找到的 xxx.fw复制到/lib/firmware或

/usr/lib/hotplug/firmware中。

如果安装过程一切正常,但仍无法使用扫描 tune的话,按照如下方法设置:检查/var/log/messages中是否包含一行"v4l2 driver version" 。如果版本显示 0.2.14,可以试着用个比

较老的版本替代它。 0.2.14版对于 300i有 tuning问题。要注意 Pinnacle 300i是一块混合型的card,可以既安装 tv tuner也安装 dvb­t tuner。对于 dvb­t tuner 来说, 2.6.12, 2.6.13和 2.6.13.1

内核中的 video4linux驱动不起作用。

有两种方法可以下载驱动源代码。第一种方法是下载驱动 snapshot: wget http://linuxtv.org/hg/v4l-dvb/archive/tip.tar.bz2 tar xjf tip.tar.bz2 cd $(tar tf tip.tar.bz2 | head -n1 | cut -d/ -f1)

第二种方法是克隆软件库(repository) hg clone http://linuxtv.org/hg/v4l-dvb cd v4l-dvb

如果已经有克隆软件库的话,更新一下即可:

cd v4l-dvb make clean hg pull -u

然后,不管你用哪种方法获得源代码,运行:

make make install

这么做将直接覆盖/lib/modules/<kernel­version>/..中已安装的 dvt­t相关的内核模块。如果遇到编译错误(针对 2.6.13.1),到/usr/src/video4linux 目录下,打开两个文件 msp3400.c和 video­buf­dvb.c,找到包含"refrigerator"的那行,删掉括号之间的内容,但是不要删掉括号。如果300i是您唯一一块 tuner card ,也可以打开 Make.config ,在 CX88 相关的三行中,将所有的"m" 替换成"n"。这些步骤可以解决陈旧的 video4linux源代码和新内核 header之间不兼容的

问题。真心希望 video4linux的开发人员能够从根本上解决该问题,不然实在太恶心了。要注意,如果安装了新内核,还要重复以上步骤,当然,仅在新内核碰到类似问题的情况下,才

重复以上步骤。如果还有问题,请发邮件给我 ingo|at|ingoschmiegel|dot|de (用@和.替换|at|和|dot|) 

Page 19: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

7. Card设置如果您的 TV tuner card 运行正常,请将 lspci的输出结果以及运行成功的模块参数一并列到下面。

ADSTech InstantHDTV 

• 01:07.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev 11) 

• modprobe saa7134 card=90 • modprobe saa7134_alsa • modprobe tuner 

以上设置能让NTST tuner工作正常。加载 saa7134_dvb 模块可以激活ATSC设备。不过,我这里接收不到ATSC信号,所以无法测试。这块 card的相关文档很少,windows下文档的也不多。

ASUS TV­FM PCI 

• 01:06.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev f0) 

• modprobe saa7134 card=25 tuner=14 #this tuner is for colombian users 

ASUS TV­FM PCI ­ PAL version 

• 01:08.0 Multimedia controller: Philips Semiconductors SAA7134/SAA7135HL Video Broadcast Decoder (rev 01) 

• card=16 tuner=38 (Optional setting, card worked perfectly on auto­detection) 

EasyLite 

• 01:06.0 Multimedia controller: Philips Semiconductors SAA7134/SAA7135HL Video Broadcast Decoder (rev 01) 

• card=2 tuner=37 • card=3 tuner=37 

Intex PC TV Capture 

• 00:09.0 Multimedia controller: Philips Semiconductors SAA7130 Video Broadcast Decoder (rev 01) 

• modprobe saa7134 card=3 tuner=14  

• 01:0a.0 Multimedia controller: Philips Semiconductors SAA7134 Video Broadcast Decoder (rev 01) 

• card=3 sold at roughly $18 nice value card 

Lifeview Flyvideo 2000 

• 01:09.0 Multimedia controller: Philips Semiconductors SAA7130 Video Broadcast Decoder (rev 

Page 20: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

01) • card=3 tuner=2 

Lifeview Flyvideo 3000 

• 02:0a.0 Multimedia controller: Philips Semiconductors SAA7133 Video Broadcast Decoder (rev 10) 

• card=2 tuner=2 

Lifeview Flydvb Trio 

• 05:02.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d0) 

• card=84 tuner=54 

Mercury TV Tuner 

• 0000:02:0b.0 Multimedia controller: Philips Semiconductors SAA7130 Video Broadcast Decoder (rev 01) 

• card=2 tuner=3 

MSI TV @nywhere Plus 

• 01:07.0 Multimedia controller: Philips Semiconductors SAA7133 Video Broadcast Decoder (rev d0) 

• card=82 tuner=54 

Pinnacle 50i 

• 02:0c.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d0) 

• card=77 tuner=54 

Pinnacle 310i 

• 02:00.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d0) 

• card=77 tuner=54 

Typhoon PCI Capture TV Card 

• 01:0a.0 Multimedia controller: Philips Semiconductors SAA7134 Video Broadcast Decoder (rev 01) 

• card=7 • card=2 tuner=37 #card autodetected, tuner tested in Germany 

Terratec Cinergy 250 PCI 

• 00:09.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d0) 

Page 21: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

• card=83 tuner=54 

Terratec Cinergy 400 

• 01:06.0 Multimedia controller: Philips Semiconductors SAA7134 Video Broadcast Decoder (rev 01) 

• card=8 tuner=5 (both autodetected) 

Compro DVB T200 

• 01:07.0 Multimedia controller: Philips Semiconductors SAA7130 Video Broadcast Decoder (rev 01) 

• card=71 (not autodetected correctly) 

Super TV PRO 

• 01:08.0 Multimedia controller: Philips Semiconductors SAA7130 Video Broadcast Decoder • saa7134 card=1 tuner=37 gbuffers=4 

ASUS MyCinema P7131 Hybrid 

• 00:0c.0 Multimedia controller: Philips Semiconductors SAA7133 Video Broadcast Decoder (rev d1) 

• saa7134 card=78 tuner=54 # for analog signal 

• Troubleshooting on card [1043:4876] • In /usr/src/linux/drivers/media/video/saa7134/saa7134­dvb.c, line 873, struct tda1004x_config 

philips_tiger_config • change the entry • .request_firmware = NULL, • to • .request_firmware = philips_tu1216_request_firmware, • run /usr/src/linux/Documentation/dvb/get_dvb_firmware and copy the dvb­fe­tda10046.fw to 

/lib/firmware • modprobe saa7134 card=78 gpio_tracking=1 • see http://www.spinics.net/lists/vfl/msg27672.html • STOP PRESS ­ the Mercurial version "emerge v4l­dvb­hg" gives the card a proper card number 

of 112. • The card can then be brought up with "modprobe saa7134 card=112 tuner=54 gpio_tracking=1 

i2c_scan=1". You may also need to modprobe saa7134­dvb and saa7134­alsa. This works now but may not continue to do so. 

KWorld Mpeg TV Station/PCI ­ KW­TV7134RF­PRO 

• 00:0b.0 Multimedia controller: Philips Semiconductors SAA7134 Video Broadcast Decoder (rev 01) 

• saa7134 card=3 tuner=5 

Page 22: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

• poor signal detection (a bit worse then on the original drivers/win98se), tested in poland 

Global TV Terminator 

• 00:0a.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d1) 

• card=65 tuner=54 

Hauppauge WinTV HVR­1100 

• 00:0c.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d1) 

• card=104 tuner=54 

Compro VideoMate TV Gold M350 

• 02:0c.0 Multimedia controller: Philips Semiconductors SAA7134/SAA7135HL Video Broadcast Decoder (rev 01) 

• card=59 tuner=23 

Kworld V­Stream Xpert TV PVR7134 

• 01:08.0 Multimedia controller: Philips Semiconductors SAA7134/SAA7135HL Video Broadcast Decoder (rev 01) 

• card=59 tuner=23 

8. 故障排除Card和 Tuner型号

如果你不知道 card和 tuner型号(杂牌电视卡),运行以下脚本:

#/bin/shMAXTUNER=71MAXCARD=94for j in $(seq 0 $MAXCARD);do for i in $(seq 0 $MAXTUNER); do pccardctl eject #I use pcmcia card end the card had to be ejected in order to apply new tuner and card numbers. You should delete this line if you use PCI card! rmmod tuner saa7134 tda9887 sync;sync sleep 1; modprobe saa7134 card=$j tuner=$i pccardctl insert #insert card back. You should delete the line if you use PCI card! echo "Actual tuner is:" $i "card: " $j sleep 1 # this is to make sure /dev/video is registered when tvtime starts

sync;sync; xdtv_scantv -n PAL-I -f pal-europe-west -v4l2 #xdtv_scantv is a fast

Page 23: SAA7134 - pudn.comread.pudn.com/downloads137/doc/project/584346/... · 2008. 10. 22. · 1. 概述 saa7134作为Linux内核中的video4linux模块,支持特定的PCI接口的TV

method of scanning. Change the options to you country. (-n PAL-I -f pal-europe-west works in the UK) donedone

注:检测所有的 card和 tuner需要很长时间。找到某个频道,只是表明信号和频道已经找 到了, 脚本并不会停止。

提示:你可能要给"tuner"模块设置额外的参数。例如,在法国,需要设置 secam=l:

# modprobe tuner secam=l

为了弄清楚我的 Pinnacle PCTV 310i为啥工作不正常,曾花了很长时间。为了解决声音问题(有的频道没声音,有的声音短短续续的),我对 saa7134模块加入了很多参数:

# modprobe saa7134 card=77 tuner=54 gbuffers=32 vbibufs=32 audio_ddep=10 tsbufs=32 alsa=1

可能这里面的参数并不真正起作用,但我的卡至少现在确实正常了。

9. 其他相关网址• Video4Linux Wiki    • Video4Linux Wiki: saa7134 Devices    • Video4Linux (Gerd Knorr's pages)    • saa7134 driver    • v4l2 drivers FAQ    • Video 4 Linux Resources    • bttv gallery    • LifeView FlyVideo 3000 in MythTV