lunes, 15 de enero de 2007

Guía para solucionar (provisionalmente) el problema con la tarjeta de TV terminator y el driver fglrx de ATI

Saludos esta es una guía que me paso mi amigo Cartman, espero les sirva.

El driver de ati no es precisamente una implementación limpia, tiene muchísimos bugs y problemas:

Tienta el Kernel al ser propietario.
Conflictos con el GART interno.
gravísimos problemas con las extensiones del overlay: XV putvideo y XV putimage (por lo cual se bloquea tv time y kdetv).

Entre otros muchos.

La tarjeta Vstream studio TV terminator y el driver v4l2 y el módulo saa7134 funcionan a la perfección con el driver xorg, solamente con:

modprobe saa7134 card=65 tuner=54

Como ya muchos lo han comprobado, se puede abrir tv-time, o kdetv o motv o xawtv, en fin; y no hay problemas, se colocan los filtros de desentrelazado en el video overlay y se obtiene una imagen muy buena.

Pero una vez se instala el fglrx, empiezan los problemas, se abre tv time y este se cierra indicando un problema de unresolved symbol agp lock, con kdetv es mucho peor, se bloquea X y luego al reiniciarlo forzado (ctrl+alt+backspace) se bloquea por completo el equipo).

He encontrado una solución pass through para este problema, consiste en usar el dispositivo frame buffer (/dev/fb0) en vez de las extensiones overlay del fglrx, mediante los siguientes pasos sencillos:

Al grano:

Programas necesarios:
xawtv motv tv-common

En distribuciones como Fedora, Mandriva y Suse, vienen en el CD, para los usuarios de Ubuntu y Debian pueden usar Aptitude, apt get o synaptic.

1.Cerramos la sesión ya sea en KDE o GNOME o FmWM o en el escritorio que nos encontremos y salimos a la pantalla de login.
2.en la pantalla de Login usamos (ctrl+alt+F1) para pasar a la consola virtual 1.
3.Nos logueamos como Root y nos pasamos a init 3 en la consola.
4.Ahora probamos si el dispositivo fb funciona, digitando

fbtv -s 640X480

(hasta aca asumiendo que la tarjeta de TV ya tiene cargado el módulo SAA7134 y que se encuentran registrados los dispositivos como /dev/video0 y /dev/vbi0, además del /dev/fb0)

De otro modo si son dispositivos diferentes, por ejemplo video 1 y vbi1:
fbtv -s 640X480 -c /dev/video1 -d /dev/fb1

Esperamos y.... tenemos TV en la consola de linux, lo que indica que nuestro dispositivo fb0 está correctamente registrado.

5. Ya que funciona, nos regresamos al runtime 5 por medio de init 5 en la consola, y cerramos la sesión de root con logout.

6. Volvemos al gestor de acceso gráfico con ctrl+alt+f7 y entramos a nuestra sesión.

7. Probamos con motv deshabilitando las extensiones del Xvideo y el dga ahora para ver si nos da imagen sin que se bloquee la pantalla:

motv -noxv -nodga -fb

Si el programa inicia, no se ve imagen, pero se escucha el sonido, solo hay que cambiar las siguientes opciones en el menú:

options->capture->grabdisplay (o none también funciona)

También cuadramos la norma de la señal, en mi caso, en COLOMBIA es NTSC.

options->TV norm->NTSC

Luego cuadramos la entrada de la tarjeta a televisión o Svideo o composite, dependiendo de nuestras necesidades:

options->Input->television

Un paso importantisimo es cuadrar las frecuencias de barrido para detectar los canales, en mi caso se supone que la de argentina funciona bien, pero al cambiar de proveedor de cable me vi obligado a probar con US CABLE y solo así encontró canales, entonces para cuadrar esto:

options->frequency table->UScable

Una vez hecho esto podemos empezar a escanear por canales en:

options->Channel Scan

y esperamos a ver y.... tenemos TV en Linux con los infames drivers fglrx, aún con imagen un poco deficiente, pero eso lo cuadraremos a continuación una vez terminado el barrido de frecuencias.

Seleccionamos la opción filter y cuadramos el filtro que mejor nos parezca:

filter->linear double deinterlace

El filtro de desentralazado lineal doble o el de desentrelazado bi lineal me dan muy buena calidad, y para la muestra un botón:

Sigo logrando mas de 5000 fps con glxgears y con la tv encendida:


Espero les funcione como a mi , por que contacte con ATI y la respuesta fue que tenía que esperar a las 2 siguientes versiones del driver, es decir casi 6 meses, ya que dicen que tienen muchísmos bugs por arreglar (memory leaks, null pointersy demás basura).

No siendo mas

Cartman