entramado.net

Posts tagged “GNU/Linux

Kubuntu con Wayland

Con la actualización a Kubuntu 17.10 me he quedado un poco despagado de que éste no traiga Wayland por defecto para plasma, así que me he decidido a instalarlo para de una vez por todas probarlo en mi PC habitual. La instalación es muy sencilla, no tiene mas que:

sudo apt install plasma-workspace-wayland

A continuación he reiniciado y he abierto una sesión de Plasma con Wayland, mi primera sorpresa ha sido encontrarme el teclado estadounidense en lugar del que tenía configurado. La cosa ha seguido con aplicaciones que dan fallo al cerrarse, el touchpad desconfigurado y algún atajo de teclado que no me esperaba. Todo detalles mínimos o configuraciones, pero es cierto que aún no está todo lo pulido para ir por defecto en la distribución. ¿Lo tendremos para la próxima versión? Yo por ahora ya estoy funcionando con él.


Cómo instalar una Raspberry Pi sin conectar una pantalla

Raspberry Pi 3

El proceso de instalación oficial de Raspberry Pi siempre me ha tirado para atrás por el hecho de necesitar teclado y pantalla, esto es un sistema empotrado… ¡Hagámoslo desde nuestra red!

Primero que nada, vamos a descargar la imagen de Raspbian para instalarla en nuestra tarjeta SD, no vamos a usar entorno gráfico, así que he optado por Rasbian Jessie Lite, que tampoco se puede decir que es tan lite, la imagen pesa 1GB aproximadamente.

Descomprimimos lo que hemos bajado y seguimos el procedimiento para quemar la imagen en la SD. Este procedimiento se reduce a estos dos comandos:
dd bs=4M if=2016-05-27-raspbian-jessie.img of=/dev/mmcblk0
sync

Donde el dispositivo de salida /dev/mmcblk0 corresponde con el dispositivo donde se encuentra la tarjeta SD y 2016-05-27-raspbian-jessie.img es la imagen que hemos descomprimido.

Una vez terminado si queremos conectar la Raspberry a través de WiFi, tenemos que meter el SSID y la clave de nuestra red. He seguido éste tutorial que explica como hacerlo editando el archivo /etc/wpa_supplicant/wpa_supplicant.conf que podemos encontrar en las nuevas particiones de nuestra tarjeta SD. Si queremos conectar a la red nuestro cacharro directamente por Ethernet, no es necesario nada de esto, con un cable Ethernet y listo. Otro truco es conectar directamente al PC con un cable Ethernet, se creará una red local entre el PC y la Raspberry y también nos podremos conectar.

Por último conectamos la tarjeta SD y a la red de alguna de las formas que he comentado anteriormente. Ahora es cuando nos vamos a conectar por SSH, pero ¿Que dirección utilizamos? La magia llega de manos del demonio Avahi, que corre en las distribuciones Debian por defecto, esto hace una autoconfiguración de la red y nos da un punto de acceso dentro de nuestra red interna, esto es gracias a mDNS, un sistema DNS distribuido que permite que en una red local todos sepan los nombres de dominio del resto, así que simplemente nos conectaremos de esta forma:

ssh pi@raspberrypi.local

Como sabéis os pedirá el password, que por ahora estará por defecto a raspberry y podéis empezar con vuestra Raspberry Pi a configurarlo todo a vuestro gusto, empezando por cambiar esta contraseña.


APT al estilo moderno

Resulta que llevaba 2 años usando APT a la vieja usanza y no me había enterado. Ahora los comando apt-* están unificados. Ya no es necesario usar «apt-get install x» o «apt-cache search y» con usar «apt install x» o «apt search y» basta.

litox@cerebro:~$ sudo apt update && sudo apt upgrade


Automatización Libre

En el mundo industrial y de la automatización en general no es ningún secreto que está dominado por el software y el hardware propietario, unas pocas empresas crean los componentes con los que una gran  cantidad de empresas integradoras se las ingenian para adaptar a los requisitos del sistema en concreto. Al final lo que encontramos es una red descentralizada donde montones de integradores y clientes finales dependen exclusivamente de unas pocas empresas que tienen generalmente su sede en Estados Unidos o Alemania.

Son pocos los que intentan nadar contracorriente en este mundillo, algunos que han tirado la toalla y otros que han encontrado soluciones nuevas a viejos problemas, pero para introducirnos en la automatización libre primero debemos hacer una cartografía de las comunidades que se dedican a producirlo y en eso consiste este post.

Automatización Industrial

El proyecto en que más esperanzas tengo puestas desde el punto de vista industrial se trata de OSADL, se trata de un laboratorio de desarrollo de automatización open source, ofrecen apoyo para la implementación de software libre a nivel industrial, se centran sobre todo en Linux y liberan una versión estable del kernel Linux RT, versión del kernel muy importante en los sistemas industriales. Por ejemplo, otro proyecto que hace uso del Linux RT es LinuxCNC, una distribución GNU/Linux para usar de base de máquinas de control numérico, utilizadas en todo tipo de procesos de manufacturación. Desgraciadamente LinuxCNC se basa en HAL para la realización de scripts con que se controlan las máquinas, un proyecto que se abandonó hace años para incluirlo su funcionalidad en udev. Esto hace que dependan de kernels bastante antiguos.

Otro proyecto importante en automatización es AutomationML, se trata de una recopilación de estándares para compartir información de entornos industriales en formato XML. Lo mejor del proyecto es que no intenta reinventar la rueda, utiliza por ejemplo COLLADA del Khronos Group para geometría y cinemática o PLCopen XML, otro estándar libre, para la lógica.

Comunicaciones

Después de toda esta parrafada y aun no he nombrado nada sobre comunicaciones. Dado su uso extendido me voy a centrar en protocolos sobre Ethernet o sobre IP. En este caso, lo recomendable es huir de los dos grandes estándares que dicen ser abiertos pero no lo son Ethernet/IP y Profinet. Y si buscamos lo más sencillo de implementar de forma libre nos iremos a Modbus TCP con la librería libmodbus enseguida tendremos un protocolo industrial sobre cualquier red TCP/IP. Si el protocolo se nos queda demasiado simple, siempre podemos añadirle funcionalidades, por ejemplo: archivos XML de descripción de las entradas y salidas, IPsec para la parte de seguridad o cualquier otra cosa que se necesite.

Si es necesario un protocolo de comunicación más rápido es posible usar algo más complejo pero que permita una respuesta más rápida, es posible usar POWERLINK, que utiliza una capa por bajo de IP para conseguir una menor latencia de red, la pila de protocolos libre en este caso es openPOWERLINK.

Frameworks

Luego vamos a encontrar frameworks libres para implementar automatización y de estos hay varios cada uno con su propia filosofía:

  • 4DIAC: Permite programar aplicaciones de automatización distribuida usando un lenguaje de programación mediante bloques, utiliza el estándar IEC 61499.
  • OpenAPC: Se podría definir como un sistema de control distribuido (DSC), para hoy en día lo veo un poco anticuado, la interfaz debería ser web, pero tiene muchos plugins y hardware soportado.
  • MBLogic: Como su propio nombre indica, se trata de lógica por encima del protocolo Modbus, de los tres me parece el mejor pensado, usa una interfaz web basada en gráficos vectoriales en svg que se modifican con los valores de las lecturas. Además está pensado para su uso de forma modular. La lástima es que lleva inactivo desde 2011 y no dan ninguna seña de contacto de nadie interesado en resucitar el proyecto que obviamente necesitaría un lavado de cara, con un rediseño de los componentes a nivel gráfico.

Me ha parecido que el proyecto ROS-Industrial merecía un nombramiento a parte, no se centra en automatización en general si no exclusivamente en la parte de robótica industrial, ROS (Robot Operating System) es un conjunto de librerías y herramientas para el desarrollo de robots muy conocido a nivel académico y de investigación y ROS-Industrial trata de adaptarlo a los requerimientos de la industria.

Automatización No Industrial

No sólo voy a centrarme en automatización industrial, fuera del mundo industrial hay otros tipos de automatizaciones que también vale la pena conocer, tienen requisitos distintos pero el funcionamiento suele ser parecido. Veamos unos tipos:

Domótica

Así es como se denomina la automatización del hogar, existen múltiples proyectos libres pero me gusta por su carácter modular especialmente Open Source Automation.

Automatización de edificios

Muy parecido al anterior es la automatización de edificios, suele ser lo mismo pero a gran escala, el siguiente artículo es el mejor que he encontrado explicando y defendiendo la automatización libre de edificios. Pero además las grandes instalaciones exigen otro tipo de automatizaciones y visualización de datos: mantenimiento, energía, logística, etc. Para todo esto podemos usar el software openMAINT.

Gestión de la energía

Ya he hablado en este blog de EmonCMS, me parece uno de los mejores proyectos de todos los que he nombrado, muy sencillo de usar. Se podría combinar con MBLogic para dar una solución total de automatización sencilla y a la vez totalmente personalizable. Lo mejor que le veo a EmonCMS es su forma de gestionar el código de la web en una base de datos, pero le falta la funcionalidad de colocar un componente más abajo o arriba según convenga.

Automatización por IoT

Por último y como es la última moda, no puede faltar la automatización mediante el Internet de las Cosas, para seguir una buena metodología en la automatización mediante estándares libres podemos seguir las recomendaciones de IoT Data models.

Conclusiones

Esta recopilación como todas se quedará corta, se basa en los proyectos que me he ido encontrando mientras estudiaba el tema de la automatización, pero espero que a alguien le sirva para replantearse como hacer las cosas, para hacer un poco más difusa la frontera entre la empresa integradora y la desarrolladora y finalmente para democratizar la automatización.


Plasma 5 como Ubuntu

Ésta es la versión renovada de KDE como Unity. En ella veremos como hacer que Kubuntu 15.04 se parezca a Ubuntu, pero con toda la potencia del escritorio KDE. En esta versión he tenido que sacrificar el menú en la barra superior, puesto que están en transición desde el DBus Menu al GMenuModel (QMenuModel es la implementación KDE). Esperemos que pronto den soporte.plasma5 como ubuntu

Una vez instalado Kubuntu 15.04 nos encontramos con el típico KDE que se parece a los Windows tradicionales. Vamos a subir arriba la barra principal, hacerla más estrecha. Poner un nuevo panel a la izquierda que se oculte automáticamente, esta opción se configura en preferencias del panel. Añadimos al panel lateral, el gestor de tareas de solo iconos. Con lo que podemos eliminar el gestor de tareas de la barra superior. Y añadimos el resto de plasmoides ya conocidos: paginador, papelera, mostrar escritorio y pasamos el lanzador de aplicaciones a la parte superior de ese panel, me gusta bastante como ha quedado con este tema y no he intentado instalar esta vez el Homerun.

Los botones de cerrar, minimizar y maximizar, se pueden cambiar a la izquierda en Preferencias >> Estilo de las aplicaciones >> Decoración de ventanas moviéndolos de sitio en la parte inferior.

En la barra superior vamos a añadir los widgets de Salir y Bloquear Sesión y con esto llegamos a la parte más complicada.

Vamos a instalar un plasmoide que se llama Active Window Control, que permite en Plasma 5 visualizar el título de la ventana activa y mostrar botones de cerrar y minimizar, es algo más configurable que el que tenía instalado para KDE 4, el problema es que la única forma que he conseguido de que funcione es compilarlo desde sus fuentes.

Estos son los pasos a seguir:

Instalamos dependencias para compilar. Esto instalará también en entorno de desarrollo QtCreator desde el que podemos modificar el plugin a nuestro gusto.

sudo apt-get install cmake extra-cmake-modules plasma-workspace-dev plasma-framework-dev build-essential qtcreator

Descargamos el código.
git clone https://github.com/kotelnik/plasma-applet-active-window-control

Después compilamos e instalamos:
cd plasma-applet-active-window-control
cmake .
make
sudo make install

Y reiniciamos para que se apliquen los cambios. En este momento ya podremos meter el widget en nuestra barra superior. La podemos configurar con los botones a la izquiera como en Ubuntu o como más nos guste.

Por último vamos a hacer que las ventanas maximizadas no tengan barra de título. En esta versión de KDE hay que modificar el archivo ~/.config/kwinrc añadiendo esta opción:
[Windows]
BorderlessMaximizedWindows=true

Pero ya que estamos vamos a modificar el número de escritorios virtuales para que sean 4:
[Desktops]
Number=4

Y con esto ya tengo el escritorio configurado a mi gusto. Para cualquier duda tenéis los comentarios.


Integrar en Linux las notificaciones de Firefox

El sistema de notificaciones de Firefox hace su función, no digo que no, pero no se integra nada con los sistemas operativos y es un poco espartano. Hoy os voy a explicar como integrarlas en los escritorios de GNU/Linux.

Gracias a freedesktop.org ciertos aspectos de los escritorios que utiliza normalmente Linux están estandarizados y esta estandarización proviene de un debate previo de su propia comunidad, por lo tanto es garantía de software libre, entre sus proyectos más conocidos están Xorg y su próximo sustituto Wayland, los servidores gráficos sobre los que se sustentan todos los escritorios.

Otro ejemplo notable de estandarización de Freedesktop son las notificaciones de escritorio, de esta forma con un mismo programa es posible lanzar notificaciones en distintos escritorios de GNU/Linux. Como Firefox por el momento no implementa estas notificaciones tenemos que instalar un plugin que haga la función. El plugin se llama GNotifier, se instala y no necesita reiniciar Firefox.

Una vez instalado, en KDE, cuando termina una descarga aparece algo como esto:

Notificación de descarga en Firefox.

Notificación de descarga en Firefox.

Y también se integra con las notificaciones push de HTML 5, no hay muchas webapps que soporten esta característica, tiempo al tiempo, por ahora podemos probarlo con Webogram el cliente web para Telegram, el clon mejorado de Whatsapp.

Notificaciones HTML 5 de Webogram en Firefox.

Notificaciones HTML 5 de Webogram en Firefox.

Aviso que últimamente Webogram no está funcionando muy bien, a menudo muestra la página en blanco totalmente.


Red de Vehículo

Tesla model S.

Gracias a los enlaces de entramado descubro una noticia muy interesante que ha compartido Pablo, el descubrimiento de un puerto Ethernet en el Tesla S, el coche utiliza un Ubuntu para gestionar su contenido multimedia y los diseñadores le han provisto de un puerto Ethernet conectado a la red del coche, una red con 3 dispositivos, independiente de las redes más críticas del coche. Es decir que además de las interfaces y redes ya comunes en el resto de coches como ODB II o CAN, debido al auge del coche multimedia, ahora se suman al coche las redes que tradicionalmente han sido de PC. Esto a parte de un posible jailbreak del Tesla del que ya se habla implica otras cosas también interesantes, la posibilidad de ampliar a tu gusto la red tu coche, conectar los dispositivos que le vengan en gana, colocarle un punto de acceso Wifi,comunicarte con una antena con los coches de alrededor, unir tu coche a tu red de hogar… En fin, miles de posibilidades que se harán posibles, siempre que los fabricantes no nos blinden el acceso a estas redes, que es muy posible. ¿El futuro? Próximamente, en las pantallas de tu coche.


KDE como Unity

Después de mucho tiempo usando Ubuntu con Unity me he cansado y he decidido darle una segunda oportunidad a KDE, que dejé de usarlo con KDE 4.1 debido a lo inestable que era en ese momento, ahora que ya estamos en versiones muy avanzadas de KDE 4 y ya se empieza a perfilar KDE 5 (oficialmente Plasma 2), que utilizará el flamante Qt 5, me ha parecido buena idea pasarme, pero tampoco quiero perder lo que más me gusta de la interfaz Unity, así que voy a personalizármelo un poco, os cuento a continuación.

Para pasar de Ubuntu a Kubuntu podemos hacer lo siguiente:

Instalamos el escritorio de Kubuntu, es decir KDE:
sudo apt-get install kubuntu-desktop
sudo apt-get install language-pack-kde-es

Eliminar Unity si ya no lo vamos a usar:
sudo apt-get remove unity unity-2d unity-2d-panel unity-2d-spread unity-asset-pool unity-services unity-lens-files unity-lens-music unity-lens-applications gir1.2-unity-5.0 unity-common indicator-sound indicator-power indicator-appmenu libindicator7 indicator-application indicator-datetime indicator-messages libnux-2.0-0 nux-tools libunity-misc4 unity-2d-common
Programas de GNOME que no vamos a usar:
sudo apt-get purge nautilus gedit

O lo que he terminado haciendo yo, instalar Kubuntu desde cero, más sencillo y de paso hago una limpieza a fondo.

Ahora empieza lo divertido, la personalización, vamos a empezar por subir el panel principal arriba, hacerlo un poco más estrecho y añadir los botones de apagado y cerrar sesión a la derecha del todo. Eliminamos el Gestor de tareas que va a ir en el panel lateral y también el Lanzador de aplicaciones.

En la barra superior además añadimos el File Menú para tener el menú de archivos igual que en Ubuntu y como desgraciadamente éste no integra la barra de título y botones de minimizar, cerrar, etc añadimos el plasmoide de control de la aplicación actual a su lado. Se integra bastante poco con el tema, pero funciona bien. Sería un buen proyecto hacer un plasmoide que integre los dos estilo Unity.

Después de esto me he creado el panel lateral típico de Unity y en sus opciones le he puesto Alineación Abajo y Ocultar Automáticamente, después de esto ya le he puesto el tamaño que a mi me gusta para esa barra. Le he añadido el widget de papelera, el de selección de escritorio virtual y el mostrar escritorio, que siempre viene bien, a la parte de abajo. Por encima he colocado el Gestor de tareas de sólo iconos y el lanzador de aplicaciones, una opción que imita al Dash de Ubuntu es colocar Homerun, pero en la versión 12.04 de Kubuntu no está, en posteriores tengo entendido que sí.

Después he instalado algunos widgets en el escritorio, de información del sistema, el tiempo, me he instalado uno bastante personalizable y bonito que se llama PPC y un sticker, siempre útil. Le he puesto un tema oscuro como a mi me gusta, Elegance se llama y  un esquema de colores también oscuro. He colocado los botones de la barra de título a la izquierda, estilo Unity y ya está todo listo.

Os enseño como ha quedado:

Capura de pantalla del escritorio

Kubuntu estilo Unity


Accediendo al sistema de archivos de Raspberry Pi

Hasta ahora había escrito sobre como acceder a una terminal de forma remota en Raspberry pero hoy quiero explicar como acceder directamente al sistema de archivos para subir y bajar ficheros de forma simple.

Una opción es hacer uso del conocido sistema FTP para la transferencia de archivos, pero esto conllevaría instalar un servidor FTP en la RPi sobrecargando aún más la no muy potente Raspberry.

La solución que he adoptado es mucho más sencilla, vamos a hacer uso del protocolo SFTP, un protocolo de transferencia de ficheros sobre SSH y como ya tenemos funcionando SSH no necesitamos instalar ningún nuevo servidor. El procedimiento es así de simple:

Instalamos FileZilla en nuestro PC, una herramienta muy recomendable.

Lo abrimos y pinchamos en el Gestor de sitios, primer icono arriba a la izquierda. Nos aparecerá una ventana como la siguiente:

Configuración de SFTP en Raspberry.

Configuración de SFTP en Raspberry.

Creamos un nuevo sitio, le ponemos el nombre que queramos, en este caso Raspberry, y rellenamos la parte de la derecha. En servidor la IP de la RPi, protocolo SFTP, modo de acceso normal y nuestro usuario y contraseña.

Pinchamos en “Conectar” y en un momento se conectará y tendremos acceso en el panel derecho el sistema de archivos de nuestra pequeña computadora.

Este sencillo truco sirve para cualquier sistema empotrado, dándonos un acceso fácil al sistema de archivos en ejecución.


Monitorizar la temperatura desde Raspberry Pi

En este pequeño tutorial os voy a enseñar como monitorizar la temperatura de una habitación con sólo una Raspberry Pi, un sensor de temperatura DS18S20 y un poco de software.

Vamos a utilizar Emoncms, del que ya os he hablado anteriormente, instalarlo es realmente fácil, no tengáis miedo de seguir estas instrucciones, enseguida lo tendréis funcionando.

El siguiente paso va a ser conectar a la Raspberry Pi el sensor DS18S20+, podéis pedir una muestra gratuita a Maxim Integrated. El sensor se conecta usando los pines que tenemos disponibles en la RPi. Para conectarlo hay que seguir el siguiente esquema:

DS18s20 conectado a Raspberry Pi.

DS18S20 conectado a Raspberry Pi.

Es muy sencillo de conectar utilizando unos conectores para jumpers, yo he reciclado los que venían para la placa base de un PC de sobremesa antiguo, los que la conectan con los LEDs y los botones de encender y reiniciar.

El siguiente paso es poner en marcha una aplicación que recoja la temperatura del sensor y la envíe al servidor EmonCMS. Para ello voy a utilizar Python, un lenguaje interpretado muy sencillo que se utiliza mucho en la comunidad Raspberry Pi. El acceso al sensor se realiza a través de un driver que nos proporciona ya nuestra distribución de Raspbian.

El siguiente código es plenamente funcional, aunque posiblemente algo espartano, es necesario que añadáis vuestra apikey de Emoncms, la encontraréis entrando a vuestro servidor Emoncms, en la ruta /emoncms/input/api, hay que elegir la “Read & Write:” puesto que vamos a escribir los valores.

También podéis modificar cada cuanto tiempo queréis que se envíen los datos, en este caso cada 10 segundos, pero es posible modificar la línea “time.sleep(10)” por el número de segundos que queráis.

import os
import glob
import time
import urllib2, httplib
os.system('sudo modprobe wire')
os.system('sudo modprobe w1-gpio')
os.system('sudo modprobe w1-therm')
base_dir = '/sys/bus/w1/devices'
f = open(base_dir + '/w1_bus_master1/w1_master_slave_count', 'r');
sensorCount = f.readlines()
sensorCount = [int(l[0]) for l in sensorCount]
f.close()
f = open(base_dir + '/w1_bus_master1/w1_master_slaves', 'r');
devices = f.readlines()
f.close()
def read_temp_raw(sensor):
device_file = base_dir + '/' + devices[sensor][:-1] + '/w1_slave'
f = open(device_file, 'r')
lines = f.readlines()
f.close()
return lines

def read_temp(sensor):
lines = read_temp_raw(sensor)
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw(sensor)

equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
return temp_string[0:4]

while True:
url = "http://localhost/emoncms/input/post?json={"
for x in range(0, sensorCount[0]):
url = url + devices[x][:-1] + ":" + read_temp(x) + ","
url = url[:-1]+"}&apikey=LA_APIKEY_VA_AQUI"
print(url)
urllib2.urlopen(url)
time.sleep(10)

Acordaos de respetar la indentación (tabuladores) en el código, si no no funciona bien en Python. Guardamos este código como un archivo .py, por ejemplo temperatura.py y ya lo podemos ejecutar de la siguiente forma:

python temperatura.py

Ahora ya nos podemos ir a Inputs en Emoncms y encontrar la entrada correspondiente a nuestro sensor de temperatura. En su configuración añadiremos un proceso “x 0.01” para que nos muestre la temperatura en ºC y bajo de eso un “Log to feed” para poder mostrarla. Ahora ya aparecerá en la pestaña Feeds, donde la editaremos y la seleccionaremos como REALTIME. Por último en la pestaña Vis seleccionamos el visor Realtime y el feedid de nuestro sensor de temperatura. El resultado será algo parecido a esto:

Temperatura en tiempo real.

Temperatura en tiempo real.

Ahora podemos poner este visualizador en el Dashboard y habremos terminado.

Actualización: Ahora puedes bajar el archivo python desde mi Github: https://github.com/carsanbu/tipi-web/blob/master/utils/temp_DS18S20_emoncms.py


GNU Health se implantará en Jamaica

Que buena noticia nos da Manuel en el Correo de las Indias, un gran avance para los sistemas ERM libres. En este blog ya hablamos hace casi un año de la importancia de ser propietario de los datos sobre tu salud, al margen de quien te trate o cree esos datos, tener la soberanía sobre tu salud no es algo difícil y con estos pasos vamos avanzando en ese camino, además de liberar a estados pobres de la tiranía del software propietario.


Poniendo a punto XBMC en Raspberry Pi

Skin predeterminado de XBMC.

Skin predeterminado de XBMC.

He seguido este tutorial de mi amigo Alex para instalar XBMC en la Raspberry Pi, pero con esto no es suficiente, lo quiero tunear para que tenga todo lo que yo gasto y de esto va esta entrada, todo lo que he hecho para poner a mi gusto XBMC.

 

 

Inicio automático

En primer lugar quiero que XBMC se inicie automáticamente nada más arrancar la RPi, para esto editamos el archivo /etc/default/xbmc para que quede de la siguiente forma:
# Set this to 1 to enable startup
ENABLED=1
# The user to run XBMC as
USER=pi
# Adjust niceness of XBMC (decrease for higher priority)
NICE=-10

De esta forma le estamos indicando que el usuario que vamos a usar para XBMC es el usuario pi, el que viene por defecto en Raspbian. Además estamos incrementando el nivel de prioridad de XBMC, par que vaya más fluido.

Activar apagado

Para permitir apagar la Raspberry directamente, modificamos el archivo /var/lib/polkit-1/localauthority/50-local.d/xbmc.pkla añadiendo lo siguiente:
[Actions for xbmc user]
Identity=unix-user:pi
Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*
ResultAny=yes
ResultInactive=yes
ResultActive=yes

Manejo

Una vez hecho esto ya podemos conectar la Raspberry Pi a nuestro televisor y manejarla con un teclado USB, el mando a distancia del televisor si tenemos HDMI CEC o como en mi caso utilizando el móvil, con la aplicación XBMC Remote, sólo tenemos que acordarnos de permitir la conexión mediante http, yo estoy utilizando el puerto 1025 porque ya tengo en uso el puerto 8080.

Servidor multimedia

Otra funcionalidad de XBMC que me está encantando es poder utilizarla como servidor UPnP (algo parecido y en cierto modo compatible con el famoso DLNA). Mediante UPnP puedo compartir toda mi colección de música, vídeos e imágenes con cualquier dispositivo de mi red local que lo soporte, es decir que puedo ver películas en mi PC aún que estén a varios metros de distancia en un disco duro conectado a la RPi o tener toda mi música (muchos GB) a mano en el móvil mientras voy de un sitio a otro por la casa. Para Android me ha venido muy bien la versión gratuita de Mediahouse. Para GNU/Linux podéis buscar información sobre Grilo.

Plugins

También podemos instalar plugins como el que os voy a mostrar a continuación. Pelisalacarta nos permite conectarnos a un montón de servicios de streaming, yo en concreto uso Series.ly y este se encuentra entre ellos, os voy a explicar como instalarlo desde SSH de una forma rápida.

Primero buscamos en la web del plugin su enlace, asegurándonos de que sea la última versión y que sea efectivamente para XBMC, lo copiamos y nos vamos a una terminal SSH:
wget http://blog.tvalacarta.info/descargas/pelisalacarta-xbmc-addon-frodo-3.2.63.zip

Y con esto se descarga el plugin en la versión actual. Despues desde XBMC, vamos a la sección de instalar plugins desde zip, lo buscamos en nuestra carpeta home (/home/pi) o donde lo hayamos descargado y lo instalamos sin más problemas (tarda un par de minutos).

Y con esto lo tengo todo, lo que aún tengo pendiente es encontrar un Skin bonito y ligero, muy ligero, que la RPi tampoco puede con mucho.


Internet y SSH en Raspberry Pi

El siguiente paso que vamos a dar con nuestra RPi va a ser conectarla a nuestra red para acceder a ella mediante SSH, además comprobaremos que tiene acceso a Internet.

  1. Cogemos un cable de red Ethernet y lo conectamos a Raspberry y a nuestro router.
  2. Miramos en la configuración del router que IP tenemos asignada a la RPi y de paso si el router nos da la opción hacemos que esa IP sea fija, si no podéis siempre podéis usar este tutorial.
  3. Nos conectamos por SSH con el siguiente comando en la terminal de Linux:ssh -l pi -x <NUESTRA_IP> Le estamos diciendo a SSH que nos conecte con el usuario pi y con permisos para ejecutar el entorno gráfico de GNU/Linux. Donde pone <NUESTRA_IP> debemos poner la IP que hemos mirado antes.

    Conectado a la RPi por SSH.

    Conectado a la RPi por SSH.

  4. Ponemos la contraseña por defecto para entrar, si no lo hemos cambiado. Recomiendo cambiarla para que nadie pueda entrar en nuestra Raspberry Pi en algún descuido, para ello podemos ir a la configuración con este comando:sudo raspi-config
  5. Ya podemos probar si tenemos internet a través del Ethernet, para esto hacemos un simple ping a cualquier dirección fiable, en este caso, mi blog: ping litox.entramado.net
    Ping a mi blog.

    Ping a mi blog.

    Cuando vemos que como en la imagen tenemos unos cuantos pings no se han perdido paramos el proceso con ctrl+c.

  6. Y ya tenemos nuestra Raspberry configurada para empezar a instalar cosas.

Hermite, Bézier, B-Spline y cacaos mentales

Continúo estudiando por los sistemas CAD y los métodos de definición de curvas, para entender un poco mejor como funcionan estos he abierto el primer programa de CAD que tenía a mano en Ubuntu, el FreeCAD, un programa muy orientado al diseño 3D, tipo Inventor, Solid Works, etc.

Empiezo yendo al escenario Draft y viendo que tenemos aquí, enseguida encuentro como hacer una B-Spline, pincho unos cuantos puntos y me sale esto:

Una B-Spline según FreeCAD

Una B-Spline según FreeCAD

¡Sorpresa! Lo que debería ser una curva de aproximación es en realidad una curva de interpolación. Como vemos, todos los puntos de definición pasan por la curva, realmente es una curva de Hermite, posiblemente una Spline cúbica natural. Además la curva es poco editable, sólo es posible eliminar y rehacer los puntos y además se producen fallos hacerlo, total, muy poco intuitivo.

Paso entonces a otro programa, el LibreCAD, más enfocado a diseño 2D, por ejemplo planos o bocetos. Enseguida encuentro la opción Spline, que no dice mucho sobre cómo va a ser la curva. Hago unos cuantos puntos y me encuentro con lo siguiente:

Spline en LibreCAD

Spline en LibreCAD


Lo que podemos observar en esta “Spline” es que concretamente es una Bézier, el primer y ultimo punto coinciden con la curva y los puntos intermedios se aproximan a ella. Es muy sencillo esta vez editar el polígono de control para modificar la curva a nuestro gusto.
Conclusiones, los programadores de herramientas CAD libre deberían ser más descriptivos en sus nombres y saber realmente que están haciendo, probablemente por estos detalles el CAD libre no acaba de arrancar mientras que por ejemplo las herramientas de diseño gráfico y artístico sí que están a la altura, podemos poner los ya conocidos ejemplos de Blender, Inkscape y Gimp. Los algoritmos están ahí, ya escritos, pero es necesario recopilarlos e integrarlos en una sola herramienta que sea sencilla de utilizar y no tenga errores.


Enlaces Interesantes III

Valencia de noche. Vía David Huerta.

Valencia de noche. Vía David Huerta.

Smart Cities y la era de la iluminación inteligente: Viviendo en los alrededores de la capital europea de contaminación lumínica este es un tema que me interesa, en el caso de Valencia se podría minimizar poniendo una iluminación que enfoque hacia el suelo y no hacia el cielo ¿lógico, no? pero esta solución es mucho mas radical ¿el precio de sensorizar la ciudad lo compensa compensa? o mejor dicho ¿en cuanto tiempo se amortizaría esta inversión? ¿tiene otras ventajas esta sensorización? Muy probable, en el futuro lo veremos.

Contra los mitos del mercado de apps: concentración de quienes ganan dinero: La fiebre de las apps no hace creer que es oro todo lo que reluce pero ¿por que no olvidarnos del mito de que podemos hacernos ricos con una app android/iOS y nos lanzamos de cabeza a la web?

Software Libre en Automatización de Procesos Industriales: Como ingeniero en automática no puedo dejar pasar este enlace, es solo un ejemplo de la utilización de software libre en automatización, pero hay muchas otras, por ejemplo para sistemas sencillos podemos podemos automatizarlos con un simple Arduino y Processing para el SCADA, ahora mismo estoy trabajando en un proyecto de este tipo. Publicaré algo pronto.

Símbolos electrónicos: Un documento perfecto para quien esté aprendiendo electrónica. Se financia mediante crowdsourcing, podéis colaborar aquí.


Soluciones in-house

Para cuidar la privacidad de las personas en el fondo se necesitan sólo pequeños detalles: definir muy bien quién y bajo qué condiciones tendrá acceso a los datos, y minimizar el viaje de estos por la red de redes usando, si es posible, una solución in-house hecha con software libre del que nos podamos fiar y reduciendo la posibilidad de acceso imprevisto a la agregación de toda nuestra actividad interna. Como decíamos, cuidar a las personas que forman parte del proyecto no es baladí: son el origen de todo lo bueno que logremos.

Jose Alcántara, en Cartograf.

Exactamente a esto es a lo que me refería en mi ultimo post, Red de Hogar, aunque lo desarrollé poco, la idea era exactamente esta, crear una red interna de donde no salgan los datos que no quieras exponer. El paralelismo entre hogar y empresa es muy claro en este caso y por eso mismo utilizo esta palabra y no otras como vivienda, casa, etc. El hogar es algo más que eso, la zona de confort de una comunidad, pero esto lo dejaré para otra entrada.


Red de Hogar

Cada día está más claro que es necesario ir formándose una red en nuestra casa, con la cantidad de dispositivos que tenemos en nuestros hogares, que deben compartir información; podemos hacer esto mediante la nube, la solución que se está imponiendo, pero perdemos la propiedad de nuestros datos y nuestro control sobre ellos, además de estar condicionado por tu conexión a internet .
Logo de ownCloud
La solución a este problema consiste en crearse esta red en nuestra propia casa, en un principio surgieron los NAS, pero su precio nunca ha llegado a ser lo suficientemente bajo para que se extienda su uso, hoy en día podemos acudir a soluciones de muy bajo precio utilizando un Raspberry Pi, un disco duro por USB y owncloud. Hacerlo no es nada difícil, podemos seguir el tutorial de mi amigo Toni de Electroensaimada, pero no tenemos que quedarnos sólo con esto, también podemos incluir un cliente Torrent, para que funcione como un servidor de descargas con un consumo mínimo.

Otra aplicación que podemos utilizar en ownCloud, además de sincronizar y almacenar archivos, es la de sincronizar nuestros calendarios y agendas entre dispositivos, para ello utiliza calDAV y cardDAV respectivamente, que son ampliamente utilizados por los clientes PIM más conocidos, son estándares libres por supuesto.

También tenemos la opción de identificarnos en ownCloud con OpenID, cosa que aún estoy probando y no tengo muy claro como funciona.

EmonCMS

Así luce EmonCMS.

Por otra parte, dejando de lado el manejo de información personal, leí en la edición de octubre de Elektor como crearte una pasarela web que leyera el consumo y lo transmitiera a un servidor, el montaje es muy parecido al de mips & chips, pero con conexiones a interfaces S0, muy extendidas en los contadores eléctricos y algunos de agua o gas. Como software se utilizaba EmonCMS de OpenEnergyMonitor, como su nombre indica es un CMS, como WordPress o Drupal pero dedicado a la medida de energía, muy interesante para utilizarlo en gestión de eficiencia energética.

Y con esto he comentado ya las opciones más interesantes para crearnos nuestra propia red de hogar, el siguiente paso es interconectar entre varios hogares y crear redes de edificios, redes de ciudades y red libre en general.


Enlaces Interesantes II

Continúo con esta sección, que siempre es útil para ordenarme la cabeza:

Por qué no iré a la presentación de la web del Senado: Crítica a la nueva web del senado, por su falta de transparencia, su coste altamente inflado y como ya es típico en la administración pública española la no utilización de tecnologías libres.

Line: ¿puede un servicio de mensajería japonesa desbancar al todopoderoso WhatsApp?: Tal y como dije WhatsApp me parece una moda pasajera y no veo muy dificil que una nueva aplicación lo supere y aquí tenemos un ejemplo que puede conseguirlo, a WhatsApp sólo le protege el efecto red. Lástima que la seguridad siga siendo nula ¿Cuando se pondrán con este tema?

The Secure Line
Esto sí es una línea segura, WhatsApp y Line no lo son.

Cubieboard: Una seria competencia de Raspberry PI: Una de las grandes limitaciones de Raspberri Pi es que únicamente dispone de puertos USB para conectar unidades de almacenamiento, puertos mucho más lentos que el SATA que incorpora esta nueva plaquita, la Cubieboard. Además tiene más potencia, por contra es algo más cara, 49$ en un principio, pero seguramente valga la pena.

Volvemos con lo de siempre: la absurda reforma de la ley de la propiedad intelectual y el temido artículo 158 bis: Cada día queda más claro que para montar un negocio tecnológico debemos instalar nuestros servidores fuera de España u otros países con una legislación similar.


Recomendaciones para instalar MATLAB en Linux

Logo de MATLABPor fin instalado MATLAB en mi Ubuntu, siento decirlo pero no se puede comparar con Octave en muchos aspectos, sobre todo en la parte de automática, el inconveniente de e Matlab en GNU/Linux viene en su instalación que es bastante compleja. Por eso voy a hacer una pequeña guía de como lo he hecho yo, con los pasos que aproximadamente he necesitado:

  1. Montar la ISO de MATLAB, directamente pinchando desde el entorno gráfico.
  2. Copiar todos los archivos y carpetas a “/tmp/matlab”.
  3. Crear una carpeta donde se instalará el programa, por ejemplo “~/matlab2009/”.
  4. Poner todos los archivos que se necesiten ejecutar con permisos de ejecución, empezando por el archivo “install” y otros que os irá diciendo el instalador. Esto es sencillo de hacer, solo tenemos que ir a propiedades del archivo y seleccionar la casilla “Permitir ejecutar el archivo como un programa” en “Permisos”.
  5. ¿El instalador nos dice que necesitamos la libreria libXp.so? Pues la instalamos:
    sudo apt-get install libxp6 libxp-dev
  6. Una vez terminado el proceso ya podremos iniciar MATLAB, pero desgraciadamente no está nada integrado con el sistema, ni siquiera tiene el icono para abrirlo, por lo tanto…
  7. Nos vamos al centro de software e instalamos “MATLAB”, el paquete que nos integrará el programa en Ubuntu. Le indicamos la carpeta de instalación y algo mas que nos pide y ya lo tenemos instalado.
  8. La carpeta que nos ha creado este paquete es “~/.matlab” y su propietario es root esto nos dará un warning cuando iniciemos matlab que nos dirá que no puede modificar el fichero de configuración. Pues lo arreglamos:
    sudo chown -R litox:litox .matlab/
  9. Abrirlo y ¡a programar!

Cosas que hacer después de instalar Ubuntu

Después de instalar Ubuntu 12.04 viene lo mas divertido, configurarlo a tu gusto. Esta vez he tirado mucho del centro de software, así que vais a ver pocos “apt-get”. Como siempre esto es una elección totalmente personal pero si a alguien le sirve de guía, mejor que mejor.

  1. Una buena guía para eliminar servicios que no utilicemos, yo le añadiría eliminar el cliente de microbloggin porque no tengo y cualquier otra que no nos interese.
  2. Si no hemos creado una partición swap en la instalación podemos fácilmente crear un archivo que realice esta función.
  3. Siempre es útil saber las temperaturas que alcanza tu ordenador así como la velocidad de los ventiladores y todos los datos a los que podamos acceder. Aquí enlazo una guía para configurar todo este tema. Después de probar varios visualizadores de esta información, recomiendo Psensor, por su sencillez y buena personalización, para personalizar más aún lo mejor es usar Conky pero es más complejo de configurar a tu gusto.
    En mi placa base para que funcione lm-sensors necesito deshabilitar el control mediante ACPI, que por otro lado al ser tan básica la placa base no está controlando nada, por eso no tengo nada que perder. En otros casos puede no ser recomendable, los ventiladores se pueden parar en el inicio y eso no es nada bueno. Para hacer esto he seguido estos pasos.
  4. Instalar Grub Customizer, muy cómodo para editar el Grub.
  5. Como ya comenté como lector RSS instalé Liferea, ¿como puede ser que Ubuntu no lo tenga instalado por defecto?¿Software libre sin agregador RSS? Que incongruencia. Podemos también configurar el botón RSS de Firefox para que agregue automáticamente los canales a Liferea.
  6. Instalar Calibre, no hay nada mejor para gestionar nuestra biblioteca virtual.
  7. ¡Cuando pinchas en la barra de direcciones Firefox no se selecciona entera! Pues a arreglarlo.

Con esto ya hay bastante por hacer igual otro día escribo sobre la personalización de Unity, que es un tema que tiene su miga,

 


De vuelta a Ubuntu

Logo de UbuntuPor problemas con mi ordenador hacia tiempo que no podía usar linux en el, ahora parece que ya está todo arreglado y he decidido instalar Ubuntu, la versión 12.04, con su Gnome y todo, no quiero forzar mi maquina metiéndole KDE. Por ahora puedo decir que me va como la seda, hacia tanto tiempo que no utilizaba GNU/Linux que aun no había podido comprobar en primera persona las ventajas de Unity, la nueva Shell de Ubuntu. Lo cierto es que Unity es bastante polémica por todo el cambio que supone, dejando de lado el escritorio tradicional; por su poca personalización que si es cierto que es un engorro.

Algo que hecho mucho de menos de KDE son los widgets de escritorio, para poder ver rapidamente el consumo de CPU y memoria o el tiempo que va a hacer mañana en tu ciudad, es cierto que podemos instalar Screenlets, pero sólo si queremos torturarnos soportando todos los fallos que da.

Por otra parte veo que con Unity se aprovecha muy bien la pantalla, cosa que me gusta, yo que no tengo una gran pantalla, tengo la barra lateral oculta normalmente, de esta forma además de no ocupar espacio no me desconcentro pasando de una aplicación a otra todo el rato, cosa que además hace que mi PC tarde más en responder, por el cambio de contexto.

En general me llevo una buena impresión de Ubuntu 12.04, espero que las próximas versiones se mejore la personalización y que Canonical no se pase en su propósito de emular a Apple, que se quede en algo intermedio entre Debian y Mac OS que es donde puede tener el mercado.


Novedades en OwnCloud

Cliente de escritorio de OwncloudEl desarrollo de ownCloud está ultimamente muy activo, ya hablé hace tiempo de la inclusión de Akregator en ownCloud, este proyecto ya está en pleno desarrollo, se trata de una aplicación llamada News, nombre que me parece muy acertado por cierto.

Pero no solo ésto, ya se ha liberado la aplicación de escritorio de ownCloud, con ella tendremos un funcionamiento muy parecido al de Dropbox, sin tener que utilizar carpetas mediante el protocolo WebDAV que aunque como estándar web está muy bien, se hace realmente incomodo trabajar sobre ella puesto que tienes que esperar a que se suba cada archivo.

Yo por mi parte me he creado una cuenta en OwnCube, un servidor gratuito de ownCloud que aunque va un poco lento y supongo que es cosa del servidor y no de ownCloud en sí , tampoco me molesta.

Para información sobre como poner todo esto en marcha podéis mirar este blog donde está muy bien explicado.


Radio Definida por Software

GNU Radio

La tendencia hoy en día es el paso de la electrónica analógica a electrónia digital y de ésta a software y esta tendencia se nota especialmente en el tema de la Radio Definida por Software (SDR), idealmente la SDR pretende digitalizar directamente las ondas de radio y trabajar con esos datos obtenido directamente por software, para una comunicación bidireccional se tendría además que realizar el proceso inverso, inyectar datos por la antena mediante un convertidor digital/analógico.

Pero dejando a un lado los detalles técnicos la Radio Definida por Software tiene muchas aplicaciónes que aún no se han puesto en práctica, la mas importante bajo mi punto de vista es la Radio Cognitiva, mediante esta técnica es posible aprovechar de una forma mucho más eficiente el espectro de radiofrecuencia, puesto que la radio para comunicarse salta a la banda de frecuencia que encuentra libre.

Aunque la Radio Definida por Software aún es una tecnología cara gracias a GNU Radio no es necesario que nos preocupemos por la parte del software, puesto que tenemos a nuestra disposición un conjunto de herramientas libres para el procesado de la señal.

Lo más caro para su implantación es el hardware que la hace posible. Junto con GNU Radio funciona USRP, desarrollado por Ettus Research, pero aún es excesivamente caro para una implantación masiva. Por otra parte se ha descubierto una forma mas sencilla y barata de acceder a esta tecnología, a cambio de acceder a un ancho de banda mas pequeño y de forma unidireccional, gracias al hackeo del chip Realtek RTL2832. De esta forma es posible introducir a muchos interesados en este mundo.

El problema para la implantación de estas tecnologías es lo limitado que está el uso libre del espectro radioeléctrico, los estados que aún funcionan sobre la lógica de la era industrial no permiten libertad en el uso del espectro radioeléctrico y solo unas estrechas bandas las puede utilizar la gente común, en contra de estas prácticas ya existen iniciativas como la Open Spectrum que buscan poner al alcance de todos el uso responsable de las ondas de radio.


OwnCloud 3 y más

Vía KDE Blog descubro las novedades de OwnCloud 3, ese servidor libre para crear tu propihttp://www.thinkdigit.com/FCKeditor/uploads/akregator(1).pnga nube, aunque me sorprende gratamente con todos esos visualizadores y editores de documentos con los que podremos acceder a nuestros archivos sin tener que descargarlos, me impresiona más una funcionalidad que plantean añadir en versiones futuras, la posibilidad de tener nuestro lector RSS en OwnCloud sincronizado con Akregator.

http://www.mozilla-hispano.org/wp-content/uploads/sync-header.png

Además le veo muchas posibilidades si lo unimos a la gestión de enlaces que ya teníamos de versiones anteriores, lo unico que me faltaría para completar la combinación perfecta es poder usar los marcadores en Firefox mediante Sync. Supongo que todo será cuestión de tiempo.


Todos usamos cookies, acéptalo ya. más información

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close