Hauppauge WinTV-HVR-5500

From LinuxTVWiki
Jump to navigation Jump to search


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

Components Used


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).


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


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