Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[tarjeta TV]Problemas con el audio imput y lirc (cerrado)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
ebray187
Tux's lil' helper
Tux's lil' helper


Joined: 02 Mar 2005
Posts: 121
Location: Al otro lado de la pantalla

PostPosted: Fri Nov 25, 2005 3:05 am    Post subject: [tarjeta TV]Problemas con el audio imput y lirc (cerrado) Reply with quote

Hace unas semanas me compré esta tarjeta y si que me a salido difícil de configurar. :? Después de buscar y probar MUCHO encontré esta página, en la cual aparece una bastante parecida a la mía (Micro-One unknown model, "Media Wand") además de una inmensa lista de modelos.
Tras seguir probando con las configuraciones logré encontrar los parámetros correctos .
Los postearé por si algun día alguien se encuentra en las mismas:

Code:
# cat /etc/modules.d/bttv     
options bttv tuner=44 card=38 radio=1


Y con eso ahora puedo ver tele y escucharla sin problemas. Estoy usando tvtime y me agrada bastante.

Esta tarjeta tiene una entrada s-video y una rca (video y para el audio stereo, los 3 cablecitos). Por eso me traje el dvd y al hecharlo andar me topé con 2 cosas. La primera, que era culpa del maldito macrovision, la solucioné siguiendo las instrucciones de este link: http://septor.name/colby/bttv.htm
Sin embargo estoy colpasado con la segunda: Resulta que se ve sin problemas, pero el audio no funciona.
Me puse a cambiar la tarjeta del modules.d/bttv y a probar con tvtime. En algunas me funcionaba el audio, pero no junto con el video; ponía la tv, sin embargo se escuchaba el audio del dvd, y cuando sintonisaba el dvd, no se escuchaba nada. :?. Asique con ninguna funciona bien. No se que hacer ni por donde buscar.

El otro asunto que no puedo hacer funcionar es el control remoto. El receptor se conecta a la tarjeta atraves de un miniplug (como el de los audifonos). Prové con la opción que trae el kernel y no me funcionó. Y ahora estoy probando suerte con Lirc. Logré que me compilara con todos sus modulos. Estuve intentando primero con los parametros por defecto y al hacer el cat me tira garabatos todo el tiempo, no solo al presionar un boton. y no se con que parametros funcione.

Cualquier ayuda la agradeceria, si se nesecita alguna clase de información pregunten nomas. Me gustaría que funcionara con todas sus características.

Saludos
_________________
# emerge -C world >> 9/8
A flower?!


Last edited by ebray187 on Mon May 21, 2007 7:36 am; edited 1 time in total
Back to top
View user's profile Send private message
ebray187
Tux's lil' helper
Tux's lil' helper


Joined: 02 Mar 2005
Posts: 121
Location: Al otro lado de la pantalla

PostPosted: Mon May 21, 2007 7:36 am    Post subject: Reply with quote

Despues de todo este tiempo y aprovechando el tiempo libre del fin de semana largo, me puse a googlear como ivan los avances de esto. Muy grata fue mi sorpresa cuando encontré esta página. Pego las instrucciones para cooperar al foro.

----------------------

Modificando el Kernel:

Son tres los archivos que hay que modificar:

1° archivo: /usr/src/linux/drivers/media/video/bt8xx/bttv-cards.c

El siguiente contenido:

Code:
        .radio_addr     = ADDR_UNSET,
    },
    [BTTV_BOARD_MAGICTVIEW063] = {
        .name        = "Askey CPH06X TView99",
        .video_inputs    = 4,
        .audio_inputs    = 1,
        .tuner        = 0,
        .svhs        = 2,
        .gpiomask    = 0x551e00,
        .muxsel        = { 2, 3, 1, 0 },
        .gpiomux     = { 0x551400, 0x551200, 0, 0 },
        .gpiomute     = 0x551c00,
        .needs_tvaudio    = 1,
        .pll        = PLL_28,
        .tuner_type    = 1,
        .tuner_addr    = ADDR_UNSET,
        .radio_addr     = ADDR_UNSET,
        .has_remote     = 1,
    },
    [BTTV_BOARD_PINNACLE] = {
        .name        = "Pinnacle PCTV Studio/Rave",


se reemplaza por este:

Code:
        .radio_addr     = ADDR_UNSET,
    },
    [BTTV_BOARD_MAGICTVIEW063] = {
        .name        = "Media Wand TV Card", //Media Wand Card TV Definition
        .video_inputs    = 3,
        .audio_inputs    = 1,
        .tuner        = 0,
        .svhs        = 2,
        .gpiomask    = 0x060040,
        .muxsel        = { 2, 3, 1, 0 },
        .gpiomux     = {0x060000, 0x040000, 0x020000, 0},
        .gpiomute     = 0x060000,
        .needs_tvaudio    = 0,
        .pll        = PLL_28,
        .tuner_type    = 43,
        .tuner_addr    = ADDR_UNSET,
        .radio_addr     = ADDR_UNSET,
        .has_remote     = 1,
        .has_radio      = 1,
        .no_msp34xx    = 1,
        .no_tda9875     = 1,
        .no_tda7432     = 1,
    },
    [BTTV_BOARD_PINNACLE] = {
        .name        = "Pinnacle PCTV Studio/Rave",


2° archivo: /usr/src/linux/drivers/media/video/bt8xx/bttv-input.c

El siguiente contenido:

Code:
#define DEVNAME "bttv-input"

/* ---------------------------------------------------------------------- */

static void ir_handle_key(struct bttv *btv)
{
    struct bttv_ir *ir = btv->remote;
    u32 gpio,data;

    /* read gpio value */
    gpio = bttv_gpio_read(&btv->c);
    if (ir->polling) {
        if (ir->last_gpio == gpio)
            return;
        ir->last_gpio = gpio;
    }

    /* extract data */
    data = ir_extract_bits(gpio, ir->mask_keycode);
    dprintk(KERN_INFO DEVNAME ": irq gpio=0x%x code=%d | %s%s%s\n",
        gpio, data,
        ir->polling               ? "poll"  : "irq",
        (gpio & ir->mask_keydown) ? " down" : "",
        (gpio & ir->mask_keyup)   ? " up"   : "");

    if ((ir->mask_keydown  &&  (0 != (gpio & ir->mask_keydown))) ||
        (ir->mask_keyup    &&  (0 == (gpio & ir->mask_keyup)))) {
        ir_input_keydown(ir->dev,&ir->ir,data,data);
    } else {
        ir_input_nokey(ir->dev,&ir->ir);
    }

}

void bttv_input_irq(struct bttv *btv)


se reemplaza por este:

Code:
#define DEVNAME "bttv-input"

/* ---------------------------------------------------------------------- */

static void ir_handle_key(struct bttv *btv)
{
    struct bttv_ir *ir = btv->remote;
    u32 gpio,data;

    /* read gpio value */
    gpio = bttv_gpio_read(&btv->c);
    if (ir->polling) {
        if (ir->last_gpio == gpio)
            return;
        ir->last_gpio = gpio;
    }
    /* extract data*/
    data = ir_extract_bits(gpio, ir->mask_keycode);
    dprintk(KERN_INFO DEVNAME ": irq gpio=0x%x code=%d | %s%s%s\n",
        gpio, data,
        ir->polling               ? "poll"  : "irq",
        (gpio & ir->mask_keydown) ? " down" : "",
        (gpio & ir->mask_keyup)   ? " up"   : "");

    if ((ir->mask_keydown  &&  (0 != (gpio & ir->mask_keydown))) ||
        (ir->mask_keyup    &&  (0 == (gpio & ir->mask_keyup)))) {
        ir_input_keydown(ir->dev,&ir->ir,data,data);
        bttv_gpio_write(&btv->c, gpio | 0x000040);         //For Media Wand Tv Card
    } else {
        ir_input_nokey(ir->dev,&ir->ir);
        bttv_gpio_write(&btv->c, gpio & 0xffffbf);        //For Media Wand Tv Card
    }

}

void bttv_input_irq(struct bttv *btv)


y el siguiente contenido:

Code:
    case BTTV_BOARD_MAGICTVIEW061:
    case BTTV_BOARD_MAGICTVIEW063:
        ir_codes         = ir_codes_winfast;
        ir->mask_keycode = 0x0008e000;
        ir->mask_keydown = 0x00200000;
        break;
    case BTTV_BOARD_APAC_VIEWCOMP:


se reemplaza por este:

Code:
      case BTTV_BOARD_MAGICTVIEW061:
      case BTTV_BOARD_MAGICTVIEW063:////////////////Media Wand TV Card Remote Control Definition
        ir_codes         = ir_codes_avermedia_dvbt;
        ir->mask_keycode = 0x00fc00;
        ir->mask_keydown = 0x000080;
        ir->polling      = 50; // ms
        break;   
      case BTTV_BOARD_APAC_VIEWCOMP:


3° archivo: /usr/src/linux/drivers/media/common/ir-keymaps.c

El siguiente contenido:

Code:
 /* Matt Jesson <dvb@jesson.eclipse.co.uk */
IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {
    [ 0x28 ] = KEY_0,         //'0' / 'enter'
    [ 0x22 ] = KEY_1,         //'1'
    [ 0x12 ] = KEY_2,         //'2' / 'up arrow'
    [ 0x32 ] = KEY_3,         //'3'
    [ 0x24 ] = KEY_4,         //'4' / 'left arrow'
    [ 0x14 ] = KEY_5,         //'5'
    [ 0x34 ] = KEY_6,         //'6' / 'right arrow'
    [ 0x26 ] = KEY_7,         //'7'
    [ 0x16 ] = KEY_8,         //'8' / 'down arrow'
    [ 0x36 ] = KEY_9,         //'9'

    [ 0x20 ] = KEY_LIST,        // 'source'
    [ 0x10 ] = KEY_TEXT,        // 'teletext'
    [ 0x00 ] = KEY_POWER,       // 'power'
    [ 0x04 ] = KEY_AUDIO,       // 'audio'
    [ 0x06 ] = KEY_ZOOM,        // 'full screen'
    [ 0x18 ] = KEY_VIDEO,       // 'display'
    [ 0x38 ] = KEY_SEARCH,      // 'loop'
    [ 0x08 ] = KEY_INFO,        // 'preview'
    [ 0x2a ] = KEY_REWIND,      // 'backward <<'
    [ 0x1a ] = KEY_FASTFORWARD, // 'forward >>'
    [ 0x3a ] = KEY_RECORD,      // 'capture'
    [ 0x0a ] = KEY_MUTE,        // 'mute'
    [ 0x2c ] = KEY_RECORD,      // 'record'
    [ 0x1c ] = KEY_PAUSE,       // 'pause'
    [ 0x3c ] = KEY_STOP,        // 'stop'
    [ 0x0c ] = KEY_PLAY,        // 'play'
    [ 0x2e ] = KEY_RED,         // 'red'
    [ 0x01 ] = KEY_BLUE,        // 'blue' / 'cancel'
    [ 0x0e ] = KEY_YELLOW,      // 'yellow' / 'ok'
    [ 0x21 ] = KEY_GREEN,       // 'green'
    [ 0x11 ] = KEY_CHANNELDOWN, // 'channel -'
    [ 0x31 ] = KEY_CHANNELUP,   // 'channel +'
    [ 0x1e ] = KEY_VOLUMEDOWN,  // 'volume -'
    [ 0x3e ] = KEY_VOLUMEUP,    // 'volume +'
};

EXPORT_SYMBOL_GPL(ir_codes_avermedia_dvbt);

/* Attila Kondoros <attila.kondoros@chello.hu> */


se reemplaza por este:

Code:
/* Matt Jesson <dvb@jesson.eclipse.co.uk */
IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {  //  Key map definition for Madia Wand TV Card Remote Control.
    [ 0x31 ] = KEY_0,         //'0'
    [ 0x24 ] = KEY_1,         //'1'
    [ 0x34 ] = KEY_2,         //'2'
    [ 0x2c ] = KEY_3,         //'3'
    [ 0x22 ] = KEY_4,         //'4'
    [ 0x32 ] = KEY_5,         //'5'
    [ 0x2a ] = KEY_6,         //'6'
    [ 0x26 ] = KEY_7,         //'7'
    [ 0x36 ] = KEY_8,         //'8'
    [ 0x2e ] = KEY_9,         //'9'
                                    // N° Tecla
    [ 0x20 ] = KEY_A,        // 1
    [ 0x30 ] = KEY_B,        // 2
    [ 0x28 ] = KEY_C,       // 3
    [ 0x38 ] = KEY_D,       // 4
    [ 0x3c ] = KEY_E,        // 8
    [ 0x3a ] = KEY_F,       // 12
    [ 0x3e ] = KEY_G,      // 16
    [ 0x21 ] = KEY_H,        // 17
    [ 0x39 ] = KEY_I,      // 19
    [ 0x25 ] = KEY_J, // 20
    [ 0x35 ] = KEY_K,      // 21
    [ 0x2d ] = KEY_L,        // 22
    [ 0x3d ] = KEY_M,      // 23
    [ 0x23 ] = KEY_N,       // 24
    [ 0x33 ] = KEY_O,        // 25
    [ 0x2b ] = KEY_P,        // 26
    [ 0x3b ] = KEY_Q,         // 27
    [ 0x27 ] = KEY_R,        // 28
    [ 0x37 ] = KEY_S,      // 29
    [ 0x2f ] = KEY_T,       // 30
    [ 0x3f ] = KEY_U, // 31
};

EXPORT_SYMBOL_GPL(ir_codes_avermedia_dvbt);

/* Attila Kondoros <attila.kondoros@chello.hu> */


Notas para algunas de las modificaciones:

En el archivo bttv-driver.c el valor de .gpiomute debería de ser 0X000000, pero se producen unos chasquidos al momento de sintonizar la radio o la TV. El inconveniente que trae al asignarle el valor 0X060000 a .gpiomute, es que una vez apagada la aplicación para ver tv o escuchar radio, el sonido proveniente de la capturadora se sigue escuchando. Para solucionar este problema, hay que configurar la aplicación para que maneje la entrada "line" de la tarjeta de sonido.
En el archivo ir-keymaps.c es donde se define que accion que se le dará a cada tecla del control remoto. La modificación que se presenta aquí, habilita al control remoto para que "escriba en la pantalla" del 0 a 1 y de al a hasta la u.

En el archivo /usr/src/linux/include/linux/input.h, se describen todas las acciones habilitadas en el kernel de Linux. Utilizando este archivo como referencia, se puede perzonalizar el control remoto a "gusto del cliente".

Compilando e instalando los módulos:

En /usr/src/linux/ y ejecutar:
Code:
make SUBDIRS=drivers/media/video/bt8xx
make SUBDIRS=drivers/media/common


Make esta con el parámetro SUBDIRS para no tener que compilar el kernel completo. Así solo se compilan los módulos previamente modificados.

Una vez compilado se copia bttv.ko en /lib/modules/(versión de Kernel)/kernel/drivers/media/video/bt8xx y ir-common.ko en /lib/modules/(versión de Kernel)/kernel/drivers/media/common.

-----------------------------------------

Y así me funcionó todo mágicamente (y sin necesidad de lirc) :D
_________________
# emerge -C world >> 9/8
A flower?!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum