Lo hice y lo entendí

El blog de Vicente Navarro
25 ago

Configuración de una Hauppauge WinTV-HVR-1100 en Linux

En Sobre las VIA EPIA (II): Mi ordenador basado en una SP8000E comentaba que tengo una Hauuppauge WinTV-HVR-1100 y tenía pendiente contar cómo configurarla en Linux. Se trata de una tarjeta híbrida, capaz de sintonizar TV analógica, TDT (DVB-T) y radio FM. Usa el chip Conexant CX23880, sucesor de los famosos chips BT878 y BT848 de la empresa Brooktree. En 1996 Brooktree fue comprada por Rockwell International y en 1999 la división de semiconductores de dicha compañía, Rockwell Semiconductor, se segregó dando lugar a Conexant.

Si estás pensando en comprar esta tarjeta, es posible que también te interese considerar a los modelos superiores, la WinTV-HVR-1300, con codificador de MPEG2 por hardware y la WinTV-HVR-3000, con soporte adicional de DVB-S (emisiones por satélite en digital) .

Hauppauge WinTV-HVR-1100

El chip CX23880 está muy bien soportado en Linux, aunque hasta el kernel 2.6.16 esta tarjeta no estuvo específicamente soportada, así que en su momento me tocaba andar toqueteando el fichero drivers/media/video/cx88/cx88-cards.c del kernel para cambiar los parámetros de identificación (fabricante / dispositivo) de alguna otra tarjeta por los de la mía (vendor=0070, device=9402). Como digo, afortunadamente esto ya no es necesario:

struct cx88_subid cx88_subids[] = {
...
       {
                .subvendor = 0x0070,
                .subdevice = 0x9402,
                .card      = CX88_BOARD_HAUPPAUGE_HVR1100,
        }
...
}

Vemos que la tarjeta aparece entre la lista de tarjetas soportadas (fichero Documentation/video4linux/CARDLIST.cx88):

40 -> Hauppauge WinTV-HVR1100 DVB-T/Hybrid                [0070:9400,0070:9402]

Los parámetros se pueden ver en la salida del “lspci -v“:

00:14.0 Multimedia video controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
        Subsystem: Hauppauge computer works Inc. WinTV-HVR1100 DVB-T/Hybrid
        Flags: bus master, medium devsel, latency 32, IRQ 11
        Memory at e8000000 (32-bit, non-prefetchable) [size=16M]
        Capabilities: [44] Vital Product Data
        Capabilities: [4c] Power Management version 2

Y con “lspci -vn” podemos ver el número de fabricante y de dispositivo sin que sean buscados en la lista de las PCI ID:

00:14.0 0400: 14f1:8800 (rev 05)
        Subsystem: 0070:9402
        Flags: bus master, medium devsel, latency 32, IRQ 11
        Memory at e8000000 (32-bit, non-prefetchable) [size=16M]
        Capabilities: [44] Vital Product Data
        Capabilities: [4c] Power Management version 2

Lo primero que tenemos que hacer es configurar los módulos del kernel necesarios, aunque si usas el kernel por defecto de la distribución es muy probable que ya los tengas. En Device DriversMultimedia DevicesVideo Capture Adapters del “make menuconfig” tenemos los módulos de V4L necesarios:

Módulos CX88

En Device DriversMultimedia DevicesDigital Broadcasting DevicesCustomise DVB Frontends tenemos el módulo que habilita el CX22700, el sintonizador DVB-T:

Módules CX22700

Con estos módulos compilados y configurados en el kernel, podemos dejar al hotplug que los cargue automáticamente durante el arranque, pero en mi caso, encuentro el problema de que si dejo al hotplug actuar, carga el módulo cx88_alsa antes que el snd_via82xx y esto causa que éste último no se carga bien, como podemos ver en la salida del dmesg:

cx88[0]/1: CX88x/0: ALSA support for cx2388x boards
cannot find the slot for index 0 (range 0-0)
VIA 82xx Audio: probe of 0000:00:11.5 failed with error -12

Para evitarlo, y como no uso la sintonizadora muy a menudo, he configurado el hotplug para que no me cargue automáticamente los módulos de ésta creando un fichero /etc/hotplug/blacklist.d/dvb con el siguiente contenido:

cx88_alsa
cx88_dvb
cx8802
cx8800
cx88xx
cx88_vp3054_i2c
cx22702

Para cuando quiero a usar la sintonizadora, tengo un script que ejecuta (entre otras cosas, como el mythbackend):

modprobe cx8800
modprobe cx88_dvb
modprobe cx88_alsa

Y además, el orden de carga de los dos primeros módulos es importante, porque el cx8800 habilita la TV analógica (/dev/video0), el teletexto (/dev/vbi0) y la radio FM (/dev/radio0) y el cx88_dvb el DVB-T (/dev/adapter0/...). Podemos habilitar uno u otro o los dos, pero tengo comprobado que si cargas primero el cx88_dvb y después el cx8800 el sintonizador analógico no funciona bien.

Cargando el cx8800 antes, el comando scantv encuentra emisoras:

# modprobe cx8800; modprobe cx88_dvb; modprobe cx88_alsa
# scantv -C /dev/vbi0 -c /dev/video0 -n PAL-BG -f europe-west
[global]
freqtab = europe-west

[defaults]
input = Television
norm = PAL-BG


scanning channel list europe-west...
E2   ( 48.25 MHz): no station
E3   ( 55.25 MHz): no station
...
E5   (175.25 MHz): TVE1
[TVE1]
channel = E5

E6   (182.25 MHz): no station
...
21   (471.25 MHz): no station
22   (479.25 MHz): TVE2
[TVE2]
channel = 22

23   (487.25 MHz): no station
...
39   (615.25 MHz): no station
40   (623.25 MHz): Tele5
[Tele5]
channel = 40

41   (631.25 MHz): no station
...

Mientras que si se carga el cx88_dvb antes, el comando no encuentra ninguna:

# modprobe cx88_dvb; modprobe cx8800; modprobe cx88_alsa
# scantv -C /dev/vbi0 -c /dev/video0 -n PAL-BG -f europe-west
[global]
freqtab = europe-west

[defaults]
input = Television
norm = PAL-BG


scanning channel list europe-west...
E2   ( 48.25 MHz): no station
...
E5   (175.25 MHz): no station
E6   (182.25 MHz): no station
...
40  (455.25 MHz): no station
S41  (463.25 MHz): no station
21   (471.25 MHz): no station
22   (479.25 MHz): no station
23   (487.25 MHz): no station
...
39   (615.25 MHz): no station
40   (623.25 MHz): no station
...

Por cierto, para quitar todos los módulos involucrados, que son éstos:

# lsmod | grep cx88
cx88_alsa              10024  0
cx88_dvb               12292  0
cx8802                  9796  1 cx88_dvb
cx88_vp3054_i2c         3456  1 cx88_dvb
mt352                   6084  1 cx88_dvb
dvb_pll                12068  1 cx88_dvb
or51132                 9348  1 cx88_dvb
video_buf_dvb           4548  1 cx88_dvb
nxt200x                13092  1 cx88_dvb
isl6421                 1792  1 cx88_dvb
zl10353                 4580  1 cx88_dvb
cx24123                11752  1 cx88_dvb
lgdt330x                7708  1 cx88_dvb
cx22702                 5636  1 cx88_dvb
cx8800                 29292  0
cx88xx                 59012  4 cx88_alsa,cx88_dvb,cx8802,cx8800
ir_common              25444  1 cx88xx
i2c_algo_bit            7272  2 cx88_vp3054_i2c,cx88xx
video_buf              20804  6 cx88_alsa,cx88_dvb,cx8802,video_buf_dvb,cx8800,cx88xx
tveeprom               13616  1 cx88xx
btcx_risc               3944  4 cx88_alsa,cx8802,cx8800,cx88xx
videodev               25088  2 cx8800,cx88xx
v4l1_compat            14212  2 cx8800,videodev
v4l2_common            21088  3 tuner,cx8800,videodev
snd_pcm                71400  4 cx88_alsa,snd_via82xx,snd_ac97_codec,snd_pcm_oss
snd                    45348  14 cx88_alsa,snd_via82xx,snd_ac97_codec,snd_mpu401_uart,snd_seq_oss,snd_seq,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_rawmidi,snd_seq_device
compat_ioctl32           992  1 cx8800
i2c_core               17648  16 cx88_dvb,mt352,dvb_pll,or51132,nxt200x,isl6421,zl10353,cx24123,lgdt330x,cx22702,tuner,cx88xx,i2c_algo_bit,tveeprom,eeprom,i2c_viapro

yo suelo usar el siguiente comando ejecutado varias veces:

# rmmod cx8800 cx88_dvb cx8802 cx88xx cx88_vp3054_i2c mt352 dvb_pll or51132 video_buf_dvb nxt200x isl6421 zl10353 cx24123 lgdt330x cx22702 ir_common i2c_algo_bit tveeprom videodev video_buf btcx_risc tuner v4l1_compat v4l2_common dvb_core cx88_alsa 

Para ver la TV analógica sin más complicaciones, podemos usar el xawtv a partir de los canales que haya encontrado el scantv (para que nos cree un fichero de configuración tenemos que ejecutarlo con la opción “-o ~/.xawtv“).

xawtv

Hay que tener en cuenta que en la época de los chips BT848 y BT 878, las tarjetas sintonizadoras de TV solían llevar un cablecito que metía el audio obtenido por la sintonizadora en el line-in de la tarjeta de sonido. Las nuevas tarjetas no tienen tal cosa y el audio hay que recogerlo del bus PCI (gracias al módulo cx88_alsa), enviándolo a la tarjeta de sonido estándar. Esto lo podemos hacer ejecutando el siguiente comando mientras ejecutamos el xawtv o la aplicación que elijamos para ver TV analógica (encontrado en el tutorial de configuración de la HVR-1100 de Gentoo):

arecord -D hw:1,0 -c 2 -r 48000 -f S16_LE -t wav | aplay -

Para oír la radio FM, podemos usar simplemente los comandos fmscan y fm:

$ fmscan
Scanning range: 87.9 - 107.9 MHz (0.2 MHz increments)...
...
$ fm 97.7
Radio tuned to 97.70 MHz at 12.50% volume
$ fm off
Radio muted

En cualquier caso, si tenemos señal de TDT en casa, ya no tiene sentido usar las señales analógicas: Usando el impresionante MythTV, la experiencia con la TDT es inmejorable, con posibilidad de hacer uso de la EPG (Guía Electrónica de Programas), de grabar el flujo MPEG2 en disco, pausarlo, ir hacia atrás, hacia delante…

MythTV

MythTV TDT

Por cierto, las capturas las he hecho poniendo “export NO_XV=1” antes de ejecutar el “mythfrontend“, ya que de otra forma el vídeo no se podría capturar. Hacer esto deshabilita la aceleración hardware, por lo que en la VIA EPIA la TV se ve muy a saltos ([mythtv-users] Screenshot/capture, MythTV Little Gems, Google MythTV NO_XV). Además, para hacer las capturas más pequeñas, he lanzado el “mythfrontend” con “-w -geometry 480x360” y por eso salen las fuentes del menú un poco raras y las imágenes un poco desproporciondas.

El mando a distancia

El driver cx88xx por defecto registra el mando a distancia en el kernel como si fuera un teclado (siempre que tengamos el teclado habilitado en el kernel (CONFIG_INPUT_KEYBOARD)… que ya es raro no tenerlo) de modo que pulsar las teclas 0,1,2…9 en el mando a distancia es como si pulsáramos dichas teclas en el teclado estándar y pulsar en las flechas es como usar los cursores y el OK es RETURN. Además, el resto de teclas del mando a distancia también generan códigos de teclado que podríamos usar. Para saber cuáles son, podemos usar, por ejemplo, la aplicación xev.

Con dichas asignaciones de teclas, ya podríamos hacer muchas cosas en las típicas aplicaciones que podamos querer controlar con el mando a distancia. Sin embargo, en la mayoría de los casos es deseable tener más control sobre las teclas pulsadas en el mando. Para ello, podemos usar el interfaz de enventos, que podemos habilitar en el kernel en el menuconfig en Device Drivers → Input Device SupportEvent Interface. El módulo que genera es el evdev que se carga automáticamente durante el arranque. Podemos acceder a este interfaz a través de ficheros de dispositivo /dev/input/eventn./dev/input/eventn

El lirc (Linux Infrared Remote Control) es el paquete que se usa en Linux para decodificar la señal de multitud de tipos de mandos a distancia, incluso la de los electrodomésticos (TV, DVD, VHS, HiFi) que podamos tener en casa, siempre que en el PC tengamos algún receptor (de los muchos tipos que el lirc soporta) de dichas señales . Normalmente el demonio del lirc, el lircd lee de un fichero de dispositivo (especificado con la opción -d), que puede ser, p.e. un puerto serie con un recetor de infrarojos, decodifica la señal con un driver (que especificamos con la opción -H) y permite que las aplicaciones lean lo recibido por el mando a distancia ya decodificado a través del socket UNIX /dev/lirc.

Muchas aplicaciones usan el lircd como interfaz para el mando a distancia, así que aunque el driver de la Hauppauge ya haga toda la tarea de decodificación de la señal y sea capaz de proporcionarnos un código asociado a la tecla pusada del mando, es conveniente usar el lirc para poner tales pulsaciones a disposición de las aplicaciones fácilmente. Para ello, el lircd tiene el driver dev/input (podemos ver todos los drivers incluidos durante la compilación haciendo “lircd --driver=help“) que lee los eventos de /dev/input/eventn.

Podemos ver qué fichero de dispositivo ha sido asignado al mando a distancia haciendo un “cat /proc/bus/input/devices” y buscando a continuación la entrada que haga referencia a nuestra tarjeta sintonizadora y mirando la línea H:

I: Bus=0001 Vendor=0070 Product=9402 Version=0001
N: Name="cx88 IR (Hauppauge WinTV-HVR110"
P: Phys=pci-0000:00:14.2/ir0
S: Sysfs=/class/input/input3
H: Handlers=kbd event3 
B: EV=100003
B: KEY=100fc312 214a802 0 0 0 0 18000 41a8 4801 9e1680 0 0 10000ffc

En nuestro caso, el /dev/input/event3.

A continuación, asignaremos nombre a todas las teclas del mando a distancia con la aplicación interactiva irrecord (en el ejemplo sólo lo he hecho para 3 teclas):

# irrecord -H dev/input -d /dev/input/event3 Hauppauge-HVR1100

Press RETURN to continue.
 
Hold down an arbitrary button.
................................................................................Found gap length: 132668
Now enter the names for the buttons.
 
Please enter the name for the next button (press <ENTER> to finish recording)
OK
 
Now hold down button "OK".
 
Please enter the name for the next button (press <ENTER> to finish recording)
Play
 
Now hold down button "Play".
 
Please enter the name for the next button (press <ENTER> to finish recording)
Stop
 
Now hold down button "Stop".
 
Please enter the name for the next button (press <ENTER> to finish recording)
 
Checking for toggle bit.
Please press an arbitrary button repeatedly as fast as possible (don't hold
it down!).
..............................
Invalid toggle bit.
Successfully written config file.

Si lo hacemos bien, esto nos creará un archivo llamado “Hauppauge-HVR1100″ con contenido similar al siguiente:

begin remote
 
  name          Hauppauge-HVR1100
  bits           16
  eps            30
  aeps          100
 
  one             0     0
  zero            0     0
  pre_data_bits   16
  pre_data       0x8001
  gap          132609
  toggle_bit      0
 
 
      begin codes
          Go                       0x0000000000000161
          Power                    0x0000000000000074
          TV                       0x0000000000000179
          Videos                   0x0000000000000189
          Music                    0x0000000000000188
          Pictures                 0x000000000000016F
          Guide                    0x000000000000016D
          Radio                    0x0000000000000181
          Up                       0x0000000000000067
          Down                     0x000000000000006C
          Left                     0x0000000000000069
          Right                    0x000000000000006A
          OK                       0x000000000000001C
          Exit                     0x00000000000000AE
          Menu                     0x000000000000008B
          Vol+                     0x0000000000000073
          Vol-                     0x0000000000000072
          PrevCh                   0x000000000000019C
          CH+                      0x0000000000000192
          CH-                      0x0000000000000193
          Mute                     0x0000000000000071
          Record                   0x00000000000000A7
          Stop                     0x0000000000000080
          Rewind                   0x00000000000000A8
          Play                     0x00000000000000CF
          FastForward              0x00000000000000D0
          First                    0x00000000000000A5
          Pause                    0x0000000000000077
          Last                     0x00000000000000A3
          1                        0x000000000000004F
          2                        0x0000000000000050
          3                        0x0000000000000051
          4                        0x000000000000004B
          5                        0x000000000000004C
          6                        0x000000000000004D
          7                        0x0000000000000047
          8                        0x0000000000000048
          9                        0x0000000000000049
          *                        0x0000000000000184
          0                        0x0000000000000052
          #                        0x0000000000000172
          Red                      0x000000000000018E
          Green                    0x000000000000018F
          Yellow                   0x0000000000000190
          Blue                     0x0000000000000191
      end codes
 
end remote

Ahora tenemos que añadir los contenidos de ese fichero que hemos generado al fichero /etc/lircd/lircd.conf y editar el /etc/lircd/hardware.conf (en Debian) para especificar el driver y el fichero de dispositivo:

DRIVER="dev/input"
DEVICE="/dev/input/event3"

Y ya podemos arrancar el demonio lircd. En Debian: /etc/init.d/lirc start

Para ver que todo funciona bien, podemos usar la utilidad irw, que nos mostrará en el terminal las teclas que pulsemos en el mando:

 # irw
 0000000080010077 00 Pause Hauppauge-HVR1100
 000000008001001c 00 OK Hauppauge-HVR1100
 0000000080010080 00 Stop Hauppauge-HVR1100

En este punto, el sistema está preparado para hacer uso del mando a distancia. Ahora falta configurarlo para las diferentes aplicaciones en el fichero ~/.lircrc.

Por ejemplo, si queremos que el “irexec” ejecute “ls” cada vez que pulsamos la tecla Power (segun el nombre puesto a la tecla en el /etc/lirc/licrd.conf), pondremos en el ~/.lircrc:

begin
     button = Power
     prog   = irexec
     repeat = 0
     config = /bin/ls
end

Ahora ejecutamos “irexec &” y cada vez que pulsemos la tecla Power, nos aparecerá la salida de un “ls” en pantalla.

El MythTV, el mplayer o el xine también soportan el lircd, así que por ejemplo, para controlar algunas funciones con el mplayer, pondríamos:

begin
    prog = mplayer
    button = Pause
    config = pause
end

begin
     button = Vol+
     prog = mplayer
     config = volume 1
     repeat = 1
end

begin
    button = Vol-
    prog = mplayer
    config = volume -1
    repeat = 1
end

Fichero lircrc de ejemplo con configuración para MythTV, mplayer y xine.

El MythTV, curiosamente, no coge la configuración del fichero ~/.lircrc, sino que hay que ponérsela en el fichero ~/.mythtv/lircrc.

Para finalizar, comentar que el paquete lirc incluye el lircmd, que permite mover el ratón usando teclas del mando a distancia (ejemplo de configuración en /usr/share/doc/lirc/examples/lircmd.conf).

Entradas relacionadas

56 Comentarios a “Configuración de una Hauppauge WinTV-HVR-1100 en Linux”

  • miguel dice:

    Muy buena entrada. Enhorabuena.
    Pregunta: ¿con una tarjeta de este estilo se puede capturar bien la señal de un reproductor vhs o dvd?

    A seguir bien.

  • miguel ¡Muchas gracias! :D

    Para decirte la verdad, no lo he hecho nunca. Yo tenía una antigua Avermedia TV98 con chip BT878 en un Pentium II a 450MHz (bueno, en realidad aún la tengo) de cuando la época de decodificar Canal+ y todo eso y la verdad es que según el códec escogido para guardar el vídeo se podían perder bastantes frames, y eso a 320×240. Si guardabas el flujo descomprimido para comprimirlo posteriormente, no había problemas, pero se te llenaba el disco duro por instantes. Además, en aquella época usábamos Win98 con FAT32 y no se podían crear ficheros de más de 2GB, si no recuerdo mal. Vamos, que un desastre.

    Hoy en día los ordenadores son mucho más potente y seguro que hay un montón de compresiones que seguro que pueden aplicar en tiempo real, pero me imagino que comprimir la señal de entrada con una resolución importante (576i) a MPEG2 o MPEG4 (xdiv, divx) en tiempo real sigue siendo algo que muchos ordenadores no podrán hacer. Es cuestión de probarlo, claro. Fíjate que en la página de la Hauuppauge WinTV-HVR-1100 pone:

    Captura de vídeo con la TV Analógica:

    Grabe la TV analógica con Timer en el disco duro de su PC, en formato MPEG-1 o MPEG-2 utilizando nuestro SoftPVR.

    Entradas S-Vídeo y Compuesto para capturar fuentes analógicas de vídeo. ¡Capture sus vídeos personales analógicos en su PC! Las grabaciones tomarán aproximadamente 1,5 GB/Hora en MPEG-2; 700 MB/Hora en MPEG-1.

    Pero si quieres capturar en serio cosas analógicas, igual te interesa la WinTV-HVR-1300, que lleva codificación de MPEG2 por hardware.

    Si lo que quieres es simplemente visualizar en la pantalla la señal del VHS o DVD y no capturarla no creo que haya mayor problema.

    Por cierto, yo he pasado muchos viejos vídeos VHS a DVD usando una cámara MiniDV: Conecto el reproductor de VHS o la vieja cámara Video8 a la entrada analógica de la cámara y por la salida Firewire me sale el vídeo ya digitalizado y listo para pasar a MPEG2/DVD tras un poco de edición.

  • Ivan dice:

    Me ha gustado mucho esta entrada, me están entrando ganas de comprar una tarjeta de estas. De hecho yo también tengo una Avermedia de los tiempos del Canal+, pero como no la utilizaba casi nada, cuando monté el nuevo ordenador la quité y la guardé, y me dió una penita… :-(.
    Ahora, con aplicaciones tan buenas como Zatoo si quiero ver algo de la tele cuando estoy con el ordena no tengo problemas.

    Tu frase final me ha encantado, eso de digitalizar videos antiguos con la cámara MiniDV es una opción muy buena, lo voy a tener que probar.

    Saludos, Iván.

  • Iván ¡Gracias! :-)

    Tengo que probar el Zatoo ese a ver qué tal va. Había oído hablar de él pero no lo he probado…

    Respecto a pasar vídeo analógico a DVD, yo estoy convencido de que una cámara miniDV con entrada analógica es la mejor opción, ya que tienes el vídeo en el PC (en forma de fichero avi con compresión DV) en menos que canta un gallo sin absolutamente ninguna dificultad. Luego es el turno de las herramientas de edición de vídeo, pero ya está superado, ¿verdad? (¿Edición de video en Linux?).

    Es interesante saber que no todas las cámaras permiten hacer esto, porque no todas llevan entrada analógica y DVin (normalmente va unido, y es algo muy frecuente en las más baratas), aunque el mismo modelo en EEUU sí lleve, debido a un arancel de la UE sobre “dispositivos de grabación de vídeo”. Extracto de imagenDV.com, DV – in gratis:

    Al elegir un modelo de videocámara DV resulta sorprendente y desagradable el comprobar que hay muchas de ellas que no permiten la posibilidad de grabar de fuentes digitales externa a través del FireWire. Para aquellos que deseen hacer edición de video, que sepaís que con esos modelos no podeís pasar las imágenes editadas de nuevo a vuestra flamante cámara digital. En resumen, que el puerto IEEE1394 FireWire es sólo de salida en muchas de las cámaras para Europa. Ojo, pues las informaciones que se obtienen en Webs americanos suelen hablar de IN/OUT port ( puerto de entrada/salida). Recordad que esta interface es bidireccional, por el mismo cable y conector se podría mandar información en ambos sentidos.

    Lo que ocurre es que la Comunidad Europea impone un arancel del 10% o el 15% a los aparatos de video “grabadores” y los fabricantes japoneses no desean encarecer sus productos. Para evitarlo cambian el software interno de la cámara y deshabilitan la posibilidad de grabación. Es muy fuerte pero es así. El que quiera edición puramente digital se debe comprar una cámara con DV-IN y DV-OUT , que suelen ser de la gama alta de precios.

  • Ivan dice:

    Prueba Zatoo, que además hay paquete .deb para linux…

    Muchas gracias por la respuesta. Esta noche pensando en cómo conectar la cámara me he dado cuenta de que necesitaba DV-In. Cuando la compré sabía que la mía no lo tenía y no me importó porque no me interesa guardar los videos editados otra vez en MiniDV. Además, quería una videocámara que grabara en 16:9 para aprovechar la tele y la mayoría por el precio que me costó a mi lo único que hacían era grabar en 4:3 y poner dos franjas negras. Así, sopesando, llegamos a la conclusión que comprábamos esa.
    Ahora, con esto de poder capturar de fuentes analógicas me da un poco de pena, aunque creo que al final sería sólo para cacharrear y no lo utilizaría. De todas formas, una pregunta: ¿como conectarías un video VHS (por ejemplo) al dv-in?. Por un lado está el cable firewire en la cámara, pero al video VHS que no tiene ese conector?.

    Saludos, Iván.

  • Ivan dice:

    Perdona pero tengo que aprender a leer: “entrada analógica y DVin (normalmente va unido…”.

  • Iván :-)

    Bueno, cuando yo compré mi Canon MVX150i (Canon Optura 20 en EEUU) hace 3 años y medio, sí que le di bastante importancia a la entrada analógica porque precisamente quería usarla, entre otras cosas, para pasar un montón de viejos vídeos caseros a DVD.

    Incluso hoy en día sigue siendo óptima para tal uso, ya que los famosos grabadores de DVD de sobremesa te graban la señal de la cámara miniDV a DVD con el menú y los parámetros de compresión que el grabador quiera, de forma que si quieres hacer alguna edición o incluso cambiar el feo menú que ponen, te toca volver volver a editar el DVD y a comprimir el MPEG2, con la pérdida de calidad que supone comprimir dos veces lo mismo.

    Como le comentaba a Miguel, una tarjeta capturadora para PC puede ser una muy buena alternativa para convertir vídeos analógicos a digital, pero como no tengo experiencia en la materia, no puedo opinar. Tal vez algún lector de la entrada nos pueda contar su experiencia al respecto.

  • Ringmaster dice:

    Otro gran artículo, Super Coco; tus artículos son muy instructivos.
    ¿Para cuándo un artículo sobre la arquitectura linux, instalación/desinstalación de controladores y otras cosas “básicas” para los iniciados ;-) ?
    Estaría bien tener en castellano un pequeño tutorial sobre cada tema (por poner un ejemplo; qué archivos están implicados en la carga automática de controladores, qué comandos se utilizan y un resumen de sus opciones más habituales, etc), ya que mucha gente puede leer tus artículos y no entender qué está pasando realmente.
    Tus artículos están muy bien para alguien que conozca un poco Linux, pero si hubiera una referencia o glosario para los nuevos… no sé es una idea por si no lo habías pensado.

    Todo lo que ayude a que no se frusten los nuevos usuarios (linux tiene mucho camino por recorrer, y hasta que no tenga lagunas o errores cuando un usuario se encuentra con un problema no tiene muchos sitios donde acudir… excepto internet, y está todo en inglés). O si sabes de alguna página web… igual habría que referenciarla…

    Cuídate y hasta pronto.

  • Ringmaster ¡Muchas gracias de nuevo! ;-)

    Bueno, si lees la primera entrada de todas, ¡Bienvenido a mi blog!, verás que el propósito de esta página era ir documentando cosas que hice en el pasado y cosas con las que me voy encontrando… Es lo que me apetecía hacer cuando empecé y es lo que sigo haciendo de momento. Tal vez en el futuro me plantee hacer tutoriales de nivel básico, pero de momento prefiero seguir en esta línea en la que presupongo que el lector tiene ya una cierta base de conocimiento del tema que se trata. Como verás, en la mayoría de los casos doy por hecho que el lector tiene más o menos el mismo nivel de conocimientos que yo, sea mucho o sea poco…

    A los nuevos en el mundo de Linux les aconsejo que se den una vuelta por TLDP-ES/LuCAS: servicios editoriales para la documentación libre en español. Seguro que encuentran todo lo necesario para empezar allí.

    Desafortunadamente, reconozco que hoy por hoy Linux no puede llegar a los mismos usuarios que llega Windows. Linux de momento necesita usuarios con muchas ganas de aprender y unas ciertas capacidades técnicas.

    ¡Queda mucho camino por recorrer!

  • taromaru dice:

    Muy buena entrada, si señor.
    Me encanta este blog por que tocas temas interesantes y es muy ameno!
    Gracias!

  • taromanu ¡Muchas gracias! ¡Me alegro de que te haya gustado!

  • Arrrrg!!! AL FIN!!!!
    Por si le puede servir a alguien, en Ubuntu Feisty he tenido que darle lo primero un dpkg-reconfigure al lirc. Antes de esto me decía que no estaba configurado incluso después de haber hecho cada uno de los pasos aquí descritos. Quizas sea muy obvio pero he dado muchas vueltas, demasiadas :/

    En fin, muchas gracias por el tuto, me ha venido de perlas.

    Un apunte mas, antes de liarse a registrar botones mirad en la web oficial de lirc, hay muchos archivos de configuración de mandos que no están soportados de forma nativa.

  • The_Pringao_How_Tol_dia ¡Muchas gracias por ampliar la entrada con tu experiencia!

  • Pues nada… aquí seguimos xD
    Todo perfecto hasta el primer reinicio. El señor “udev” le puede dar diferentes “events” al mando (al menos a mi me lo ha hecho, unas veces es event2 y otras event3) así que hay que dejarlo estático usando un enlace simbólico al nombre del dispositivo que hay que sacarlo con cat, agarrarlo con grep y recortarlo con cut… manda coj***
    Así que si os pasa a alguno:
    Después del comando “cat /proc/bus/input/devices” quedaros con parte del nombre del mando, a mi personalmente me ha servido solo con “hauppauge” pero si tuviéramos mas dispositivos de ese mismo fabricante tendríamos problemas y habría que ser mas especifico.

    Este es el comando en cuestión para crear el enlace, yo lo he metido al final del “/etc/init.d/lirc”

    “”
    sudo ln -fs /dev/input/`cat /proc/bus/input/devices | grep -A 3 “Hauppauge” | grep event | cut -d ‘ ‘ -f3 | head -n1` /dev/input/irremote
    “”

    Eso nos crea el enlace “irremote” en /dev/input/ asi que a partir de este momento en /etc/lirc/hardware.conf” habria que darle DEVICE=”/dev/input/irremote”

    Ale… mando configurado de por vida! o eso espero.

  • The_Pringao_How_Tol_dia ¡Me parece una solución muy interesante! Y de nuevo, ¡gracias por contribuir!

  • trompeteandos dice:

    Tengo una wintv vhr 3000, la papa de estas creo jeje, y bueno mi pregunta es…mi camara una sony de unos añitos, tiene como salida un RCA en negro (audio) y otro RCA en amarillo (video) como puedo conectarla a la tarjeta para pasar mis vhs a DVD??

    Es que el video supongo que podré, por la entrada de video q tiene, pero y el RCA negro con el audio?
    Tengo que comprar un adaptador de RCA a jack q es lo que parece que trae la tarjeta??

    Por favor que alguien me arroje algo de luz, muchas gracias.

  • trompeteandos En la página de la WinTV-HVR-3000 leo que tiene:

    [...] entradas S-Video, vídeo compuesto y entrada de audio estéreo.

    Por tanto, tendrás que conectar el RCA de vídeo a la entrada de vídeo compuesto y conseguir el típico cable ese de dos RCA a un jack. Como parece que tu cámara sólo tiene una salida de audio (mono), se te quedará un canal del stereo vacío. Si quieres corregir eso, puedes buscar alguna forma de meter la misma señal en los dos canales antes de la captura (con algún adaptador más adecuado) o arreglarlo por software después de la captura.

  • Alberto dice:

    Hola Supercoco. Genial artículo, ya me he leido unos cuantos tuyos y no tienen desperdicio.

    Me he animado a comprar una HVR-3000 y mala suerte, no es compatible con el kernel 2.6.22, por supuesto tampoco con el 2.6.23 con el que trabajo actualmente. Ya he probado de todo y nada. Por lo que he leido por ahí, se puede usar con el 2.6.19 aplicando algun que otro parche. Por desgracia si arranco mi ordenador con el 2.6.19 simplemente no arranca, esto es porque este kernel no detecta la controladora SATA de mi placa. Yo prefiero trabajar en modo SATA AHCI y no IDE legacy (que si arrancaría), así que, como no tengo excesivo interés en ver la televisión en el PC, me queda esperar a que aparezca el santo remedio o más bien el driver adecuado para estos kernel nuevos.

    También puede ser que yo sea el tipo más burro del planeta, así que si alguien la tiene funcionando con el kernel 2.6.22 o 23, sería un detalle que me contara como.

    Lo dicho sigue escribiendo cosas interesantes, que nos ayudan mucho a todos. Gracias.

  • Alberto ¡Gracias!

    Pues he ido a mirar en el fichero drivers/media/video/cx88/cx88-cards.c de las fuentes del kernel y, efectivamente, fíjate qué comentario ha dejado el desarrollador, que aún no hay soporte de DVB ni de radio:

            [CX88_BOARD_HAUPPAUGE_HVR3000] = {
                    /* FIXME: Add dvb & radio support */
                    .name           = "Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T",
                    .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,

    Al menos la TV analógica te debería de funcionar. ¿Lo has probado?

    ¡Qué curioso! ¿Por qué habrán quitado el soporte en versiones posteriores?

  • Alberto dice:

    Hola Supercoco.

    Pues si lo he probado y tampoco funciona, no sintoniza absolutamente nada y lo curioso es que, por ejemplo, sintonizando con Kaffeine se puede ver como recibe una excelente señal, sobre todo cuando pasa por las frecuencias donde existen canales. No entiendo las razones por las que habrán quitado el soporte en estas versiones del kernel, me he cansado de leer y buscar por internet y por ahora no he encontrado ninguna explicación.

    Haciendo un lspci -v devuelve lo siguiente:

    05:00.0 Multimedia video controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
            Subsystem: Hauppauge computer works Inc. Unknown device 1402
            Flags: bus master, medium devsel, latency 32, IRQ 21
            Memory at ea000000 (32-bit, non-prefetchable) [size=16M]
            Capabilities: [44] Vital Product Data
            Capabilities: [4c] Power Management version 2

    Pienso que lo de “Unknown device 1402″ de la segunda línea es síntoma de que algo no está bien.

    En fin, voy a seguir investigando segun vaya disponiendo de tiempo libre. Reconozco que soy bastante “cabezón” y hasta que lo consiga no pararé. Ya te contaré si descubro algo.

    Un saludo.

  • Alberto dice:

    Hola.

    Quería añadir algo. En la versión 2.6.18 del kernel no he visto soporte ninguno para esta tarjeta. Sin embargo en la 2.6.19.7 que yo he probado, si que aparece. Eso si con los matices que tu comentas de nada de DVB ni de radio. Lo que yo he probado son los drivers (que soportan analógica, DVB-T y DVB-S) que se pueden bajar de linuxtv.org. Ahí es donde he leido que esos drivers no funcionan en más allá de la 2.6.19.

    Yo no soy programador, así que me toca esperar y aprender todo lo posible.

    Un saludo.

  • Alberto Lo del unknown device 1402 es sospechoso. Fíjate en lo que comento al principio de la entrada sobre cómo lo hacía yo cuando mi tarjeta no estaba soportada por el kernel.

    Para la HVR-3000 veo las siguientes líneas en el kernel:

            },{
                    .subvendor = 0x0070,
                    .subdevice = 0x1404,
                    .card      = CX88_BOARD_HAUPPAUGE_HVR3000,
            },{
    [...]
            },{
                    .subvendor = 0x0070,
                    .subdevice = 0x1400,
                    .card      = CX88_BOARD_HAUPPAUGE_HVR3000,
            },{
                    .subvendor = 0x0070,
                    .subdevice = 0x1401,
                    .card      = CX88_BOARD_HAUPPAUGE_HVR3000,
            },{
                    .subvendor = 0x0070,
                    .subdevice = 0x1402,
                    .card      = CX88_BOARD_HAUPPAUGE_HVR3000,
            },{

    Yo lo que haría sería mirar si los subvendor y subdevice que muestra el lspci para tu tarjeta aparecen entre los soportados por el kernel.

  • Alberto dice:

    Hola. Si hago un lspci -vn me dice.

    05:00.0 0400: 14f1:8800 (rev 05)
            Subsystem: 0070:1402
            Flags: bus master, medium devsel, latency 32, IRQ 21
            Memory at ea000000 (32-bit, non-prefetchable) [size=16M]
            Capabilities: [44] Vital Product Data
            Capabilities: [4c] Power Management version 2
    
    05:00.1 0480: 14f1:8811 (rev 05)
            Subsystem: 0070:1402
            Flags: bus master, medium devsel, latency 32, IRQ 10
            Memory at eb000000 (32-bit, non-prefetchable) [size=16M]
            Capabilities: [4c] Power Management version 2
    
    05:00.2 0480: 14f1:8802 (rev 05)
            Subsystem: 0070:1402
            Flags: bus master, medium devsel, latency 32, IRQ 21
            Memory at ec000000 (32-bit, non-prefetchable) [size=16M]
            Capabilities: [4c] Power Management version 2
    
    05:00.4 0480: 14f1:8804 (rev 05)
            Subsystem: 0070:1402
            Flags: bus master, medium devsel, latency 32, IRQ 10
            Memory at ed000000 (32-bit, non-prefetchable) [size=16M]
            Capabilities: [4c] Power Management version 2

    Por lo que entiendo que tanto el subvendor como el subdevice si están soportados.

    Sin embargo yo leo el fichero cx88-cards.c hacia el final del mismo, y me da la sensación de que no hace nada o no tiene ninguna línea de código que haga algo con la tarjeta HVR3000. Pero no me hagas mucho caso, yo no soy programador y se más bien poco de C. Quizás tu podrías descifrarme algo de ese código. Igual una opción es usar el método que tu seguiste cuando tu HVR1100 no estaba soportada, es decir, cambiar los parámetros de identificación por una HVR1100 o HVR1300 por ejemplo. ¿Qué opinas?.

  • @Alberto Pues sí, eso es lo que hice yo: Buscar una tarjeta muy parecida que sí estuviera soportada y puse los identificadores de mi tarjeta. A mí me funcionó, aunque no recuerdo qué otra tarjeta usé.

  • Alberto dice:

    Hola.

    Te cuento lo que he hecho, aunque sin resultados positivos. He utilizado la tarjeta HVR-1300 y le he puesto los identificadores de la HVR3000, quedando así:

    	},{
    		.subvendor = 0x0070,
    		.subdevice = 0x1402,
    		/*.subdevice = 0x9600,*/
    		.card      = CX88_BOARD_HAUPPAUGE_HVR1300,
    	},{

    Más abajo en el fichero, y para evitar duplicar el identificador (imaginé que sería lo correcto), comenté toda la identificación original de la HVR-3000, dejándolo así:

    	},{
    		/* Suprimo este identificador y se lo pongo a una HVR1300
    		.subvendor = 0x0070,
    		.subdevice = 0x1402,
    		.card      = CX88_BOARD_HAUPPAUGE_HVR3000, */
    	},{

    Guardo el fichero, compilo una nueva versión del kernel completa (podría haber hecho un make modules, pero he preferido compilar todo). Instalo el kernel, reinicio el PC y nada, más de lo mismo. Sigue poniendo “Unknown device 1402″ al hacer lspci -v antes de cargar los módulos. Cargandolos después tampoco cambia nada, pone lo mismo.

    Voy a seguir intentando utilizar otras tarjetas similares y probar más opciones a ver que pasa. Aunque tendrá que ser dentro de un tiempo, temas de trabajo me van a apartar del PC una temporada. Ya te contaré lo que vaya descubriendo.

    Gracias y un saludo.

  • @Alberto Pues no sé yo qué misterio tendrá esa tarjeta. Si lo descubres, cuéntanoslo. Precisamente, he visto que hay gente que llega a esta entrada buscando por la HVR3000.

    Gracias

  • Súper Alberto dice:

    Me pasa exactamente lo mismo q Alberto, si alguien sabe algo…

  • Sergio dice:

    Hola, me gustaria unirme a la causa porque yo tambien estoy sufriendo las consecuencias de tener una HVR3000 ;) . He visto que hay una actualización de los drivers de Steve Toth que por lo que entiendo funcionan con la version 2.6.22 ( http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019952.html ) El caso es que yo lo he intentado pero no he tenido éxito.

    Me gustaria saber si alguien ha podido compilar bien los drivers de http://www.linuxtv.org/hg/~stoth/hvr3000 con el kernel 2.6.19.7 (me interesa esta version porque tiene los drivers para discos sata), con el 2.6.18 no tengo problemas, pero la 19.7 no hay manera…

    Saludos!!

  • X04n 2.0 dice:

    Hola,

    Yo tengo una HVR 3000 funcionando en un AMD 64 con Debian Sid (también la he probado con Lenny y Etch).

    Primero he seguido los pasos de este post, pero para los kernels superiores a la versión 2.6.19 es necesario seguir los pasos de indicados en la dirección que puso Sergio ( http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019952.html ).

    He probado con varios kernels y actualmente la tengo funcionando con el 2.6.23.9.

    Bien, los pasos que he seguido son los siguientes:

    - Bajarse los drivers y los parches

    http://usa.dpeddi.com/v4l/v4l-dvb-20070818.tar.bz2
    http://usa.dpeddi.com/v4l/v4l-dvb-20070818_hvr3000.diff
    http://usa.dpeddi.com/v4l/v4l-dvb-20070818_hvr3000_trio.diff

    - Abrir una consola y entrar en modo root
    - Ir a la ruta /usr/src, crear dentro un directorio llamado v4l y copiar los archivos dentro
    - Descomprimir el archivo de drivers con el comando

    # bzip2 -dc v4l-dvb-20070818.tar.bz2 | tar -xv

    esto creará un directorio llamado v4l-dvb-20070818

    - Aplicamos el primer parche
    # patch -p0 < v4l-dvb-20070818_hvr3000.diff

    - Aplicamos el segundo parche

    Muy importante: en la versión que tengo yo de los parches, el segundo no aplica los cambios en la ruta v4l-dvb-20070818 si no en la ruta v4l-dvb-20070818_hvr3000 por lo que lo que podemos hacer es cambiarle el nombre al directorio

    # mv v4l-dvb-20070818 v4l-dvb-20070818_hvr3000

    y luego aplicamos el parche

    # patch -p0 < v4l-dvb-20070818_hvr3000_trio.diff

    - Una vez hemos aplicado los parches, entramos en el directorio y vamos a proceder a compilarlos

    Muy importante: Primero debemos limpiar toda la información de compilación que pueda tener, ya que si intentamos compilar lo más seguro es que dará error

    # make distclean

    Luego entramos en la configuración

    # make menuconfig

    y activamos el soporte de los drivers

    [*] Enable drivers not supported by this kernel (NEW)
    Multimedia devices --->
    Audio devices for multimedia —>

    Load an Alternate Configuration File
    Save an Alternate Configuration File

    Lo guardamos y ya podemos compilarlo

    # make

    e instalarlo

    # make install

    Reiniciamos el pc y ya debería detectar la tarjeta y sintonizar los canales

  • @X04n 2.0 ¡Vaya! ¡Eso sí que es explicar cómo configurar la HVR-3000! Espero que a los que lleguen aquí buscando ayuda para configurar dicha tarjeta les vaya tan bien como a ti con tus consejos. Ya nos lo contarán.

    ¡Muchas gracias por tu contribución!

  • X04n 2.0 dice:

    Una cosa,

    Se me olvidaba… cuando configuréis los módulos, debéis entrar en Multimedia devices y desmarcar Enable Video For Linux API 1 (DEPRECATED)

    Video For Linux
    [ ] Enable Video For Linux API 1 (DEPRECATED)
    [*] Enable Video For Linux API 1 compatible Layer
    [*] Video capture adapters —>
    [*] Radio Adapters —>
    DVB for Linux
    [*] Load and attach frontend modules as needed
    [*] DVB/ATSC adapters —>
    [*] DAB adapters
    DABUSB driver

    De nada y gracias a vosotros, que con este blog más de una vez me habéis ayudado con dudas que tenía :)

  • Sergio dice:

    Muchas gracias X04n 2.0 !!
    Mi problema era que no aplicaba los parches (ahora ya se que son los .diff). Al final pude instalar la tarjeta en el kernel 2.6.18 y disco sata, ya que despues de revisar las opciones en el menuconfig encontré que para estas versiones antiguas de nucleo, los drivers Sata estan en device driver –> SCSI device .. aunque ahora esto ya da igual! ;)

  • Alberto dice:

    Hola a todos.

    Es fantástico como colabora todo el mundo. He estado unos dias si poder trastear en este tema y ya veo que Sergio y X04n 2.0 han aportado la solucción definitiva. Lo hice y lo entendí, este es el lema de esta página.

    Yo me he compilado primero un kernel 2.6.22 y después he compilado los drivers, previo parcheo. Todo funciona perfectamente.

    No tengo mucho más que aportar, la explicación que ha dado X04n 2.0 es la mejor guia a seguir. Muchas gracias a todos y sobre todo a Super Coco por mantener una web tan activa e interesante como esta.

    Voy a compilar los drivers para mi kernel 2.6.23.8 que lo tengo más optimizado para mi PC, pero como ya ha dicho X04n 2.0, funcionará perfectamente.

    Saludos.

  • @Sergio, @Alberto ¡Me alegro un montón de que la solución de X04n 2.0 os haya ayudado!

    @X04n 2.0 ¡Muchísimas gracias por ayudar a los lectores del blog! :P

  • Estimado Vicente:

    Ya conseguí que funcionara todo bien con el KAFFEINE, pero el LIRC es superior a mis fuerzas, tengo la HAUPPAUGE 1300 con su mandito como el de la foto, pero no se instalar el LIRC correctamente.

    Así que te pido una valiosa ayuda para mi.

    GRACIAS DE ANTEMANO.

    Tengo el ubuntu 7.10

  • @aníbal gonzález Pero, ¿cuál es el problema concreto que tienes con el LIRC o al instalarlo?

  • Que no reconoce ningún mando, ni se puede agregar en el primer panel que sale, los botones de ADD y el resto están apagados.

    También sale un letrero en rojo avisándome de que no está bien instalado o algo así y que me dirija a http://www.lirc.org.

    Claro está todo en inglés y aparte no está clara la página, en inglés leído me defiendo algo, pero ya con palabras técnicas me pierdo.

    Gracias por interesarte.

  • @aníbal gonzález Me temo que con esa información no puedo ayudarte, porque no entiendo cuál es tu problema. En esta entrada tienes la información necesaria para hacer funcionar el mando en una HVR-1100. Si en la HVR-1300 el mando funciona igual, no deberías de tener problemas siguiendo dichos pasos.

  • Estimado super coco:

    Tengo el kernel 2.6.22. En la página de LinuxTV comenta en el primer apartado que no funciona sobre kernel 2.6.20 que lo hace con el 19 , tengo el 22.
    Cuando abro LIRC me dice que no hay ningún HARDWARE de control remoto disponible, de hecho no me crea ningún archivo en etc/init.d para el mando a distancia.

    ¿es posible que no tenga instalado el cx88 y funcione la placa con CAFFEINE? (que funciona)

    Si es así ¿como se haría con ubuntu gusty y kernel 2.6.22?

    Perdón por mi ignorancia pero tengo pocas nociones sobre todo esto.

    Gracias de nuevo, y disculpa las molestias que te esté creando.

    SALUDOS

  • @aníbal gonzález No es molestia, pero me temo que no puedo prestarte ayuda por este canal y además con una tarjeta distina a la mía. Te recomiendo que mires si lo que hice yo para la HVR-1100 te sirve para tu 1300.

    Siento mucho no poder ser de mayor ayuda.

  • sebastiao dice:

    ola!
    muy buenas!
    necessito mirar ono en mi pc con mi tajeta wintv..
    que tengo que hacer?
    por favor contestame !!!
    saludos !!!!
    sebastiao

  • Kostis dice:

    @aníbal gonzález yo también tengo el mismo problema, con el lirc. De hecho tengo el mismo kernel que tú, el 2.6.22.

    En mi caso tengo una HVR 3000 y he seguido exactamente los mismos pasos descritos por X04n 2.0

    Si encuentras alguna solución podrías postearla?

  • Kostis dice:

    Lo he conseguido! No se si será la opción más sencilla y pero aunque es un tanto chapucera pero me ha funcionado.

    PARTE 1

    Yo tengo una HVR 3000 que he consegido que funcione siguiendo los mismos pasos que describe X04n.

    Por un lado me bajé la ultima versión el V4L (hg clone http://linuxtv.org/hg/v4l-dvb) al compilar esta versión el lirc que tenía instalado me ha funcionado, pero no la tarjeta de TV porque no estaba parcheado.

    Por otro lado, en la pagina http://gentoo-wiki.com/HARDWARE_Hauppauge_HVR_1300 comentan que hay un problema con el lirc y el V4L en el kernel 2.6.22 y que se tiene que parchear el V4L. En esta página te envían a http://linuxtv.org/hg/v4l-dvb/rev/467cb70a3d56 donde te aparecen 2 ficheros a parchear.

    Con el v4l-dvb-20070818.tar.bz2 no he podido usar el parche que comentan en la página de Gentoo por lo que he comparado a mano los ficheros implicados en el parche, cx88-input.c y ir-kbd-i2c.c del v4l-dvb-20070818.tar.bz2 con los de la última versión del V4L.

    Al final he completado en ir-kbd-i2c.c del v4l-dvb-20070818.tar.bz2 la siguientes lineas:

    static const int probe_saa7134[] = { 0x7a, 0×47, 0×71, 0x2d, -1 };

    y

    static const int probe_cx88[] = { 0×18, 0x6b, 0×71, -1 };

    Antes de compilar el V4L me he asegurado que cuando he hecho el make menuconfig tengo seleccionado el bt848 (Segun la página de gentoo este módulo forzará la compilación del ir-kbd-i2c.c).

    Finalmente he añadido options ir-kbd-i2c hauppauge=1 al fichero /etc/modprobe.conf (ojo que uso gentoo, en debian es diferente)

    Despues de esto he compilado el V4L normalmente

    PARTE 2
    ——-

    Aun después de compilar el V4L he visto que, por lo menos en gentoo, lirc sólo funciona con la versión del CVS. Para compilar el lirc desde el CVS echaz un vistazo a http://www.lirc.org/cvs.html

    Te logeas en el CVS (cuando te pida el password le das al enter)

    cvs -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc login

    Te bajas el código

    cvs -z8 -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc co lirc

    Depués de esto compilas el código:

    cd lirc
    ./autogen.sh
    ./setup.sh
    make

    Cuando hagáis el setup.sh os saldrá una bonita pantalla azul de configuración:

    1 (Driver configuration) -> 0 (Other…) -> 6 (Linux input layer….)
    3 (Save configuration & run…)

    Finalmente después de hacer el make

    probé de hacer:

    irrecord -H devinput -d /dev/input/event5 Hauppauge-HVR3000

    Y FUNCIONA!!!!!!!

    Como he dicho antes, estoy convencido que el proceso se puede simplificar y que alguno de los pasos que os he puesto sobran, pero la verdad os digo que estoy hasta las narices ya del tema de la HVR 3000 y el linux. Me ha funcionado y no me voy a marear más…no pienso ni hacer un update del linux!

    Un abrazo a todos y felicidades por esta pedazo de página!!!!

  • @Kostis Me alegro mucho de que lo hayas conseguido y también muchas gracias por explicarlo aquí para que cualquier visitante pueda servirse de tu experiencia.

  • nk82 dice:

    Hola, me gustaría añadir un pequeño granito de arena a este genial HowTo.

    El tema es que con Ubuntu Hardy Heron hay problemas con la HVR1300 y supongo que también con la HVR1100. Falla la detección debido a un bug en el kernel que incorpora de serie (espero lo corrijan pronto en las actualizaciones). Os comento lo que hice para que funcionase (es muy sencillote):

    - Recién instalada la distribución, me bajé el siguiente archivo (es una actualización que corrige el fallo en cuestión y alguno otro mas):
    wget http://ppa.launchpad.net/stefan-bader-canonical/ubuntu/pool/main/l/linux-ubuntu-modules-2.6.24/linux-ubuntu-modules-2.6.24-16-generic_2.6.24-16.23ubuntu3_i386.deb
    En caso de necesitar otra versión (por el kernel) o que esta no se encontrara disponible, acceded directamente a http://ppa.launchpad.net/stefan-bader-canonical/ubuntu/pool/main/l/linux-ubuntu-modules-2.6.24/

    - Una vez se tiene el archivo, se instala:
    sudo dpkg -i linux-ubuntu-modules-2.6.24-16-generic_2.6.24-16.23ubuntu3_i386.deb

    Y con esto ya funciona tanto el analógico como el digital sin necesidad de añadir módulos al blacklist ni de ejecutarlos por cierto orden :)

    Un saludo y enhorabuena por la página.

  • @nk82 Pues muchas gracias por tu comentario que seguro será de mucha utilidad a los lectores de la entrada.

  • Sneb dice:

    nk82, gracias por tu comentario, pero el paquete ha sido borrado del repositorio que nombras. Mientras que en Hardy, la subversión del kernel sigue siendo la 16, en la página ya sólo lo proporcionan para el 18.

    Si supieras de un nuevo enlace para bajarlo te lo agradecería. O si lo tienes a bien podrías mandarlo a la dirección de correo largadas arroba gmail punto com.

  • nk82 dice:

    Hola Sneb, siento decirte que ya no tengo el paquete que mencionaba en mi post (gran fallo) y no hay manera de encontrar el fichero por Internet.

    De todas las soluciones que se me ocurren, creo que la mejor es hacer lo que indica Super Coco, ya que las otras pasan por actualizar el kernel usando el archivo de configuración que incluye Ubuntu e instalar la versión actual del fichero (la 18 en este momento) o que te pase mis archivos en un tar.gz y los instales tú manualmente (lo cual me parece una mala solución). Es decir, una liada.

    Por cierto, es posible actualizar el kernel a la versión 2.6.24-17 desde repositorios (yo lo tengo hace bastante), quizás muy en breve salga la versión 18 y así puedas solucionar mas fácilmente.

    Lo siento :(

  • Sneb dice:

    No te preocupes nk82. Gracias de todas formas. Toca ver la tele del salón una temporada ;-)

  • nk82 dice:

    Hola, ayer me decidí a agregar una Hauppauge HVR-4000 a mi instalación con una HVR-1300 y he de decir que siguiendo los pasos que explica Dani en su página la HVR-1300 también me funciona perfectamente, teniendo ahora mismo en MythTV dos sintonizadoras TDT, dos analógicas y la de satélite pendiente de configurar para cuando instale la parabólica.

    Lo comento en éste post y no en el de la HVR-3000 porque puede ser una manera alternativa de hacer funcionar la HVR-1300 (aunque para ello no necesitaríamos instalar el firmware, lógicamente).

    @Sneb, me puse en contacto por mail con Stefan Bader (el creador del archivo que cito unos comentarios mas arriba), a ver si es tan amable de facilitarme la versión que te interesa, si me manda el archivo, lo pondré a disposición de todos vosotros.

    Un saludo!

  • nk82 dice:

    Hola, traigo excelentes noticias.

    Resulta que Stefan Bader (que hizo un parche para que la Hauppage funcione bien) me acaba de comunicar por mail que el último kernel de Ubuntu (el de la rama proposed) ya trae DE SERIE sus parches, de manera que con hacer una simple actualización del kernel ya debería funcionarnos la tarjeta :D

    Os agradecería muchísimo que lo probarais y comentarais que tal va, ya que me pidió que lo testearamos a fin de poder saber él cómo va el tema.

    PD: para activar este repositorio, agregad “deb http://archive.ubuntu.com/ubuntu hardy-proposed main restricted universe multiverse” a vuestro sources.list

  • nk82 dice:

    Pequeña actualización… el kernel 2.6.24-19 de Ubuntu ya trae los parches de Stefan Bader incorporados, es decir, que desde cualquier Ubuntu Hardy que esté actualizada con ese kernel, tanto la Hauppauge HVR-1100 como la HVR-1300 debería de funcionar sin necesidad de hacer nada “extra”.

    Un saludo.

  • @nk82 Muchísimas gracias por actualizarnos con esas noticias tan interesantes y traernos información de primera mano. ¡Me alegro de que los usuarios de Ubuntu ya puedan usar esta sintonizadora sin problemas!

  • valera dice:

    Hola, chicos. Es cierto que el kernel 2.6.24-19 de Ubuntu ya trae los parches incorporados y que funcionan ambas tarjetas; aunque en mi ordenador, cuando quiere sí y cuando no le da, pues no.
    Busqué en linuxtv.org las fuentes para compilar v4l-dvb desde cero, incluso en:

    http://linuxtv.org/hg/~rmcc/hvr-1300/rev/a6ddaabaa2d6

    avisan de un parche que evita el ruido que aparece cada cierto tiempo al ver la televisión analógica (esto con los drivers por defecto del kernel ocurre). Pero resulta que al compilar e instalar esas fuentes, con esa supuesta corrección, el chip de sonido que detecta ALSA como Conexant cx2388 deja de existir, para dar paso a un Realtek ACL888, que nada tiene que ver con la sintonizadora, por lo que se acabó escuchar la televisión analógica. Hasta septiembre no podré probar la TDT, que la tendré disponible, pero mientras tanto me quedo sin analógica.
    ¿Veis alguna solución o parche que pueda aplicar?

    Un saludo y genial web, Super Coco, aprendo mucho de ella, aunque éste sea mi primer comentario.

  • Claudia dice:

    Uy… no sé si querrán y/o podrán ayudarme… :-)

    Cuando hago: lspci -v… me aparece algo como esto

    00:0c.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
    Subsystem: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
    Flags: bus master, medium devsel, latency 64, IRQ 16
    I/O ports at b000 [size=256]
    Memory at f7000000 (32-bit, non-prefetchable) [size=256]
    [virtual] Expansion ROM at 88000000 [disabled] [size=64K]
    Capabilities:
    Kernel driver in use: 8139too
    Kernel modules: 8139cp, 8139too

    00:0d.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
    Subsystem: Avermedia Technologies Inc Device 0004
    Flags: bus master, medium devsel, latency 32, IRQ 17
    Memory at f7002000 (32-bit, prefetchable) [size=4K]
    Capabilities:
    Kernel driver in use: bttv
    Kernel modules: bttv

    Si no es mucho abusar… ¿Qué tendría que hacer…?

    Y si fuera mucho abusar… ¿tienen idea de dónde podría preguntarlo..?

    Gracias…

    Claudia

  • Membris Khan dice:

    Fantástico tutorial!. Ya me solucionó la vida el que escribiste sobre https en Debian Lenny y ahora me compro una WinTV y vuelves a ser tú quien me solucione la vida. Bravo!

Tema LHYLE09, creado por Vicente Navarro