Problemas de conexión al servidor VNC de GNOME

Introducción

En las versiones recientes de Vino, el servidor VNC del proyecto GNOME que se incluye en otras distribuciones como Ubuntu, he encontrado problemas de conexión con los clientes, especialmente con el cliente de RealVNC que utilizo.

Cuando el cliente intenta conectarse con el servidor, la conexión falla y el usuario recibe un mensaje de “No supported authentication methods!” o “No matching security types“.

Causa

Esto aparentemente se debe a que Vino por defecto intenta cifrar el tráfico de datos con TLS y los clientes no lo soportan.

Solución

La solución consiste en desactivar el cifrado de los datos transmitidos durante la sesión de VNC.

Para hacer esto se debe ejecutar el siguiente comando en el servidor.

$ gsettings set org.gnome.Vino require-encryption false

Probablemente sea necesario reiniciar el servicio de Vino.

$ pgrep -l vino-server 

$ pkill -x vino-server

$ /usr/lib/vino/vino-server -t &

Instalación de Heimdall en Linux

Introducción

Heimdall es una herramienta multiplataforma y libre para actualizar (flash) el firmware (custom recoveries, ROMs, modems, etc) de los teléfonos móviles Samsung.

Instalación

La versión mas reciente de Heimdall puede descargarse desde su sitio web e instalarse mediante la herramienta de gestión de paquetes de la distribución de Linux.

$ sudo dpkg -i ubuntu13.04-heimdall_1.4.0-0_amd64.deb

En Linux Ubuntu también es posible agregar su repositorio para mantener la aplicación continuamente actualizada.

$ sudo add-apt-repository ppa:modycz/heimdall
$ sudo apt-get update
$ sudo apt-get install heimdall

Recursos

Expandir la partición raíz de Linux Debian en la Intel Galileo

Introducción

Una vez instalado Linux Debian en la tarjeta micro SD de la Intel Galileo es posible ampliar la partición raíz para que esta utilice el espacio real físicamente disponible en la tarjeta.

A continuación se muestra el procedimiento para hacer esto utilizando GParted.

Procedimiento

Insertar la tarjeta micro SD a manipularse el tamaño de la particicón raíz y ejecutar GParted.

$ sudo gparted

En los dos mensajes de error mostrados a continuación presionar el botón Fix.

Libparted Bug Found!_018 Libparted Warning_019

Seleccionar la partición raíz (segunda) de la tarjeta micro SD, hacer clic derecho y elegir la opción Resize/Move del menú contextual.

-dev-mmcblk0 - GParted_021

Especificar el tamaño que se le desea asignar a la partición (arrastrar la parte gráfica).

En este caso se decidió asignarle 5245 MB para dejar aún libres 2048 MB.

Resize -dev-mmcblk0p2_022

Finalmente presionar el botón (7mo. de la barra de íconos) para aplicar todas las operaciones sobre la tarjeta de memoria.

-dev-mmcblk0 - GParted_023

Recursos

Instalación de Linux Debian en una Intel Galileo

Introducción

La instalación de la versión ampliada de Linux que incluye Intel para  las tarjetas micro SD de las Intel Galileo aumenta ostensiblemente las capacidades de desarollo de estas, sin embargo esta distribución carece de soporte a otros paquetes a través de respositorios como ampliamente lo tiene una distribución como Debian.

Dependiendo lo que se desea desarrollar esto puede pasar inadvertido o ser un completo obstáculo para el proyecto.  Por este motivo a continuación se explorará el proceso de instalación de Linux Debian en las tarjetas Intel Galileo a través de la distribución preparada por el proyecto galileo-debian en SourceForge.

Requisitos

  1. Tarjeta Micro SD de al menos 1GB y menos de 32GB.
  2. Distribución de Linux Debian para Intel Galileo.

Instalación

Obtener el archivo de la imagen del disco desde el repositorio del proyecto, en este caso se utilizará la versión 1.2 de la distribución.

Descomprimir la imagen del disco recién descargado.

$ gunzip galileo-1.2.img.gz

Preparar la tarjeta Micro SD formateada con una tabla de particiones msdos y una partición FAT32.

Transferir la imagen a la tarjeta Micro SD.  Se debe tener en cuenta que la información contenida en la tarjeta micro SD será eliminada.

Al hacer esto verificar que el dispositivo de destino (of) corresponde realmente con el lector de tarjetas donde se encuentra la micro SD, de lo contrario se expone a poner en riesgo sus propios datos.

$ sudo dd if=galileo-1.2.img of=/dev/mmcblk0 bs=10MB

94+1 records in
94+1 records out
943718400 bytes (944 MB) copied, 235,027 s, 4,0 MB/s

Los usuarios de Windows pueden utilizar Rawrite32.

Insertar la tarjeta Micro SD en la Intel Galileo e iniciar su sistema operativo.

Debe tenerse en cuenta que el primer incio del sistema operativo acostumbra a tardar mas tiempo que los inicios siguientes.

Recordar además que para evitar daños en al tarjeta Intel Galileo debe conectarse primero el cable de corriente (5V) antes de conectar el cable USB que va hacia el computador.

Consultar la sección acerca de como conectarse a la tarjeta Intel Galileo para ver opciones de como realizar la conexión a la misma para su administración.

Recursos

Instalación de Linux en una Intel Galileo

Introducción

La versión de Linux que provee la tarjeta Intel Galileo desde su memoria flash es muy limitada, sin embargo si esta se amplía con una tarjeta microSD es posible utilizar una distribución de Linux mas elaborada que incluye software adicional como el siguiente.

  • WiFi drivers (all Intel-chipset WiFi cards).
  • Python.
  • Node.js.
  • SSH – Secure Shell (SSH).
  • OpenCV (open-source computer vision application).
  • ALSA – Advanced Linux Sound Architectures (ALSA).
  • V4L2 – Video4Linux2.
  • Entre otros.

Requerimientos

  1. Tarjeta Micro SD de al menos 1GB y menos de 32GB.
  2. Distribución de Linux para la SD de Intel Galileo (SD-Card Linux Image) .

Instalación

Obtener y descomprimir la imagen del sistema operativo (SD-Card Linux Image).

$ bunzip2 SDCard.*.tar.bz2

$ tar xvf SDCard.*.tar

Los usuarios de Windows pueden utilizar 7Zip para descomprimir los archivos mientras que los de MacOSX pueden utilizar TheUnarchiver.

Preparar la tarjeta Micro SD formateada con una tabla de particiones msdos y una partición FAT32.

Copiar los archivos obtenidos de descomprimir la imagen del sistema operativo en la raíz de la tarjeta Micro SD.

Archivos en el directorio raíz de la tarjeta Micro SD
Archivos en el directorio raíz de la tarjeta Micro SD

Insertar la tarjeta Micro SD en la Intel Galileo e iniciar su sistema operativo.

Debe tenerse en cuenta que el primer incio del sistema operativo acostumbra a tardar mas tiempo que los inicios siguientes.

Recordar además que para evitar daños en al tarjeta Intel Galileo debe conectarse primero el cable de corriente (5V) antes de conectar el cable USB que va hacia el computador.

Conectarse a la tarjeta

Para verificar el proceso de carga y en general, realizar la administración del dispositivo es muy conveniente acceder a la consola del sistema operativo de la tarjeta.

Para hacer esto el método recomendado es utilizar el puerto RS232 de la tarjeta, sin embargo para esto es necesario contar con los siguientes cables.

  1. DB9 Female to 3.5mm Serial Cable.
  2. USB 2.0 to RS-232 DB9 Serial Converter.

En caso de no tenerse estos cables para realizar la conexión con la tarjeta a través del puerto serial, es posible realizar una conexión a través del protocolo SSH el cual viene activo por defecto en el Linux instalado.

Para conectarse con SSH es necesario conocer la dirección IP que se le asignó a la tarjeta en la red.  Una forma de hallar esto es mediante el siguiente comando siendo 192.168.1.0 la red a la cual fue conectado el dispositivo.

$ sudo nmap -sP 192.168.1.0/24
Buscar equipos activos en  una red y mostrar su dirección MAC
Buscar equipos activos en una red y mostrar su dirección MAC

La dirección MAC de la tarjeta se encuentra impresa sobre el puerto de ethernet.

Vista general de la tarjeta Intel Galileo gen1
Vista general de la tarjeta Intel Galileo gen1

Para realizar la conexión con la tarjeta a través de SSH utilice el siguiente comando mostrado como ejemplo con la dirección IP asignada.

$ ssh root@192.168.1.6

Recursos

Instalar Apache Ripple en Ubuntu 14.10

Introducción

A continuación se detallarán los pasos necesarios para instalar el emulador Apache Ripple (verificado con la versión 0.9.24) en Ubuntu 14.10 utilizando el gestor de paquete de NPM.

Requisitos

Instalación

Ubicarse en el directorio de instalación del software de desarrollo.  Por convención utilizo el directorio ~/apps, sin embargo puede utilizar el que se desee.

$ cd ~/apps

Instalar el paquete utilizando NPM.

$ npm install ripple-emulator

Agregar la siguiente ruta al PATH realizando la siguiente modificación en /etc/profile, ~/.bashrc o ~/.bash_profile.

PATH=$PATH:~/apps/node_modules/.bin/

Si la instalación de Phonegap se realizó siguiendo los pasos expuestos anteriormente entonces no necesitará repetir este paso.

Ejecución

Ubicarse en el directorio www/ del proyecto Phonegap.

$ cd ~/workplace/proyecto/www

Ejecutar el emulador.

$ ripple emulate

También es posible ejecutar el emulador directamente especificando la ruta del proyecto en su ejecución.

$ ripple emulate --path ~/workplace/proyecto/www

Una vez ejecutado se abrirá automáticamente Chrome con el URL del emulador.

Recursos

Instalación de Phonegap 3.x en Ubuntu 14.10

Introducción

A continuación se describe la instalación paso a paso de Phonegap 3.x en Ubuntu 12.10 desde línea de comando.  Esta instalación no incluye ningún SDK específico ya que en esta primera etapa la idea no es construir paquetes instalables (como el APK de Android) sino  desarrollar mientras se prueba en un emulador como el Ripple de Apache o la aplicación de desarrollo de Phonegap.

Instalación del software

Instalar NodeJS y su administrador de paquetes

$ sudo aptitude install nodejs nodejs-legacy npm

Crear el directorio de apps si este no existe.  Por orden se recomienda instalar el software de desarrollo bajo la carpeta ~/apps sin embargo se puede utilizar la que se desee.

$ mkdir ~/apps

$ cd ~/apps

Instalar el paquete de Phonegap.

$ npm install phonegap

Instalar el paquete de Ant, necesario para construir y ejecutar las aplicaciones desarrolladas con Phonegap.

$ npm install ant

Agregar las siguientes rutas a la variable PATH ya sea en /etc/profile, ~/.bashrc o ~/.bash_profile.

$ vi ~/.bashrc

PATH=$PATH:/home/jimezam/apps/node_modules/ant/ant/bin:/home/jimezam/apps/node_modules/.bin

Creación de un nuevo proyecto Phonegap

Ubicarse en el directorio de trabajo donde se creará el proyecto.

$ cd ~/workplace

Crear el proyecto de Phonegap a partir de una plantilla vacía utilizando la herramienta phonegap create.  Esta herramienta recibe como minimo dos parámetros: el nombre del directorio del proyecto y el paquete de la aplicación (Android).

$ phonegap create EjemploApp mi.paquete.ejemploapp

Instalación de Laravel 5 en Ubuntu

Instalación de Composer

$ curl -sS https://getcomposer.org/installer | php

$ sudo mv composer.phar /usr/local/bin/composer

Instalación de Laravel

$ composer global require "laravel/installer=~1.1"

Actualizar el PATH para incluir la herramienta de laravel.

$ vi ~/.bashrc

    PATH=$PATH:~/.composer/vendor/bin/

Creación de un nuevo proyecto

$ laravel new nuevo-proyecto

Verificar la versión de Laravel instalada.

$ cd nuevo-proyecto

$ php artisan -V

Ejecución del servidor web embebido para desarollo

$ php artisan serve

Acceder al proyecto desde un navegador web y el URL http://localhost:8000.

Para utilizar esta funcionalidad de artisan debe tenerse instalado mcrypt.  En caso de no contarse con esta librería seguir los pasos a continuación.

$ sudo aptitude install php5-mcrypt

$ sudo php5enmod mcrypt

Recursos

Super and Distributed Computing Summer Camp, Manizales 2014

School Mission

Taking advantage of the Internet and high speed networks available today, one can exploit high performance computing infrastructures from anywhere, even located in the middle of the nature.

Inspired by this idea SC-Camp is an initiative of researchers to offer to undergraduate and master students state-of-the-art lectures and programming practical sessions upon High Performance and Distributed Computing topics. SC-Camp is a non-profit event, addressed to every student including those that lack of financial backup. Last year all students that applyied in due time received a grant to attend lectures, including meals and accomadations. This year the event will be hosted by BIOS Centro de Bioinformática Y Biología Computacional in the outstanding park of Manizales, Colombia.

SC-Camp 2014

SC-Camp 2014 features 6 days of scientific sessions and 1 leisure day with an organized activity (for example, hiking or rafting). During the lectures there will be held several parallel programming practical sessions.

We welcome applications of undergraduate (preferable at last year) or master students from all areas of engineering and science with strong interest upon High Performance and Distributed Computing. Due to the advanced content of lectures some basic notions of Parallel and Distributed Computing along with programming skills are desired. All courses and lectures will be held in English, thus a good knowledge of English -both oral and written- is mandatory. The scientific and steering committee will evaluate the application forms based on the applicant’s scientific background and their motivation letter. This year, as last year, we expect to accept from 20 up to 40 students. The registration fee includes accommodation and access to all scientific lectures.

Topics

The summer school focus on the following topics:

  • Parallel Programming
  • Multiprocessors Programming
  • Distributed Systems
    • Cluster Computing
    • Grid Computing
    • Cloud Computing
    • Volunteer Computing
    • Hybrid and GPU Programming
  • Resource/Job Management & Scheduling
  • Virtualisation
  • Fault tolerance
  • Green Computing
  • Performance Evaluation

Datos importantes

Fechas: agosto de 2014 del 10 al 16.

Costo: USD $150.

Recursos

Configurar Transmission para que envíe un mensaje por Telegram cada vez que descargue un Torrent

Introducción

Transmission_logoUn paso mas en la automatización de las tareas consiste en configurar medios para que el usuario sea notificado del estado de las mismas.  Para experimentar con los avances obtenidos anteriomente con el servicio de Telegram, a continuación se describirá el procedimiento necesario par configurar a Transmission (cliente de torrent) para que notifique al usuario a través de un mensaje cada vez que un torrent sea descargado completamente.

telegram_message_for_torrent

Precondición

  1. Transmission correctamente instalado.
  2. Cliente CLI de Telegram instaldo.
  3. Script (telegram_sendmsg.sh) instalado.

Configuración inicial del sistema operativo

Por defecto la cuenta del sistema operativo que corresponde con el usuario de Transmission viene por seguridad con el shell desactivado y sin directorio home.  Para integra el envío de mensajes con Telegram es necesario modificar esto.

Ajuste los siguientes pasos de acuerdo con la información específica de su sistema operativo.  Los pasos descritos han sido implementados bajo Debian/Raspbian, algunos nombres pueden variar de acuerdo con la distribución de Linux que utilice.

$ sudo usermod --shell /bin/bash debian-transmission

$ sudo usermod --home /home/debian-transmission debian-transmission

Si la ruta del directorio home no existe es necesario crearla.

$ sudo mkdir /home/debian-transmission

$ sudo chown -R debian-transmission:debian-transmission /home/debian-transmission

Configuración inicial de Telegram

Para utilizar Telegram con Transmission es necesario configurar el primero bajo la cuenta del usuario del segundo de la siguiente manera.

Convertirse en el usuario de Transmission.

$ sudo bash

$ su - debian-transmission

Ejecutar Telegram por primera vez, la aplicación le solicitará el número telefónico de la cuenta (que ya debe estar activa) que se utilizará para enviar los mensajes.

Especifique este número de la forma +CÓDIGO_PAÍS TELÉFONO.  Posteriormente especifique el código de confirmación enviado a través de Telegram.

$ telegram -k /etc/telegram/server.pub

Telegram-client version 0.01-beta, Copyright (C) 2013 Vitaly Valtman
Telegram-client comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show_license' for details.

Telephone number (with '+' sign): +573001234567

 *** phone registered
 *** sending code
 *** send_code: dc_num = 1

Code from sms (if you did not receive an SMS and want to be called, type "call"): 12345

User Telegram: 0 unread

> quit

Convertirse de regreso en el usuario sin privilegios habitual.

$ exit

$ exit

Crear el script para Transmission

Crear el script que realizará las tareas que deberán suceder una vez Transmission recibe un torrent completo, en este caso enviará un mensaje a través de Telegram utilizando el script de apoyo (telegram_sendmsg.sh).

Este script puede hacer uso de las siguientes variables de ambiente proporcionadas por Transmission.

TR_APP_VERSION Versión de Transmission.
TR_TIME_LOCALTIME Fecha y hora de recibo del torrent.
TR_TORRENT_DIR Directorio donde se almacenó el torrent.
TR_TORRENT_HASH Hash del torrent una vez recibido.
TR_TORRENT_ID Identificador del torrent.
TR_TORRENT_NAME Nombre del torrent recibido.

Copie el script torrent_done.sh en una ubicación conocida como /etc/transmission-daemon.

$ sudo chmod +x /etc/transmission-daemon/torrent_done.sh

Personalice las siguientes variables definidas en el script.

PROGRAM Ubicación del script telegram_sendmsg.sh.  Si este se encuentra ubicado en el PATH no debería necesitar ningún cambio en este variable.
RECIPIENT Nombre del contacto (peer) que recibirá los mensajes de Telegram.
MESSAGE Mensaje que será enviado cada vez que llegué un torrent completo.

Pruebas del envío de mensajes

Verificar que el envío de mensajes es exitoso con las tres aplicaciones o scripts implementados.  Ajuste el receptor de los mensajes de prueba según su caso.

Primero, verificar que Telegram CLI envía correctamente los mensajes.

$ telegram -k /etc/telegram/server.pub

> msg Pepito_Pimenton test1
> quit

Segundo, verificar el funcionamiento del script telegram_sendmsg.sh.

$ telegram_sendmsg.sh Pepito_Pimenton test2

Tercero, verificar el funcionamiento del script torrent_done.sh.

$ /etc/transmission-daemon/torrent_done.sh

Configurar Transmission

Configurar Transmission para que ejecute el script torrent_done.sh tan pronto como reciba un torrent completo.

Detener el servicio de Transmission.  Si esto no se realiza los siguientes cambios en la configuración no serán tenidos en cuenta.

$ sudo service transmission-daemon stop

Ajustar las siguientes opciones de configuración.

$ sudo vi /etc/transmission-daemon/settings.json

    "script-torrent-done-enabled": true,
    "script-torrent-done-filename": "/etc/transmission-daemon/torrent_done.sh",

Iniciar nuevamente el servicio de Transmission.

$ sudo service transmission-daemon start

Configuración final del sistema operativo

Por seguridad es conveniente remover el acceso al shell por parte del usuario de Transmission.

$ sudo usermod --shell /bin/false debian-transmission

Siendo un tanto paranóicos también puede ser conveniente bloquear la cuenta para impedir su acceso directo.

$ sudo passwd -l debian-transmission

Tenga en cuenta que se realizaron estos pasos para cuando necesite acceder como este usuario.

Recursos