Pinnacle PCTV HD Card (800i): Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
(djh - update firmware instructions to include new firmware)
Line 60: Line 60:


===Firmware===
===Firmware===
You MUST have the firmware for the XC5000 tuner installed for the 800i to function properly. The firmware can be obtained by extracting it from the Windows' driver file; both an extracting script and and the Windows driver file are available [http://www.steventoth.net/linux/xc5000/ here]. After you have recovered the firmware file, place a copy of it in your /lib/firmware directory. (This directory may differ with some distros; consult your distro's documentation for the appropriate location).
You MUST have the firmware for the XC5000 tuner installed for the 800i to function properly. Note the firmware directory may differ with some distros; consult your distro's documentation for the appropriate location)

If using Linux kernel 2.6.31 or you are using the latest http://linuxtv.org/hg/v4l-dvb tree:
wget http://www.kernellabs.com/firmware/xc5000/dvb-fe-xc5000-1.6.114.fw
cp dvb-fe-xc5000-1.6.114.fw /lib/firmware

If you are using an older kernel than 2.6.31 and not using the latest v4l-dvb code:
wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
wget http://www.steventoth.net/linux/xc5000/extract.sh
sh extract.sh
cp dvb-fe-xc5000-1.1.fw /lib/firmware


===Drivers===
===Drivers===

Revision as of 18:39, 26 June 2009

Pinnacle PCTV HD Card (800i)

A hybrid ATSC PCI card from Pinnacle.

It is supported under Linux, but drivers are currently available for it only from LinuxTV (see below for driver detail). Inclusion of support into the kernel will likely occur for 2.6.25.

Overview/Features

A hybrid device that supports analog, ATSC (8-VSB) and digital cable (QAM) TV sources. The card also supports analog A/V inputs, and has an IR remote control input.

It appears that it may be also being sold as the Yuan PG583Q. Yuan lists two models (PG583 and PG583Q) -- simply a wild guess, but perhaps the former uses a XC3028 (not QAM capable) and the later XC5000 (QAM capable) ?? The Yuan boards also have a connector of sorts on the back portion of the PCB that is not present on the Pinnacle board.

Components Used

800i's components

Identification

PCI subsytem ID is: 11bd:0051

Output of lspci -vvnn:

00:0a.0 Multimedia video controller [0400]: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [14f1:8800] (rev 05)
	Subsystem: Pinnacle Systems Inc. Unknown device [11bd:0051]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 32 (5000ns min, 13750ns max), Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 19
	Region 0: Memory at dc000000 (32-bit, non-prefetchable) [size=16M]
	Capabilities: [44] Vital Product Data
	Capabilities: [4c] Power Management version 2
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:0a.1 Multimedia controller [0480]: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] [14f1:8801] (rev 05)
	Subsystem: Pinnacle Systems Inc. Unknown device [11bd:0051]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 32 (1000ns min, 63750ns max), Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 19
	Region 0: Memory at dd000000 (32-bit, non-prefetchable) [size=16M]
	Capabilities: [4c] Power Management version 2
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:0a.2 Multimedia controller [0480]: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] [14f1:8802] (rev 05)
	Subsystem: Pinnacle Systems Inc. Unknown device [11bd:0051]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 32 (1500ns min, 22000ns max), Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 5
	Region 0: Memory at de000000 (32-bit, non-prefetchable) [size=16M]
	Capabilities: [4c] Power Management version 2
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

Making it Work

Firmware

You MUST have the firmware for the XC5000 tuner installed for the 800i to function properly. Note the firmware directory may differ with some distros; consult your distro's documentation for the appropriate location)

If using Linux kernel 2.6.31 or you are using the latest http://linuxtv.org/hg/v4l-dvb tree:

 wget http://www.kernellabs.com/firmware/xc5000/dvb-fe-xc5000-1.6.114.fw
 cp dvb-fe-xc5000-1.6.114.fw /lib/firmware

If you are using an older kernel than 2.6.31 and not using the latest v4l-dvb code:

 wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
 wget http://www.steventoth.net/linux/xc5000/extract.sh
 sh extract.sh
 cp dvb-fe-xc5000-1.1.fw /lib/firmware

Drivers

Full support for the device is now in the mainline v4l-dvb repo. Both analog and digital TV are supported, and the remote control should also function properly now.

To download the latest v4l-dvb tree, simply select the bz2 or gz link on the top left of the page, then build them via running "make" followed by "make install". More thorough downloading/building instructions can be found here.

Sample kernel output

cx88/0: cx2388x v4l2 driver version 0.0.6 loaded
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 19
ACPI: PCI Interrupt 0000:01:05.0[A] -> Link [LNKA] -> GSI 19 (lev
cx88[0]: subsystem: 11bd:0051, board: Pinnacle PCTV HD 800i [card
cx88[0]: TV tuner type 76, Radio tuner type -1
cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded
tuner' 0-0064: chip found @ 0xc8 (cx88[0])
xc5000 0-0064: creating new instance
xc5000: Successfully identified at address 0x64
xc5000: Firmware has not been loaded previously
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
xc5000: firmware read 12332 bytes.
xc5000: firmware upload
cx88[0]: Calling XC5000 callback
input: cx88 IR (Pinnacle PCTV HD 800i) as /devices/pci0000:00/000
cx88[0]/0: found at 0000:01:05.0, rev: 5, irq: 20, latency: 64, m
cx88[0]/0: registered device video0 [v4l2]
cx88[0]/0: registered device vbi0
cx88[0]/2: cx2388x 8802 Driver Manager
ACPI: PCI Interrupt 0000:01:05.2[A] -> Link [LNKA] -> GSI 19 (level, low) -> IRQ 20
cx88[0]/2: found at 0000:01:05.2, rev: 5, irq: 20, latency: 64, mmio: 0xfb000000
ACPI: PCI Interrupt Link [LAZA] enabled at IRQ 20
ACPI: PCI Interrupt 0000:00:07.0[A] -> Link [LAZA] -> GSI 20 (level, low) -> IRQ 19
PCI: Setting latency timer of device 0000:00:07.0 to 64
hda_codec: Unknown model for ALC662, trying auto-probe from BIOS...
cx88/2: cx2388x dvb driver version 0.0.6 loaded
cx88/2: registering cx8802 driver, type: dvb access: shared
cx88[0]/2: subsystem: 11bd:0051, board: Pinnacle PCTV HD 800i [card=58]
cx88[0]/2: cx2388x based DVB/ATSC card
xc5000 0-0064: attaching existing instance
xc5000: Successfully identified at address 0x64
xc5000: Firmware has been loaded previously
DVB: registering new adapter (cx88[0])
DVB: registering frontend 0 (Samsung S5H1409 QAM/8VSB Frontend)...

Remote Control Support

The card uses the CX2388x's standard IR interface, and, it is fully supported now via the linux input layer. You may use LIRC with the input device driver option. See the "Remote Controllers" article for more details on how to configure LIRC with remote controls that use the linux input layer.

External Links