Como configurar placa capturadora kozumi KTV-01C (con chip bt878 rev11)

Me llevo un par de días asi que lo comparto con ustedes, ya que le puede beneficiar a alguien mas

En este caso yo lo configure con gentoo 2008, quizás haya distribuciones, en las que les sea aun mas fácil configurar este dispositivo.

La placa en cuestión es:

04:09.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
04:09.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)

Que funciona con el modulo bt878

Device Drivers ---]
[M] Video For Linux
[*] Enable Video For Linux API 1 compatible Layer
[*] Video capture adapters ---]
[M] BT848 Video For Linux
[*] DVB/ATSC Support for bt878 based TV cards

make && make modules_install

Editamos /etc/modprobe.conf o /etc/modprobe.d/bttv y agregamos los datos del modulo:

alias char-major-81 videodev
alias char-major-81-0 bttv
options bttv pll=1 card=120 radio=1 tuner=38 remote=1 bttv_verbose=1 gbuffers=4
options ir_common debug=1

Ahora podemos probar con:

modprobe bttv
modprobe tuner

Podemos verificar que los modulos esten arriba:

# dmesg | grep bttv
bttv: driver version 0.9.17 loaded
bttv: using 4 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
bttv0: Bt878 (rev 17) at 0000:04:09.0, irq: 17, latency: 32, mmio: 0xfdaff000
bttv0: using: Conceptronic CONTVFMi [card=120,insmod option]
bttv0: gpio: en=00000000, out=00000000 in=007fc0ff [init]
bttv0: tuner type=38
bttv0: i2c: checking for MSP34xx @ 0x80... not found
bttv0: i2c: checking for TDA9875 @ 0xb0... not found
bttv0: i2c: checking for TDA7432 @ 0x8a... not found
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: registered device radio0
bttv0: PLL: 28636363 =] 35468950 .. ok
input: bttv IR (card=120) as /class/input/input4
bttv0: PLL can sleep, using XTAL (28636363).

# dmesg | grep tuner
bttv0: tuner type=38
tuner' 0-0060: chip found @ 0xc0 (bt878 #0 [sw])
tuner-simple 0-0060: type set to 38 (Philips PAL/SECAM multi (FM1216ME MK3))


Instalamos tvtime:

emerge tvtime

configuramos la norma PAl-Nc para nuestro usuario:

$ tvtime-configure -n PAL-Nc
$ tvtime-scanner

Y si todo salio bien, deberíamos ver una salida como esta:

Scanning using TV standard PAL-NC.
Scanning from 44.00 MHz to 958.00 MHz.
Found a channel at 54.50 MHz (52.50 - 56.25 MHz), adding to channel list.
Found a channel at 66.50 MHz (64.25 - 68.50 MHz), adding to channel list.
Checking 79.00 MHz: - No signal

Por ultimo agregamos a /etc/modules.autoload.d/kernel-2.6 tuner:

echo "tuner" ]] /etc/modules.autoload.d/kernel-2.6

Y ya esta, para configurar el control remoto, hay que editar el mapeo de las teclas dentro del modulo del kernel compilado (haga una copia de seguridad de este antes de editar el modulo):

editamos
$source/drivers/media/common/ir-keymaps.c:

Y donde esta definido IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE]:

borramos todas las keys y lo dejamos asi:

IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {
[ 0x00 ] = KEY_0,
[ 0x01 ] = KEY_1,
[ 0x02 ] = KEY_2,
[ 0x03 ] = KEY_3,
[ 0x04 ] = KEY_4,
[ 0x05 ] = KEY_5,
[ 0x06 ] = KEY_6,
[ 0x07 ] = KEY_7,
[ 0x08 ] = KEY_8,
[ 0x09 ] = KEY_9,
[ 0x1c ] = KEY_RADIO, /* FM Radio */
[ 0x0a ] = KEY_BACKSPACE, /* Recall */
[ 0x12 ] = KEY_ESC, /* POWER */
[ 0x18 ] = KEY_LEFT, /* VOL- */
[ 0x0c ] = KEY_RIGHT, /* VOL+ */
[ 0x16 ] = KEY_ENTER, /* OK */
[ 0x17 ] = KEY_D, /* Plus */
[ 0x10 ] = KEY_F, /* Mode */
[ 0x0b ] = KEY_UP, /* CH+ */
[ 0x0b ] = KEY_UP, /* CH+ */
[ 0x15 ] = KEY_DOWN, /* CH- */
[ 0x14 ] = KEY_H, /* OSD */
[ 0x13 ] = KEY_MUTE, /* Mute */
[ 0x0f ] = KEY_BACKSPACE, /* Prev */
[ 0x0e ] = KEY_STOP, /* Stop */
[ 0x1f ] = KEY_PLAY, /* Play */
[ 0x1e ] = KEY_PAUSE, /* Pause */
[ 0x1d ] = KEY_RECORD, /* Record */
[ 0x1a ] = KEY_F7, /* Next */
[ 0x0f ] = KEY_A, /* */
[ 0x1b ] = KEY_F5, /* Time Shift */
[ 0x19 ] = KEY_S, /* Snapshot */
[ 0x0f ] = KEY_F6, /* Prev */
[ 0x0d ] = KEY_E, /* Stereo */
[ 0x11 ] = KEY_I /* Source */
};

EXPORT_SYMBOL_GPL(ir_codes_pixelview);

luego en la raiz del kernel ejecutamos nuevamente:

make && make modules_install y listo.

Eso fue todo.

Ya pueden usar su placa con cualquier programa de captura de video, pueden usar Tvtime, ya que sabemos que detecto los canales.

D.

Un poco de ayuda de:

http://www.linuxforums.org/forum/peripherals-hardware/91984-remote-controller-bt878-kozumi-ktv-01c.html

4 thoughts on “Como configurar placa capturadora kozumi KTV-01C (con chip bt878 rev11)

  1. Hola, yo estoy intentando hacer funcionar correctamente el control remoto en Debian (Lenny amd64), pero hasta ahora solo he conseguido que funcionen los botones numéricos del 0 al 9, en tvtime. También funciona el botón Power, el cual provoca que aparezca el diálogo de cerrar sesión en KDE. No encuentro la forma para que configurar los eventos con los demás botones del control.

    La configuración de la placa que utilizo en el archivo /etc/modprobe.d/bttv es la siguiente:

    alias char-major-81 videodev
    alias char-major-81-0 bttv
    options bttv bttv_debug=0 reset_crop=1 full_luma_range=50 uv_ratio=50 chroma_agc=0 adc_crush=0 radio=1 tuner=38 automute=0 coring=64 card=151 gbuffers=32 adc_crush=1 autoload=1 pll=1 remote=1 bttv_verbose=1
    options ir_common debug=1

    El comando evtest, me muestra que todos los botones del control funcionan:
    1:~$ evtest /dev/input/by-path/pci-0000:01:07.0-event-ir
    Input driver version is 1.0.0
    Input device ID: bus 0x1 vendor 0x109e product 0x36e version 0x1
    Input device name: “bttv IR (card=151)”
    Supported events:
    Event type 0 (Sync)
    Event type 1 (Key)
    Event code 2 (1)
    Event code 3 (2)
    Event code 4 (3)
    Event code 5 (4)
    Event code 6 (5)
    Event code 7 (6)
    Event code 8 (7)
    Event code 9 (8)
    Event code 10 (9)
    Event code 11 (0)
    Event code 113 (Mute)
    Event code 114 (VolumeDown)
    Event code 115 (VolumeUp)
    Event code 116 (Power)
    Event code 119 (Pause)
    Event code 128 (Stop)
    Event code 129 (Again)
    Event code 163 (NextSong)
    Event code 165 (PreviousSong)
    Event code 167 (Record)
    Event code 207 (Play)
    Event code 352 (Ok)
    Event code 358 (Info)
    Event code 372 (Zoom)
    Event code 373 (Mode)
    Event code 385 (Radio)
    Event code 386 (Tuner)
    Event code 388 (Text)
    Event code 402 (ChannelUp)
    Event code 403 (ChannelDown)
    Event code 410 (Shuffle)
    Event code 413 (Digits)
    Event type 20 (Repeat)
    Testing … (interrupt to exit)

    Pero no se cómo lograr que cuando presione los botones realicen lo que deberían…

    Like

  2. Un pequeño detalle es que en dmesg, muestra el tuner como 37, mientras que en el texto que deberia ir en /etc/modprobe.d/bttv, muestra el tuner como 38.
    Saludos!

    Like

  3. Gracias por las instrucciones, desde anoche que estoy tratando de hacer funcionar esa misma placa pero resulta que me estaban faltando un par de seteos en la configuracion del kernel. El video funciona pero por ahora sin audio, estoy viendo de que se trata… Saludos!

    Like

Comments are closed.