Prolink Pixelview PlayTV Pro
Prolink's Pixelview PlayTV Pro is powerful analog TV card.
The card works well, however needs some tweaks in modprobe.conf to work properly.
Overview/Features
The device provides:
- TV support
- FM support
- remote control
Components Used
bttv for TV, FM and remote control support for LIRC.
ir-kbd-i2c to make LIRC support our remote control without special kernel module.
Identification
00:0a.0 0400: 109e:036e (rev 02) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32 (4000ns min, 10000ns max) Interrupt: pin A routed to IRQ 10 Region 0: Memory at eb000000 (32-bit, prefetchable) [size=4K] Kernel driver in use: bttv Kernel modules: bttv 00:0a.1 0480: 109e:0878 (rev 02) Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 10 Region 0: Memory at eb001000 (32-bit, prefetchable) [size=4K] Kernel modules: bt878
Shorter output, human-friendly:
00:0a.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 02) 00:0a.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 02)
Making it Work
Firmware
Anything more than vanilla kernel provides is not required.
Drivers
Anything we should do, is modifying /etc/modprobe.conf (in Fedora it's almost empty, in SUSE messed "a little bit").
options bttv card=70 tuner=28 radio=1
Sample kernel output
bttv: driver version 0.9.17 loaded bttv: using 8 buffers with 2080k (520 pages) each for capture bttv: Bt8xx card found (0). bttv0: Bt878 (rev 2) at 0000:00:0a.0, irq: 10, latency: 32, mmio: 0xeb000000 bttv0: using: Prolink Pixelview PV-BT878P+ (Rev.4C,8E) [card=70,insmod option] bttv0: gpio: en=00000000, out=00000000 in=00ffffff [init] bttv0: tuner type=28 bttv0: i2c: checking for MSP34xx @ 0x80... not found bttv0: i2c: checking for TDA9875 @ 0xb0... not found bttv0: i2c: checking for TDA7432 @ 0x8a... not found tuner 1-0061: chip found @ 0xc2 (bt878 #0 [sw]) bttv0: registered device video0 bttv0: registered device vbi0 bttv0: registered device radio0 bttv0: PLL: 28636363 => 35468950 .. ok input: bttv IR (card=70) as /class/input/input6 bt878: AUDIO driver version 0.0.0 loaded bt878: Bt878 AUDIO function found (0). bt878_probe: card id=[0x0], Unknown card. bt878: probe of 0000:00:0a.1 failed with error -22
According the output, support for the card seems to be broken, but at least FM and remote control works (currently I have no TV input in my room).
Remote Control Support
bttv with provided options and ir-kbd-i2c *MUST* be loaded before starting LIRC.
This can be easily done in Fedora and SUSE (didn't tested others).
Fedora
In Fedora you can edit /etc/rc.d/init.d/lirc
Add modprobe ir-kbd-i2c
between start() {
and echo -n $"Starting infrared remote control daemon ($prog): "
Add chmod 777 /dev/lircd
between retval=$?
and echo
.
Fragment of /etc/rc.d/init.d/lic should look like this:
start() { modprobe ir-kbd-i2c echo -n $"Starting infrared remote control daemon ($prog): " daemon $exec $LIRCD_OPTIONS retval=$? chmod 777 /dev/lircd echo status $prog >/dev/null 2>&1 if [ $? -eq 0 -a "$ENABLE_LIRCMD" = "yes" ] ; then echo -n $"Starting infrared remote control mouse daemon ($prog2): " daemon $exec2 $LIRCMD_OPTIONS retval=$? echo fi [ $retval -eq 0 ] && touch $lockfile return $retval }
Also, edit /etc/sysconfig/lirc:
LIRCD_OPTIONS="-H dev/input -d phys=pci-0000:00:0a.0/ir0"
Value after -d
depends on output of one command:
$ cat /proc/bus/input/devices |grep ir P: Phys=pci-0000:00:0a.0/ir0
Change Phys to phys and copy.
SUSE
In SUSE you don't need to edit init scripts. Only /etc/sysconfig/lirc, simmiliar to Fedora's one, but they separated LIRC parameters and it's easier in SUSE. You can use sysconfig editor from YaST, but to get phys address, you need terminal.
LIRC configuration
As I wrote above, you have now basic configuration to make LIRC work, however LIRC doesn't recognize your buttons.
Here you go, your brand new /etc/lircd.conf ;) .
# Please make this file available to others # by sending it to <lirc@bartelmus.de> # # this config file was automatically generated # using lirc-0.8.2(dev/input) on Wed Jan 16 23:51:58 2008 # # contributed by Jakub 'Livio' Rusinek <jakub.rusinek@gmail.com> # # brand: Prolink PixelView /etc/lircd.conf # model no. of remote control: PlayTV Pro # devices being controlled by this remote: Prolink PixelView PlayTV Pro # begin remote name /etc/lircd.conf bits 16 eps 30 aeps 100 one 0 0 zero 0 0 pre_data_bits 16 pre_data 0x8001 gap 199980 toggle_bit_mask 0x80010003 begin codes tvfm 0x0182 scan 0x00E2 zoom 0x00D9 power 0x0074 vol+ 0x0192 vol- 0x0193 chan+ 0x0073 chan- 0x0072 loop 0x018B +100 0x0195 mute 0x0071 source 0x00A7 0 0x000B 1 0x0002 2 0x0003 3 0x0004 4 0x0005 5 0x0006 6 0x0007 7 0x0008 8 0x0009 9 0x000A - 0x004A + 0x004E function 0x008D reset 0x0162 freeze 0x0184 end codes end remote