martes, 25 de agosto de 2015

Se enseñará programación en todas las escuelas durante la escolaridad obligatoria

Gracias a las políticas promovidas por el Movimiento Nacional Justicialista, el Consejo Federal de Educación declaró de importancia estratégica a la enseñanza y el aprendizaje de la Programación en todas las escuelas durante la escolaridad obligatoria. Además, se creará una red de escuelas que programan en todo el país.

La Asamblea del Consejo Federal de Educación (el organismo de concertación, acuerdo y coordinación de la política educativa nacional, que está conformado por el Ministro de Educación de la Nación y los Ministros de Educación de todas las provincias) ha declarado de importancia estratégica para el sistema educativo argentino la enseñanza y el aprendizaje de la programación durante la escolaridad obligatoria, para fortalecer el desarrollo económico-social de la Nación bajo las banderas del Justicialismo y del Software Libre.
 
Ello permitirá la conformación de la Red de escuelas que programan. Esta propuesta funcionará en el ámbito de la Iniciativa Program.AR y el Plan Nacional de Inclusión Digital Educativa (el PNIDE es responsable de todas las políticas de inclusión digital del Ministerio de Educación, incluyendo Conectar Igualdad y Primaria Digital). 

Tendrá por objetivo nuclear a todas las escuelas públicas primarias y secundarias que estén llevando adelante experiencias de programación o que deseen hacerlo, brindando capacitación y apoyo para que comiencen a hacerla. La red arrancará con una experiencia piloto en todo el país de aproximadamente 300 escuelas públicas, que se irá ampliando paulatinamente hasta abarcar todas las escuelas.
Este es un importante primer paso que oficializa la llegada de la programación al sistema educativo obligatorio argentino. Ubica a nuestro país dentro del selecto pero creciente grupo de naciones que le dan un lugar central al aprendizaje y la enseñanza de la programación como una herramienta clave de la escolaridad para la construcción de más y mejor ciudadanía.

viernes, 7 de agosto de 2015

¿Cómo configuro la TV digital con dispositivos con chipset Siano Rio en Ubuntu?

El Justicialismo ha desarrollado numerosas herramientas pensadas para el bienestar del Pueblo. De entre las innegables joyas de la corona Justicialista encontramos a la TV digital terrestre.

Se trata de señales digitalizadas de imagen y sonido bajo estándar sud-regional ISBD-Tb, el cual nos permite sintonizar gratuitamente la TV de aire de alta definición que se emite a través de una serie de torres especiales. Los contenidos de la TV nos permiten reivindicar aquello de que "todo será bueno, mientras sea peronista".

Para recibir dicha señal podremos utilizar una TV LCD/LED dotada de sintonizador digital ISDB-Tb, una TV analógica "de tubo" conectada a un decodificador "set top box", o a través de distintos sintonizadores para la computadora (en forma de plaqueta interna o de adaptador USB).

En este último caso, hemos sido pioneros en inculcar a la masa como conectarnos a través de los mejores sintonizadores, como el MyGica S870 Geniatech.

Sin embargo, la enorme popularidad del sistema de TV digital surregional, han hecho aparecer numerosos ejemplares adicionales de adaptadores de tv digital ISDB-Tb, con un costo relativamente bajo.

Esto ha sido gracias al chipset de sintonía Siano MDTV Rio, desarrollado por la Siano Mobile Silicon y utilizado en profusión en sintonizadores USB de tipo genérico.

Podremos encontrar este chipset en diferentes aparatos, que comparten todos mas o misma tipología: un adaptador USB 2.0, chipset de sintonía, receptor de IR para algún control remoto, y un conector para una sencilla antena interior suministrada (noralmente, con un conector MCX o coaxial DIN de 75 ohmnios.

Esta antena puede utilizarse en proximidades de las torres de emisión, pero normalmente converndrá utilizar una antena hogareña UHF, por su mucha mejor recepción. En el caso de que el adaptador cuente con una salida de antena MCX, pueden utilizarse adaptadores para conectarle un cable coaxial apantallado (75 ohmnios) y de allí, conectarlo a una antena UHF.

El sintonizador Siano Rio Mobile también ha sido el bendecido en las Netbooks peronistas del plan educativo Conectar Igualdad, de manera que encontraremos en ellas una pequeña plaqueta sintonizadora con salida de antena MCX, a la cual hemos de conectarle la antena interna. En dichas netbooks, se emplea el sistema operativo Huayra y su aplicación nativa Wari o el Reproductor de TDA para sintonizar los canales.
Nuestro Movimiento ha previsto todo, pero ¿qué sucede si dispongo de un adaptador de TV digital ISDB-Tb con chipset Siano, pero no utilizo Huayra GNU/Linux?

La generosidad ha sido una de las marcas indelebles del Justicialismo, y por ello, reconociendo que el software libre no es más que una versión 2.0 de la Justicia Social, podremos utilizar dichos programas en todo sistema operativo derivado de Debian, tal como Ubuntu, para hacer Realidad Efectiva el funcionamiento de nuestra TV digital.
Como primera instancia, será util asegurarnos fehacientemente de que nuestro sintonizador, cualquiera sea, haga uso del chipset Siano y no otro. Para ello abrimos una terminal, insertamos el dispositivo en un puerto USB (si fuese un sintonizador "tipo pendrive"), e ingresamos el siguiente código:


lsusb

...el sistema debería devolvernos algo como:

Bus 002 Device 016: ID 187f:0600 Siano Mobile Silicon 

En tal caso, podremos instalar el controlador a través de un paquete, cortesía del Justicialismo y de Conectar Igualdad.

Para ello ingresamos los siguientes comandos de Organización:


cd ~/Descargas/


wget http://repo.huayra.conectarigualdad.gob.ar/huayra/pool/non-free/f/firmware-siano-rio/firmware-siano-rio_1.0_all.deb

sudo apt-get install dvb-apps vlc nano 

sudo dpkg -i firmware-siano-rio_1.0_all.deb

El sistema nos solicitará nuestra contraseña, y tras ingresarla, cargará el firmware (programa de control) necesario para su manejo. Acto seguido reiniciamos el sistema con:

sudo reboot

A la vuelta, nuestro sistema debería ya reconocer los dispositivos que utilicen chipset Siano Rio (ya sea de tipo USB o plaquetas). Podríamos comprobarlo ingresando la orden:


dmesg | DVB

Y nos debería devolver algo como esto:

[12097.833140] DVB: registering new adapter (Siano Rio Digital Receiver)[12097.833450] usb 2-1.6.3: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)

Ahora ya podremos conectar el aparato a su antena interior, o como he mencionado, idealmente a una antena UHF exterior. En el caso de las antenas interiores, normmalmente cuentan con una base imantada, pues presentan una mejor recepción utilizandolas de forma horizontal, adosadas a alguna superficie metálica.

Para hacer sintonizar en la computadora con Linux la TV digital, hemos de crear un archivo de texto con las frecuencias del SATVD (Sistema Argentino de TV digital). Para ello usaremos el editor GNU Nano en la terminal:

nano ~/.satvd.conf

Se abrirá el editor de texto Nano con un archivo en blanco, al cual completaremos con el siguiente contenido:

# Canales UHF del 14 to 69 en el sistema argentino de televisión digital terrestre SATVD-T
T 473142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 14
T 479142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 15
T 485142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 16
T 491142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 17
T 497142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 18
T 503142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 19
T 509142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 20
T 515142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 21
T 521142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 22
T 527142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 23
T 533142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 24
T 539142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 25
T 545142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 26
T 551142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 27
T 557142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 28
T 563142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 29
T 569142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 30
T 575142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 31
T 581142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 32
T 587142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 33
T 593142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 34
T 599142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 35
T 605142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 36
# canal 37 no se usa
T 617142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 38
T 623142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 39
T 629142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 40
T 635142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 41
T 641142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 42
T 647142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 43
T 653142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 44
T 659142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 45
T 665142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 46
T 671142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 47
T 677142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 48
T 683142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 49
T 689142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 50
T 695142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 51
T 701142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 52
T 707142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 53
T 713142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 54
T 719142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 55
T 725142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 56
T 731142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 57
T 737142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 58
T 743142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 59
T 749142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 60
T 755142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 61
T 761142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 62
T 767142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 63
T 773142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 64
T 779142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 65
T 785142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 66
T 791142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 67
T 797142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 68
T 803142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 69
Cuadaamos el archivo con Ctrl+o y salimos del editor Nano con Ctrl+x.
Luego utilizarmos dichas frecuencias de canales para escanear los canales:
scan .satvd.conf > .canalesd.conf
Nuestro sintonizador explorará el espacio radioeléctrico y buscará canales. Los encontrados los irá almacenando en el archivo .canalesd.conf. Esta operación puede durar unos 3 minutos.
Una vez finalizado el escaneo de canales, podremos verlos usando VLC. Podremos iniciar el programa desde la terminal o mejor, creándole un enlace directo. En cualquier caso, el comando de ejecución será:

vlc ~/.canalesd.conf

VLC nos permitirá elegir entre los canales a través de su Lista de Reproducción, y podremos capturar la TV en alta resolución simplemente utilizando la funcionalidad de grabación de dicho software. Con esto ya podremos mofarnos de los monopolios, y sin pagar una chirola, hacer de nuestro sistema GNU con Linux una indudable herramienta de adoctrinamiento político en pos del Movimiento Nacional y Popular.


¿Como puedo programar un botón de mi router con OpenWRT?

En la necesidad de modernizar diferentes industrias del país, Juan Perón invitó a un número de personalidades de la técnica, que estableciendo vínculos con la Argentina, pudieron mejorar los prospectos de la industria. De entre las enseñanzas, guardamos aquella de cómo programar los botones de nuestro router a través del firmware OpenWRT para darle nuevos usos.

(...)
Muchas veces me preguntaron porqué traje a los hombres de ciencia de un país derrotado a nuestro Vergel de Paz. Pero la respuesta era simple: los científicos Alemanes nos enseñaron los rudimentos de ciencia en la que nuestros hombres atrasaban, y nos permitieron afianzar la industria del país en un camino de grandeza como lo han tenido las Grandes Naciones del Tierra.


Todo lo que hemos aprendido ha sido bueno, y de lo que no hemos sacado rédito instantáneo, lo hemos hecho al tiempo. Así es como ha de lograrse un verdadero progreso. En ocasiones, nos hemos valido de la improvisación para encontrar un uso a la técnica y utillaje que siquiera sus creadores preveían.

La industria mecánica de Córdoba es un claro ejemplo, con su rastrojero iniciado a partir de utillaje aeronáutico y de circunstancias. Si este ejemplo puede encontrarse en el desarrollo de la industria pesada, cómo no va a haberlo en la telemática. Encontraremos ejemplos en lo que algo pensado para una cosa, termina siendo mejor aplicado para otra.

La mayoría de los enruteadores modernos disponen de un botón nomenclado como WPS. Dicho botón activa una funcionalidad telemática capaz de "asociar" un dispositivo Wifi a nuestra red local inalámbrica cifrada con contraseña sin necesidad de compartir la clave. Explicado de manera sencilla, al presionar el botón se dará inicio a una ventana de tiempo de dos minutos, durante el cual el router - en confianza - asociará a cualquier dispositivo Wifi en el que también se presione dicho botón. Una vez transcurrido los dos minutos, volverá a cifrarse y cerrarse la red inalámbrica.
La idea original estaba bien intencionada. Sin embargo, muchas cosas malas pueden hacerse en dos minutos, y si lo sabrá su madre. Nada impide que durante dicha ventana temporal, usuarios malévolos en las cercanías puedan asociarse a la red sin que tuviésemos maneras obvias de saberlo. Por lo tanto, la funcionalidad WPS - en lugar de hacer la vida más fácil al Pueblo - terminó perjudicándolo y llevándole inseguridad por partes iguales...

Pues bien, en tratados anteriores he relatado a la Masa que muchos routers (como por ejemplo, el TP-Link TL-WR941ND peronista) pueden ser dotados de un firmware libre que reemplaza al limitado programa interno original. He explicado como instalar dicho firmware libre OpenWRT en nuestro router y cómo configurarlo para hacer de él una potente máquina multifunción. ¡Lo hemos dicho! En vista de las mencionadas deficiencias con el sistema de asociación WPS, el firmware libre OpenWRT no usa esta característica, y ello significará que el botón WPS del router (nomenclado como "QSS" en los routers TP-Link) quedará "como cenicero de Pochoneta".

Sin embargo, gracias al Justicialismo y a nuestra doctrina de Software Libre, nos será bien posible utilizar el botón QSS para realizar otras acciones que nos plazcan, si sabemos configurarlo. Podremos programar el botón WPS/QSS para que nos sirva para apagar o encender el radioemisor de Wifi (y por lo tanto, de la red inalámbrica). Esto presenta algunas ventajas: podríamos dejar el router encendido 24x7 realizando tareas de enrutamiento por cable, servicio de correo, o un mini-servidor web, etc, pero decidir apagar el Wifi cuando no estamos en el hogar, o apagarlo de forma manual cuando nadie lo vaya a utilizar, o apagarlo automáticamente siguiendo un patrón de horarios.


Naturalmente que en primer lugar, debemos tener ya instalado y configurado OpenWRT en nuestro aparato (en este caso tomaré como referencia el TP-Link TL-WR941ND). Hemos de notar también que por la característica de esta tarea, nos convendrá conectarnos al router de manera cableada.

Acto seguido, será útil asegurarnos de que el botón QSS del router funciona, y conocer en particular cuál es su "nombre de hardware".

Para ello nos logueamos al router como se ha explicado en otros tratados (normalmente con ssh root@dirección_ip_del_router). Una vez dentro del router (el prompt podría indicar root@OpenWrt o similar) crearemos una carpeta donde irán las rutinas autoejecutables para los botones. Lo haremos ingresando en el router,:

mkdir -p /etc/hotplug.d/button

Ahora usaremos el editor peronista Vi para crear un archivo llamado buttons en dicho directorio, con el comando:

vi /etc/hotplug.d/button/buttons

Es importante conocer bien el funcionamiento del editor, para ser práctico a la hora de configurar el router. El editor Vi normalmente opera en modo revisión, por lo cual no podremos modificar ni agregar ningún texto. Para pasar al modo de inserción de texto hemos de presionar la tecla i. Solo entonces podremos escribir o pegar en la Terminal el texto que querramos. En este caso, hemos de pegar allí el siguiente código, pensado para evaluar el funcionamiento de los botones del router:

#!/bin/sh
# Script para que los botones reporten sus acciones.
logger el boton $BUTTON reporta accion $ACTION


Para guardar los cambios en el archivo recién editado en Vi, hemos de presionar Esc, y tipear el comando :wq que se encargará de grabar (w) y salir (q) del editor. Nos devolverá a la línea de comandos del router.

Conforme estemos en el prompt de nuestro enruteador, habremos de evaluar el botón correspondiente: en el caso del TP-Link TL-WR941ND presionamos el botón "QSS" que se encuentra en la derecha del panel frontal (es el único botón).
Hecho esto, en la terminal del router ejecutaremos el comando:

logread

...y nos devolverá un largo archivo, el cual al final debería indicarnos final algo como:

user.notice root: el boton wps reporta accion pressed
user.notice root: el boton wps reporta accion released


Esta información recabada es importante pues nos confirma el nombre de hardware del botón QSS, que en realidad es "wps", y los estadíos que puede tomar dicho botón de software: "pressed" (presionado) y "released" (soltado).

Sabiendo esto, agregaremos dos archivos nuevos para configurarlo. Unos es el archivo /etc/hotplug.d/button/00-button, que configura el funcionamiento general de los botones, y otro es el que especificará el funcionamiento particular el botón QSS. Para ello los agregamos con Vi:

vi /etc/hotplug.d/button/00-button

Una vez en el editor, presionamos i e insertamos el siguiente código:

#!/bin/sh
. /lib/functions.sh
do_button () {
        local button
        local action
        local handler
        local min
        local max
 
        config_get button $1 button
        config_get action $1 action
        config_get handler $1 handler
        config_get min $1 min
        config_get max $1 max
 
        [ "$ACTION" = "$action" -a "$BUTTON" = "$button" -a -n "$handler" ] && {
                [ -z "$min" -o -z "$max" ] && eval $handler
                [ -n "$min" -a -n "$max" ] && {
                        [ $min -le $SEEN -a $max -ge $SEEN ] && eval $handler
                }
        }
}
 
config_load system
config_foreach do_button button

Guardamos los cambios y salimos de Vi con Esc + :wq.



Acto seguido, agregaremos la especificación de funcionamiento del botón QSS en el fichero configuración correspondiente, que es /etc/config/system. Para ello ingresamos el comando:

vi /etc/config/system

Las especificaciones de funcionamiento del botón QSS/WPS será la de apagar el emisor Wifi y la red inalámbrica al presionarlo brevemente (durante menos de un segundo). Si lo presionamos entre uno y cinco segundos, encenderá el Wifi y la red inalámbrica. Considerando esto, en Vi pasamos al modo inserción con la tecla i, y al final del archivo /etc/config/system, habremos de agregarle las siguientes lineas de configuración:

# Agregado al archivo /etc/config/system 
# para configurar el botón OSS/WPS del Router TP-Link
# Esto apaga el emisor Wifi y la red inalámbrica
# al presionar el boton QSS/WPS menos de 1 segundo.
config button
    option button 'wps'
    option action 'released'
    option handler 'uci set wireless.@wifi-device[0].disabled=1 && wifi'
    option min '0'
    option max '1'
 

# Esto enciende el emisor Wifi y la red inalámbrica
# si se presiona el boton QSS/WPS entre 1 y 5 segundos.
config button
    option button 'wps'
    option action 'released'
    option handler 'uci set wireless.@wifi-device[0].disabled=0 && wifi'
    option min '1'
    option max '5'



...guardamos los cambios y salimos del editor Vi con la consabida combinación de teclas Esc + :wq

Para probar los cambios, debemos reiniciar el router con:

reboot

Una vez que el router se reinicie, debemos presionar y soltar el botón QSS durante menos de un segundo, y se apagará el Wifi (podremos comprobarlo al comprobar el apagado de la luz "WLAN" del panel frontal del router. Para reencender el Wifi, debemos presionar el botón QSS entre 1 y 5 segundos (se encenderá la luz WLAN y podremos conectarnos inalámbricamente).


Configurar el encendido / apagado del Wifi a un horario determinado:

Hemos mencionado la potencia y versatilidad que nos permiten los scripts de Cron para activar o desactivar el Wifi en horarios particulares. Por ejemplo, supongamos que según nuestros horarios de trabajo y sueño nos conviene que el Wifi se apague automáticamente a la 23:30PM y se encienda a diana, a las 6:30 AM durante los días de semana.

Para ello será necesario crear dos scripts ejecutables, uno para encender el Wifi y otro para apagarlo, y programar el cronómetro del router (cron). Todo ello lo haremos también desde la terminal del router. Una vez logueados en él, podremos ingresar:

vi /root/wifioff

...presionamos i y le pegamos el siguiente código

#!/bin/sh
# Apaga la WLAN (sin detener el dispositivo de emision radio0)
wifi down


Una vez guardado el fichero y salido del editor (Esc + :wq), utilizaremos el siguiente comando para crear el archivo de encendido:


vi /root/wifion

...y nuevamente usamos i para pegarle su código correspondiente que figura a continuación:

#!/bin/sh
# Enciende la WLAN (sin detener el dispositivo de emision radio0)
wifi down


Guardamos y salimos con Esc + :wq


Conforme hayamos ingresado ambos archivos, nos será imprescindible otorgarles permisos de ejecución para que dichos guiones puedan utilizarse. Lo haremos con el comando:

chmod +x wifionoff wifion wifioff

Ahora podremos programar el cronómetro de ejecución (cron). Esto se hace por medio de una tabla de texto (crontab), modificando el archivo /etc/crontabs/root. Para hacer la tabla crontab editamos el archivo referenciado usando Vi, con el comando:

vi /etc/crontabs/root

...presionamos i para configurar al siguiente texto al final del archivo:

# Ejecuta este script wifioff todos los dias
# a las 23:30pm
30 23 * * * /root/wifioff
# ejecuta el script wifion a las 06:30am
# a las 6:30am

30 06 * * * /root/wifion

...guardamos la tabla de cron recién creada con Esc + :wq y al volver al prompt del router, debemos ejecutar el comando reboot para que surta efecto. Veremos que con ello el Wifi se apagará automáticamente a las 23:30 y se encenderá a las 06:30. Si necesitásemos encenderlo durante ese horario, bien podríamos presionar el botón del aparato durante 1 y 5 segundos para activarlo.


Podría ser que en determinadas ocasiones necesitemos un script distinto, que  si el Wifi está encendido lo apague, y si está apagado, lo encienda. Para ello, debemos ingresar el siguiente script:

vi /root/wifionoff

y le pegamos el siguiente código:

#!/bin/sh
STATEFILE="/tmp/wifionoff.state"

if [ $# -eq 1 ]; then
  case $1 in
    "up"|"on")
      STATE=off
      ;;
    "down"|"off")
      STATE=on
      ;;
  esac
else
  if [ ! -e ${STATEFILE} ]; then
    STATE=on
  else
    . ${STATEFILE}
  fi
fi
if [ -z ${STATE} ]; then
  STATE=on
fi

if [ ${STATE} == "on" ]; then
  /sbin/wifi down
  STATE=off
else
  /sbin/wifi up
  STATE=on
fi

echo "STATE=${STATE}" > ${STATEFILE}


Guardamos y salimos del editor Vi con Esc + :wq.

martes, 4 de agosto de 2015

¿Cómo puedo controlar el tráfico de mi router con OpenWRT?

La Conducción es el Arte que como hombres de la política hemos de Ejercer. Esta nos permite interpretar los anhelos del pueblo, y hacer llegar a cada quien lo que necesita para hacer grande e inmortal a la Patria.

En un sistema telemático, esta acción es emulada por un Router: un aparato de comunicaciones capaz de otorgar a cada equipo de la red los paquetes que han solicitado, y encaminar los datos por la senda de la Liberación.


Gracias al Justicialismo, podemos dotar a nuestro router con un firmware libre mucho más potente que el firmware privativo original provisto por el fabricante. Esto nos permitirá ejecutar directamente una distribución Linux limitada pero funcional en el aparato, adecuada para afrontar situaciones que antes no nos eran posibles. A tal fin, ya he indicado cómo instalar OpenWRT en nuestro router TP-Link TL-WR941ND, y como realizar ciertos rudimentos con dicho entorno operativo.


Una de las condiciones favorables que nos presenta el sistema operativo de router OpenWRT, es la capacidad de ejecutar guiones de programación (scripts) o miniprogramas dentro del mismo router, para realizar diferentes acciones. Lejos de ser un sinsentido, vendrá de perillas para ciertas actividades avanzadas.

Por ejemplo, en este caso el router TL-WR941ND opera como un potente cortafuegos, cliente y servidor SSH, servidor DHCP programable, punto de acceso Wifi, y también como unidad de registro de actividad de red. Sin embargo, como la unidad permanece encendida 24x7, se encuentra en posición ideal para encargarle que registre el tráfico telemático de la red en Puerta de Hierro. En particular, se desea supervisar el tráfico parcial de varios equipos conectados por cable al mismo, el tráfico total en la red local (LAN) y en la red WAN (esto es, la conexión al cablemódem), y la cantidad de días en que el aparato está encendido sin reiniciarse.

Para esta tarea de registro automatizado, habremos de utilizar el sistema OpenWRT instalado en el router TP-Link WR-941ND para programar en su memoria una serie de scripts que se encargarán de cumplimentar dicha tarea luego de intervalos de tiempo determinados.

Lo primero será acceder al router a través de una terminal. Si ya hemos instalado OpenWRT correctamente y configurado las opciones de conexión, podremos conectarnos y operar en el router por medio de una sesión cifrada SSH. Lo haremos abriendo una terminal con Ctrl+Alt+T e ingresando el siguiente Comando de Organización:

ssh root@ip_del_router

Para ello podremos utilizar el editor Vi, el minúsculo editor de texto que se encuentra instalado en el mismo router. Para ello utilizamos el comando:

vi /root/upt

Se abrirá el editor Vi. Se trata de un editor que nos mostrará un archivo vacío. Para empezar a escribir debemos ingresar al modo de inserción de texto, mediante la tecla i. Una vez en modo inserción, podremos escribir o pegar texto. Podremos pegar el siguiente código:

#!/bin/sh
# Logueador en RAM del Uptime y Trafico del router peronista
# llamarlo con cron cada 15 min o algo asi
# 4ago2015 Ubuntu Peronista
# borra la version anterior
rm /tmp/log/uptime
# Genera el archivo
echo Archivo generado por el programa upt. > /tmp/log/uptime
date >> /tmp/log/uptime
uptime >> /tmp/log/uptime
echo TRAFICO TOTAL >> /tmp/log/uptime
echo Enlace puente LANx+WLAN0 y WAN >> /tmp/log/uptime
ifconfig br-lan >> /tmp/log/uptime
echo eth0 >> /tmp/log/uptime
echo TRAFICO DE LAN COMPLETO >> /tmp/log/uptime
ifconfig eth0 >> /tmp/log/uptime
echo Trafico desglosado por puertos LAN del Router: >> /tmp/log/uptime
ifconfig lan1 >> /tmp/log/uptime
ifconfig lan2 >> /tmp/log/uptime
ifconfig lan3 >> /tmp/log/uptime
ifconfig lan4 >> /tmp/log/uptime
echo TRAFICO AL MODEM - puerto WAN >> /tmp/log/uptime
echo resume datos de salida/entrada del puerto de red exterior. >> /tmp/log/uptime
ifconfig wan >> /tmp/log/uptime
echo TRAFICO AL PUNTO DE ACCESO WIFI - wlan0 >> /tmp/log/uptime
ifconfig wlan0 >> /tmp/log/uptime
echo CESIONES DHCP >> /tmp/log/uptime
cat /tmp/dhcp.leases >> /tmp/log/uptime
# mensaje para mostrar
echo Tiempo de uptime actualizado en el archivo /tmp/log/uptime
echo Viva el Justicialismo!


Luego guardaremos el archivo y salimos del editor. Para hacer esto en el editor Vi, debemos presionar la tecla Esc y a continuación ingresar :wq seguido de Enter.

Debemos darle permiso de ejecución al programa ingresado. Podremos hacerlo simplemente con:

chmod +x /root/upt

Dicho programa será capaz de crear en la memoria RAM del router (mas precisamente, en la carpeta /tmp/log/) un archivo llamado uptime que nos indicará el tiempo que lleva encendido el router, los datos de tráfico desglosados por puerto, wifi, y el puerto WAN (de Internet). También nos indicará qué máquinas tiene asociadas al router.

La finalidad es que este programa se ejecute automáticamente cada 10 minutos, lo que actualizará dicho registro con conteos parciales. El problema es que este archivo se borrará de la memoria toda vez que se apague o se reinicie el router.

Se preguntarán cual es el motivo de esto. Vean señores, notarán que no actualizamos este fichero cada 10 minutos en la memoria EEPROM del router sino en su memoria volátil, la RAM. Esto es así porque la memoria EEPROM, como toda memoria de tipo Flash, puede llegar a sufrir un proceso de deterioro si la estamos grabado (escribiendo) cada 10 minutos sin ton ni son. Por tal motivo crearemos un segundo script llamado uptflash, que no se ejecutará cada diez minutos sino una vez por día, y que simplemente copiará el archivo de registro desde la memoria volátil RAM a la memoria de masa EEPROM Flash. Una vez transferido el archivo, el dato total del día se almacenará de forma imperecedera.

Para poder ingresar este nuevo script, volvemos a usar el editor Vi:

vi /root/uptflash

ingresamos en modo inserción presionando i, y le pegamos el siguiente código:


#!/bin/sh
# Graba el log de uptime de la RAM a la memoria flash
# poner en cron una vez por dia, a las 12am o algo asi
# borra el archivo viejo
rm /root/uptime.log
# copia el archivo de la RAM a la FLASH del router
cp /tmp/log/uptime /root/uptime.log


...luego guardamos y salimos con Esc+:wq. No debemos darle permisos de ejecución al fichero, con el comando:

chmod +x /root/uptflash

Pues bien, para que ambos guiones funcionen de la manera recomendada, debemos hacer que el router los ejecute de forma programada y en intervalos. Para ello usaremos la funcionalidad Cron (el cronómetro) del router. Este nos permite ingresar una serie de acciones que dispararán los guiones.

Nuevamente, usaremos Vi:

vi /etc/crontabs/root

Esto nos permitirá crear un archivo de configuración de los guiones cronometrados. Ingreso en modo inserción mediante la tecla i, y le pegamos el siguiente código:

# Ejecuta este script upt cada 10 min
# para loguear uptime y trafico a la RAM
*/10 * * * * /root/upt
# ejecuta el script uptflash a las 13:01pm
# para copiar el uptime de la RAM a la flash
# una vez por dia:
01 13 * * * /root/uptflash


Esta orden le indica al router que ejecute el script upt, el cual se encarga de reemplazar el archivo bitácora antiguo (si lo hubiese) por uno nuevo cada diez minutos, a toda hora, todos los días de la semana. Finalmente todos los días a las 13:01 horas, ejecutará uptflash, que transferirá la bitácora desde la memoria RAM volátil a la EEPROM estable del router (lo cual nos permitirá conocer nuestro "récord" de tiempo de encendido). Es interesante destacar que esta acción se realiza un minuto después de la otra, para evitar que al realizarse al unísono, el primer log no esté completo.

Ahora bien, para que los registros de bitácora se inicien según esta consigna, es necesario reiniciar el router. Una vez reiniciado, puedo dejarlo encendido todo el tiempo que sea necesario. El reinicio puede hacerse con el comando:

reboot

Para revisar si la orden de acción cronometrada está activa, podremos loguearnos al router e ingresar el siguiente comando:

logread | grep cron

Debería devolvernos dos instancias de Cron. En tanto, si queremos estudiar el registro parcial, podríamos ingresar la orden:

cat /tmp/log/uptime | less
Y si queremos ver el último registro almacenado en la memoria EEPROM no volátil, habremos de ordenar:

cat uptime.log | less

En el caso de requerir supervisar el tráfico en tiempo real, podremos instalar en el router el programa iftop, una potente aplicación pensada precisamente para ello. Lo haremos con:

opkg update
opkg install iftop

Y ejecutaremos el programa con

iftop:

En dicho programa, podremos activar la ayuda presionando h.

sábado, 1 de agosto de 2015

¿Cómo instalo Messenger for Desktop para Facebook y WhatsApp en Ubuntu?


Trabajadores!

La comunicación es primordial entre los hombres, como fuente de entendimiento en un lenguaje común de Paz, que sea el necesario para el bienestar en el Trabajo.
Toda labor humana puede realizarse mejor si nos mancomunamos, que es la acción de trabajar en pos de un objetivo común que no ha de ser más que positivo.

La técnica y la máquina han permitido hoy numerosas maneras de comunicarnos, pero siempre es mejor relizarlo bajo las banderas del Justicialismo.

La telemática nos ofrece innumerables maneras, y tal vez una muy extendida sea Facebook. Naturalmente que no hemos de utilizar dicha web, pero nada impide que chateemos utilizando el servicio que nos provee, si así lo creemos necesario. Al fin y al cabo, nuestra Doctrina no hace mas que buscar la Felicidad de Todos los Argentinos.

Por tal motivo, contamos con el cliente Messenger for Desktop, un cliente pensado para asociarse con Facebook y utilizar sus funcionalidades desde nuestro escritorio en nuestros sistema GNU con Linux, sobre todo los derivaros de Debian.


La web oficial nos permitirá conocer detalles del cliente de mensajería instantánea. No se trata de un cliente oficial, sino de un cliente multiplataforma, que cuenta también con recursos para sistemas GNU con Linux. Utilizando recursos y código del cliente web Messenger, nos permite contar con un cliente para nuestro escritorio GNU con Linux.

De momento la última versión es la 1.4.3, y funciona perfectamente. Nos permitirá integrarlo con el sistema operativo, de modo de usar las alertas de Ubuntu junto con dicho programa. Podremos utilizarlo también para enviar o recibir archivos, fotografías, etc, y poder abrirlas con los programas nativos de nuestro sistema GNU con Linux para cada tipo de fichero.

Para instalarlo, podremos utilizar Ctrl+Alt+T para abrir una Terminal, e ingresar los comandos de organización necesarios para su instalación.

  • Si uso Ubuntu de 64 bitios podría utilizar:
cd ~/Descargas/

wget https://github.com/Aluxian/Facebook-Messenger-Desktop/releases/download/v1.4.3/Messenger_linux64.deb

sudo dpkg -i Messenger_linux64.deb
  • Si en cambio, utilizo Ubuntu 14.04LTS de 32 bitios, he de emplear:

cd ~/Descargas/

wget https://github.com/Aluxian/Facebook-Messenger-Desktop/releases/download/v1.4.3/Messenger_linux32.deb

sudo dpkg -i Messenger_linux32.deb

Una vez que hayamos terminado de descargar el paquete e instalado el programa en nuestro sistema, podremos ejecutarlo desde Aplicaciones / Internet / Messenger.

El primer proceso a realizar es una tçípica acción de darnos de alta en nuestra cuenta de Facebook, con nuestro usuario de correo electrónico asociado a ella, y la contraseña de Facebook.

Una vez logueados con el servicio de chat de Facebook podremos chatear con nuestros contactos, enviar y recibir fotografías y mensajes de audio. Haciendo clic en el Engranaje, podremos configurar las opciones del programa para nuestro sistema operativo libre. Entre ellas, las posibilidades de comunicarnos a través de las alertas del mismo cuando recibamos un mensaje, o la posibilidad de reproducir un sonido ante tal evento.

En cuanto a clientes de mensajería para WhatsApp para GNU con Linux, también contaremos con clientes no oficiales pensados para nuestro escritorio, tanto en arquitectura de 32 y de 64 bitios. El cliente no oficial va por su versión 1.1.0. Para instalarlo, hemos de abrir nuestra consola Terminal e ingresar los siguientes Comandos de Organización:
  • Si tenemos Ubuntu 14.04LTS de 64 bits:
cd ~/Descargas/

wget https://github.com/Aluxian/WhatsApp-Desktop/releases/download/v1.1.0/UnofficialWhatsApp_linux64.deb


sudo dpkg -i UnofficialWhatsApp_linux64.deb
  • Si uso Ubuntu 14.04LTS de 32 bitios:
cd ~/Descargas/

wget https://github.com/Aluxian/WhatsApp-Desktop/releases/download/v1.1.0/UnofficialWhatsApp_linux32.deb

sudo dpkg -i UnofficialWhatsApp_linux32.deb

Para ejecutar el cliente no oficial de WhatsApp, vamos a Aplicaciones / Internet / Unnoficial WhatsApp.

La primer medida será asociar a nuestra cuenta de WhatsApp Web por medio del escaneo del código, o ingresando sus datos.

Una vez asociada la cuenta de WhatsApp, podremos utilizar el cliente de escritorio de forma satisfactoria.

miércoles, 22 de julio de 2015

¿Cómo puedo retransmitir IPTV con Ubuntu?

¡Trabajadores!

Los niños han de gozar de todos los privilegios de nuestro Movimiento, pues ellos son los destinatarios de nuestra felicidad y quienes tendrán para sí la tarea de hacer grande e inmortal a la Patria.

Para los niños hemos dado los derechos a la niñez, y les hemos preparado un camino venturoso para una vida colmada de dicha bajo las tres banderas del Justicialismo. Desde la Ciudad de los Niños a los caramelos Mu-mú.
Uno de los logros que mas acercan a toda la familia es el de la televisión: aquella conjunción técnica de imágenes en movimiento y sonido sincronizado, que es emitida a grandes distancias a través del éter.

La redistribución y retransmisión de una señal analógica - cualquiera sea - sufrió siempre un proceso de degradación y pérdida, pero esto normalmente no sucede con la información que opera de manera digitalizada. La TV digital moderna surge entonces como una expresión popular de poder contar con un gran avance tecnológico en lo que hace a la calidad y a las propiedades de difusión, pero permitiendo difundir las ideas del Pueblo Justicialista.
Normalmente, podremos recibir la TV digital por tres medios: uno de ellos es el cableado, lo cual involucra normalmente un servicio pago y excluyente. Lo evitaremos, en tanto el Justicialismo permite recibir gratuitamente la señal televisiva digitalizada "por aire", a través del servicio ISDB-T, receptando por medio de una antena UHF hogareña la señal emitida desde una torre distante a decenas de kilómetros . 
En tercer caso, podremos recibir la señal digitalizada en formato DVB-S2 retransmitida a decenas de miles de kilómetros por un satélite que orbite el globo, captándola a través de una antena parabólica hogareña.
Estos dos sistemas abiertos que avala el Justicialismo son altamente eficientes, y poco costosos. Sin embargo, existen situaciones donde aún estos procederes podrían resultar insuficientes: supongamos un sistema de recepción televisiva en un hotel o consorcio. El cable coaxial RG6 que transporta la señal desde la antena hogareña a los receptores de TV digital  no puede superar por mucho los 20 metros, sin correr el riesgo de que la señal digital se atenúe de manera inaceptable. En en caso de las antenas de TV digital terrestre o satelital, tampoco suele recomendarse encadenar más de dos receptores por cada antena. Es importante por ello contar con antenas colectivas (UHF o satelitales) de mayor ganancia, y esto no deja de ser un factor limitante en cuanto a la propagación de la señal en los edificios: debería instalarse cable coaxial en todos los hogares para distribuir la señal televisiva.

Afortunadamente nuestro Movimiento ha pensado en todo y ofrece una miríada de posibilidades: gracias a un servidor munido de Software Libre, podremos ahora redistribuir la señal televisiva digitalizada pero en forma de paquetes de datos TCP/IP. 

Esto se denomina IPTV. Una vez tornados paquetes TCP/IP, podremos transmitirlos fácilmente a través de a nuestra red de área local o si tomamos las previsiones con nuestro router, podremos emitirlas a través de una red WAN o Internet. Todo ello utilizando, por ejemplo, la infraestructura cableada o inalámbrica existente en un hogar u edificio para dotar de imagen y sonido a Smart TVs, tablets, y otras computadoras que carezcan de sintonizador digital o de conexión a una antena de la norma que tengamos.

Hardware a considerar


Podremos utilizar como servidor cualquier equipo GNU con Linux, siempre que esté dotado con uno o varios sintonizadores de TV digital terrestre o satelital. Para facilitar el uso de la red se puede emplear un router hogareño común. En cualquier caso, es importante que ya tengamos configurado el o los sintonizadores a utilizar.

En este caso en particular, para evaluar la máxima potencia del sistema IPTV a través de una red LAN Gigabit, utilizaremos en nuestro servidor ocho sintonizadores USB 2 de TV digital terrestre ISDB-Tb Geniatech MyGica S880, así como una plaqueta sintonizadora de TV digital satelital DVB-S2. Cada receptor USB recibirá un canal digital multiplexado (dotado de varias señales televisivas), y la plaqueta sintonizadora recibirá una señal satelital multiplexada, con unos quince canales.

La velocidad de transmisión de cada canal multiplexado ISDB-Tb o DVB-S2 puede variar entre 2,5 y los 12 megabytes por segundo dependiendo su compresión. Esta cantidad no es muy grande, y puede manejarse muy bien a través de una red cableada 10/100 o inalámbrica WiFi estándar "G". Pero en el caso de re-emitir ocho canales multiplexados de TV digital terrestre y cuatro canales multiplexados de TV digital satelital - como nos proponemos en este ejemplo IPTV extremo - nos veremos en la necesidad de utilizar WiFi estándar "N" y en lo posible hacer uso de red cableada LAN Gigabit (1000MBps). En este caso en particular de apilar ocho receptores USB, sin duda confiaremos en puertos USB 3.


La sintonizadora USB S880 en miniatura de Geniatech es un dispositivo receptor ISDB-Tb Full-Seg de muy bajo consumo y buena recepción, dotados con un conector hembra MCX al cual se le debe adaptar una antena retráctil. En lugar de utilizar dicha antena suministrada, hemos decidido conectarlo a una bajada de cable coaxial RG6 de 75 Ohmnios con conector F (y en consecuencia, en cada sintonizadora aplicamos un adaptador MCX macho a coaxial F hembra para conectarlos).


Una vez adaptado, cada sintonizador USB lo hemos colocado en un puerto USB 3.0 de un hub potenciado marca XCellon (totalmente compatible con GNU). Los otros dos receptores van conectados a los puertos USB3 del sistema.
La TBS6985 en tanto, es una plaqueta PCI-e para recepción de TV satelital FTA, dotada de cuatro sintonizadores. Está instalada en Ubuntu y conectada a cuatro antenas parabólicas, las cuales ha sido apuntadas previamente a la constelación de satélites compuesta por el Arsat-1, Amazonas, Hispasat y Galaxy 28.
Software Libre MuMuDVB: el streamer Justicialista de TV digital
El cometido de transferir paquetes sintonizados de TV digital a través de una red LAN queda a manos de MuMuDVB.
Si bien el sistema contempla en su empleo básico con el alistamiento de un adaptador dotado de un solo sintonizador, esto no implica que en un sistema con buena potencia podamos contar con varios sintonizadores al unísono, y correr múltiples instancias del mismo servicio.

Como primer medida, instalaremos los programas necesarios desde la Terminal. Para el servidor utilizaremos mumudvb y como cliente podremos emplear VLC. Abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo apt-get install mumudvb vlc

Acto seguido, construiremos el archivo de configuración del servidor para la TV digital. Las opciones del archivo de configuración las podremos consultar aquí.

En el caso de la configuración para la TV digital terrestre, debemos crear un archivo de configuración para cada sintonizador. Naturalmente que si usamos un único sintonizador de TV digital, sólo crearemos el primer archivo.

En nuestro caso, como tenemos ocho sintonizadores, crearemos ocho archivos diferentes. Al primero lo llamaremos .tdaporip_0.conf, al segundo .tdaporip_1.conf, al tercero .tdaporip_2.conf, etc. Cada uno de ellos tendrá las especificaciones para uno de los ocho sintonizadores S880.

Podemos crear los archivos de configuración con el editor Nano, por medio del siguiente Comando de Organizción:

nano .tdaporip_0.conf

Se abrirá un archivo completamente en blanco. En el mismo habremos de configurar los aspectos que hagan a la frecuencia en Kiloherz y al ancho de banda del canal que queramos utilizar.
Le pegamos el siguiente contenido:




# Configuración de MumuDVB
# Para receptor de TV digital Terrestre ISDB-Tb.
# Activar auto-cofiguración completa

autoconfiguration=full

# Parametro card: indica el numero de sintonizadora/adapter.

# Si hay una sola, es 0.
card=0
# Parametro tuner: identificador del sintonizador.
# Si el adaptador tiene un solo sintonizador, es 0.
tuner=0
# Parámetro freq: frecuencia (Khz) del MUX digital a retransmitir por IP

# Tabla de referencia de frecuencias TDA AMBA:
# 521142: ENCUENTRO | PAKA PAKA | TATETI | INCAA TV | TECNOPOLIS | ENCUENTRO PORTABLE
# 527142: TV PUBLICA HD | TV PUBLICA PORTABLE | CONSTRUIR
# 533142: DEPORTV HD | VIVRA | ARPEGGIO | VIAJAR | DEPORTV PORTABLE
# 539142: CN23 | C5N | TELESUR | 360 TV | RT | CN23 PORTABLE
# 545142: Canal 26 HD |Telemax | C5N HD |ONE TV HD | C5N
# 563142: TV Clip Digital | UNISUR Prueba | Clip | LDTV ES
# 575142: [0001]
# 587142: Canal 13 Prueba | Canal 13 One Seg
# 593142: Telefe HD | Telefe SD | Telefe Movil |ACUA MAYOR
# 599142: Canal 9 HD | Canal 9 SD | ACUA FEDERAL | Canal 9 Portable
# 605142: America HD Prueba | A24 Prueba | America 1 seg | America SD |
freq=527142

# Parámetro bandidth: ancho de banda del servicio.

# Referencia: ISBD-Tb: 6Mhz. ATSC: 8Mhz. DVB-T: 8Mhz.
bandwidth=6MHz

Luego guardamos el archivo con Ctrl+O y salimos del editor Nano con Ctrl+x.

Naturalmente, si tenemos múltiples sintonizadores de TV digital terrestre, en cada archivo debemos cambiar  el número de card por 0, 1, 2, 3, 4, 5, 6, y 7 respectivamente, para hacer caso a cada uno de ellos. También hemos de cambiar la frecuencia para distribuir los distintos canales multiplexados.

El segundo paso consiste en dar inicio al servicio de reenvío de señal digital a través de la IP. Para ello abro una terminal y doy inicio al servicio MumuDVB con las indicaciones -d -c y el nombre del archivo de configuración recién creado:

sudo mumudvb -d -c .tdaporip_0.conf

La terminal nos devolverá las indicaciones de status de MumuDVB:






MuMuDVB Version 1.7.1
--- Build information ---

Built with CAM support.

Built without transcoding support.

Built with ATSC support.

Built with ATSC long channel names support.

Built with support for DVB API Version 5.

---------

Originally based on dvbstream 0.6 by (C) Dave Chapman 2001-2004 Released under the GPL.

Latest version available from http://mumudvb.braice.net/ Project from the cr@ns (http://www.crans.org) by Brice DUBOST (mumudvb@braice.net)

Info: Main: Full autoconfiguration, we activate SAP announces. if you want to deactivate them see the README.

Info: Main: Full autoconfiguration, we activate PAT rewritting. if you want to deactivate it see the README.

Info: Main: Full autoconfiguration, we activate SDT rewritting. if you want to deactivate it see the README.

Info: Main: Full autoconfiguration, we activate sorting of the EIT PID. if you want to deactivate it see the README.

Info: Main: ========== End of configuration, MuMuDVB version 1.7.1 is starting ==========

Info: Autoconf: The autoconfiguration auto update is enabled. If you want to disable it put "autoconf_pid_update=0" in your config file.

Info: Main: Streaming. Freq 527142000

Info: Tune: Using DVB card "DiBcom 8000 ISDB-T" tuner 0

Info: Tune: Tuning DVB-T to 527142000 Hz, Bandwidth: 6000000

Info: Tune: FE_STATUS:

Info: Tune: FE_STATUS:

Info: Tune: FE_HAS_SIGNAL : found something above the noise level

Info: Tune: FE_HAS_CARRIER : found a DVB signal

Info: Tune: FE_HAS_VITERBI : FEC is stable

Info: Tune: FE_HAS_SYNC : found sync bytes

Info: Tune: FE_HAS_LOCK : everything's working...

Info: Tune: Event: Frequency: 527142000

Info: Tune: Bit error rate: 2097151

Info: Tune: Signal strength: 41228

Info: Tune: SNR: 179

Info: Tune: FE_STATUS:

Info: Tune: FE_HAS_SIGNAL : found something above the noise level

Info: Tune: FE_HAS_CARRIER : found a DVB signal

Info: Tune: FE_HAS_VITERBI : FEC is stable

Info: Tune: FE_HAS_SYNC : found sync bytes

Info: Tune: FE_HAS_LOCK : everything's working...

Info: Main: Card 0, tuner 0 tuned

Info: Autoconf: Autoconfiguration Start

WARN: Autoconf: Encoding not implemented yet (0x0e), we'll use the default encoding for service name

WARN: Autoconf: Encoding not implemented yet (0x0e), we'll use the default encoding for service name

WARN: Autoconf: Encoding not implemented yet (0x0e), we'll use the default encoding for service name

WARN: Autoconf: Encoding not implemented yet (0x0e), we'll use the default encoding for service name

Info: Autoconf: Autoconfiguration done

Info: Autoconf: Diffusion 2 channels

Info: Autoconf: Channel number : 0, name : "TV PUBLICA HD" service id 59201

Info: Autoconf: Multicast4 ip : 239.100.0.0:1234

Info: Autoconf: Channel number : 1, name : "CONSTRUIR " service id 59202

Info: Autoconf: Multicast4 ip : 239.100.0.1:1234


Como vemos, MumuDVB sintoniza los canales indicados a través de nuestro sintonizador "0" munido del chipset DiBcom 8000, y en este ejemplo nos informa que ha encontrado dos señales dables para retransmitir en nuestra red local: la TV Publica HD y Construir TV. 

MumuDVB "inyectará" la información digital en forma de paquetes TCP/IP emitiéndolos a nuestro router a través de nuestra conexión de red. Si bien pueden cambiarse, las direcciones IP de los canales suelen ser estándares: 239.100.x.y:1234, siendo x el número de sintonizador (el primero es el 0 y se agregarán más si tenemos más sintonizadores), mientras que y indica el número de canal (también inicia en 0).

También podremos agregar más instancias de servidor, para poder distribuir por IP canales que recibamos en otro sintonizador. Para iniciar el sintonizador S880 número dos, debemos abrir otra instancia terminal e indicar el comando:

sudo mumudvb -d -c .tdaporip_1.conf

...y así sucesivamente con cada sintonizador de TV digital terrestre que tengamos.

En el caso del sintonizador de TV digital satelital, hemos de configurar el archivo para el satélite en cuestión. Si utilizamos el ArSat-1, podríamos configurarlo con el editor Nano según las especificaciones de dicho satélite.

nano .arsat1_por_ip.conf

y le pegamos el siguiente contenido:

# Configuración de MumuDVB
# Para receptor de TV digital satelital DVB-S2.
# Activar auto-cofiguración completa

autoconfiguration=full


# Parametro card: indica el numero de sintonizadora/adapter.

# Si hay una sola, es 0.
card=0
# Parametro tuner: identificador del sintonizador.
# Si el adaptador tiene un solo sintonizador, es 0.
tuner=0
# InVap ArSat-1 para mumudvb

#Consultado en http://www.portaleds.com/espanol/listar.php?sat=2880&cod=fta
#por ubuntuperonista.blogspot.com.ar para todo el Universo GPL-V3
# 9/7/2015
frec: 11670000
pol: v
srate: 30000
lnb_type: universal
lnb_slof: 11700
lnb_lof_low: 9750
lnb_lof_high: 10600
lnb_voltage_off: 0
coderate: 5/6
rolloff: 35

Guardamos con Ctrl+o y salimos con Ctrl+x.

Ahora podremos iniciar otra instancia del servidor que emita por IP lo recibido por el satélite ArSat-1, abriendo otra terminal con Ctrl+Alt+T e ingresando el siguiente comando de organización:

sudo mumudvb -d -c .arsat1_por_ip.conf

Clientes para reproducir la TV desde nuestra red LAN:

Sintonizar la emisión de IPTV será ahora sencillo con cualquier cliente que incluya recepción SAP. Inclusive podremos utilizar Smart TV que normalmente ya cuentan con esta opción. En este caso utilizaremos el conocido reproductor peronista VLC, que no solo cuenta con su versión para GNU Linux, sino que también se encuentra ampliamente difundido en otras plataformas privativas, celulares, tablets, etc.

En el reproductor peronista del conito activamos la Lista de Reproducción (presionando Ctrl+L), y bajo el apartado de Red Local (Local Network), elegiremos Emisiones de Red (SAP) / Network Streams (SAP). VLC buscará servidores SAP en nuestra red local, y tras breves instantes debería indicarnos directamente los canales de IPTV suplidos telemáticamente. Simplemente hacemos clic sobre uno de ellos, y comenzará a reproducirse.
También podremos ingresar desde un navegador de internet o cualquier dispositivo capaz de conectarse al protocolo de internet UDP, como pueden ser VLC o Mplayer. Para ello utilizaríamos:

vlc udp://@239.100.0.3:1234

...o:

mplayer udp://@239.100.0.3:1234

Es importante saber que el video se transmite en su calidad nativa, y por lo tanto no se requiere un equipo tan potente para transcodificar la señal digital a - digamos - resoluciones menores aptas para dispositivos de menor potencia. Si tal fuese el caso, mumudvb también podría hacerlo, pero se requeriría una CPU de potencia (tipo Intel I7) para transcodificar en tiempo real.

Esto sería el caso de requerir servicio de TV por IP para la retransmisión a equipos móviles dotados de Wifi.


Gracias a la velocidad de una red Gigabit, podremos transmitir varios streams de videos sin "hipos" ni cortes, y todos ello de manera libre gracias al software libre y al Justicialismo.