Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

DesarrolloEmuladoresInternetJuegosMultimediaSistema

GráficosSonidoVídeo

Reproductores Multimedia - XineUtilidades de Vídeo - DivFix++

TDT en GNU/Linux




TDT en GNU/Linux




Copyright

Copyright © José Luis Lara Carrascal  2011-2015   http://manualinux.eu



Sumario

Introducción
Configurar un dispositivo Real HDTV Nano NPG
Búsqueda de canales con w_scan
Visualización con SMPlayer y Gxine
Enlaces




Introducción  

GNU/Linux
no podía permanecer ajeno a la llegada de la televisión digital terrestre (TDT), y en este manual voy a explicar la configuración de un dispositivo penstick, Real HDTV Nano NPG, la posterior búsqueda de los canales con la utilidad w_scan, y finalmente la reproducción y visualización de estos con SMPlayer y Gxine.



Configurar un dispositivo Real HDTV Nano NPG

Lo que en un primer lugar parece ser un dispositivo no soportado por GNU/Linux, termina derivando en uno que sí lo es. En el mundo de la venta de aparatos eléctronicos, existen los fabricantes y los ensambladores. Tenemos el caso obvio de NVIDIA, cuyos chips son montados en infinidad de tarjetas gráficas, que compramos sabiendo que el chip es de NVIDIA. Pero en el caso de otros componentes como es éste, el tema ya no está tan claro.

La mejor manera de averiguar esto, es acceder al disco que contiene los controladores de Windows y buscar o extraer el archivo inf correspondiente que contiene la información del auténtico fabricante del componente. Además de copiar el correspondiente archivo firmware necesario para el correcto funcionamiento del dispositivo.

Montamos el cd y accedemos al directorio correspondiente referente a la versión de 32 bits, en la ruta Files/Driver/x86/x86, y nos encontramos con el archivo utilizado por Windows para la instalación del driver, lo abrimos con un editor de texto y comprobamos cual es el verdadero fabricante del chip, tanto en el inicio del archivo como al final.

; Installation inf for the Siano Mobile Silicon Devices
;
; Copyright (C) Siano Mobile Silicon, 2004 - 2007  All Rights Reserved.
;

Sms="Siano Mobile Silicon"
smsbda.name="DVB-T TV Stick"
smsrom.name="SMS Digital Video (ROM)"
smsprimarytuner.name="Siano BDA Tuner Filter"
smssecondarytuner.name="Siano Secondary Tuner Filter"
smsbdacapture.name="Bda Capture Filter"
smscapture.name="TS Capture Filter"
Disk_Description="SMS Installation Disk"

Si buscamos con google el término "Siano Mobile Silicon", en primer lugar nos aparece la web de este fabricante, http://www.siano-ms.com. Una vez sabemos el nombre del fabricante real, nos vamos a http://www.linuxtv.org/wiki/index.php/Main_Page y en el buscador metemos el término "siano", y nos sale esta página, de la que poco podemos sacar claro, lo único que el fabricante es israelí. Así que metemos este término "siano+kernel+linux" y ahora sí que encontramos lo que buscamos (aunque yo esto me lo salté y me fui directamente al código fuente del kernel). Desde el kernel 2.6.31, este driver está incluido en el núcleo.

Respecto al firmware, lo averigüé a través de dmesg, en el que me aparecía el mensaje de que faltaba el firmware con el nombre, dvb_nova_12mhz_b0.inp, que está localizado en la ruta Files/Driver/x86/x86/i386 del cd de los drivers para Windows y que hay que copiar como root a /lib/firmware

$ su
# cp /mnt/cdrom/Files/Driver/x86/x86/i386/dvb_nova_12mhz_b0.inp /lib/firmware

Cambiar el punto de montaje por el que tenga cada usuario en su sistema. En mi caso particular tuve que recompilar el kernel, porque los dispositivos dvb no los tenía configurados, algo obvio, porque hasta ahora no tenía ninguno.

Captura Kernel- 1

Captura Kernel- 2

La inmensa mayoría de distribuciones vienen con este driver compilado como un módulo, así que esto sólo es necesario en usuarios que se crean núcleos personalizados con lo justo para funcionar.

Finalmente para que el módulo smsdvb se cargue al principio, el kernel sólo carga el smsusb y el smsdtv, haremos lo siguiente en función de la distribución que utilicemos:

1) Mandriva y PCLinuxOS

Abrimos un editor de texto y añadimos lo siguiente:

smsdvb

Lo guardamos con el nombre smsdvb y lo instalamos como root, en /etc/modprobe.preload.d

$ su -c "install -m644 smsdvb /etc/modprobe.preload.d"

2) Fedora

Abrimos un editor de texto y añadimos lo siguiente:

#!/bin/sh

echo -n "Cargando módulo smsdvb..."
if /sbin/modprobe smsdvb
then
    echo "OK"
else
    echo "FALLÓ"
fi

Lo guardamos con el nombre smsdvb.modules, y lo instalamos en /etc/sysconfig/modules

$ su -c "install -m755 smsdvb.modules /etc/sysconfig/modules"

3) Slackware y derivados

Abrimos con un editor de texto, como root, el archivo /etc/rc.d/rc.local, y añadimos lo que está en rojo:

#!/bin/sh
#
# /etc/rc.d/rc.local:  Local system initialization script.
#
# Put any local startup commands in here.  Also, if you have
# anything that needs to be run at shutdown time you can
# make an /etc/rc.d/rc.local_shutdown script and put those
# commands in there.

# Ufw
if [ -x /etc/init.d/ufw ]; then
/etc/init.d/ufw start
fi

# smsdvb
/sbin/modprobe smsdvb


4) Debian y derivados

Abrimos con un editor de texto, como root, el archivo /etc/modules, y añadimos lo que está en rojo:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

smsdvb

5) OpenSUSE

Abrimos con un editor de texto, como root, el archivo /etc/sysconfig/kernel, nos vamos a la línea 30 y añadimos lo que está en rojo:

## Type:        string
## ServiceRestart:    boot.loadmodules
#
# This variable contains the list of modules to be loaded
# once the main filesystem is active
# You will find a few default modules for hardware which
# can not be detected automatically.
#
MODULES_LOADED_ON_BOOT="smsdvb"

## Type:        string
## Default:     ""



Búsqueda de canales con w_scan  

Una vez tenemos configurado el kernel y el acceso al dispositivo, nos toca buscar el programa adecuado para crear las listas de los canales de televisión, y sin lugar a dudas, el mejor con diferencia es w_scan. Cuya instalación se trata a continuación.

Instalación

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado w_scan para la elaboración de este documento.

* GCC - (5.2.0) o Clang - (3.7.0)
* Gawk - (4.1.3)
* M4 - (1.4.17)
* Make - (4.1)
* Automake - (1.15)
* Autoconf - (2.69)



Descarga

w_scan-20141122.tar.bz2

Optimizaciones

$ export {C,CXX}FLAGS='-O3 -march=amdfam10 -mtune=amdfam10'

Donde pone amdfam10 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2.x e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang y, por lo tanto, no son aplicables con GCC.
Valores CPU
generic Produce un código binario optimizado para la mayor parte de procesadores existentes. Utilizar este valor si no sabemos el nombre del procesador que tenemos en nuestro equipo. Este valor sólo es aplicable en la opción '-mtune=', si utilizamos GCC. Esta opción está disponible a partir de GCC 4.2.x.
intel Intel Haswell y Silvermont. Este valor sólo es aplicable en la opción '-mtune='. Esta opción está disponible a partir de GCC 4.9.x.
i386 Intel i386.
i486 Intel i486.
i586, pentium Intel Pentium sin soporte de instrucciones MMX.
pentium-mmx Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX.
pentiumpro Intel PentiumPro.
i686 Produce un código binario optimizado para la mayor parte de procesadores compatibles con la serie 80686 de Intel. Todos los actuales lo son.
pentium2 Intel Pentium2 basado en PentiumPro con soporte de instrucciones MMX.
pentium3, pentium3m Intel Pentium3 basado en PentiumPro con soporte de instrucciones MMX y SSE.
pentium-m Versión de bajo consumo de Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2. Utilizado por los portátiles Centrino.
pentium4, pentium4m Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2.
x86-64 Procesadores AMD y compatibles con soporte de instrucciones x86-64, SSE2 y extensiones 64-bit.
yonah Procesadores basados en la microarquitectura de Pentium M, con soporte de instrucciones MMX, SSE, SSE2 y SSE3.
prescott Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3.
nocona Versión mejorada de Intel Pentium4 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2 y SSE3.
core2 Intel Core2 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3 y SSSE3. Esta opción está disponible a partir de GCC 4.3.x.
nehalem Intel Nehalem con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
westmere Intel Westmere con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMUL y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
sandybridge Intel Sandy Bridge con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES, PCLMUL y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.6.x.
ivybridge Intel Ivy Bridge con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.6.x.
haswell Intel Haswell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
broadwell Intel Broadwell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.6.x.
bonnell Intel Bonnell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.6.x.
silvermont Intel Silvermont con soporte de instrucciones MOVBE, MMX, SSE, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMU, RDRND y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.6.x.
knl Intel Knights Landing con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER y extensiones 64-bit. Esta opción está disponible a partir de GCC 5.x. y Clang 3.4.x.
penryn Intel Penryn con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1.
corei7 Intel Core i7 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 y SSE4.2. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición nehalem.
corei7-avx Intel Core i7 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES y PCLMUL. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición sandybridge.
core-avx-i Intel Core (ivyBridge) con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND y F16C. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición ivybridge.
core-avx2 Intel Core (Haswell). Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición haswell.
atom Intel Atom con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3 y SSSE3. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición bonnell.
slm Intel Silvermont con soporte de instrucciones SSE4.2, CMPXCHG16B, MOVBE, POPCNT, PCLMUL, AES, CallRegIndirect, PRFCHW, SlowLEA, SlowIncDec, SlowBTMem y FastUAMem. Esta opción está disponible a partir de Clang 3.4.x
skx, skylake Intel Haswell con soporte de instrucciones AVX512, CDI, DQI, BWI, VLX, CMPXCHG16B, FastUAMem, POPCNT, AES, PCLMUL, RDRAND, F16C, FSGSBase, MOVBE, LZCNT, BMI, BMI2, FMA, RTM, HLE y SlowIncDec. Esta opción está disponible a partir de Clang 3.5.x. La definición skylake está disponible a partir de Clang 3.6.x.
k6 AMD K6 con soporte de instrucciones MMX.
k6-2, k6-3 Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!.
athlon, athlon-tbird AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y SSE prefetch.
athlon4, athlon-xp, athlon-mp Versiones mejoradas de AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y full SSE.
k8, opteron, athlon64, athlon-fx Procesadores basados en AMD K8 core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, 3DNow!, enhanced 3DNow! y extensiones 64-bit).
k8-sse3, opteron-sse3, athlon64-sse3 Versiones mejoradas de AMD K8 core con soporte de instrucciones SSE3. Esta opción está disponible a partir de GCC 4.3.x.
amdfam10, barcelona Procesadores basados en AMD Family 10h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.3.x. La definición barcelona está disponible a partir de Clang 3.6.x.
btver1 Procesadores basados en AMD Family 14h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3, SSE4A, CX16, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.6.x.
btver2 Procesadores basados en AMD Family 16h core con soporte de instrucciones x86-64 (MOVBE, F16C, BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A, SSSE3, SSE3, SSE2, SSE, MMX y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.8.x.
bdver1 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.7.x.
bdver2 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (BMI, TBM, F16C, FMA, LWP, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.7.x.
bdver3 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.8.x. y Clang 3.4.
bdver4 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (BMI, BMI2, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, AVX2, XOP, LWP, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.5.x.
winchip-c6 IDT Winchip C6, que equivale a un i486 con soporte de instrucciones MMX.
winchip2 IDT Winchip2, que equivale a un i486 con soporte de instrucciones MMX y 3DNow!.
c3 Via C3 con soporte de instrucciones MMX y 3DNow!.
c3-2 Via C3-2 con soporte de instrucciones MMX y SSE.
geode AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3.x.
native Produce un código binario optimizado para el procesador que tengamos en nuestro sistema, siendo éste detectado utilizando la instrucción cpuid. Procesadores antiguos pueden no ser detectados utilizando este valor. Esta opción está disponible a partir de GCC 4.2.x.

Optimizaciones adicionales

Optimizaciones adicionales
GCC
Graphite
$ export {C,CXX}FLAGS+=' -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block'
LTO
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=2'
Donde pone 2 se indica el número de núcleos de nuestro procesador, si sólo tiene uno, utilizar el parámetro -flto

Clang
Polly
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'
LTO
$ export {C,CXX}FLAGS+=' -flto'

Parámetros adicionales

Parámetros adicionales de eliminación de avisos específicos en el proceso de compilación
Clang
$ export {C,CXX}FLAGS+=' -Qunused-arguments'

Extracción y Configuración  Bloc de Notas Información general sobre el uso de los comandos

$ tar jxvf w_scan-20141122.tar.bz2
$ cd w_scan-20141122
$ export CC=clang CXX=clang++
$ ./configure --disable-dependency-tracking --prefix=/usr

Explicación de los comandos

export CC=clang CXX=clang++ : Si vamos a compilar el paquete con Clang, establecemos la correspondiente variable de entorno.

--disable-dependency-tracking
: Acelera el tiempo de compilación.
--prefix=/usr : Instala el programa en el directorio principal /usr.

Compilación 

$ make

Parámetros de compilación opcionales

-j2 : Si tenemos un procesador de doble núcleo (dual-core), y el kernel está optimizado para el mismo y es SMP, con este parámetro aumentaremos el número de procesos de compilación simultáneos a un nivel de 2 y aceleraremos el tiempo de compilación del programa de forma considerable.
-j4 : Lo mismo que arriba pero con procesadores de 4 núcleos (quad-core).

Instalación como root

$ su -c "make install-strip"

Estadísticas de Compilación e Instalación de w_scan

Estadísticas de Compilación e Instalación de w_scan
CPU AMD Athlon(tm) II X2 260 Processor
MHz
3214.610
RAM
2048 MB
Sistema de archivos XFS
Compilador Clang 3.7.0
Parámetros de optimización -03 -march=amdfam10 -mtune=amdfam10 -mllvm -polly -mllvm -polly-vectorizer=stripmine -flto
Parámetros de compilación -j2
Tiempo de compilación 5"
Archivos instalados 2
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 312 KB

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando:

$ su -c "make uninstall"

2) MODO MANUALINUX

El principal inconveniente del comando anterior es que tenemos que tener el directorio de compilación en nuestro sistema para poder desinstalar el programa. En algunos casos esto supone muchos megas de espacio en disco. Con el paquete de scripts que pongo a continuación logramos evitar el único inconveniente que tiene la compilación de programas, y es el tema de la desinstalación de los mismos sin la necesidad de tener obligatoriamente una copia de las fuentes compiladas.

w_scan-20141122-scripts.tar.gz

$ su
# tar zxvf w_scan-20141122-scripts.tar.gz
# cd w_scan-20141122-scripts
# ./Desinstalar_w_scan-20141122

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su
# tar zxvf w_scan-20141122-scripts.tar.gz
# cd w_scan-20141122-scripts
# ./Respaldar_w_scan-20141122

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_w_scan-20141122

1) Crear la lista de canales de televisión para MPlayer y SMPlayer

Abrimos una ventana de terminal y ejecutamos lo siguiente:

$ mkdir -p ~/.mplayer
$ w_scan -c ES -M > ~/.mplayer/channels.conf

Sustituir 'ES' por '?' para saber el identificador del país de cada usuario, el parámetro -M se utiliza para generar la lista de canales compatibles con MPlayer. Y el proceso que se inicia es el siguiente:

w_scan version 20141122 (compiled for DVB API 5.10)
using settings for SPAIN
DVB aerial
DVB-T Europe
frontend_type DVB-T, channellist 4
output format mplayer
output charset 'UTF-8'
Info: using DVB adapter auto detection.
        /dev/dvb/adapter0/frontend0 -> DVB-T "Siano Mobile Digital MDTV Receiver": good :-)
Using DVB-T frontend (adapter /dev/dvb/adapter0/frontend0)
-_-_-_-_ Getting frontend capabilities-_-_-_-_
Using DVB API 5.2
frontend 'Siano Mobile Digital MDTV Receiver' supports
INVERSION_AUTO
QAM_AUTO
TRANSMISSION_MODE_AUTO
GUARD_INTERVAL_AUTO
HIERARCHY_AUTO
FEC_AUTO
FREQ (44.25MHz ... 867.25MHz)

Hasta que va encontrando los canales:

tune to: QAM_AUTO f = 626000 kHz I999B8C999D999T999G999Y999
(time: 05:09)   service = Boing (Tele5)
        service = Telecinco HD (Tele5)
        service = MTV (TELSON)
        service = La 10 (La 10)
        service = Punto Radio (La 10)
tune to: QAM_64   f = 778000 kHz I999B8C23D0T8G4Y0
(time: 05:23) ----------no signal----------
tune to: QAM_64   f = 778000 kHz I999B8C23D0T8G4Y0  (no signal)
(time: 05:24) ----------no signal----------
tune to: QAM_AUTO f = 666000 kHz I999B8C999D999T999G999Y999
(time: 05:25)   service = La 1 (RTVE)
        service = La 2 (RTVE)
        service = 24h (RTVE)
        service = Clan (RTVE)
        service = Radio Nacional (RNE)
        service = Radio 5 Todo Noticias (RNE)

2) Crear la lista de canales de televisión para Xine

Abrimos una ventana de terminal y ejecutamos lo siguiente:

$ mkdir -p ~/.xine
$ w_scan -c ES -X > ~/.xine/channels.conf

Para más información sobre otras opciones del programa, ejecutar el comando w_scan -h.



Visualización con SMPlayer y Gxine  

En SMPlayer nos vamos a Abrir >> TV para seleccionar el canal de tv que deseemos ver, y en Gxine, a Fichero >> DVB, se cargará un canal y posteriormente nos aparecerán en la lista de reproducción todos los canales de televisión.


Captura - SMPlayer - 1


Captura - Gxine - 2




Enlaces  


http://wirbel.htpc-forum.de/w_scan/index_en.html >> La web de w_scan.

http://www.linuxtv.org >> Todo lo relacionado con la TV y GNU/Linux lo encontraremos en este sitio.


Foro Galería Blog


Actualizado el 16-09-2015

TDT en GNU/Linux

Reproductores Multimedia - XineUtilidades de Vídeo - DivFix++