eric_sandeen@bigfoot.com
asinkecualo@mail.com
La posibilidad de capturar y ver fuentes de vídeo es una de las más interesantes características multimedia de Linux. Están soportados varios dispositivos de vídeo a través de la API video4linux ( http://roadrunner.swansea.uk.linux.org/v4l.shtml), entre ellos varias tarjetas de TV basadas en los chipsets de Conexant bt848 y bt878. Este documento explica como usar estas tarjetas en un sistema Linux.
El copyright sólo se traduce de forma informativa, por eso mantenemos el original, que es la única versión válida.
--------------------------------------------
This HOWTO is copyrighted 1999 Eric Sandeen.
Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.
All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO co-ordinator at the address given below.
In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs.
If you have questions, please contact Tim Bynum, the Linux HOWTO co-ordinator, at linux-howto@metalab.unc.edu via email. --------------------------------------------
BTTV-Mini-HOWTO es propiedad intelectual (C)1999 de Eric Sandeen
A menos que se establezca otra cosa, los titulares de los HOWTO de Linux son sus respectivos autores. Los HOWTO de Linux pueden reproducirse y distribuirse en todo o en parte, en cualquier medio físisco o electrónico, mientras se mantenga este aviso de copyright en todas las copias. La redistribución comercial está permitida y se anima a ello; de cualquier manera, al autor le gustaría que le fuese notificada su distribución.
Todas las traducciones, los trabajos basados en o que agrupen cualquier documento de los HOWTO de Linux deben estar cubiertos por esta misma licencia. Es decir, no puedes producir un trabajo derivado de un HOWTO e imponer restricciones adicionales en su distribución. Pueden hacerse excepciones a estas reglas bajo ciertas condiciones; por favor contacte con el coordinador de Linux Howto en la dirección proporcionada infra.
Resumiendo, queremos promover la propagación de esta información a través de tantos medios como sea posible. Aunque deseamos retener el copyright de los HOWTO, y nos gustaría que se nos informara de cualquier plan para redistribuirlos.
Si tiene Usted alguna pregunta, contacte con Tim Bynum, el coordinador de los HOWTO de linux en linux-howto@metalab.unc.edu a través de correo electrónico. Para la traducción de este howto, contacte con su autor o con el proyecto Insflug en http://www.insflug.org>.
La más reciente versión oficial de este documento puede obtenerse en el Proyecto de Documentación de Linux (LDP) http://metalab.unc.edu/LDP/.
Las diversas versiones de la traducción se pueden obtener en INSFLUG http://www.insflug.org/, y en la página del traductor http://www.asinkecualo.org.
Gracias a Ralph Metzler y Marcus Metzler por escribir el driver original bttv. También a Alan Cox por crear la API de Video4Linux, Gerd Knorr por su trabajo en las tarjetas de radio, las sucesivas versiones de bttv y xawtv. Y a todo aquel que haya contribuido al soporte de estas tarjetas bajo Linux. Gracias a William Burrow, que también escribió un BTTV Howto (del que tuve noticias después de escribir este documento).
Para escribir este HOWTO he buceado en la documentación de bttv y xawtv.
Usa la información contenida en este documento por tu cuenta y riesgo. No me hago en absoluto responsable de la potencial peligrosidad del contenido de este documento. El uso de los conceptos, ejemplos u otro contenido de este documento queda completamente bajo tu responsabilidad.
Todos los copyrights son de sus propietarios, a menos que se haga notar específicamente lo contrario. El uso de cualquier término en este documento no debe afectar a la validez de cualquier marca comercial o registrada.
El nombrar cualquier producto o marca no afecta a la validez de esa marca. Es muy recomendable que haga copias de seguridad de su sistema antes de cualquier instalación importante y de forma periódica.
Del README
de bttv:
Bttv es un controlador de dispositivo para capturadoras de vídeo que usen la familia de chips Conexant ( http://www.conexant.com) Bt848. entre estos se cuentan Bt848, Bt848A, Bt849, Bt878 y Bt879. La diferencia principal (y a veces la única) entre los diversos fabricantes es el tipo de sintonizador y algunos componentes adicionales en las tarjetas. Por ejemplo, algunas tarjetas de Hauppauge tiene un decodificador adicional de Teletexto (que no es necesario con el soft adecuado) o un decodificador de sonido. Sólo algunos de estos componentes adicionales están soportados por bttv. También pueden diferir el tipo de entradas (Compuesto o S-Video) y su número.
Las siguientes tarjetas deben funcionar:
Si conoce Usted alguna otra tarjeta que funcione, por favor escríbanos y la añadiremos en la próxima revisión de este documento.
Para usar estas tarjetas de TV bajo Linux, necesitará los controladores de dispositivo apropiados en el núcleo. Los controladores de dispositivo de bttv son parte de la distribución del núcleo de Linux desde la versión 2.2.0.
Opcionalmente puede obtener la última versión del paquete de los controladores de dispositivo y usarlo con los kernel 2.0.35 y superiores. Aun así, no se garantiza que funcione con la anterior serie de núcleos 2.0.x. El paquete actualizado de bttv está disponible en http://www.strusel007.de/linux/bttv/.
Si es Usted nuevo en el mundo de los controladores de dispositivo de bttv, le sugerimos que comience con la versión incluida en el último núcleo. Si experimenta problemas con él, o encuentra que su tarjeta no está soportada, entonces atrévase con la serie 0.6 actualizada de los controladores de dispositivo en las direcciones arriba indicadas. Si te siente aventurero, puede probar la serie de drivers 0.7 de Gerd Knorr, que se incorporarán en los núcleos 2.4. Estos están disponibles en http://www.strusel007.de/linux/bttv/.
Este documento está basado principalmente en los controladores de dispositivo del núcleo 2.2.14, con alguna mención de las características de la serie 0.6. La serie 0.7 no está actualmente cubierta, ya que está en desarrollo mientras escribimos este documento.
Los nuevos controladores de dispositivo de la serie 0.7.x no funcionan con los núcleos 2.0.x
(Gracias a William Burrow por esta sección.)
Si tiene miedo de abrir la carcasa de su ordenador, lea primero este documento completo y anota las características de su tarjeta, tales como sintonizador, número de sus circuitos integrados, la frecuencia de sintonización y datos similares.
En otro caso, abra su ordenador e instale la tarjeta en una ranura libre. Elija una que soporte la transferencia del bus PCI y el PCI Bus Mastering; si no sabe si su placa base tiene todas estas características, mírelo en su manual. Le harán falta para el modo Overlay.
Con respecto al sonido hay dos formas diferentes de conectar su tarjeta capturadora y la de sonido. Una es internamente. Conecte su cable de audio digital del lector CD-ROM a la entrada de sonido de la tarjeta de vídeo y la salida a la entrada de la de sonido, donde iba el cable del CD-ROM. Otra forma es conectar el conector «jack» externo de sonido de 3.5 mm. de la tarjeta de vídeo con la entrada de línea de la tarjeta de sonido. También puede, simplemente, conectar unos altavoces amplificados a la salida de la tarjeta de vídeo, si no tiene una de sonido o no le apetece pasarlo a través de ella. (Algunas tarjetas nuevas Bt878 no tienen ningún conector de sonido, ya que envían la señal digital de audio a través del bus PCI. No hay soporte para esto en el momento de escribirlo).
También es recomendable una fuente de vídeo para determinar si la tarjeta está funcionando o no. Algunas tarjetas manejan vídeo compuesto, S-Video y si tienen sintonizador entrada RF (N. del T.: La entrada de antena habitual). Hay un conector separado para cada entrada.
Su núcleo necesitará estar configurado para soportar su tarjeta. La
mayoría de las nuevas distribuciones de Linux vienen con los módulos
necesarios ya compilados, así podrá encontrar videodev.o
,
bttv.o
, y tuner.o
en
/lib/modules/2.x.x/misc
, y ya tendría que estar todo
dispuesto.
En otro caso, necesitará recompilar su núcleo con
CONFIG_VIDEO_DEV
y
CONFIG_VIDEO_BT848
activados, preferiblemente como módulos para cargar. Mire en el Linux Kernel HOWTO ( http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html) (o su traducción española, disponible en http://www.insflug.org) para más detalles acerca de la recompilación del núcleo.
Si desea usar los paquetes 0.6.x actualizados, debe obtener primero el archivo de uno de los sitios mencionados arriba. Descomprímalo con la orden:
tar -xvzf bttv-0.6.x.tar.gz
y cámbiese al recién creado directorio con permisos de superusuario, y escriba
make
en el directorio principal para crear los controladores de
dispositivo. (Puede ignorar tranquilamente la información del fichero
INSTALL
con respecto a editar los makefiles ya que pasaremos esta
información al controlador de dispositivo, en forma de parámetros de
los módulos.) Entonces
teclee:
make install
para instalarlos y finalmente ejecute
/sbin/depmod -a
para actualizar las información sobre dependencias de los módulos.
/dev
Después necesitará crear los fichero especiales de carácter en el
directorio /dev
. Teclee ls /dev/video*; ls
/dev/radio*
para ver si ya existen. Si no existen necesitaremos
crearlos. Todos los ficheros tendrán como major device number 81, y el
minor device number dependerá del dispositivo específico (vídeo,
radio, etc.) así como múltiples instancias de estos ficheros.
Mire en la API de Video4Linux ( http://roadrunner.swansea.uk.linux.org/v4lapi.shtml) para los detalles relativos a la programación.
Hay un guión del intérprete de órdenes (script de shell) llamado
MAKEDEV
en el directorio driver
del paquete de los
controladores de dispositivo bttv, que creará por Usted cuatro
dispositivos de vídeo. También puede hacerlo fácilmente Usted
mismo, si sólo dispone de una tarjeta de vídeo. Como root, teclee:
mknod /dev/video0 c 81 0
chmod 666 /dev/video0
ln -s /dev/video0 /dev/video
mknod /dev/radio0 c 81 64
chmod 666 /dev/radio0
ln -s /dev/radio0 /dev/radio
Hay también dispositivos de teletexto y VBI que pueden crearse si tiene alguna aplicación que los necesite (Actualmente son pocas). Teclee:
mknod /dev/vtx0 c 81 192
chmod 666 /dev/vtx0
ln -s /dev/vtx0 /dev/vtx
mknod /dev/vbi0 c 81 224
chmod 666 /dev/vbi0
ln -s /dev/vbi0 /dev/vbi
El controlador de dispositivo bttv proporciona varios módulos diferentes, con distintas opciones, que se describen en el apéndice de este documento. Con tantos módulos y opciones, puede desear hacerlo todo a mano hasta tenerlo funcionando. En el caso de que esto pudiese ocasionar un bloqueo en el ordenador, no será perjudicial escribir:
sync; sleep 1; sync
para vaciar los buffers antes de proceder. Entonces, usando
la orden insmod
como el usuario root, intente cargar estos
módulos. Los dos primeros son fáciles, ya que generalmente no
necesitan ninguna opción:
insmod videodev
insmod i2c
Ahora está preparado para cargar el propio módulo bttv:
modprobe -v bttv
Por defecto el módulo bttv
intenta autodetectar su tipo de
tarjeta. Observe /var/log/messages
para ver lo que
encuentra. Si no lo autodetecta correctamente, puede Usted añadir la
opción card=n
al final de la orden anterior para forzar
un tipo de tarjeta, con n
elegido de de la siguiente
lista. (Se dan los tipos de 0 hasta 19, en los controladores de
dispositivo del núcleo bttv-0.6.4h se incluye soporte para los tipos
desde el 20 hasta el 27). Puede también añadir la opción
radio=1
si su tarjeta tiene sintonizador de FM.
card=n card type 0: Autodetectar 1: Miro 2: Hauppauge (viejas tarjetas bt848) 3: STB 4: Intel 5: Diamond 6: AVerMedia 7: MATRIX Vision MV-Delta 8: FlyVideo 9: TurboTV 10: Hauppauge (nuevas trajetas bt878) 11: MIRO PCTV pro 12: Terratec/Vobis TV-Boostar 13: Nueva Hauppauge WinCam (bt878) 14: MAXI TV Video PCI2 15: Terratec TerraTV+ 16: Aimslab VHX 17: PXC200 18: AVermedia98 19: FlyVideo98 (nuevas FlyVideo cards) 20: Zoltrix TV-Max 21: iProTV 22: ADS Technologies Channel Surfer TV 23: Pixelview PlayTV (bt878) 24: Leadtek WinView 601 25: AVEC Intercapture 26: LifeView FlyKit sin sintonizador 27: Intel Create and Share PCI
Después, cargue el módulo del sintonizador con:
modprobe tuner type=n
Probablemente necesite mirar en la tarjeta cuál es el que
tiene. Algunas tarjetas (Miro y Hauppauge) permiten detectar
automáticamente el sintonizador detectado, pero puede que necesite
especificarlo. El sintonizador tendría que tener la marca y
especificar si es NTSC o PAL. Para los PAL, está marcado con 28.xxxMHz
(donde xxx son tres dígitos). Para NTSC, la chapa deberá rezar
35.xxxMHz. Una vez que lo tenga identificado, selecciona el valor de
n
de la lista siguiente (los tipos 8 y 9 están sólo
incluidos en bttv-0.6.4h):
type=n tipo del chip sintonizador, n entre los siguientes: 0: sintonizador Temic PAL 1: sintonizador Philips PAL_I 2: sintonizador Philips NTSC 3: sintonizador Philips SECAM 4: sin sintonizador 5: sintonizador Philips PAL 6: sintonizador Temic NTSC 7: sintonizador Temic PAL 8: sintonizador Alps TSBH1 NTSC 9: sintonizador Alps TSBE1 PAL
(N. del T. En España ese utiliza el sistema PAL, como en la mayoría del continente europeo, exceptuando Francia, que usa SECAM. En América y Japón lo habitual es NTSC. Además los sintonizadores más corrientes son el Philips y el Temic, por lo que lo habitual en su tarjeta, suponiendo que esté en España, será 0 ó 5.)
Finalmente, inserte los módulos de sonido que necesite. De nuevo necesitará mirar detenidamente la tarjeta para saber lo que tiene. Tenga en cuenta que los controladores de dispositivo para los chips TEA6300, TDA8425, TDA9855 y DPL3518 sólo están incluidos en los controladores de dispositivo de la serie 0.6.4h y no lo están en los actuales (2.2.14) controladores de dispositivo del núcleo.
modprobe msp3400
o tea3600
o tda8425
o
tda9855
o dpl3518
(consulte el apéndice para más detalles y
opciones)
Ponga en marcha tu programa favorito de video4linux y compruebe si funciona. Si no puede cambiar de canal, asegúrese de haber insertado el módulo con el sintonizador correcto. Si no escucha nada, compruebe el módulo del sonido, y que el canal no esté silenciado, si mete el audio a través de la tarjeta de sonido.
Después de conocer qué módulos y opciones necesitas, puede automatizar
el proceso poniendo la información en
/etc/conf.modules
. Entonces, al ejecutar una aplicación que
necesite el controlador de dispositivo, se cargará automáticamente.
Nosotros utilizamos los siguientes:
# TV alias char-major-81 bttv pre-install bttv modprobe -k tuner; modprobe -k msp3400 options bttv radio=1 card=3 options tuner type=2
Asegúrese de cambiarlo para reflejar los módulos y opciones
correspondientes a su tarjeta. (Ejecute /sbin/depmod -a
para
asegurarse de que toda la información de dependencias de módulos está
actualizada).
(N. del T.: En nuestro caso tuvimos que añadir pll=1 al driver bttv. El tipo de tarjeta es el 6 y el sintonizador el 5. Utilizamos una Avermedia Capture 98)
Ahora que su núcleo y los dispositivos están configurados y los módulos insertados, necesitará una aplicación para ver y capturar imágenes desde su tarjeta. Hay varios disponibles:
Hay también disponible un controlador de dispositivo para el control remoto de la tarjeta FlyVideo98 en http://wolf.ifj.edu.pl/~jochym/FlyVideo98/
Asegúrese de leer la documentación para cualquier aplicación que vaya a utilizar. Algunas de ellas necesitan editar previamente los ficheros de configuración para que la aplicación funcione correctamente. Debido a los diferentes tipos de tarjetas que existen por doquier, debe dedicar algo de tiempo a leer la documentación de cada una, ya que lo normal será que la configuración por defecto no funcione con su tarjeta.
Lo que vaya precedido por un "*" sólo está disponible en la serie 0.6.4h
videodev.o es el módulo básico para video4linux, todos los controladores de dispositivo (incluido bttv) se registran aquí i2c.o el módulo genérico i2c. Hace la mayor parte del control del bus, todos los módulos (excepto videodev.o) lo usan argumentos con insmod: scan=1 escanea el bus en busca de controladores de dispositivo i2c verbose=0 calla a i2c i2c_debug=1 para depuración, manda todo el tráfico bus i2c a los registros del sistema bttv.o el driver bt848 (el chip capturador) argumentos con insmod: remap=adr remapea la memoria de Bt848 a direcciones<<20 vidmem=base dirección del frame buffer>>20 (tarjeta gráfica) triton1=0/1 para compatibilidad con Triton1 Triton1 es reconocida automáticamente pero puede ayudar con otros chipsets pll=0/1/2 ajustes del pll 0: no usa PLL 1: 28 MHz crystal instalado 2: 35 MHz crystal instalado radio=0/1 la tarjeta soporta radio card=n tipo de tarjeta 0: Autodetectar 1: Miro 2: Hauppauge (antiguas tarjetas bt848) 3: STB 4: Intel 5: Diamond 6: AVerMedia 7: MATRIX Vision MV-Delta 8: FlyVideo 9: TurboTV 10: Hauppauge (nuevas trajetas bt878) 11: MIRO PCTV pro 12: Terratec/Vobis TV-Boostar 13: Nueva Hauppauge WinCam (bt878) 14: MAXI TV Video PCI2 15: Terratec TerraTV+ 16: Aimslab VHX 17: PXC200 18: AVermedia98 19: FlyVideo98 (nuevas FlyVideo cards) *20: Zoltrix TV-Max *21: iProTV *22: ADS Technologies Channel Surfer TV *23: Pixelview PlayTV (bt878) *24: Leadtek WinView 601 *25: AVEC Intercapture *26: LifeView FlyKit sin sintonizador *27: Intel Create and Share PCI remapeo, tarjeta, radio y plll aceptan hasta cuatro argumentos separados por comas (para múltiples tarjetas). La "CARD" y "PLL" definidas en el Makefile se usan por defecto. msp3400.o El driver para los procesadores de sonido msp34xx. Si tiene una tarjeta estéreo probablemente necesitarás cargar este módulo. argumentos con insmod: debug=1/2 pasa alguna información de depuración a los syslog, 2 es más verboso. *tea6300.o El driver para el chip de fader tea6300. Si tiene una trjeta estéreo y el msp3400.o no funciona, debe probar este. Este chip se ve mucho en tarjetas STB TV/FM (en ventas de remanentes de OEM's de Gateway en sitios de subastas). argumentos con insmod: debug=1 pasa alguna información de depuración a los syslog. *tda8425.o El driver para el chip de fader tda8425. Este controlador de dispositivo antes era parte de bttv.c, así que si funcionaba antes y ahora no, pruebe a cargarlo argumentos con insmod: debug=1 pasa alguna información de depuración a los syslog. *tda9855.o El controlador de dispositivo para el chip descodificador estéreo y de procesamiento de audio tda9855. argumentos con insmod: debug=1 pasa alguna información de depuración a los syslog. *dpl3518.o Driver para el procesador Dolby Pro Logic dpl3518a argumentos con insmod: debug=1 pasa alguna información de depuración a los syslog. tuner.o El controlador de dispositivo sintonizador. Lo necesita a menos que sólo quiera usar la tarjeta con una cámara o un sintonizador externo. argumentos con insmod: debug=1 pasa alguna información de depuración a los syslog type=n tipo del chip sintonizador, n entre los siguientes: 0: sintonizador Temic PAL 1: sintonizador Philips PAL_I 2: sintonizador Philips NTSC 3: sintonizador Philips SECAM 4: sin sintonizador 5: sintonizador Philips PAL 6: sintonizador Temic NTSC 7: sintonizador Temic PAL *8: sintonizador Alps TSBH1 NTSC *9: sintonizador Alps TSBE1 PAL i2c_chardev.o proporciona un driver de carácter para el acceso al bus i2c. Funciona sólo con los núcleos 2.1.x, no se compila por defecto.