domingo, 16 de diciembre de 2012

Distintivo de marca: Pi Inside

Después de la consolidación de la Raspberry Pi ya no solamente en uso y ventas, sino en cuanto al soporte de su CPU en múltiples Sistemas Operativos, es momento de mostrar a todos su marca y que mejor que un pegatina de pi inside.


Y la vista interior, el núcleo del sistema.

sábado, 8 de diciembre de 2012

Temperatura en la Raspberry Pi

Con la nueva versión de raspi-config (de serie en la distribución Raspbian) ya se nos permite de manera sencilla subir la frecuencia de la Raspberry Pi a fin de aumentar sus prestaciones mediante overclocking y llegar hasta 1GHz.

Si la herramienta antes nos permitía definir la distribución de la memoria que queríamos para la GPU y CPU, ahora también podemos modificar la frecuencia de funcionamiento de la Raspberry Pi (lo cual implica frecuencia de ARM, frecuencia del Core, frecuencia de la memoria SDRAM y voltaje de funcionamiento) y todo en 5 valores predeterminados de overclock, como vemos a continuación:

Al subir la frecuencia de nuestra placa Raspberry Pi  aumentamos el riegos de calentamiento de algunos chips de la placa, sobretodo el SoC y el USB/LAN, por lo que ahora y más que nunca tenemos que tener algún disipador asociado (como vimos en una entrada previa Disipador para la Raspberry Pi de este blog).


Conocer la temperatura de la CPU

Existen dos maneras sencillas de saber a que temperatura (ºC) se encuentra funcionando la Raspberry Pi.

La primera opción es mediante el comando vcgencmd, siendo su sintaxis:
vcgencmd measure_temp

La alternativa, es mediante un archivo del sistema, siendo:
cat /sys/class/thermal/thermal_zone0/temp

NOTA: En este caso, la temperatura aparece en milésimas de º Celsius.

En ambos casos, podemos ver a que temperatura está la CPU.

Conocer la frecuencia de funcionamiento

Existen dos maneras sencillas de saber a que frecuencias esta funcionando la Raspberry Pi.

La primera opción es mediante el comando vcgencmd, siendo su sintaxis:
vcgencmd measure_clock arm

La alternativa, es mediante un archivo del sistema, siendo:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

En ambos casos, podemos ver a que frecuencia está funcionando el sistema.

Así pues, vigilad la temperatura de la CPU no sea que lleguemos al limite de  funcionamiento de 85º para el SoC (Single on Chip) de la Raspberry Pi



jueves, 6 de diciembre de 2012

OpenVG en Raspberry Pi

La placa Raspberry Pi contiene la GPU Broadcom VideoCore IV que implementa un conjunto de estándares, pero que de momento no facilita una API directa para su uso.

Mientras esperamos que Broadcom se decida a dar soporte completo a OpenCL, existe una API alternativa para usar uno de estos módulos: OpenVG para nuestra Raspberry Pi, de manera que podemos tener acceleración hardware en vectores de dos dimensiones y renderizado de gráficos.

Toda la información se encuentra en la siguiente librería:



Y para muestra, una imagen de lo que es capaz...:


Recomendable acceder a la URL del proyecto para ver las capacidades que nos facilita este desarrollador y su API.

Gracias.

domingo, 2 de diciembre de 2012

Convertir multicast IPTV (Imagenio) a unicast HTTP usando udpxy en Raspberry Pi

Como no siempre podemos utilizar programas de reproducción tipo VideoLAN (VLC) para la reproducción de las señales IPTV que proveen los proveedores de TV por cable (tipo Imagenio) necesitamos una alternativa a poder reproducir emisiones bajo protocolo RTP o UDP a HTTP, y para esto, que mejor que utilizar nuestra Raspberry Pi para que lo haga.

El principal motivo de esta conversión es:
  • No todos los elementos de red soportan multicast (sobretodo algunos switches y routers)
  • Quieres ver streaming de video en cliente que no tienen software  multicast disponible (ej: smartphones y tablets)
  • Quieres acceder a streaming desde una red distinta (ej: streaming de una localización a otra sobre Internet o en WAN/VPN)

Para ello, mediante el software udpxy podremos convertir los protocolos multicast RTP o UDP a protocolo unicast HTTP para solucionar los inconvenientes anteriores.

Instalación
Descargar el paquete udpxy para nuestra Raspberry Pi. Como no existe un paquete como tal, es necesario bajarse los fuentes y compilarlo.

Primer paso. Descarga
Abrimos una sesión de telnet o SSH y descargamos mediante wget el programa udpxy.1.0.23-0-prod.tar.gz localizado en http://sourceforge.net/projects/udpxy/

sudo wget http://sourceforge.net/projects/udpxy/files/latest/download?source=dlp

Segundo paso. Descomprimir
Descomprimimos el fichero descargado con la siguiente instrucción:

tar -xzvf udpxy.1.0.23-0-prod.tar.gz

Tercer paso. Compilación e instalación
Nos cambiamos al directorio recién creado:
cd udpxy-10.0.23-0/

compilamos:
sudo make

e instalamos:
sudo make install

Puesta en marcha
Una vez tenemos los programas udpxy  y udpxrec en /usr/local/bin/ y ya podemos hacer uso, por lo que para que el proxy empiece a ejecutarse ejecutamos la siguiente instrucción:

sudo udpxy -p 4022

Para ver el resto de parámetros de udpxy, ejecútadlo sin ningún parámetro para obtener la lista de sus opciones.


Estado
Para comprobar el estado del proxy, puedes abrir un navegador web y ejecutar la siguiente instrucción:
http://ip_raspberry:4022/status


Uso
El siguiente vídeo muestra un ejemplo de utilización de la aplicación IPTV y VPlayer de GooglePlay utilizando el proxy udpxy de la Raspberry Pi y reproduciendo un canal de Imagenio en una tablet con Android 4.0.4



Y la página de estado mientras se reproduce.

Espero que os sea de utilidad, o al menos, interesante la integración.

sábado, 10 de noviembre de 2012

Unboxing Cubieboard

Por fin ha llegado mi Cubieboard (una placa muy similar en concepto a la Raspberry Pi pero con más capacidad de procesamiento, flash interna y miniSD, y con nuevos conectores, como SATA II, miniUSB OTG, infrarrojos, etc. y soporte de otros sistemas operativos, como Android p.ej.); y que mejor que un unboxing del producto y una puesta en marcha.


Secuencia del desempaquetado

El paquete ya llegó con el prototipo de la Cubieboard tras meses de espera.

Caja especial del producto.

Viendo su presentación.

Contenido de la caja.

Contenido de la caja (detalle).
Vista frontal.

Vista trasera.

Accesorios (caja acrílica).

Detalle de la caja transparente acrílica (luego sacaremos el papel protector y la montaremos).


Aplicación práctica.

Tras flashear el sistema operativo en la placa, veamos en funcionamiento el S.O. Android en la placa Cubieboard.


Vista general de las placa, ratón y monitor, una tablet a lo grande :)

Y la conectividad utilizada para esta primera prueba de la placa Cubieboard.


Ahora toca darle un uso adecuado...!!


sábado, 3 de noviembre de 2012

Servidor de impresión (especial bluetooth) en Raspberry Pi

Esta entrada nos servirá para instalar un servicio de impresión en la Raspberry Pi, y especialmente, la impresora estará conectada por bluetooth, por lo que nos ahorraremos al máximo el número de cables.

De esta manera, tanto la Raspberry Pi como la impresora puedan estar ubicados en lugares o habitaciones separadas. Como complemento, añadiremos la impresora en modo compartido de red, tal que con cualquier ordenador de la casa podamos enviar la impresión a la Raspberry Pi y esta lo enviará inalámbricamente a la impresora.

Materiales requeridos
Necesitamos un adaptador mini bluetooth usb como podéis observar en la imagen previa conectado a la Raspberry Pi (es el adaptador superior de color negro) y también una impresora con soporte bluetooth, en su defecto, un adaptador bluetooth-printer. El que podéis ver es uno que hace tiempo que tengo que permite conectar tanto impresoras de puerto Centronics o bien USB y convertirla a inalámbrica bluetooth .


Primer paso
Instalar las librerías necesarias, siendo esta la del servicio de impresión (CUPS) y la de acceso inalámbrico (bluetooth).
sudo apt-get install bluetooth cups

Configurar el fichero de CUPS, con lo que haremos lo siguiente:
sudo nano /etc/cups/cupsd.conf

Será necesario comentar las líneas siguientes:
#Listen localhost:631
#Listen /var/run/cups/cups.sock

y añadir las siguientes líneas:
# Permitir acceso remoto
Port 631

También añadiremos el acceso de nuestra red, a fin de poderlo administrar el servicio de impresión remotamente vía web y desactivamos la autenticación.

< location />
    Order allow,deny
    Allow 192.168.1.0/24
< /location>
< location /admin>
    Order allow,deny
    Allow 192.168.1.0/24
< /location>
< location /admin/conf>
    #AuthType Default
    #Require user @SYSTEM
    Order allow,deny
    Allow 192.168.1.0/24
< /location>

Una vez realizado los cambios, los guardamos y reiniciamos el servicio de impresión:
/etc/init.d/cups restart

En este momento ya podemos acceder vía navegador web para configurar y acceder a las opciones que nos ofrece el servicio CUPS, para ellos accederemos por http a la dirección IP/nombre de la Raspberry Pi y al puerto que hemos configurado previamente de escucha (el 631 por defecto)



Configurar bluetooth
Tras haber instalado el paquete bluetooh (o bluez) en la Raspberry Pi, primero detectaremos a nuestro dispositivo mediante la instrucción:
lsusb

o bien mediante la cola de mensajes:
tail -f /var/log/messages

Si se detecta es que tenemos un adaptador bluetooth compatible con la distribución que tenemos instalada (en este caso, raspbian). Podemos proseguir, si no, necesitaremos los drivers o un nuevo adaptador bluetooth compatible.

Veamos la configuración y estado del dispositivo, mediante la instrucción:
hciconfig -a

Podemos observar que se le ha asignado como nombre de dispositivo hci0, por lo que a partir de ahora nos referiremos al dispositivo bluetooth con este alias. Le daremos un nombre mas específico:
sudo hciconfig hci0 name “Rapsberry Pi”

y para que sea visible para el resto del mundo:
sudo hciconfig hci0 piscan


Como por ejemplo, podemos observar en esta captura de un PC con S.O. Windows que dispone de un adaptador bluetooth, detecta todos los dispositivos en su radio de alcance, entre ellos la Raspberry Pi.
Pero lo vamos a ocultar, ya que sólo queremos utilizar el dispositivo bluetooth de la Raspberry Pi para comunicarse con la impresora y nada más, para ello:
sudo hciconfig hci0 noscan

Detección de dispositivos bluetooth
Para detectar los dispositivos bluetooth cercanos realizamos la siguiente instrucción:
hcitool scan


Una vez detectado el dispositivo es cuestión de emparejarlo, para ello:
sudo bluez-simple-agent xx:xx:yy:zz:aa:bb

donde xx:xx:yy:zz:aa:bb es la dirección MAC encontrada previamente en el scan. A continuación nos pide el PIN Code, la contraseña de acceso al dispositivo con el cual nos queremos emparejar, la introducimos, y ya está: Raspberry Pi y impresora bluetooth conectados.

Otras instrucciones
Existen entre otros parámetros de interés los de apagar el bluetooth para cuando no se utilice, mediante la sentencia:
sudo hciconfig hci0 down

y volverlo a activar cuando queramos mediante:
sudo hciconfig hci0 up

Configurar impresora bluetooth en CUPS
Ahora que ya tenemos el servicio de CUPS corriendo y la impresa detectada en bluetooth, ya podemos agregarla al sistema, para ello, accedemos al servicio en la url:
http://ip_maquina:631/admin

Nos pedirá el usuario y contraseña del usuario root o pi, tras esto ya podemos ir a la opción de "Encontrar nuevas impresoras", o bien en "Añadir impresoras".

A partir de ese punto es una navegación guiada de configuración muy sencilla.

Al final, la impresora, tendrá una URL de acceso que tanto nos sirve para configurarla, ver los trabajos pendientes, etc. desde un navegador web, como para conectarla en Windows (p.ej) como puerto de impresión.

Espero que os sea de utilidad este mini-tutorial de como añadir la capacidad de Servidor de impresión (Print Server) inalámbrico a nuestra versátil Raspberry Pi.


domingo, 21 de octubre de 2012

Grabar IPTV (Imagenio) con la Raspberry Pi

Un uso para nuestra Raspberry Pi  puede ser para grabar la transmisión digital de televisión de nuestro operador de TV de Pago, a fin de poder reproducirla posteriormente. Mediante la tecnología de IPTV de transmisión de televisión sobre redes IP (como Movistar Imagenio) podemos acceder a un canal determinado (que tengamos suscrito) y almacenar dicha transmisión para después poderlo reproducir a posteriori con la aplicación VideoLAN por ejemplo, y todo esto, sin tener que movernos del entorno de la Raspberry Pi.

Requisitos
Antes de todo, debemos estar suscritos al operador de IPTV para poder acceder a los canales desde la Raspberry Pi  y utilizar la grabación para uso y disfrute personal.

Software requerido
Para la grabación del canal, usaremos el conocido programa VideoLAN (o VLC) que tanto nos puede servir como para la reproducción como para la grabación, así pues, si no lo tenemos en la Raspberry Pi lo descargamos del repositorio:
sudo apt-get install vlc

Empecemos
Lo primero que hay que hacer es crear un par de ficheros, uno será el encargado de la grabación, y otro el de la planificación (schedule) de los programas que queramos grabar.

Script genérico de grabación.
Si no tenemos un carpeta para almacenar los ejecutables para el usuario, la creamos con el nombre bin:
mkdir ~/bin/

Creamos una carpeta de descarga, como la sentencia siguiente:
mkdir ~/imagenio/

Abrimos el editor para crear el script: 
nano ~/bin/grabarImagenio.sh

cuyo contenido debería ser el siguiente:


Podéis apreciar que en este caso el script de la captura adjunta es auto-explicativo.

Script de planificación.
Una manera rápida de programar nuestras grabaciones (schedule) es utilizar el cron de la Raspberry Pi a fin de poder indicar el día y hora de la grabación.

Este sistema permite indicar, (entre otras cosas) el día, mes, hora y minuto en que queremos que empiece a grabar y cuando queremos que finalice. Lo que haremos será utilizar el propio cron del usuario que lo definimos mediante un fichero:
nano ~/.cron

El contenido del fichero puede variar, pero es bastante auto-explicativo.

NOTA: Se aprecia en la captura mi planificación para la grabación de dos películas de los próximos días en que no estaré en casa. Destacar que se especifica el canal (en ambos casos es el canal MGM HD) y el fichero en que se guardará. (las IP de los canales y el formato TS no es objetivo de explicación en este blog)

Ahora, debemos añadir la planificación al cron del usuario de la siguiente manera:
crontab ~/.cron

Y por último, recordar dos instrucciones más sobre el cron/crontab; para saber que tiene planificado nuestro usuario:
crontab -l

y para borrar la planificación:
crontab -r

Y ya está, la grabación empezará y terminará en base a la planificación, y podremos reproducirla cuando queramos tranquilamente en casa.



domingo, 30 de septiembre de 2012

No solo FTTH, sino Fibra dentro de casa

Aprovechando las características de las comunicaciones por fibra óptica (velocidad, escalabilidad e inmune a interferencias), en esta entrada se describe un ejemplo del cableado interno de la LAN local que he realizado en mi casa mediante fibra.


El objetivo es simular una arquitectura troncal del tipo campus, este caso será entre los extremos de la casa a fin de desde ahí mediante un par de switches de Gigabit distribuir la señal de la red. Para ello, utilizaremos los siguientes componentes:
  • 2x Adaptadores conversores de medio de Gigabit a Fibra.
  • 1x Cable de 30 metros de Fibra Óptica Multimodo, en este caso tipo OM1, con conectores SC y de 62.5/125
  • 2x Patch cords de 3 metros del mismo tipo de fibra, con conectores SC en ambos extremos.
  • 4x Conectores Keystone de Fibra SC/SC.
  • 2x Cajetillas murales de 2 adaptadores Keystone.
  • Regletas pasa cables.
Se ha utilizado fibra del tipo multimodo por el precio, ya que de esta manera, tanto los Media Converters  (en este caso de TPLink) como el propio cable salen mucho más económico.

Instalación
Acontinuación algunas imágenes de la instalación y pruebas posteriores.
En esta primera imagen parte del material disponible, hay elementos que no se han utilizado ya que al final solo se ha utilizado una caja pequeña mural para 2 conectores de fibra, en lugar de una caja con 6 conectores keystone (la intención era pasar también cables de RJ45, de audio y de antena satelital; pero de momento parado).
Detalle de los cables de F.O
Conectores del tipo SC en formato keystone, para adaptarlo en la caja de pared.
Prueba de caja con conectores y cable.
Adaptadores que se van a utilizar (dos unidades)
Prueba del cable, conector y adaptador de medios (converter)
Instalación en una de las paredes con la nueva regleta y caja.
Y por último, una prueba en ambos extremos de la casa antes de su ubicación definitiva del convertidor
y en el origen con la FTTH
Uso
La ventaja de este tipo de cableado es la inmunidad a interferencias y la no dependencia de los gruesos cables de red UTP (CAT5,5e,6), así como la posibilidad de pasarlos junto a regletas que lleven cables de fase de energía eléctrica, o ionizados como sistemas de agua de aire-acondicionado. 

Coste
El coste de la instalación ha sido inferior a 120 EUR en materiales.