Hauppauge WinTV-HVR1700 电视卡调试报告 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

A 准备工作

1 确认linux内核支持Hauppauge WinTV-HVR1700电视卡。
下载DVB驱动文件:sudo apt-get install mercurial  回车
                       hg clone http://linuxtv.org/hg/v<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />4l-dvb  回车
    打开cardlist查看,发现cardlists.23885里面有对Hauppauge WinTV-HVR1700电视卡的支持,如下:

 

  0 -> UNKNOWN/GENERIC                                     [0070:3400]

  1 -> Hauppauge WinTV-HVR1800lp                           [0070:7600]

  2->HauppaugeWinTV-HVR1800                      [0070:7800,0070:7801,0070:7809]

  3 -> Hauppauge WinTV-HVR1250                             [0070:7911]

  4 -> DViCO FusionHDTV5 Express                           [18ac:d500]

  5 -> Hauppauge WinTV-HVR1500Q                            [0070:7790,0070:7797]

  6 -> Hauppauge WinTV-HVR1500                             [0070:7710,0070:7717]

  7 -> Hauppauge WinTV-HVR1200                             [0070:71d1,0070:71d3]

  8 -> Hauppauge WinTV-HVR1700                             [0070:8101]

  9 -> Hauppauge WinTV-HVR1400                             [0070:8010]

 10 -> DViCO FusionHDTV7 Dual Express                      [18ac:d618]

 11 -> DViCO FusionHDTV DVB-T Dual Express                 [18ac:db78]

 12 -> Leadtek Winfast PxDVR3200 H                         [107d:6681]

 13 -> Compro VideoMate E650F                              [185b:e800]

 14 -> TurboSight TBS 6920                                 [6920:8888]

 15 -> TeVii S470                                          [d470:9022]

 16 -> DVBWorld DVB-S2 2005                                [0001:2005]

 17 -> NetUP Dual DVB-S2 CI                                [1b55:2a2c]

 18 -> Hauppauge WinTV-HVR1270                             [0070:2211]

 19 -> Hauppauge WinTV-HVR1275                             [0070:2215]

 20 -> Hauppauge WinTV-HVR1255                             [0070:2251]

 21 -> Hauppauge WinTV-HVR1210                             [0070:2291,0070:2295]

 22 -> Mygica X8506 DMB-TH                                 [14f1:8651]

 23 -> Magic-Pro ProHDTV Extreme 2                         [14f1:8657]

 24 -> Hauppauge WinTV-HVR1850                             [0070:8541]

 25 -> Compro VideoMate E800                               [1858:e800]

 26 -> Hauppauge WinTV-HVR1290                             [0070:8551]

 27 -> Mygica X8558 PRO DMB-TH                             [14f1:8578]

 28 -> LEADTEK WinFast PxTV1200                            [107d:6f22]

 

即确定Hauppauge WinTV-HVR1700×××芯片为cx23885,其card值为8
另外,从网上资料可查得其tuner值为38,如下:
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)

tuner=4 - NoTuner

tuner=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 HSBH1

tuner=10 - Alps TSBE1

tuner=11 - Alps TSBB5

tuner=12 - Alps TSBE5

tuner=13 - Alps TSBC5

tuner=14 - Temic PAL_BG (4006FH5)

tuner=15 - Alps TSCH6

tuner=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 TCPM9091PD27

tuner=33 - MT20xx universal

tuner=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-J180AT

tuner=41 - Philips PAL_MK (FI1216 MK)

tuner=42 - Philips 1236D ATSC/NTSC daul in

tuner=43 - Philips NTSC MK3 (FM1236MK3 or FM1236/F)

tuner=44 - Philips 4 in 1 (ATI TV Wonder Pro/Conexant)

tuner=45 - Microtune 4049 FM5

tuner=46 - Panasonic VP27s/ENGE4324D

tuner=47 - LG NTSC (TAPE series)

tuner=48 - Tenna TNF 8831 BGFF)

tuner=49 - Microtune 4042 FI5 ATSC/NTSC dual in

tuner=50 - TCL 2002N

tuner=51 - Philips PAL/SECAM_D (FM 1256 I-H3)

tuner=52 - Thomson DDT 7610 (ATSC/NTSC)

tuner=53 - Philips FQ1286

tuner=54 - tda8290+75

tuner=55 - TCL 2002MB

tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4)

tuner=57 - Philips FQ1236A MK4

tuner=58 - Ymec TVision TVF-8531MF/8831MF/8731MF

tuner=59 - Ymec TVision TVF-5533MF

tuner=60 - Thomson DDT 7611 (ATSC/NTSC)

tuner=61 - Tena TNF9533-D/IF/TNF9533-B/DF

tuner=62 - Philips TEA5767HN FM Radio

tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner

tuner=64 - LG TDVS-H062F/TUA6034

tuner=65 - Ymec TVF66T5-B/DFF

tuner=66 - LG NTSC (TALN mini series)

tuner=67 - Philips TD1316 Hybrid Tuner

tuner=68 - Philips TUV1236D ATSC/NTSC dual in

tuner=69 - Tena TNF 5335 MF

 

2 确认ubuntu能够识别电视卡
运行命令dmesg | grep "card"显示如下:
mousimin@ubuntu:~$ dmesg | grep "card"

[    1.531310] isapnp: Scanning for PnP cards...

[    1.939193] EISA: Detected 0 cards.

[   15.801731] iTCO_wdt: No card detected

[   16.103232] CORE cx23885[0]: subsystem: 0070:8101, board: Hauppauge WinTV-HVR1700 [card=8,autodetected]

[   16.670124] cx23885[0]: cx23885 based dvb card

识别为cx23885,并且card值为8,正确。
运行命令dmesg | grep "tuner"显示如下:
mousimin@ubuntu:~$ dmesg | grep "tuner"

[   16.555169] tveeprom 0-0050: tuner model is Philips 18271_8295 (idx 149, type 54)

idx type不知道为什么值,但这不影响后面的工作,因为后来的设置一般只用到card值。
运行lspci | grep CX23885,显示如下:
mousimin@ubuntu:~$ lspci | grep CX23885

03:00.0 Multimedia video controller: Conexant Systems, Inc. CX23885 PCI Video and Audio Decoder (rev 02)

信息正确,能够识别电视卡!
查看电视卡的设备文件,运行ls /dev/video0,显示如下:
mousimin@ubuntu:~$ ls /dev/video0

ls: 无法访问/dev/video0: 没有该文件或目录

不知道为什么原因。

 

B 安装TVTIME播放软件

运行命令sudo apt-get install tvtime安装,安装tvtime包会提示,第一项选PAL,第二项选China BoardCast
安装完毕以后运行TVTIME,电机右键,显示只有五项,没有MANAGE CHANNEL,显示无法访问/dev/video0,说明系统还没有识别卡芯片。

 

C 修改电视卡启动参数

本芯片对应的card值应该为8,但是系统的指定不一定准确,我们通过手工配置。
方法一:终端修改:
终端输入sudo rmmod cx23885
然后输入sudo modprobe cx23885 card=8
打开tvtime,发现还是没有MANAGE CHANNEL,仍然显示无法访问/dev/video0
方法二:直接修改电视卡启动参数即alsabase文件。
打开alsabase文件:sudo gedit /etc/modprobe.d/alsabase,文件显示如下:

 

# autoloader aliases

install sound-slot-0 /sbin/modprobe snd-card-0

install sound-slot-1 /sbin/modprobe snd-card-1

install sound-slot-2 /sbin/modprobe snd-card-2

install sound-slot-3 /sbin/modprobe snd-card-3

install sound-slot-4 /sbin/modprobe snd-card-4

install sound-slot-5 /sbin/modprobe snd-card-5

install sound-slot-6 /sbin/modprobe snd-card-6

install sound-slot-7 /sbin/modprobe snd-card-7

 

# Cause optional modules to be loaded above generic modules

install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe --quiet snd-ioctl32 ; : ; }

install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe -Qb snd-seq ; }

install snd-pcm /sbin/modprobe --ignore-install snd-pcm && { /sbin/modprobe --quiet snd-pcm-oss ; : ; }

install snd-mixer /sbin/modprobe --ignore-install snd-mixer && { /sbin/modprobe --quiet snd-mixer-oss ; : ; }

install snd-seq /sbin/modprobe --ignore-install snd-seq && { /sbin/modprobe --quiet snd-seq-midi ; /sbin/modprobe --quiet snd-seq-oss ; : ; }

install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi && { /sbin/modprobe --quiet snd-seq-midi ; : ; }

# Cause optional modules to be loaded above sound card driver modules

install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe -Qb snd-emu10k1-synth ; }

install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe -Qb snd-seq ; }

 

# Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)

install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe -Qb saa7134-alsa ; : ; }

 

# Load snd-seq for devices that don't have hardware midi;

#   Ubuntu #26283, #43682, #56005; works around Ubuntu #34831 for

#   non-Creative Labs PCI hardware

install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe -Qb snd-seq ; }

# Prevent abnormal drivers from grabbing index 0

options bt87x index=-2

options cx88_alsa index=-2

options saa7134-alsa index=-2

options snd-atiixp-modem index=-2

options snd-intel8x0m index=-2

options snd-via82xx-modem index=-2

options snd-usb-audio index=-2

options snd-usb-usx2y index=-2

options snd-usb-caiaq index=-2

# Ubuntu #62691, enable MPU for snd-cmipci

options snd-cmipci mpu_port=0x330 fm_port=0x388

# Keep snd-pcsp from beeing loaded as first soundcard

options snd-pcsp index=-2

 

从网上搜过很多帖子,但大部分都是关于saa71307134的芯片的电视卡问题,此种电视卡只需修改install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe -Qb saa7134-alsa ; : ; }   cardtuner值写上即可,但是我发现这个文件没有对cx23885芯片电视卡的支持描述,从网上找了关于其他芯片的修改方法如下:即在此文件添加一句 options cx23885 card=8 但是修改后仍然不起作用。

 

总结
可以确定的是,linux内核是支持Hauppauge WinTV-HVR1700电视卡的,并且其card值为8tuner值为38,系统能能够识别电视卡。
让我感到不解的是,网上有很多关于saa7134电视卡的问题(比如天敏大师系列),通过终端的修改方式是sudo rmmod saa7134
sudo modprobe saa7134 card=x,可是为什么对我们的cx23885不适合。另外对于电视卡启动参数的alsabase文件为什么只有对saa7134的描述而没有对cx23885的描述。这些有待下一步再做试验。