Difference between revisions of "Hauppauge WinTV-HVR-5500"

From LinuxTVWiki
Jump to: navigation, search
(adjust url of get_dvb_firmware)
 
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
A hybrid [[DVB-T]] & [[DVB-S]] &  [[DVB-S2]] & [[DVB-C]] card from [[Hauppauge]] with a PCIe 1x interface.
+
==Overview/Features==
 
+
* PCI-e x1 interface
It is almost identical to the [[Hauppauge WinTV-HVR-4400]] (difference is si2161 on HVR-4400 and si2165 on HVR-5500).
+
* Supports DVB-C, DVB-S2, DVB-S, DVB-T, Analog-TV / Video, FM-radio
 
+
Not fully supported (May 2014). Patch from Zzam for si2165 chip, DVB-C works.
+
 
+
DVB-S/2 confirmed working on Ubuntu 14.04 with downloaded firmware.
+
cd ~
+
mkdir get_dvb_firmware
+
cd get_dvb_firmware
+
wget https://raw.github.com/torvalds/linux/master/Documentation/dvb/get_dvb_firmware
+
chmod a+x get_dvb_firmware
+
./get_dvb_firmware tda10071
+
sudo cp dvb-fe-tda10071.fw /lib/firmware/
+
  
 
===Components Used===
 
===Components Used===
Line 22: Line 11:
 
* [[Silicon Labs]] [[Silicon Labs si2165|si2165-GM]] (Multi-Standard DVB-T and DVB-C Demodulator, i2c bus0, 7bit addr: 0x64, reset via GPIO_9)
 
* [[Silicon Labs]] [[Silicon Labs si2165|si2165-GM]] (Multi-Standard DVB-T and DVB-C Demodulator, i2c bus0, 7bit addr: 0x64, reset via GPIO_9)
 
* [[NXP/Philips TDA182xx|NXP TDA18271]] (silicon tuner IC for analog DVB-T and DVB-C, i2c bus1, 7bit addr: 0x60)
 
* [[NXP/Philips TDA182xx|NXP TDA18271]] (silicon tuner IC for analog DVB-T and DVB-C, i2c bus1, 7bit addr: 0x60)
* more
 
  
 
===Identification===
 
===Identification===
Line 74: Line 62:
 
Status: NegoPending- InProgress-
 
Status: NegoPending- InProgress-
 
</pre>
 
</pre>
 +
 +
==Making it Work==
 +
Not fully supported; DVB-T (merged) and DVB-C (experimental patch) should work with the latest Linux-kernel, modules and firmware(s).
 +
 +
===Firmware===
 +
cd ~
 +
mkdir get_dvb_firmware
 +
cd get_dvb_firmware
 +
wget https://raw.githubusercontent.com/torvalds/linux/master/scripts/get_dvb_firmware
 +
chmod a+x get_dvb_firmware
 +
./get_dvb_firmware si2165
 +
sudo cp dvb-demod-si2165.fw /lib/firmware/
 +
sudo depmod -a
 +
 +
===Drivers===
 +
A Linux 3.16 or higher kernel is recommended, because this provides fixes for some required modules.
 +
 +
DVB-C support hasn't been merged yet. There is however [https://patchwork.linuxtv.org/patch/25867/ a patch] (status: not updated for current branch) provided by zzam that should add DVB-C support.
 +
 +
An alternative patch provided by francoism90 for Linux 4.2 is available [https://github.com/francoism90/HVR-5500/blob/master/si2165_dvb-c_support.patch on his Github].
 +
 +
====Switch modes (DVB-C/DVB-T)====
 +
Since it is a hybrid card, it may be necessary to select the correct DVB-source:
 +
# dvb-fe-tool --adapter=1 --frontend=0 --set-delsys=DVB-C
 +
 +
===Sample Kernel Output===
 +
# dmesg
 +
[  225.165026] cx23885: disagrees about version of symbol altera_init
 +
[  225.165134] cx23885: Unknown symbol altera_init (err -22)
 +
[  231.254056] cx23885: module_layout: kernel tainted.
 +
[  231.254147] Disabling lock debugging due to kernel taint
 +
[  231.257328] cx23885 driver version 0.0.4 loaded
 +
[  231.257555] cx23885 0000:01:00.0: enabling device (0000 -> 0002)
 +
[  231.257861] CORE cx23885[0]: subsystem: 0070:c138, board: Hauppauge WinTV-HVR                                                                                                                                                            4400 [card=38,autodetected]
 +
[  231.585799] tveeprom 10-0050: Hauppauge model 121029, rev B3F5, serial# ****
 +
[  231.585895] tveeprom 10-0050: MAC address is 00:0d:fe:8a:5d:3e
 +
[  231.585973] tveeprom 10-0050: tuner model is NXP 18271C2 (idx 155, type 54)
 +
[  231.586061] tveeprom 10-0050: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/                                                                                                                                                            D1/K) ATSC/DVB Digital (eeprom 0xf4)
 +
[  231.586185] tveeprom 10-0050: audio processor is CX23888 (idx 40)
 +
[  231.586262] tveeprom 10-0050: decoder processor is CX23888 (idx 34)
 +
[  231.586340] tveeprom 10-0050: has radio, has IR receiver, has no IR transmitt                                                                                                                                                            er
 +
[  231.586430] cx23885[0]: warning: unknown hauppauge model #121029
 +
[  231.586507] cx23885[0]: hauppauge eeprom: model=121029
 +
[  231.603973] Chip ID is not zero. It is not a TEA5767
 +
[  231.604118] tuner 11-0060: Tuner -1 found with type(s) Radio TV.
 +
[  231.604376] tda18271 11-0060: creating new instance
 +
[  231.606534] TDA18271HD/C1 detected @ 11-0060
 +
[  231.935237] cx23885[0]: registered device video0 [v4l2]
 +
[  231.937179] cx23885[0]: registered device vbi0
 +
[  231.944390] cx23885[0]: registered ALSA audio device
 +
[  231.944484] cx23885_dvb_register() allocating 1 frontend(s)
 +
[  231.944557] cx23885[0]: cx23885 based dvb card
 +
[  231.962906] i2c i2c-10: a8293: Allegro A8293 SEC attached
 +
[  231.963375] DVB: registering new adapter (cx23885[0])
 +
[  231.963469] cx23885 0000:01:00.0: DVB: registering adapter 0 frontend 0 (NXP                                                                                                                                                              TDA10071)...
 +
[  231.965295] cx23885_dvb_register() allocating 1 frontend(s)
 +
[  231.965418] cx23885[0]: cx23885 based dvb card
 +
[  231.976091] i2c i2c-10: si2165: hardware revision 0x03, chip type 0x07
 +
[  231.976220] tda18271 11-0060: attaching existing instance
 +
[  231.976637] DVB: registering new adapter (cx23885[0])
 +
[  231.976709] cx23885 0000:01:00.0: DVB: registering adapter 1 frontend 0 (Sili                                                                                                                                                            con Labs Si2165 DVB-T DVB-C)...
 +
[  231.979802] cx23885_dev_checkrevision() Hardware revision = 0xd0
 +
[  231.979908] cx23885[0]/0: found at 0000:01:00.0, rev: 4, irq: 16, latency: 0,                                                                                                                                                              mmio: 0xfe800000
 +
[  271.659164] i2c i2c-10: si2165: downloading firmware from file 'dvb-demod-si2                                                                                                                                                            165.fw' size=5768
 +
[  271.662577] i2c i2c-10: si2165: si2165_upload_firmware extracted patch_versio                                                                                                                                                            n=0x9a, block_count=0x27, crc_expected=0xcc0a
 +
[  272.749751] i2c i2c-10: si2165: fw load finished
  
 
===External Links===
 
===External Links===
 
* [http://images.icecat.biz/img/norm/high/7818866-1971.jpg High Resolution Image of the circuit board's top side]
 
* [http://images.icecat.biz/img/norm/high/7818866-1971.jpg High Resolution Image of the circuit board's top side]
 +
* [http://beta990.tweakblogs.net/blog/10804/digitale-tv-op-de-pc-incombinatie-met-arch-linux-ziggo-smargo-tvheadend-oscam Blog that describes an use-case with this TV-card] (Dutch)

Latest revision as of 08:32, 28 January 2017

Overview/Features

  • PCI-e x1 interface
  • Supports DVB-C, DVB-S2, DVB-S, DVB-T, Analog-TV / Video, FM-radio

Components Used

Identification

04:00.0 Multimedia video controller: Conexant Systems, Inc. CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (rev 04)
	Subsystem: Hauppauge computer works Inc. Device c138
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 45
	Region 0: Memory at d7a00000 (64-bit, non-prefetchable) [size=2M]
	Capabilities: [40] Express (v1) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal+ Fatal+ Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <2us, L1 <4us
			ClockPM- Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
	Capabilities: [80] Power Management version 3
		Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [90] Vital Product Data
		Unknown small resource type 01, will not decode more.
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 4199
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
	Capabilities: [200 v1] Virtual Channel
		Caps:	LPEVC=1 RefClk=100ns PATEntryBits=1
		Arb:	Fixed+ WRR32+ WRR64+ WRR128-
		Ctrl:	ArbSelect=WRR64
		Status:	InProgress-
		Port Arbitration Table [240] <?>
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
		VC1:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable- ID=1 ArbSelect=Fixed TC/VC=00
			Status:	NegoPending- InProgress-

Making it Work

Not fully supported; DVB-T (merged) and DVB-C (experimental patch) should work with the latest Linux-kernel, modules and firmware(s).

Firmware

cd ~
mkdir get_dvb_firmware
cd get_dvb_firmware
wget https://raw.githubusercontent.com/torvalds/linux/master/scripts/get_dvb_firmware
chmod a+x get_dvb_firmware
./get_dvb_firmware si2165
sudo cp dvb-demod-si2165.fw /lib/firmware/
sudo depmod -a

Drivers

A Linux 3.16 or higher kernel is recommended, because this provides fixes for some required modules.

DVB-C support hasn't been merged yet. There is however a patch (status: not updated for current branch) provided by zzam that should add DVB-C support.

An alternative patch provided by francoism90 for Linux 4.2 is available on his Github.

Switch modes (DVB-C/DVB-T)

Since it is a hybrid card, it may be necessary to select the correct DVB-source:

# dvb-fe-tool --adapter=1 --frontend=0 --set-delsys=DVB-C

Sample Kernel Output

# dmesg
[  225.165026] cx23885: disagrees about version of symbol altera_init
[  225.165134] cx23885: Unknown symbol altera_init (err -22)
[  231.254056] cx23885: module_layout: kernel tainted.
[  231.254147] Disabling lock debugging due to kernel taint
[  231.257328] cx23885 driver version 0.0.4 loaded
[  231.257555] cx23885 0000:01:00.0: enabling device (0000 -> 0002)
[  231.257861] CORE cx23885[0]: subsystem: 0070:c138, board: Hauppauge WinTV-HVR                                                                                                                                                             4400 [card=38,autodetected]
[  231.585799] tveeprom 10-0050: Hauppauge model 121029, rev B3F5, serial# ****
[  231.585895] tveeprom 10-0050: MAC address is 00:0d:fe:8a:5d:3e
[  231.585973] tveeprom 10-0050: tuner model is NXP 18271C2 (idx 155, type 54)
[  231.586061] tveeprom 10-0050: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/                                                                                                                                                             D1/K) ATSC/DVB Digital (eeprom 0xf4)
[  231.586185] tveeprom 10-0050: audio processor is CX23888 (idx 40)
[  231.586262] tveeprom 10-0050: decoder processor is CX23888 (idx 34)
[  231.586340] tveeprom 10-0050: has radio, has IR receiver, has no IR transmitt                                                                                                                                                             er
[  231.586430] cx23885[0]: warning: unknown hauppauge model #121029
[  231.586507] cx23885[0]: hauppauge eeprom: model=121029
[  231.603973] Chip ID is not zero. It is not a TEA5767
[  231.604118] tuner 11-0060: Tuner -1 found with type(s) Radio TV.
[  231.604376] tda18271 11-0060: creating new instance
[  231.606534] TDA18271HD/C1 detected @ 11-0060
[  231.935237] cx23885[0]: registered device video0 [v4l2]
[  231.937179] cx23885[0]: registered device vbi0
[  231.944390] cx23885[0]: registered ALSA audio device
[  231.944484] cx23885_dvb_register() allocating 1 frontend(s)
[  231.944557] cx23885[0]: cx23885 based dvb card
[  231.962906] i2c i2c-10: a8293: Allegro A8293 SEC attached
[  231.963375] DVB: registering new adapter (cx23885[0])
[  231.963469] cx23885 0000:01:00.0: DVB: registering adapter 0 frontend 0 (NXP                                                                                                                                                              TDA10071)...
[  231.965295] cx23885_dvb_register() allocating 1 frontend(s)
[  231.965418] cx23885[0]: cx23885 based dvb card
[  231.976091] i2c i2c-10: si2165: hardware revision 0x03, chip type 0x07
[  231.976220] tda18271 11-0060: attaching existing instance
[  231.976637] DVB: registering new adapter (cx23885[0])
[  231.976709] cx23885 0000:01:00.0: DVB: registering adapter 1 frontend 0 (Sili                                                                                                                                                             con Labs Si2165 DVB-T DVB-C)...
[  231.979802] cx23885_dev_checkrevision() Hardware revision = 0xd0
[  231.979908] cx23885[0]/0: found at 0000:01:00.0, rev: 4, irq: 16, latency: 0,                                                                                                                                                              mmio: 0xfe800000
[  271.659164] i2c i2c-10: si2165: downloading firmware from file 'dvb-demod-si2                                                                                                                                                             165.fw' size=5768
[  271.662577] i2c i2c-10: si2165: si2165_upload_firmware extracted patch_versio                                                                                                                                                             n=0x9a, block_count=0x27, crc_expected=0xcc0a
[  272.749751] i2c i2c-10: si2165: fw load finished

External Links