Tevii S460 DVB-S2

From Gentoo-en
Jump to: navigation, search

Under Development

This page is currently under development by: Peterbr

It aims to provide you with: A guide to configure all hardware features of the Tevii S460 DVB-S2 receiver

Concerns or Compliments? Please use the discussion page.

Product s460 01.jpg

This article is about the Tevii S460 DVB-S2 tuner, which is a PCI card. You'll need at least linux 2.6.28 to use this card, because of its S2API support.

Kernel, drivers, firmware

Kernel configuration

Linux Kernel Configuration: Kernel config
Multimedia devices  --->
         *** Multimedia core support ***
     <*> Video For Linux
     <*> DVB for Linux

         *** Multimedia drivers ***
     [*] Load and attach frontend and tuner driver modules as needed
     [ ] Customize analog and hybrid tuner modules to build  --->
     [*] Video capture adapters -->
           [*]   Autoselect pertinent encoders/decoders and other helper chips
!          <M>   Conexant 2388x (bt878 successor) support
             <M>     Conexant 2388x DMA audio support
             <M>     Blackbird MPEG encoder support (cx2388x + cx23416)
             <M>     DVB/ATSC Support for cx2388x based TV cards
!          <M>   VP-3054 Secondary I2C Bus Support
           <M>   Conexant cx23416/cx23415 MPEG encoder/decoder support
           <M>     Conexant cx23415 framebuffer support  
           <M>   Conexant cx23418 MPEG encoder support   
Note: Configuration lines prepended with ! are definitely needed.
Fix me: Verify the need of the other modules.

Firmware setup

The firmware you'll need comes compressed using RAR, so start with emerging app-arch/unrar:

emerge -av app-arch/unrar

For convenience sake we'll be working in /tmp as root:

cd /tmp

Download, using wget, the Tevii firmware:

Unrar the archive to our working directory:

unrar x Tevii_linuxdriver_0815.rar -d ./

Create the /lib/firmware directory:

mkdir /lib/firmware

Copy the dvb-fe-cx24116.fw file to /lib/firmware/ and create a symlink too it in the same directory but without the version suffix.

cp tevii_linuxdriver_0815/fw/dvb-fe-cx24116.fw /lib/firmware/dvb-fe-cx24116-1.23.86.1.fw
ln -s /lib/firmware/dvb-fe-cx24116-1.23.86.1.fw /lib/firmware/dvb-fe-cx24116.fw

Setting Up Remote Control Receiver

The DVB card has a IR receiver on board. The Linux kernel drivers of 2.6.29-r5 and below do not have the right code in it to process the incoming commands. Apply the kernel Patch for the kernel to correctly recognize the remote option on the board.

Verify setup

Verify that the kernel correctly found the card during boot from the dmesg output:

dmesg | egrep "cx88|DVB"
cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded
cx88[0]: subsystem: d460:9022, board: TeVii S460 DVB-S/S2 [card=70,autodetected], frontend(s): 1
cx88[0]: TV tuner type -1, Radio tuner type -1
cx88/0: cx2388x v4l2 driver version 0.0.6 loaded
input: cx88 IR (TeVii S460 DVB-S/S2) as /class/input/input4
cx88[0]/2: cx2388x 8802 Driver Manager
cx88-mpeg driver manager 0000:01:01.2: PCI INT A -> GSI 22 (level, low) -> IRQ 22
cx88[0]/2: found at 0000:01:01.2, rev: 5, irq: 22, latency: 32, mmio: 0xf8000000
IRQ 22/cx88[0]: IRQF_DISABLED is not guaranteed on shared IRQs
cx8800 0000:01:01.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
cx88[0]/0: found at 0000:01:01.0, rev: 5, irq: 22, latency: 32, mmio: 0xf7000000
IRQ 22/cx88[0]: IRQF_DISABLED is not guaranteed on shared IRQs
cx88[0]/0: registered device video0 [v4l2]
cx88[0]/0: registered device vbi0
cx88/2: cx2388x dvb driver version 0.0.6 loaded
cx88/2: registering cx8802 driver, type: dvb access: shared
cx88[0]/2: subsystem: d460:9022, board: TeVii S460 DVB-S/S2 [card=70]
cx88[0]/2: cx2388x based DVB/ATSC card
cx8802_alloc_frontends() allocating 1 frontend(s)
DVB: registering new adapter (cx88[0])
DVB: registering adapter 0 frontend 0 (Conexant CX24116/CX24118)...

Note that on the 5th line it is shown that the IR receiver is picked up by the kernel and its output is available on /dev/input/event4. At this point the remote acts as an other keyboard device to the application. Pressing the numeric keys on the remote should result is the keys showing up as keyboard input in an active terminal (xterm ) program at the unix prompt.

The lspci(part of sys-apps/pciutils) command can also be used to verify if the card is 'visible' to the kernel:

/usr/sbin/lspci
...
01:01.0 Multimedia video controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
        Subsystem: Device d460:9022
        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 (5000ns min, 13750ns max), Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 22
        Region 0: Memory at f7000000 (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-
        Kernel driver in use: cx8800
        Kernel modules: cx8800

01:01.2 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (rev 05)
        Subsystem: Device d460:9022
        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 (1500ns min, 22000ns max), Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 22
        Region 0: Memory at f8000000 (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-
        Kernel driver in use: cx88-mpeg driver manager
        Kernel modules: cx8802
...

Modules loaded by the kernel:

Code: lsmod
lsmod | fgrep cx88
cx88_dvb               18272  0
cx88_vp3054_i2c         2216  1 cx88_dvb
videobuf_dvb            6244  1 cx88_dvb
cx8800                 25648  0
cx8802                 13352  1 cx88_dvb
cx88xx                 65228  3 cx88_dvb,cx8800,cx8802
ir_common              45668  1 cx88xx
tveeprom               10552  1 cx88xx
videobuf_dma_sg        10908  4 cx88_dvb,cx8800,cx8802,cx88xx
btcx_risc               4320  3 cx8800,cx8802,cx88xx
videobuf_core          16076  5 videobuf_dvb,cx8800,cx8802,cx88xx,videobuf_dma_sg
Run
ls -l /dev/dvb/adapter*

to show the available devices:

total 0
crw-rw---- 1 root video 212, 1 Jun  4 14:28 demux0
crw-rw---- 1 root video 212, 2 Jun  4 14:28 dvr0
crw-rw---- 1 root video 212, 0 Jun  4 14:28 frontend0
crw-rw---- 1 root video 212, 3 Jun  4 14:28 net0
 

External links

See also